本篇文章會就一些Kerberos術語來詳細講解一下
票證:在Kerberos事務處理中,票證是最基本的單位
領域:Kerberos領域就是活動目錄域
KRBTGT賬戶:這個賬戶是你提升或升級域中的第一臺域控制器時自動創建的。改賬號不能刪除或重命名。但你可以修改他的密碼。但不建議你這樣做。因爲KRBTGT賬號的密碼哈希是用來加密TGT票證的,如果被盜就產生非常驗證的安全漏洞。KRBTGT密碼很長,很負責,系統會定期更改這個賬號,這個賬號默認是禁用的,而且要通過高級功能纔會顯示出來
驗證服務器:驗證服務器同時也是目標或資源服務器。當Kerberos客戶端(第一方)試圖訪問一個成員服務器(第二方)上的資源時,這個成員服務器會自動成爲一個驗證服務器來對會話票證進行驗證。驗證服務器將檢查這個票證,看它是不是包含由KDC放入的信息,以及是否使用驗證服務器的密碼哈希進行加密。驗證服務器必須和發行會話票證的KDC處在同一個Kerberos領域中,也就是同一個活動目錄域中。
應答信息:前面講過KDC應答由兩部分組成:
第一部分:給客戶端讀取的客戶端會話信息
第二部分:TGT或會話票證本身
下面來詳細講解一下票證的幾個重要構成元素:
1、 客戶端會話信息
1) 會話密鑰 這是由KDC產生的一組隨機數,用於Kerberos客戶端和驗證服務器互相 進行身份驗證
2) Flags標記:這個標記決定了如何使用TGT或會話票證。其中包括
1、是否允許將票證轉發到同KDC在同一個域的資源服務器。
2、信任委派 (這個是針對TGT的,TGT一定要有這個字段,才能進行委派)
這裏有幾個概念要清楚:
首先、域A中的Kerberos客戶端要訪問域B中的資源時,必須要先取得由域B的KDC頒發的TGT,然後通過提交TGT來取得會話票證,接着把會話票證和一個鑑別碼交給你要訪問的資源服務器來進行互相驗證並獲得訪問控制令牌。
其次,一個域中的KDC是不能爲另一個域中的Kerberos客戶端頒發TGT。
那麼,域A中的客戶端如何取得另一個域的TGT呢?答案就是信任委派
信任委派的意思是說當本地用戶向本地KDC提交一個本地TGT,要訪問另一個域的資源時,本地的KDC會代表用戶從它的父域獲取一個跨領域的TGT(當域A的KDC要向域B的KDC申請TGT時,域B一定要信任域A,這樣域B的KDC纔會頒發TGT給域A的KDC,當然,在用一個林中這種信任關係時雙向且可傳遞的)。本地KDC把它申請的TGT返回給客戶端,同時返回的還有一個對父域的“參考”。客戶端TGT中的“參考”字段,向父域的KDC提高跨領域的TGT,從而請求目標服務器的一個會話票證。如果請求的服務器也同樣不在父域中,那麼父域會繼續代表用戶向他的父域或另一顆樹的樹根域來申請跨領域的TGT,接下來的過程就和上面一樣,知道找到目標服務器所在域的KDC。
3) 起始時間和結束時間 票證在這段時間內有效
4) 票證版本號 windows使用的是Kerberos V5
2、 客戶端會話信息
1) 會話密鑰 頒發給客戶端的會話密鑰的一個拷貝,即一組隨機數
2) 客戶端的名稱和領域 驗證服務器用它來驗證用戶的身份以及容納給客戶端密鑰的領域,如果宣稱的身份和票證中的內容不符,驗證服務器就知道有人劫持了一個票證。
3) 途徑領域 就是客戶端經過了幾個領域後到底目標服務器所在的領域
4) 授權數據 這個字段主要用來存放PAC