天天看點

Kerberos協定實作通路控制

Kerberos協定主要用于網絡身份鑒别,該協定的特點是隻要輸入一次身份驗證資訊就可以通路多個服務,而且通路更加安全。其基本原理圖如下所示:

Kerberos協定實作通路控制

該協定主要分為兩大步驟。

第一步:Client擷取TGT(ticket-grantingticket)

1.用戶端輸入身份資訊向KDC(密鑰配置設定中心)發送請求,KDC根據用戶端發送的身份資訊向Ticket granting service請求取得TGT。然後KDC采用其與請求Client約定的加密政策對TGT進行加密,将TGT發送到Client。

2. Client收到KDC響應後,使用約定的解密政策對回報的TGT進行解密,得到TGT。

第二步:使用第一步得到TGT請求服務

1.Client将第一步取得的TGT與請求的服務發送給KDC伺服器。KDC根據請求資訊為Client和請求的Service直接生成一個Session Key,用于Cilent 與Service直接的身份鑒别。

然後KDC将Session key發送給Service,但KDC不會直接将Session Key發給Service。而是将Session key和請求使用者的使用者名,IP,請求過期時間,以及時間戳等資訊使用與該Service約定的加密算法将這些資訊加密成一個Ticket,進行加密。并發給Client,由轉發給Service。由于Session Key是Client與Service通信的依據,是以要将Session Key再與之前加密生成的Ticket采用KDC與Client之間的加密算法進行加密,加密後發送個用戶端。

2.Client收到伺服器響應後,采用解密算法擷取Session key。由于用戶端不知道KDC與Service之間的解密政策,自然無法将Ticket解密,無法篡改Tieket中的資訊。Client将使用者名,IP等需要的相關資訊使用Session Key将其打包加密為一個Authenticator和Ticket一起發送到Service。

3.Service收到Tiket後使用約定的解密政策進行解密,取得Session Key,使用者名,IP等封裝的資訊。然後使用Session Key将Authenticator解密,擷取使用者名,IP等資訊與Tieket中取得的資訊比較驗證使用者資訊。如果比對,向Client傳回資訊。

繼續閱讀