Kerberos 是非常出名的密鑰分配協議,同時也兼具了鑑別協議的功能,也是一個 KDC(Key Distribution Center,密鑰分配中心)。Kerberos 採用 AES 進行加密,所以安全性更高。
Kerberos 的工作原理
其核心思想是這樣的:和我們平時生活一樣,當我需要到社區中心蓋一些章的時候,社區中心往往需要你提供一個證明,證明你是你,這樣的證明通常你需要找派出所去開具。所以這個 AS 就像是派出所,而 TGS 就像是社區中心。
關鍵術語介紹
AS(Authentication Server):鑑別服務器,用於驗證用戶身份
TGS(Ticket-Granting Server):票據授予服務器,用於提供兩個用戶之間身份的憑證
具體流程
- 首先,A 向 AS 發送明文,這段明文證明 A 是 A,因爲 AS 提前對 A 的信息進行了備案的,所以 AS 能夠驗證 A 的信息。
- AS 驗證了 A 是 A ,然後用 A 的密鑰加密,給 A 發送了 A 與 TGS 的會話密鑰 K_AS 和 用於給 TGS 驗證 A 身份的 A,K_S,並且對叫 A 提供給 TGS 的驗證信息進行了 K_TG 的加密,這樣 A 是無法解密的,只能當 A 傳遞給 TGS 的時候,TGS 進行解密驗證
- 接下來 A 向 TGS 發出了兩段信息,一個是用他們的會話密鑰加密的時間戳,時間戳用於防止重放攻擊,另一個是剛纔的票據
- 當 TGS 驗證了票據後,TGS 給 A 發送了用於 B 驗證 A 的票據,以及 B 的信息和 A,B 之間的加密密鑰
- 接下來 A 給 B 傳遞了一個時間戳,和一個給 B 的票據
- B 驗證之後,返回一個時間戳+1
經過上面的步驟,可以看出 A , B 之間已經獲得了雙方通信的密鑰了