Kerberos
from https://zh.wikipedia.org/wiki/Kerberos
Kerberos是一種計算機網絡認證協議,它允許某實體在非安全網絡環境下通信,向另一個實體以一種安全的方式證明自己的身份。它也指由麻省理工實現此協議,並發布的一套免費軟體。它的設計主要針對客戶-伺服器模型,並提供了一系列交互認證——用戶和伺服器都能驗證對方的身份。Kerberos協議可以保護網絡實體免受竊聽和重複攻擊。
Kerberos協議基於對稱密碼學,並需要一個值得信賴的第三方。Kerberos協議的擴展可以為認證的某些階段提供公鑰密碼學支持。
協議的安全主要依賴於參加者對時間的鬆散同步和短周期的叫做Kerberos票據的認證聲明。 下面是對這個協議的一個簡化描述,將使用以下縮寫:
·
AS(Authentication Server)= 認證伺服器
·
KDC(Key Distribution Center)= 密鑰分發中心
·
TGT(Ticket Granting Ticket)= 票據授權票據,票據的票據
·
TGS(Ticket Granting Server)= 票據授權伺服器
·
SS(Service Server)= 特定服務提供端
客戶端用戶發送自己的用戶名到KDC伺服器以向AS服務進行認證。KDC伺服器會生成相應的TGT票據,打上時間戳,在本地資料庫中查找該用戶的密碼,並用該密碼對TGT進行加密,將結果發還給客戶端用戶。該操作僅在用戶登錄或者kinit申請的時候進行。 客戶端收到該信息,並使用自己的密碼進行解密之後,就能得到TGT票據了。這個TGT會在一段時間之後失效,也有一些程序(session manager)能在用戶登陸期間進行自動更新。 當客戶端用戶需要使用一些特定服務(Kerberos術語中用"principal"表示)的時候,該客戶端就發送TGT到KDC伺服器中的TGS服務。當該用戶的TGT驗證通過並且其有權訪問所申請的服務時,TGS服務會生成一個該服務所對應的ticket和session key,並發還給客戶端。客戶端將服務請求與該ticket一併發送給相應的服務端即可。具體的流程請看下面的描述。
留言
張貼留言