Kerberos 協議簡介

2022-02-09 01:40:46 字數 3441 閱讀 3984

kerberos

協議:kerberos

協議主要用於計算機網路的身份鑑別

(authentication),

其特點是使用者只需輸入一次身份驗證資訊就可以憑藉此驗證獲得的票據

(ticket-granting ticket)

訪問多個服務,即

sso(single sign on)

。由於在每個

client

和service

之間建立了共享金鑰,使得該協議具有相當的安全性。

條件

先來看看

kerberos

協議的前提條件:

如下圖所示,

client

與kdc

,kdc

與service

在協議工作前已經有了各自的共享金鑰,並且由於協議中的訊息無法穿透防火牆,這些條件就限制了

kerberos

協議往往用於乙個組織的內部,

使其應用場景不同於

過程

kerberos

協議分為兩個部分:

1 . client

向kdc

傳送自己的身份資訊,

kdc從

ticket granting service

得到tgt(ticket-granting ticket)

,並用協議開始前

client

與kdc

之間的金鑰將

tgt加密回覆給

client

。此時只有真正的

client

才能利用它與

kdc之間的金鑰將加密後的

tgt解密,從而獲得

tgt。

(此過程避免了

client

直接向kdc

傳送密碼,以求通過驗證的不安全方式)

2. client

利用之前獲得的

tgt向

kdc請求其他

service

的ticket

,從而通過其他

service

的身份鑑別。

kerberos

協議的重點在於第二部分,簡介如下:

將之前獲得

tgt和要請求的服務資訊

(服務名等

)傳送給

kdc,

kdc中的ticket granting service

將為client

和service

之間生成乙個

session key

用於service

對client

的身份鑑別。然後

kdc將這個

session key

和使用者名稱,使用者位址(

ip),服務名,有效期

, 時間戳一起包裝成乙個

ticket(

這些資訊最終用於

service

對client

的身份鑑別

)傳送給

service,不過

kerberos

協議並沒有直接將

ticket

傳送給service

,而是通過

client

**給service.

所以有了第二步。

2.此時

kdc將剛才的

ticket**

給client

。由於這個

ticket

是要給service

的,不能讓

client

看到,所以

kdc用協議開始前

kdc與

service

之間的金鑰將

ticket

加密後再傳送給

client

。同時為了讓

client

和service

之間共享那個秘密

(kdc

在第一步為它們建立的

session key)

,kdc

用client

與它之間的金鑰將

session key

加密隨加密的

ticket

一起返回給

client。3.

為了完成

ticket

的傳遞,

client

將剛才收到的

ticket

**到service.

由於client

不知道kdc

與service

之間的金鑰,所以它無法算改ticket中的資訊。同時

client

將收到的

session key

解密出來,然後將自己的使用者名稱,使用者位址(

ip)打包成

authenticator

用session key

加密也傳送給

service。4.

service

收到ticket

後利用它與

kdc之間的金鑰將

ticket

中的資訊解密出來,從而獲得

session key

和使用者名稱,使用者位址(

ip),服務名,有效期。然後再用

session key

將authenticator

解密從而獲得使用者名稱,使用者位址(

ip)將其與之前

ticket

中解密出來的使用者名稱,使用者位址(

ip)做比較從而驗證

client

的身份。

5.如果

service

有返回結果,將其返回給

client

總結

概括起來說

kerberos

協議主要做了兩件事

1.ticket

的安全傳遞。

2.session key

的安全發布。

再加上時間戳的使用就很大程度上的保證了使用者鑑別的安全性。並且利用

session key,在通過鑑別之後

client

和service

之間傳遞的訊息也可以獲得

confidentiality(機密性), integrity(完整性)

的保證。不過由於沒有使用非對稱金鑰自然也就無法具有抗否認性,這也限制了它的應用。不過相對而言它比

x.509 pki

的身份鑑別方式實施起來要簡單多了。

Kerberos認證協議

序言 近幾天學習了kerberos認證協議,覺得有必要把學習過程和學習心得記錄一下,文章內容有william stallings編著的 網路安全基礎 中的部分內容,也有自己的理解和思考。我希望能用自己的理解來解發布kerberos認證協議的工作過程。由於kerberos比較複雜,所以需要通過多個假設...

Kerberos認證協議

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

kerberos 協議初探

乙個客戶端要訪問某個服務時,先要到kdc去認證自己,並獲得訪問票據tgt 然後客戶端再拿著這個訪問票據到自己真實想要訪問的服務去獲得訪問授權,然後真實的進行訪問 在kerberos中,kdc有兩部分組成 authentication server,用來認證使用者,即驗證使用者存在,且密碼正確 tic...