发新话题
打印

[转载]Kerberos v4验证的实现过程

[转载]Kerberos v4验证的实现过程

原始连接:http://spaces.msn.com/members/PCtimes/

这文章不知道放哪里好 暂时放这里吧:)

Kerberos验证的名字来自于古希腊神话中的守护地狱之王Hades的三头犬的名字,其实现过程恰恰用到了三台服务器进行,即验证服务器(AS)、票据凭证服务器(TGS)和数据服务器(下文以Bob代称)。

当某个用户如Alice想通过Kerberos验证与数据服务器Bob通讯时需要经过6个步骤,详细如下:

Step 1、Alice->AS

Alice向AS发送自己的身份,如用户名:Alice。

Step 2、AS->ALice

AS用Alice在服务器上注册时所用的对称密钥(如Alice的登陆密码)加密将用于之后的验证过程的会话密钥Ks(Session Key)和已被TGS的密钥加密过的TGT(包括Alice的身份和Ks)。

Step 3、Alice->TGS

Alice在其客户机上输入密码即Ka解密出AS发送过来的Ks和TGT,之后用Ks加密一个时间戳以防第四方的重放攻击,最后将Ks(TGT)、数据服务器Bob的身份和TGT一并作为票据请求发送给TGS。

Step 4、TGS->Alice

TGS在收到Alice的票据请求后回送一个票据包括:用Ks加密过的Bob的身份和Alice和Bob之间的通讯密钥Kab、一个由Bob的密钥(即Kb)加密过的Alice的身份(可以包括Alice的IP、用户名等)、还有Kab共三样东西。

Step 5、Alice->Bob

Alice在受到TGS的票据后用Ks解出Kab后用Kab加密一个时间戳,之后将加密过的时间戳与TGS发送过来的鉴别码一起发送给Bob

Step 6、Bob->Alice

Bob分别用Kb、Kab解开Alice发送的鉴别码和时间戳后对Alice的IP、用户名及数据包的接收时间等进行验证,通过后用Kab加密另外一个时间戳回送给Alice。之后双方用Kab加密信息进行通讯。

缩写解释:

AS:Authentication Server 验证服务器

TGS:Ticket-Granting Server 票据验证服务器

TGT:Ticket-Granting Ticket 票据验证凭证

以上是Kerberos第四版协议的实现过程,在第五版中1、3、5步与v4一致,仅是在2、4中删除了票据的双重加密。

应该说Kerberos验证还是比较完善的但是专家们还是找到了几个潜在的问题,针对于v4但是对于v5也很多评价也适用。

第一是鉴别码容易被重放攻击,尽管有时间戳的设置但是票据在有效期内仍可被重放,因为票据的有效期可能很长而被恶意利用。并且时间戳基于网络上的时钟是同步的这一事实,如果欺骗主机接受一错误的时间,那么重放攻击毫无疑问的能够成功。

第二是猜测口令的攻击,当攻击者可以通过收集尽可能多的票据来进行猜测攻击,如果能够达到一定的数量那么这种攻击方法很容易奏效。

第三是恶意软件的问题,Kerberos协议依赖于Kerberos软件可以信赖的事实,如果系统被一个能够完成Kerberos验证的木马所替代,那么用户的身份变很容易被黑客仿冒。
曾几何时,有人对我说:装B遭雷劈。我说:去你妈的。于是,这个人又对我说:如果再说脏话,上帝会惩罚你的。我说:我操上帝。结论:彪悍的人生不需要上帝。

TOP

发新话题