學習了解kerberos協議,有助于我們后期理解黃金票據和白銀票據的原理
kerberos協議
kerberos是一種由麻省理工大學提出的一種網路身份驗證協議,旨在通過使用密鑰加密技術為客戶端/服務器應用程式提供強身份驗證,
kerberos協議中主要由三個角色:
(1)訪問服務的client(一下表述為Client或者用戶)
(2)提供服務的server(一下表述為服務)
(3)KDC(Key Distribution Center)密鑰分發中心
其中KDC服務默認會安裝在一個域的域控中,而Client和Server為域內的用戶或者是服務,如HTTP服務,SQL服務,遠程桌面服務,在kerberos中Client是否有權限訪問Server端的服務有KDC發放的票據決定
Kerberos作業程序

(
1)AS_REQ:Client向KDC發起AS_REQ請求內容為通過Client密碼Hash 加密的時間戳、ClientID、網路地址、加密型別等內容,
(2)AS_REP:KDC使用Clienthash進行解密,并在ntds.dit中查找該賬戶,如果結果正確就回傳用krbtgtNTLM-hash加密的TGT票據,TGT里面包含PAC,PAC包含Client的sid,Client所在的組,
PAC的全稱是Privilege Attribute Certificate(特權屬證書),不同的賬號有不同的權限,PAC就是為了區別不同權限的一種方式,
(3)TGS_REQ:Client憑借TGT票據向KDC發起針對特定服務的TGS_REQ請求
(4)TGS_REP:KDC使用krbtgt NTLM-hash進行解密,如果結果正確,就回傳用服務NTLM-hash 加密的TGS票據,并帶上PAC(這一步不管用戶有沒有訪問服務的權限,只要TGT正確,就回傳TGS票據)
TGT:認證票據
TGS:票據發放服務
TGS tikcet:服務票據 后面簡稱ST(Service ticket)
(5)AP_REQ:Client拿著TGS票據去請求服務
(6)AP_REP:服務使用自己的NTLM-hash解密TGS票據,如果解密正確,就拿著PAC去KDC那邊問Client有沒有訪問權限,域控解密PAC,獲取Client的sid,以及所在的組,再根據該服務的ACL,判斷Client是否有訪問服務的權限,

在Kerberos認證中,主要結局兩個問題
第一個問題:如何證明你本人是XXX用戶的問題 由Authentication Server負責
第二個問題:提供服務的服務器如何知道你有權限訪問它提供的服務,當一個Client去訪問Server服務器上的某服務時,Server如何判斷Client是否有權限來訪問自己主機上的服務, 由Ticket Granting Server負責

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/2276.html
標籤:訊息安全
