3.3 Kerberos认证系统

3.3 Kerberos认证系统

Kerberos认证系统的基础是Denning和Sacco修改过的Needham-Schroeder协议。它与Needham-Schroeder的主要不同之处在于,它假设所有的时钟都已经同步了。Kerberos认证系统是由麻省理工学院开发的,Kerberos认证协议适用的情景有如下四个要求。

(1)一个系统由一个中心认证服务器AS、一个票据发放服务器TS和一组应用服务器S1,S2,…,Sn组成。

(2)一个中心认证服务器AS可以向Kerberos系统认证一个用户。

(3)一个票据发放服务器TS向用户发布可以访问应用服务器的票据。

(4)一个或者多个应用服务器S1,S2,…,Sn,用户可以通过显示票据发放服务器TS颁发的票据来访问这些应用服务器。

Kerberos认证协议的原理如图3-3所示。

图3-3 Kerberos认证系统的原理

Kerberos协议主要由三个部分组成,即密钥密码学、票据和认证。

1.密钥密码学

认证服务器AS与每个用户及票据发放服务器TS共享密钥。

2.票据

KAlice,Server是票据发放服务器TS产生的会话密钥,用户Alice与服务器Server共享会话密钥并用于访问服务器提供的服务。KServer是服务器Server与认证服务器AS共享的密钥。TAlice,Server是对Alice、Alice的地址、有效期和KAlice,Server用KServer加密的结果,即

TAlice,Server={Alice‖Alice’s address‖valid time‖KAlice,Server}KServer

3.认证

KAlice,Server是用户Alice与服务器Server共享的会话密钥,Alice可以用这个密钥来访问Server提供的服务,t是认证开始的时间,Kt是备用会话密钥。AAlice,Server是Alice、t和Kt用KAlice,Server加密的结果,即

AAlice,Server={Alice‖t‖Kt}KAlice,Server

Kerberos协议的过程如图3-4所示,步骤①至步骤⑥中发送的消息如下,其中步骤⑥为可选的。

①Alice‖TS。

②{KAlice,TS}KAlice‖{TAlice,TS}KAlice

③S‖AAlice,TS‖TAlice,TS

④Alice‖{KAlice,S}KAlice,TS‖TAlice,S

⑤AAlice,S‖TAlice,S

⑥{t+1}KAlice,S

为了开始一个会话,Alice自选一台公共的工作站,输入她的名字登录应用服务器AS。该工作站把她的名字以明文方式发送给AS,如图3-4中所示步骤①,AS返回给Alice的是一个会话密钥和一个票据TAlice,TS,如图3-4中所示步骤②,这个票据是Alice需要向TS出示的。这两个数据项被封装在一起,并且用Alice的秘密密钥加密了,所以只有Alice才能解密这个消息。只有步骤②完成,工作站才会请求Alice输入口令。然后工作站利用该口令生成Alice的秘密密钥,从而解密步骤②中生成的消息并获得该消息内的会话密钥和TS票据。同时,工作站覆盖Alice的口令,以确保口令的明文在工作站内至多停留几毫秒。

图3-4 Kerberos协议的过程

Alice登录以后,她会告诉工作站想要和AS通信。然后工作站给TS发送消息,请求使用AS的一个票据,如图3-4中所示步骤③。这个消息中的关键要素是AAlice,TS,它用Alice与TS共享的会话密钥来加密,它的作用是证明发送方真的是Alice。TS收到消息后,创建并返回一个会话密钥和一个票据TAlice,S,用于Alice和S通信使用,如图3-4中所示步骤④。会话密钥仅仅用Alice与TS共享的会话密钥加密,所以Alice可以读取KAlice,S

现在Alice可以将AAlice,S发送给S以便和S建立一个会话。步骤③和步骤⑥使用了时间戳。S的应答消息向Alice证明,Alice确实在与S通信而不是与其他人通信。

Kerberos协议的重要意义在于单点登录的思想及被广泛应用于金融系统和网络应用。单点登录的特征有两个,首先用户只需登录认证服务器AS一次,然后给用户颁发密钥来访问票据发放服务器TS;其次用户可以用TS颁发给用户的密钥来访问一个或者多个应用服务器S。