Kerberos

✍ dations ◷ 2025-07-26 16:17:21 #认证协议,计算机访问控制协议,网络安全,密钥传输协议,对称密钥算法,MIT软件

Kerberos(/ˈkərbərəs/)是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。

当有N个人使用该系统时,为确保在任意两个人之间进行秘密对话,系统至少保存有它与每个人的共享密钥,所需的最少会话密钥数为N个。

Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。它也指由麻省理工实现此协议,并发布的一套免费软件。它的设计主要针对客户-服务器模型,并提供了一系列交互认证——用户和服务器都能验证对方的身份。Kerberos协议可以保护网络实体免受窃听和重复攻击。

Kerberos协议基于对称密码学,并需要一个值得信赖的第三方。Kerberos协议的扩展可以为认证的某些阶段提供公钥密码学支持。

麻省理工学院研发Kerberos协议来保护雅典娜工程(Project Athena)提供的网络服务器。这个协议以希腊神话中的人物Kerberos(或者Cerberus)命名,他在希腊神话中是Hades的一条凶猛的三头保卫神犬。目前该协议存在一些版本,版本1-3都只有麻省理工内部发行。

Kerberos版本4的主要设计者Steve Miller和Clifford Neuman,在1980年代后期发布这个版本。这个版本主要针对雅典娜工程。版本5由John Kohl和Clifford Neuman设计,在1993年作为 RFC 1510 颁布(在2005年由 RFC 4120 取代),目的在于克服版本4的局限性和安全问题。

麻省理工在版权许可的情况下,制作一个Kerberos的免费实现工具,这种情况类似于BSD。在2007年,麻省理工组成一个Kerberos协会,以此推动Kerberos的持续发展。

因为使用数据加密标准(DES)加密算法(用56 bit的密钥),美国出口管制当局把Kerberos归类为军需品,并禁止其出口。一个非美国设计的Kerberos版本4的实现工具KTH-KRB由瑞典皇家工学院研制,它使得这套系统在美国更改密码出口管理条例前(大约是在2000年),在美国境外就可以使用。瑞典的实现工具基于一个叫做eBones的版本,而eBones基于麻省理工对外发行的基于Kerberos版本4的补丁9的Bones(跳过加密公式和对它们的函数调用)。这些在一定程度上决定Kerberos为什么没有被叫做eBones版。Kerbberos版本5的实现工具,Heimdal,基本上也是由发布KTH-KRB的同一组人发布。

在2005年,互联网工程任务组(IETF)Kerberos工作小组更新了规范,更新包括:

Windows 2000和后续的操作系统使用Kerberos为其默认认证方法。RFC 3244 "微软Windows 2000 Kerberos变更密码与设置密码协议" 记录整理一些微软对Kerberos协议软件包的添加。RFC 4757 记录整理微软对RC4密码的使用。虽然微软使用Kerberos协议,却并没有用麻省理工的软件。

苹果的Mac OS X也使用Kerberos的客户和服务器版本。Red Hat Enterprise Linux 4和后续的操作系统使用Kerberos的客户和服务器版本。

Kerberos使用Needham-Schroeder协议作为它的基础。它使用一个由两个独立的逻辑部分:认证服务器和票据授权服务器组成的"可信赖的第三方",术语称为密钥分发中心(KDC)。Kerberos工作在用于证明用户身份的"票据"的基础上。

KDC持有一个密钥数据库;每个网络实体——无论是客户还是服务器——共享一套只有他自己和KDC知道的密钥。密钥的内容用于证明实体的身份。对于两个实体间的通信,KDC产生一个会话密钥,用来加密他们之间的交互信息。

协议的安全主要依赖于参加者对时间的松散同步和短周期的叫做Kerberos票据的认证声明。下面是对这个协议的一个简化描述,将使用以下缩写:

