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.五大類安全服務 五類安全服務包括認證 鑑別 服務 訪問控...