Linux:krb5


Kerberos協議主要用於計算機網絡的身份鑒別(Authentication), 其特點是用戶只需輸入一次身份驗證信息就可以憑借此驗證獲得的票據(ticket-granting ticket)訪問多個服務,即SSO(Single Sign On)。由於在每個Client和Service之間建立了共享密鑰,使得該協議具有相當的安全性。

  • Kerberos協議分為兩個部分:
  1. Client向KDC發送自己的身份信息,KDC從Ticket Granting Service得到TGT(ticket-granting ticket), 並用協議開始前Client與KDC之間的密鑰將TGT加密回復給Client。此時只有真正的Client才能利用它與KDC之間的密鑰將加密后的TGT解密,從而獲得TGT。(此過程避免了Client直接向KDC發送密碼,以求通過驗證的不安全方式)
  2. Client利用之前獲得的TGT向KDC請求其他Service的Ticket,從而通過其他Service的身份鑒別。 
  • Kerberos協議的重點在於第二部分,簡介如下: 
  1. Client將之前獲得TGT和要請求的服務信息(服務名等)發送給KDC,KDC中的Ticket Granting Service將為Client和Service之間生成一個Session Key用於Service對Client的身份鑒別。然后KDC將這個Session Key和用戶名,用戶地址(IP),服務名,有效期, 時間戳一起包裝成一個Ticket(這些信息最終用於Service對Client的身份鑒別)發送給Service, 不過Kerberos協議並沒有直接將Ticket發送給Service,而是通過Client轉發給Service.
  2. 此時KDC將剛才的Ticket轉發給Client。由於這個Ticket是要給Service的,不能讓Client看到,所以KDC用協議開始前KDC與Service之間的密鑰將Ticket加密后再發送給Client。同時為了讓Client和Service之間共享那個秘密(KDC在第一步為它們創建的Session Key), KDC用Client與它之間的密鑰將Session Key加密隨加密的Ticket一起返回給Client。
  3. 為了完成Ticket的傳遞,Client將剛才收到的Ticket轉發到Service. 由於Client不知道KDC與Service之間的密鑰,所以它無法算改Ticket中的信息。同時Client將收到的Session Key解密出來,然后將自己的用戶名,用戶地址(IP)打包成Authenticator用Session Key加密也發送給Service。
  4. Service 收到Ticket后利用它與KDC之間的密鑰將Ticket中的信息解密出來,從而獲得Session Key和用戶名,用戶地址(IP),服務名,有效期。然后再用Session Key將Authenticator解密從而獲得用戶名,用戶地址(IP)將其與之前Ticket中解密出來的用戶名,用戶地址(IP)做比較從而驗證Client的身份。
  5. 如果Service有返回結果,將其返回給Client。
  • Kerberos協議主要做了兩件事
  1. Ticket的安全傳遞。
  2. Session Key的安全發布。再加上時間戳的使用就很大程度上的保證了用戶鑒別的安全性。並且利用Session Key,在通過鑒別之后Client和Service之間傳遞的消息也可以獲得Confidentiality(機密性), Integrity(完整性)的保證。不過由於沒有使用非對稱密鑰自然也就無法具有抗否認性,這也限制了它的應用。不過相對而言它比X.509 PKI的身份鑒別方式實施起來要簡單多了。

Kerberos簡介:http://wenku.baidu.com/link?url=IYeplxob8jJo7LtZzIV60v7aTsDI1VhzdTca91vCHgKm0BahlC7V6J_kh2cCi7cjORYv06XZyAo4Y_d5PULiclCB37n8uKZsSSyCqrrANoi

Kerberos統一認證實驗配置:http://blog.chinaunix.net/uid-93477-id-76248.html

安全知識:關於Kerberos認證原理的對話:http://biz.chinabyte.com/189/2038189.shtml

Krb5安裝於配置:http://wenku.baidu.com/link?url=zDdRXWn1okG4uKPLw1HcOQlcnwKW13jMSNgJYL3P25ia8FXn6hEHeucwDmnQ2bD7jcod0l9CgN-il3kyMV1NFw8dQXnPCGTqFeEmImSQ4u3

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM