Kerberos安全體系簡介

2021-07-03 03:03:57 字數 3004 閱讀 5156

1.  kerberos簡介

1.1. 功能

乙個安全認證協議

用tickets驗證

避免本地儲存密碼和在網際網路上傳輸密碼

包含乙個可信任的第三方

使用對稱加密

客戶端與伺服器(非kdc)之間能夠相互驗證

kerberos只提供一種功能——在網路上安全的完成使用者的身份驗證。它並不提供授權功能或者審計功能。

1.2. 概念

首次請求,三次通訊方

the authenticationserver

the ticket grantingserver

the service or host machine that you』re wanting access to.

其他知識點

每次通訊,訊息包含兩部分,一部分可解碼,一部分不可解碼

服務端不會直接有kdc通訊

kdc儲存所有機器的賬戶名和密碼

kdc本身具有乙個密碼

2.  3次通訊

第一次通訊

2.1. 你和驗證服務

如果想要獲取http服務,你首先要向kdc表名你自己的身份。這個過程可以在你的程式啟動時進行。kerberos可以通過kinit獲取。介紹自己通過未加密的資訊傳送至kdc獲取ticket granting ticket (tgt)。

(1)請求資訊

你的使用者名稱/id

你的ip位址

tgt的有效時間

authenticationserver收到你的請求後,會去資料庫中驗證,你是否存在。注意,僅僅是驗證是否存在,不會驗證對錯。

如果存在,authenticationserver會產生乙個隨機的session key(可以是乙個64位的字串)。這個key用於你和ticket granting server (tgs)之間通訊。

(2)回送資訊

authenticationserver同樣會傳送兩部分資訊給你,一部分資訊為tgt,通過kdc自己的密碼進行加密,包含:

你的name/id

tgs的name/id

時間戳你的ip位址

tgt的生命週期

tgs session key

另外一部分通過你的密碼進行加密,包含的資訊有

tgs的name/id

時間戳生命週期

tgs session key

第一次通訊交換的資訊

如果你的密碼是正確的,你就能解密第二部分資訊,獲取到tgs session key。如果,密碼不正確,無法解密,則認證失敗。第一部分資訊tgt,你是無法解密的,但需要展示快取起來。

第二次通訊

2.2. 你和tgs

如果第一部分你已經成功,你已經擁有無法解密的tgt和乙個tgs session key。

(1)      請求資訊

a)  通過tgs session key加密的認證器部分:

你的name/id

時間戳b)明文傳輸部分:

請求的http服務名(就是請求資訊)

http service的ticket生命週期

c) tgt部分

ticket grantingserver收到資訊後,首先檢查資料庫中是否包含有你請求的http服務名。如果無,直接返回錯誤資訊。

如果存在,則通過kdc的密碼解密tgt,這個時候。我們就能獲取到tgssession key。然後,通過tgs session key去解密你傳輸的第一部分認證器,獲取到你的使用者名稱和時間戳。

tgs再進行驗證:

對比tgt中的使用者名稱與認證器中的使用者名稱

比較時間戳(網上有說認證器中的時間戳和tgt中的時間戳,個人覺得應該是認證器中的時間戳和系統的時間戳?),不能超過一定範圍

檢查是否過期

檢查ip位址是否一致

檢查認證器是否已在tgs快取中(避免應答攻擊)

可以在這部分新增許可權認證服務

tgs隨機產生乙個httpservice session key, 同時準備http service ticket(st)。

(2)      回答資訊

a)通過http服務的密碼進行加密的資訊(st):

你的name/id

http服務name/id

你的ip位址

時間戳st的生命週期

b)通過tgs session key加密的資訊

http服務name/id

時間戳st的生命週期

你收到資訊後,通過tgs session key解密,獲取到了http service session key,但是你無法解密st。

第二次通訊交換的資訊

第三次通訊

2.3. 你和http服務

在前面兩步成功後,以後每次獲取http服務,在ticket沒有過期,或者無更新的情況下,都可直接進行這一步。省略前面兩個步驟。

(1)      請求資訊

a)通過http service session key,加密部分

你的name/id

時間戳b)st

檢查認證器是否已在http服務端的快取中(避免應答攻擊)

http服務端通過自己的密碼解壓st(kdc是用http服務的密碼加密的),這樣就能夠獲取到http service session key,解密第一部分。

服務端解密好st後,進行檢查

對比st中的使用者名稱(kdc給的)與認證器中的使用者名稱

比較時間戳(網上有說認證器中的時間錯和tgt中的時間錯,個人覺得應該是認證器中的時間戳和系統的時間戳),不能超過一定範圍

檢查是否過期

檢查ip位址是否一致

(2)應答資訊

a)通過http service session key加密的資訊

http服務name/id

時間戳第三次通訊交換的資訊

你在通過快取的http servicesession key解密這部分資訊,然後驗證是否是你想要的伺服器傳送給你的資訊。完成你的伺服器的驗證。

至此,整個過程全部完成。

網路安全體系

網路安全體系 目前計算機網路面臨的主要風險包括利用系統漏洞 暴力破解密碼 病毒和木馬 系統掃瞄 dos 網路釣魚和中間人攻擊 mitm 等。因此乙個良好的網路安全體系對企業至關重要,如下所示 1 物理安全 需要乙個安全的環境,如防火 防盜 防雷擊 還需要合適的溫度等 2 系統安全 3 網路安全 4 ...

OSI安全體系結構

關鍵字 osi 最近研究安全技術,終於發現這個由iso指定的osi原來是這麼的全面!osi iso制定了開發系統互聯參考模型 open system interconnection reference model,osi模型 作為理解和實現網路安全的基礎。1.五大類安全服務 五類安全服務包括認證 鑑...

OSI安全體系結構

最近研究安全技術,終於發現這個由iso指定的osi原來是這麼的全面!osi iso制定了開發系統互聯參考模型 open system interconnection reference model,osi模型 作為理解和實現網路安全的基礎。1.五大類安全服務 五類安全服務包括認證 鑑別 服務 訪問控...