Kerberos认证协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Kerberos 认证协议
Hanyil 整理编写 一、Kerberos 概述
1、Kerberos 简介 Internet 上的很多协议本身并不提供安全属性。怀有恶意的 hackers 用“sniff”等工具嗅探 口令是非常普遍的事, 因此在网络上不经加密就传送口令是很不安全的。 许多网站使用防火 墙来解决安全问题,但是,防火墙都是假定攻击都来自外部,但事实常常不是这样,许多攻 击事件都是内部人员所为,而且防火墙还有一个缺点就是会对正常的用户使用 Internet 造成 一定的限制。 由 MIT 开发的 Kerberos 协议就是针对这样的网络安全问题的。Kerberos 协议使用了强 密码,以使 client 能够通过一个不安全的 Internet 连接向 server 证明他的身份。在 client 和 server 用 Kerberos 证明了各自的身份后, 还可以对数据加密从而保证数据的保密性和完整性。 Kerberos 是一个分布式的认证服务,它允许一个进程(或客户)代表一个主体(或用户)向验证 者证明他的身份,而不需要通过网络发送那些有可能会被攻击者用来假冒主体身份的数据。 Kerberos 还提供了可选的 client 和 server 之间数据通信的完整性和保密性。Kerberos 是在 80 年中期作为美国 MIT(麻省理工学院) “雅典娜计划” (Project Athena)的一部分被开发的。Kerberos 要被用于其它更广泛 的环境时,需要作一些修改以适应新的应用策略和模式,因 此,从 1989 年开始设计了新的 Kerberos 第 5 版(Kerberos V5)尽管 V4 还在被广泛使用, 。 但一般将 V5 作为是 Kerberos 的标准协议。 Kerberos 是古希腊神话中守卫地狱入口狗, 长着三个头 狗。MIT 之所以将其认证协议命名为 Kerberos,是因为他们 计划通过认证、清算和审计三个方面来建立完善的完全机 图 1 神话中的 Kerberos 制,但目前清算和审计功能的协议还没有实现。 认证是指通过验证发送的数据来判断身份,或验证数据的完整性。主体(principal)是 要被验证身份的一方。验证者(verifier)是要确认主体真实身份的一方。数据完整性是确保 收到的数据和发送的数据是相同, 即在传输过程中没有经过任何篡改。 认证机制根据所提供 的确定程度有所不同,根据验证者的数目也有所不同:有些机制支持一个验证者,而另一些 则允许多个验证者。另外,有些认证机制支持不可否认性,有些支持第三方认证。认证机制 的这些不同点会影响到它们的效能, 所以应根据具体应用的需求来选择合适的认证方式就非 常重要。 例如, 对电子邮件的认证就需要支持多个验证者和不可否认性, 但对延时没有要求。 相比之下,性能比较差的机制会导致认证请求频繁的服务器出现问题。 现代的计算机系统一般都是多用户系统, 因此它对用户的请求要能够准确的鉴别。 在传 统的系统中, 都是通过检测用户登录时键入的口令来认证身份的, 系统通过与记录文件对比 从而来判定提供什么类型的服务。 这种验证用户身份的操作称为认证。 基于口令的身份认证 是不适于计算机网络的。 窃听都很容易窃取到通过网络传输的口令, 随后就可以用口令假冒 合法用户登录。尽管这种缺陷早就被人证认识到了,但直到在 Internet 上造成了很大的危害 才被引起重视。 当使用基于密码学的认证时, 攻击者通过网络窃听不到任何能使他假冒身份 的信息。Kerberos 就是这种应用的一个最典型的例子。Kerberos 提供了在开放的网络上验证 主体(如工作站用户或网络服务器)身份一种方式。它是建立在所有的数据包可以被随意的读
保留版权

取、修改和插入的假设之下的。Kerberos 提供在 这种环境下的通过传统密码(共享密钥)实现的 可信第三方认证。 2.应用环境假定 Kerberos 协议的基本应用环境为, 在一个分 布式的 client/server 体系机构中采用一个或多个 Kerberos 服务器提供一个鉴别服务。Client 想请 求应用服务器 Server 上的资源,首先 Client 向 Kerberos 认证服务器请求一张身份证明, 然后到 将身份证明交给 Server 进行验证, Server 在验证 通过后,即为 Client 分配请求的资源。
Kerberos
Client
Server
图2
Kerberos 的基本应用
Kerberos 协议本身并不是无限安全的,而且也不能自动地提供安全,它是建立在一些假 定之上的,只有在满足这些假定的环境中它才能正常运行。 (1)不存在拒绝服务(Denial of service)攻击。Kerberos 不能解决拒绝服务(Denial of service)攻击,在该协议的很多环节中,攻击者都可以阻断正常的认证步骤。这类攻击只能 由管理员和用户来检测和解决。 (2)主体必须保证他们的私钥的安全。如果一个入侵者通过某种方法窃取了主体的私 钥,他就能冒充身份。 (3) Kerberos 无法应付口令猜测(Password guessing)攻击。 如果一个用户选择了弱口令, 那么攻击都就有可能成功地用口令字典破解掉, 继而获得那些由源自于用户口令加密 (由用 户口令形成的加密链)的所有消息。 (4)网络上每个主机的时钟必须是松散同步的(loosely synchronized)。这种同步可以 减少应用服务器进行重放攻击检测时所记录的数据。 松散程度可以以一个服务器为准进行配 置。时钟同步协议必须保证自身的安全,才能保证时钟在网上同步。 (5)主体的标识不能频繁地循环使用。由于访问控制的典型模式是使用访问控制列表 (ACLs)来对主体进行授权。如果一个旧的 ACL 还保存着已被删除主体的入口,那么攻击者 可以重新使用这些被删除的用户标识,就会获得旧 ACL 中所说明的访问权限。 3、Kerberos 中的名词 Kerberos 协议的描述中定义了许多术语,比较重要的有如下几个: Principal,主体。参与网络通信的实体,是具有唯一标识的客户或服务器。 Authentication,认证。验证一个主体所宣称的身份是否真实。 Authentication header,认证头。是一个数据记录,包括票据和提交给服务器的认证码。 Authentication path,认证路径。跨域认证时,所经过的中间域的序列。 Authenticator,认证码。是一个数据记录,其中包含一些最近产生的信息,产生这些信 息需要用到客户和服务器之间共享的会话密钥 Ticket,票据。Kerberos 协议中用来记录信息、密钥等的数据结构,client 用它向 server 证明身份,包括了 client 身份标识、会话密钥、时间戳和其它信息。所有内容都用 server 的 密钥加密。 Session Key, 会话密钥。 两个主体之间使用的一个临时加密密钥, 只是一次会话中使用, 会话结束即作废。

相关文档
最新文档