您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>传输网/接入网/交换网>

什么是Kerberos身份验证协议

2010年04月03日 16:04 www.elecfans.com 作者:佚名 用户评论(0

什么是Kerberos身份验证协议

kerberos是由MIT开发的提供网络认证服务的系统。它可用来为网络上的各种server提供认证服务,使得口令不再是以明文方式在网络上传输,并且联接之间通讯是加密的。它和PKI认证的原理不一样,PKI使用公钥体制(不对称密码体制),kerberos基于私钥体制(对称密码体制)。Kerberos称为可信的第三方验证协议,意味着它运行在独立于任何客户机或服务器的服务器之上。此名称来自看守地狱入口的三头犬。

Kerberos服务器称为AS(验证服务器)。当客户端需要访问某个服务器时,客户端访问Kerberos服务器以获取票证。拥有票证意味着具有访问权限。这一点首先假设客户端和服务器都信任“第三方”Kerberos验证服务器。

IETF管理Kerberos规范,但Microsoft已获得一些特权,可以更改此协议以满足Windows 2000中的需要。Kerberos版本5身份验证协议提供了一种相互验证(通过服务器和客户端相互验证或者一台服务与其他服务器之间相互验证)的身份验证机制。Kerberos5协议假设客户端和服务器之间的初始身份验证在一个开放式的网络进行,此时通过网络被传输的数据包将能被监测以及随意修改。这是一个被虚拟的环境,可是换句话说,当今Internet上可能有许多这样的例子,一名攻击者能够伪装成其他的客户端或者服务器,偷听二台合法且正常在通信的服务器和客户端之间数据传输,甚至于篡改他们之间传输的数据。

Kerberos由MIT的Project Athena创建,后者是20世纪80年代后期进行的企业范围计算的测试项目。Kerberos可用于公共用途。

Kerberos为远程登录提供安全性并可提供单个登录解决方案,以便用户不需要每次访问新服务器时都登录。AS将所有用户的密码存储在中央数据库中。它颁发凭据,而客户端使用凭据来访问AS领域内的服务器。适用领域包括AS服务器跟踪的所有用户和服务器,这一点下面将解释。AS服务器由一个管理人员在物理上进行保护和管理。由于它验证用户身份,因此应用程序服务器免除此任务,它们“信任”AS为特定客户颁发的凭据。

在需要加密的任何通信中,为所涉及的双方获取加密密钥时总是有安全风险。在转换过程中可能会危及密钥的安全。一个重要的Kerberos特性是AS提供一种方法,可以安全地将加密密钥分发到需要参与安全事务的客户端和服务器。此共享密钥称为会话密钥。

AS在领域中进行操作,而领域是在其中设置特定安全策略的安全域。领域可以信任其他领域,意味着如果某个用户在一个领域中经过AS的验证,则信任领域不需要用户重新进行验证即可访问其领域中的服务器。换句话说,它相信另一个AS已正确地识别和验证了某个用户。

Kerberos提供三种安全等级:

1)只在网络开始连接时进行认证,认为连接建立起来后的通信是可靠的,认证式网络文件系统(Authenticated network file system) 使用此种安全等级;

2)安全消息(sage messages)传递:对每次消息都进行认证工作,但是不保证每条消息不被泄露;

3)私有消息(private messages)传递:不仅对每条消息进行认证,而且对每条消息进行加密。Kerberos在发送密码时就采用私有消息模式。

下面是Kerberos的一些重要特性:

•在此处的讨论中,客户端指代表用户操作的软件。

•在客户端可访问服务器之前,它必须从AS获得凭据。

•客户端访问服务器时需要的凭据包括服务器票证。服务器票证具有特定的时间参数并只允许特定客户机上的特定用户访问特定服务器。一个用户可能同时拥有数个票证以访问多个服务器。

•最初的目标是从AS获取TGT(票证授予票证)给予客户端。TGT(不要与服务器票证混淆)类似于许可或许可证。使用TGT,客户端即具有权力从TGS(票证授予服务器)获取服务器票证。TGS可能运行在AS计算机上。

