Kerberos認證協議

2021-07-31 17:48:43 字數 2087 閱讀 9145

序言:近幾天學習了kerberos認證協議,覺得有必要把學習過程和學習心得記錄一下,文章內容有william stallings編著的《網路安全基礎》中的部分內容,也有自己的理解和思考。我希望能用自己的理解來解發布kerberos認證協議的工作過程。由於kerberos比較複雜,所以需要通過多個假設會話來理解協議,對於有哪些不妥之處還請前輩批評指正。

(1)c—>as: idc || pc || idv

(2)as—>c: ticket

(3)c—>v: idc || ticket,ticket=e(kv,[idc || adc || idv])

c=客戶端

as=認證伺服器

v=認證伺服器

idc=客戶端上使用者的身份標識

idv=伺服器端的身份標識

pc=客戶端上使用者的口令

adc=客戶端的網路位址

kv=認證伺服器和伺服器間共享的加密金鑰

根據圖中所示:

回顧這個會話方法可以明顯的發現兩個問題:1、每一次c想要訪問v都需要先向as發出請求,這就意味著每一次都要輸入密碼,這對使用者來說是極不方便的。2、在c訪問as的過程中竟然使用了 pc 明文傳輸!!!

每次使用者登陸會話就執行一次:

(1)c—>as: idc || idtgs

(2)as—>c:e(kc,ticket tgs)

每種型別的服務就會執行一次:

(3)c—>tgs: idc || idv || ticket tgs

(4)tgs—>c: ticket v

每個服務會話就會執行一次:

我們現在來分析這個會話:

由於票據有可重用性,所以c拿到去往tgs和v的票後都會存放好,方便下次訪問。在票據的有效期內,c想要在此訪問v,只要拿著去v的票就好了,因為不用訪問tgs,所以不用訪問as,所以就不用輸入密碼了(客戶輸入密碼是來解密從as拿到的加密檔案的)。c想要訪問v2,如果拿著原來的票據去訪問顯然是不可以的,由於沒有去往v2的票據,就需要去找tgs拿票。去找tgs也是需要票的!但是c有票呀,就不用找as拿這張票啦!就不用輸入密碼了。很明顯,使用者輸入密碼的次數取決於ticket tgs票據的有效期。除此之外,還有一點就是,在會話過程中從來就沒有驗證伺服器v的真實性。

kerberos 4需要解決上乙個會話的哪些問題?第一點是「票據授權」票據的有效期。太長不行,可能會被別人竊取,太短也不行,會讓使用者輸入密碼的次數增多。其本質是如何向tgs證明自己的身份。第二點是伺服器v如何證明自己的身份。

在kerberos 4中採用了認證符(authenticator c)來證明c的身份,其中的關鍵因素是乙個叫做會話金鑰的東西。

用於獲取票據授權票據的認證服務交換

用於獲得服務授權票據的票據授權服務交換

為獲得服務而進行的客戶端/伺服器認證交換

協議分析:

對於kerberos 5,實在是不想看了……

Kerberos認證協議

一 簡介 kerberos由mit於1988年開發,用於分布式環境中,完成伺服器與使用者之間的相互認證。設計者的設計初衷是要用kerberos的三個頭來守衛網路之門。三個頭分別包括 認證 賬目清算和審計。kerberos要解決的問題 在乙個開放的分布式網路環境中,使用者通過工作站訪問伺服器提供的服務...

kerberos協議認證流程

kdc key distribute center 金鑰分發中心 authentication service身份驗證服務 ticket granting service票據分發服務 ad account database儲存所有的client as會去ad中查詢client是否存在 tgt1 se...

Kerberos認證流程

rtech 所介紹的kerberos認證的來談談個人對kerberos認證流程以及訊息互動理解。如果您想深入了解,此處 如有理解不當的地方,還望賜教。概念說明 ad active directory service session key 服務會話金鑰 logon session key 登入會話金...