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返回信息。



發佈了41 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章