開篇之前鄭重申明:本文是基於Artech 所介紹的Kerberos認證的來談談個人對Kerberos認證流程以及訊息互動理解。如果您想深入瞭解,請點擊此處。如有理解不當的地方,還望賜教。
先介紹Kerberos中的幾個概念:
概念說明:
- AD:Active Directory
- Service Session Key :服務工作階段金鑰
- Logon Session Key :登入工作階段密鑰
- KDC : Key Distribution Center
- KAS :Key Kerberos Authentication Service。它是KDC的一個服務
- TGS: Ticket Granting Service;它是KDC的一個服務
- Service Ticket :服務票據,通過TGS擷取,主要包括使用者資訊與Service Session Key
- TGT: Ticket Granting Ticket。通過KAS擷取,主要包括使用者資訊與Logon Session Key
- Authenticator:互動雙方預Crowdsourced Security Testing曉的資訊,通過它來對對方做認證
1、KDC整體結構圖
2、Kerberos認證的流程:
流程說明:
- 用戶端通過KDC(Key Distribution Center)的KAS(Kerberos Authentication Service )服務擷取TGT(Ticket Granting Ticket)。
- 通過TGT擷取ST(Service Ticket)
- 通過Service Ticket訪問服務資源 。
3、Client 與Server 之間的訊息互動
1、用戶端發送訊息到KDC的KAS服務一擷取TGT。
此訊息互動如:
說明:用戶端發送自己的明文使用者名稱、以及由自己密碼派生的祕密金鑰加密後的Authenticator到KAS服務
KAS接收到用戶端發送過來的訊息後處理流程如下:
2、KAS 發送資訊到Client
此過程訊息互動如:
用戶端接受到KAS的回複後做做如下流程處理:
3、用戶端發送訊息到KDC(Key Distribution Center)的TGS(Ticket Granting Service)服務一擷取ST(Service Ticket)
此過程訊息互動如:
此過程中TGS(Ticket Granting Service)對接收到的訊息處理流程如下:
4、TGS服務返回訊息給用戶端
此過程訊息互動如:
用戶端接受到TGS回複後會有如下流程處理:
5、用戶端通過ST訪問伺服器資源
此過程訊息互動如:
服務端接收到用戶端的訊息以後會有如下流程處理:
6用戶端對伺服器的認證
此過程訊息互動如:
用戶端對服務端的認證流程如下: