你所不知道的Kerberos 整理筆記(四)

本篇文章主要講解一下用戶要訪問本地域的資源時,如何申請會話票證

1、 用戶打開“網上鄰居”,找到要訪問的目標服務器,雙擊服務器圖標

2、 網絡重定向器向LSA請求目標服務器的會話票證,因爲本地LSA不是KDC,無法頒發會話票證,於是他向Kerberos協議請求幫助

3、 Kerberos協議從緩存中獲得TGT的一個拷貝,並用它來構建一個目標服務器的會話票證請求,這個請求會用緩存中的會話密鑰來進行加密

4、 KDC接受到請求後,並用它自己的會話密鑰來解密會話票證請求。如果解密失敗就表明這個票證被劫持了。通過解密成功,KDC則繼續操作

5、 KDC構建了一個到目標服務器的會話票證。並複製TGT中一份PAC拷貝到新的會話票證中。這個會票證中包含一個新的會話密鑰。KDC在同樣通過一個應答消息來將票證傳送給客戶端。應答消息和TGT一樣,包含兩部分內容,第一部分就是交給客戶端的信息,第二部分就是票證本身。客戶端的信息會用用戶的密碼哈希來加密。而票證將依據訪問的是系統資源,還是服務資源來決定採用系統或者服務密鑰進行加密。工作站在加入域時就已創建了系統密鑰,工作站的服務票證是用系統密鑰加密的。

6、 Kerberos客戶端用自己的密碼哈希解密出屬於自己的那部分數據,並緩存票證和會話密鑰。它會使用會話密鑰來構建一個鑑別碼(鑑別碼包括客戶端的名稱,所屬域以及一個時間戳構成,主要用來在客戶端和目標服務器之間進行驗證)。並將其發送給目標服務器

7、 目標服務器的LSA收到會話票證和鑑別碼之後,將其交給Kerberos協議來處理。

8、 目標服務器使用自己的密碼哈希來解密屬於自己的那部分數據,並用裏面的會話密鑰來解密鑑別碼。驗證通過後,Kerberos協議從票證的“授權數據”字段讀取PAC的內容,交給本地LSA,後者利用他爲用戶創建一個本地訪問令牌。同時,也會用票證中的會話密鑰來構建自己的一個鑑別碼

9、 Kerberos客戶端驗證返回的鑑別碼,如果驗證通過,則整個認證過程結束。

 

關於跨域的票證索取這裏就不詳細說了(第五篇會稍微點到一些關鍵的部分),過程基本上和在本域內訪問是一樣的,只不過本地的KDC會代表用戶向父域的KDC來索取一個TGT,結果客戶在向父域去索取目標服務器的會話票證。如果父域沒有目標服務器,就會再一層一層往上走。直接找到目標服務器爲止

 

下面的一篇文章會就一些Kerberos術語來講解一下

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章