開篇之前鄭重申明:本文是基於Artech 所介紹的Kerberos認證的來談談個人對Kerberos認證流程以及消息交互理解。如果您想深入了解,請點擊此處。如有理解不當的地方,還望賜教。
先介紹Kerberos中的幾個概念:
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客戶端對服務器的認證
此過程消息交互如下圖:
客戶端對服務端的認證流程如下: