Kerberos協議工作原理

 

1.         三種角色與簡介
1)         三種角色
KDC:密鑰分配中心(起到分發密鑰的作用)
Client:客戶端(被服務的對象)
Service:服務端(提供服務的主機)
2)         簡介
Kerberos協議主要用於計算機網絡的身份鑑別,其特點是用戶只需輸入一次身份驗證信息就可以憑藉此驗證獲得的票據訪問多個服務
Kerberos協議的拓撲圖:

 

2.         工作原理
1)         步驟一:獲取原始票據
客戶端向密鑰分配中心發送自己的身份信息,密鑰分配中心從授予票據服務(Ticket Granting Service)得到可用的票據(ticket-granting ticket),並用協議開始前客戶端與密鑰分配中心之間的密鑰將票據加密回覆給客戶端,客戶端收到密鑰分配中心回覆的加密票據後利用與密鑰分配中心先前協議的密鑰將票據解密,從而獲得票據,此步驟主要是允許客戶端進行Kerberos的驗證,是進行訪問服務的先決條件
2)         步驟二:獲取服務票據以及訪問服務
客戶端利用之前獲得的票據向密鑰分配中心請求其他服務的票據,從而通過其他服務的身份驗證
獲取其他服務票據以及訪問服務總共有如下四步:

 

     客戶端將之前獲得的票據和要請求的服務信息發送給密鑰分配中心,密鑰分配中心中的授予票據服務將客戶端和服務端之間生成一個會話密鑰(Session Key)用於服務器與客戶端的身份驗證。然後密鑰分配中心將這個會話密鑰和用戶名,用戶地址(IP),服務名,有效期,時間戳一起包裝成一個票據(這張票據用於服務端對客戶端的身份驗證)發送給服務端,Kerberos協議並沒有直接將票據發送給服務端,而是通過客戶端轉發給服務端
     密鑰分配中心將剛纔的票據轉發給客戶端。由於這個票據是要給服務端的,不能讓客戶端看到,所以密鑰分配中心用協議開始之前密鑰分配中心與服務端之間的密鑰將票據加密後再發給客戶端,同時爲了讓客戶端與服務端之間共享那個會話密鑰,密鑰分配中心用客戶端與它之間的密鑰將會話密鑰加密返回給客戶端
     爲了完成票據的傳遞,客戶端將剛纔收到的票據轉發到服務端,由於客戶端不知道密鑰分配中心與服務端的密鑰,所以它無法修改票據的信息,同時客戶端將收到的會話密鑰解壓出來,然後將自己的用戶名,用戶地址(IP)打包成驗證包用會話密鑰加密也發給服務端
     服務端收到票據後利用它與密鑰分配中心之間的密鑰將票據中的信息解密出來,從而獲得會話密鑰和用戶名,用戶地址(IP),服務名,有效期。然後再用會話密鑰將驗證包解密從而獲得用戶名,用戶地址(IP)將其與之前票據中解密出來的用戶名,用戶地址(IP)做比較從而驗證客戶端的身份,如果服務端有返回結果,將其返回給客戶端
3.         數據包的流程

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章