kerberos協議介紹


一.kerberos認證過程

 

client向kerberos服務請求,希望獲取訪問server的權限。kerberos得到了這個消息,首先得判斷client是否是可信賴的,也就是白名單黑名單的說法。這就是AS服務完成的工作,通過在AD中存儲黑名單和白名單來區分client。成功后,返回TGT給client。client得到了TGT后,繼續向kerberos請求,希望獲取訪問server的權限。kerberos又得到了這個消息,這時候通過client消息中的TGT,判斷出了client擁有了這個權限,給了client訪問server的權限ticket。 client得到ticket后,終於可以成功訪問server。這個ticket只是針對這個server,其他server需要向TGS申請。 

 

 

 

 

 

二.服務作用

KDC(key distributed center)
作用:整個安全認證過程的票據生成管理服務,其中包含兩個服務,AS和TGS

AS(authentication service)
作用:為client生成TGT的服務

TGS(ticket granting service)
作用:為client生成某個服務的ticket

AD(account database)
作用:存儲所有client的白名單,只有存在於白名單的client才能順利申請到TGT

TGT(ticket-granting ticket)
作用:用於獲取ticket的票據

client
想訪問某個server的客戶端

server
提供某種業務的服務

 三.步驟詳解

(AS-REQ)Client 發送用戶名 Tom 到 KDC (Key Distribution Center)以向 AS (Authentication Service)請求 TGT 票據等信息。

(AS-REP)收到請求后,AS 生成隨機字符串 Session Key,使用 Tom 的 NTLM Hash 對 Session Key 加密得到密文 A,再使用賬號 krbtgt 的 NTLM Hash 對 Session Key 、 Client Info和 timestamp 加密得到 TGT,A 和 TGT 一起返回給 Client。

(TGS-REQ) Client 收到請求后,使用自身的 NTLM Hash 解密 A 就能得到 Session Key,然后使用 Session Key 對 Client Info 和 timestamp 加密得到 B,加上 TGT ,發送給 KDC中的 TGS。

(TGS-REP)TGS 收到請求后,使用 krbtgt 的 NTLM Hash 解密 TGT,得到 Session Key 和 timestamp 以及 Client Info,同時,使用 TGT 解密出的 Session Key 解密密文B,得到Client Info 和 timestamp。 比對這兩部分解密得到的內容以驗證是否通過。通過后,生成一個新的隨機數 Server(Session Key2),並用它加密 client info 和 timestamp 得到密文 enc-part;使用服務器計算機的NTLM Hash 對 Server(session key2) 和 client info 以及 timestamp 加密得到最終的 Ticket,返回給 Client。

(AP-REQ)Client 使用 Ticket 和 enc-part 直接請求某服務。

(AP-REP) 對Ticket 和 enc-part 解密后進行驗證授權。

注意

  • Kerberos 協議設計的思路就是用來在不受信的環境下進行認證的協議。

  • krbtgt 賬號的 NTLM Hash 理論上只存在於 KDC 中。這意味着 TGT 只能由 KDC 來解密。如果krbtgt 賬號的NTLM Hash泄露了,那么 TGT 就能被解密甚至偽造。偽造的 TGT 叫做黃金票據。

  • Ticket 是由服務器計算機本身的 NTLM Hash 加密的,Client 不能解密。如果該Hash 泄露,那么就可以解密甚至偽造 Ticket。偽造的 Ticket 叫做白銀票據。

  • 在上述的流程中,涉及到時間戳 timestamp,由於它的存在,才使得被第三方獲取了加密信息 A 、B、TGT不會在短時間內被暴力破解。timestamp 一般時間為8小時。

  • Kerberos 協議和 NTLM 協議都會使用 NTLM Hash 對生成的任意隨機數加密,然后比對結果。 Kerberos 的主要區別在於添加了第三方——-KDC參與到認證過程中。

  • Client info 中包含域名信息、Client 名稱等

參考

   https://blog.csdn.net/lovebomei/article/details/79814979

   https://green-m.me/2019/01/24/play-with-kerberos/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM