內網學習之Kerberos協議

學習瞭解kerberos協議,有助於咱們後期理解黃金票據和白銀票據的原理

kerberos協議

kerberos是一種由麻省理工大學提出的一種網絡身份驗證協議。旨在經過使用密鑰加密技術爲客戶端/服務器應用程序提供強身份驗證。

           kerberos協議中主要由三個角色:

                    (1)訪問服務的client(一下表述爲Client或者用戶)

                    (2)提供服務的server(一下表述爲服務)

                    (3)KDC(Key Distribution Center)密鑰分發中心

            其中KDC服務默認會安裝在一個域的域控中,而Client和Server爲域內的用戶或者是服務,如HTTP服務,SQL服務,遠程桌面服務。在kerberos中Client是否有權限訪問Server端的服務有KDC發放的票據決定

Kerberos工做過程

image

服務器

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是否有訪問服務的權限。

image

在Kerberos認證中,主要結局兩個問題

第一個問題:如何證實你本人是XXX用戶的問題   由Authentication Server負責

第二個問題:提供服務的服務器如何知道你有權限訪問它提供的服務。當一個Client去訪問Server服務器上的某服務時,Server如何判斷Client是否有權限來訪問本身主機上的服務。 由Ticket Granting Server負責

image

相關文章
相關標籤/搜索