Kerberos認證原理詳解

Mary Ling發表於2020-09-30

Kerberos解決什麼問題

“Kerberos 服務”是一種客戶機/伺服器體系結構,用於在網路上提供安全事務。該服務 可提供功能強大的使用者驗證以及完整性和保密性。通過驗證,可保證網路事務的傳送 者和接收者的身份真實。

kerberos工作原理

Kerberos認證主要分為兩個部分:允許進行後續驗證的初始驗證以及所有後續驗證自身。
具體怎麼理解呢?我們可以將生活中的護照申請比喻成第一階段的初始驗證,而我們去辦理簽證比喻成第二階段的驗證。我們如果要去辦理外國簽證,我們需要先去辦理護照,而一旦護照辦理成功了,我們就可以直接去辦理簽證了,而我們的護照會有時間限制,同樣我們的初始驗證階段也可以設定失效日期,一旦初始驗證階段日期失效,則需要重新申請驗證方可進行第二階段的後續驗證。

用幾個圖來理解一下這兩個階段
1.允許進行後續驗證的初始驗證
在這裡插入圖片描述

由圖可知,通過第一階段,客戶機會從KDC(Key Distribution Center–金鑰分發中心)獲取允許其獲取服務票證的TGT(Ticket-Granting-Ticket–也就是後續所說的Ticket票證),同時開始了Kerberos會話。

2.後續Kerberos驗證
在這裡插入圖片描述

由上圖可知,這個階段會真正的進行kerberos服務的驗證了,客戶機將第一階段獲取到的TGT傳送給KDC,同時告訴KDC他想獲取那個服務的票證,KDC會驗證客戶機傳送的TGT,如果該TGT是合法的,則會將伺服器票證傳送給客戶機,然後客戶機使用KDC發回的伺服器票證向伺服器進行驗證,同時伺服器也傳送客戶端發過來的TGT向KDC進行驗證,如果驗證成功,則會允許客戶機進行登入並操作。對客戶機的TGT發將此處的伺服器可以是Kerberos的不同服務了,如ftp,telnet等。

注意:在上述的原理講述中,我們會涉及兩個不同的TGT,一個TGT是允許獲取後續服務的TGT,另一個是用於登入不同伺服器時用於驗證的TGT。只要允許獲取後續服務的TGT沒失效,則可直接進行第二階段獲取用於登入伺服器的驗證TGT。

相關術語

名稱詳解
Ticket也叫票證授予票證或者票據,TGT(ticket-granting ticket),票證是一種資訊包,用於將使用者身份安全地傳遞到伺服器或服務
KDCKey Distribution Center–金鑰分發中心,主要負責頒發憑證
principal也叫Kerberos主體,每張票證都以主體名稱標識。主體名稱可以標識使用者或服務,主體名稱分為三個部分:主名稱、例項和領域,如joe/admin@ENG.EXAMPLE.COM
Realm也叫領域,是定義屬於同一主 KDC 的一組系統的邏輯網路,類似於域

票證生命週期

每當主體獲取包括票證授予票證 (ticket-granting ticket, TGT) 在內的票證時,都會將票證的生命週期設定為以下生命週期值中的最小值:
在這裡插入圖片描述
如圖所示,票證的生命週期是 kinit 命令、使用者主體、站點預設值和票證授予者允許的最小值:

相關文章