•TGT的目的是消除用户在每次希望访问新服务器时必须键入密码的需要。当TGS收到包含TGT的票证的请求时,它使用TGT中的信息验证用户,并且不需要用户重新输入密码。

•TGT包含用户ID和网络地址,以及TGS的ID。它还包含时间戳,而时间戳提供一些保护来防范黑客。另外,它还包含首要的会话密钥(会话密钥最后分发给客户端和用户要访问的目标服务器)。使用只有AS和TGS知道的密钥加密TGT。从而在TGT从AS发送出去后只有TGS 可以对TGT进行解密。

•AS并不将TGT直接发送到目标服务器,而将它发送到客户端,在此处保存它,以用于将来的所有票证请求。当该用户试图访问服务器时,TGT被发送到TGS。TGS将TGT解密并将其内容与用户提供的信息进行比较,以确定真实性,然后返回目标服务器的票证给用户。

验证和授权方案在图K-1中进行了图解,并在下面进行了概述:

1.第一步是客户端获取TGT。本步骤还验证该用户。TGT的一个简单请求发送到AS。AS具有客户端密码的一个副本,它使用从用户密码导出的密钥加密TGT。

2.当客户端收到此响应时,系统提示用户输入可解密此响应的密码。只有可信的用户才能输入可解密响应的密码,因此本方案可有效地验证用户。

3.响应一旦解密,客户端即具有TGT的一个副本。为访问服务器,客户端发送请求(请求中包含目标服务器ID、用户ID和TGT)给TGS来证实用户的真实性。

4.TGS解密TGT并查看其内容。如果所有内容都已检查出,则TGS生成目标服务器的服务器票证,并用与目标服务器一起共享的密钥加密它。服务器票证再次由TGS使用从用户密码导出的密钥加密,并返回到客户端。

5.客户端解密响应以提取服务器票证和会话密钥。然后票证与用户ID一起转发到目标服务器。请注意,票证还包含加密形式的用户ID。

6.目标服务器解密票证,并将随票证发送的用户ID与在票证中加密的用户ID进行比较。如果它们相符,则用户被授予服务器访问权限。

票证包含会话密钥,该密钥也已发送到客户端。现在,客户端和服务器都具有会话密钥,它们可以使用它加密和解密通过网络发送的消息,从而提供了私密通信。

对验证进程的一种增强方法是要求用户输入令牌ID(令牌ID的获取位置是生成令牌的类似于信用卡的设备)。用户随身携带令牌卡。令牌卡显示与服务器同步的值,且用户在登录时输入这些值。

Kerberos方案实现对称 (单钥或密钥)加密技术,因此一些供应商对最初的用户验证支持公钥验证方案。Microsoft正在其Kerberos实现中提供此功能,并已向IETF提交建议,建议使用此技术。

图K-1 Kerbero 验证方案


Kerberos的优点:
Kerberos系统对用户的口令进行加密后作为用户的私钥,避免口令在信道的显式传输,

实现较高的安全性;

用户在使用构成中,仅在登录时要求输入口令,实现对合法用户的透明性;

Kerberos可以较方便地实现用户数的动态改变。


Kerberos的缺点:
Kerberos服务器与用户共享的秘密是用户的口令字,服务器在回应时不验证用户的真实性,假设只有合法用户拥有口令字。如攻击者记录申请回答报文,就易形成代码本攻击。

Kerberos服务器与用户共享的秘密是用户的口令字,服务器在回应时不验证用户的真实性,假设只有合法用户拥有口令字。如攻击者记录申请回答报文,就易形成代码本攻击。

AS和TGS是集中式管理,容易形成瓶颈,系统的性能和安全也严重依赖于AS和TGS的性能和安全。在AS和TGS前应该有访问控制,以增强AS和TGS的安全。

随用户数增加,密钥管理较复杂。Kerberos拥有每个用户的口令字的散列值,AS与TGS负责户间通信密钥的分配。当N个用户想同时通信时,仍需要N*(N-1)/2个密钥。

 

非常好我支持^.^

(140) 97.9%

不好我反对

(3) 2.1%

( 发表人:admin )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!