客户端用户发送自己的用户名到KDC服务器以向AS服务进行认证。KDC服务器会生成相应的TGT票据,打上时间戳,在本地数据库中查找该用户的密码,并用该密码对TGT进行加密,将结果发还给客户端用户。该操作仅在用户登录或者kinit申请的时候进行。客户端收到该信息,并使用自己的密码进行解密之后,就能得到TGT票据了。这个TGT会在一段时间之后失效,也有一些程序(session manager)能在用户登陆期间进行自动更新。当客户端用户需要使用一些特定服务(Kerberos术语中用"principal"表示)的时候,该客户端就发送TGT到KDC服务器中的TGS服务。当该用户的TGT验证通过并且其有权访问所申请的服务时,TGS服务会生成一个该服务所对应的ticket和session key,并发还给客户端。客户端将服务请求与该ticket一并发送给相应的服务端即可。具体的流程请看下面的描述。

其在网络通讯协定中属于显示层。

简单地说,用户先用共享密钥从某认证服务器得到一个身份证明。随后,用户使用这个身份证明与SS通信,而不使用共享密钥。

(注意:此流程使用了对称加密;此流程发生在某一个Kerberos领域中;小写字母c,d,e,g是客户端发出的消息,大写字母A,B,E,F,H是各个服务器发回的消息。)

首先,用户使用客户端(用户自己的机器)上的程序进行登录:

随后,客户端认证(客户端(Client)从认证服务器(AS)获取票据的票据(TGT)):

然后,服务授权(client从TGS获取票据(client-to-server ticket)):

最后,服务请求(client从SS获取服务):

相关

  • 心脏杂音心杂音是血流通过心脏瓣膜时产生的心音,可以用听诊器听见。心杂音有两种类型。功能性杂音(生理杂音)主要由心脏以外的生理构造造成;病理性杂音则是由心脏构造异常所引起。功能性
  • 齐克隆B齐克隆B(Zyklon B或Cyclon B),是以氰化物为基的消毒熏蒸剂和杀虫剂,在第二次世界大战期间被纳粹德国用于执行种族灭绝作战。其前身齐克隆A(Zyklon A)系氰基甲酸甲酯与10%氯甲酸甲
  • 无颔类无颌总纲(学名:Agnatha)是脊索动物下的其中一个总纲。该纲动物是无成对偶肢和上下颌的低等脊椎动物。本纲动物生活于淡水和海水中,有些种类会回游。大多数鱼类的嘴具有铰合的双
  • 契丹语契丹语 (大字: ; 小字: ) 是契丹人的语言,现已绝迹,一般认为属于蒙古语族。在辽朝和西辽(907至1218年)有官方语言地位。它有大字、小字两种文字系统,现代语言学家目前尚未完全破
  • 椅,无靠背的称为凳,是一件用来坐的家具,为脚物家具的一种 ,一般包括一个座位、椅背,有时还包括扶手,通常会有椅脚使座位高于地面。当椅子坐久后坐垫便会热。其他和椅相类似的东西
  • 易洛魁联盟易洛魁联盟(Iroquois),又名Haudenosaunee,意译为“居住在长屋的人们”,是北美原住民联盟。使用易洛魁语言的北美原住民部族在今纽约州中部和北部逐渐形成并共同生活,在十六世纪或
  • 色谱法期刊A《色谱法期刊A》(,常缩写为 )是分析化学领域的学术期刊。色谱法期刊A为周刊,创刊于1958年,主要为发表分离与化合物鉴定的技术与方法,包括色谱法、电迁移技术(如电泳、电色谱)、样品
  • 士族 (日本)士族,是日本明治时期政府采取的其中一种身份阶层。通常特指日本武士阶级中的上士,以藩士身份在被削减特权后的身份,严格上仍然属于贵族但没有爵位,所以比华族低得多。明治维新后
  • 徐良 (歌手)音乐:《七秒钟的记忆》《客官不可以》《犯贱》《北京巷弄》《虐心》《那时雨》《写词的人》《花魁》《至尊宝》徐良(1987年2月8日-),出生于山东青岛,是一位中国男歌手。2010年,徐良
  • 爱丽丝·芭布斯爱丽丝·芭布斯(英语:Alice Babs, 1924年1月26日-2014年2月11日),原名希尔杜·爱丽丝·尼尔森(斯瓦希里语:Hildur Alice Nilsson),是一名瑞典韦斯特维克市出生的歌手和演员,她也参与到