什么是Kerberos身份驗證協議
什么是Kerberos身份驗證協議
kerberos是由MIT開發的提供網絡認證服務的系統。它可用來為網絡上的各種server提供認證服務,使得口令不再是以明文方式在網絡上傳輸,并且聯接之間通訊是加密的。它和PKI認證的原理不一樣,PKI使用公鑰體制(不對稱密碼體制),kerberos基于私鑰體制(對稱密碼體制)。Kerberos稱為可信的第三方驗證協議,意味著它運行在獨立于任何客戶機或服務器的服務器之上。此名稱來自看守地獄入口的三頭犬。
Kerberos服務器稱為AS(驗證服務器)。當客戶端需要訪問某個服務器時,客戶端訪問Kerberos服務器以獲取票證。擁有票證意味著具有訪問權限。這一點首先假設客戶端和服務器都信任“第三方”Kerberos驗證服務器。
IETF管理Kerberos規范,但Microsoft已獲得一些特權,可以更改此協議以滿足Windows 2000中的需要。Kerberos版本5身份驗證協議提供了一種相互驗證(通過服務器和客戶端相互驗證或者一臺服務與其他服務器之間相互驗證)的身份驗證機制。Kerberos5協議假設客戶端和服務器之間的初始身份驗證在一個開放式的網絡進行,此時通過網絡被傳輸的數據包將能被監測以及隨意修改。這是一個被虛擬的環境,可是換句話說,當今Internet上可能有許多這樣的例子,一名攻擊者能夠偽裝成其他的客戶端或者服務器,偷聽二臺合法且正常在通信的服務器和客戶端之間數據傳輸,甚至于篡改他們之間傳輸的數據。
Kerberos由MIT的Project Athena創建,后者是20世紀80年代后期進行的企業范圍計算的測試項目。Kerberos可用于公共用途。
Kerberos為遠程登錄提供安全性并可提供單個登錄解決方案,以便用戶不需要每次訪問新服務器時都登錄。AS將所有用戶的密碼存儲在中央數據庫中。它頒發憑據,而客戶端使用憑據來訪問AS領域內的服務器。適用領域包括AS服務器跟蹤的所有用戶和服務器,這一點下面將解釋。AS服務器由一個管理人員在物理上進行保護和管理。由于它驗證用戶身份,因此應用程序服務器免除此任務,它們“信任”AS為特定客戶頒發的憑據。
在需要加密的任何通信中,為所涉及的雙方獲取加密密鑰時總是有安全風險。在轉換過程中可能會危及密鑰的安全。一個重要的Kerberos特性是AS提供一種方法,可以安全地將加密密鑰分發到需要參與安全事務的客戶端和服務器。此共享密鑰稱為會話密鑰。
AS在領域中進行操作,而領域是在其中設置特定安全策略的安全域。領域可以信任其他領域,意味著如果某個用戶在一個領域中經過AS的驗證,則信任領域不需要用戶重新進行驗證即可訪問其領域中的服務器。換句話說,它相信另一個AS已正確地識別和驗證了某個用戶。
Kerberos提供三種安全等級:
1)只在網絡開始連接時進行認證,認為連接建立起來后的通信是可靠的,認證式網絡文件系統(Authenticated network file system) 使用此種安全等級;
2)安全消息(sage messages)傳遞:對每次消息都進行認證工作,但是不保證每條消息不被泄露;
3)私有消息(private messages)傳遞:不僅對每條消息進行認證,而且對每條消息進行加密。Kerberos在發送密碼時就采用私有消息模式。
下面是Kerberos的一些重要特性:
?在此處的討論中,客戶端指代表用戶操作的軟件。
?在客戶端可訪問服務器之前,它必須從AS獲得憑據。
?客戶端訪問服務器時需要的憑據包括服務器票證。服務器票證具有特定的時間參數并只允許特定客戶機上的特定用戶訪問特定服務器。一個用戶可能同時擁有數個票證以訪問多個服務器。
?最初的目標是從AS獲取TGT(票證授予票證)給予客戶端。TGT(不要與服務器票證混淆)類似于許可或許可證。使用TGT,客戶端即具有權力從TGS(票證授予服務器)獲取服務器票證。TGS可能運行在AS計算機上。
?TGT的目的是消除用戶在每次希望訪問新服務器時必須鍵入密碼的需要。當TGS收到包含TGT的票證的請求時,它使用TGT中的信息驗證用戶,并且不需要用戶重新輸入密碼。
?TGT包含用戶ID和網絡地址,以及TGS的ID。它還包含時間戳,而時間戳提供一些保護來防范黑客。另外,它還包含首要的會話密鑰(會話密鑰最后分發給客戶端和用戶要訪問的目標服務器)。使用只有AS和TGS知道的密鑰加密TGT。從而在TGT從AS發送出去后只有TGS 可以對TGT進行解密。
?AS并不將TGT直接發送到目標服務器,而將它發送到客戶端,在此處保存它,以用于將來的所有票證請求。當該用戶試圖訪問服務器時,TGT被發送到TGS。TGS將TGT解密并將其內容與用戶提供的信息進行比較,以確定真實性,然后返回目標服務器的票證給用戶。
驗證和授權方案在圖K-1中進行了圖解,并在下面進行了概述:
1.第一步是客戶端獲取TGT。本步驟還驗證該用戶。TGT的一個簡單請求發送到AS。AS具有客戶端密碼的一個副本,它使用從用戶密碼導出的密鑰加密TGT。
2.當客戶端收到此響應時,系統提示用戶輸入可解密此響應的密碼。只有可信的用戶才能輸入可解密響應的密碼,因此本方案可有效地驗證用戶。
3.響應一旦解密,客戶端即具有TGT的一個副本。為訪問服務器,客戶端發送請求(請求中包含目標服務器ID、用戶ID和TGT)給TGS來證實用戶的真實性。
4.TGS解密TGT并查看其內容。如果所有內容都已檢查出,則TGS生成目標服務器的服務器票證,并用與目標服務器一起共享的密鑰加密它。服務器票證再次由TGS使用從用戶密碼導出的密鑰加密,并返回到客戶端。
5.客戶端解密響應以提取服務器票證和會話密鑰。然后票證與用戶ID一起轉發到目標服務器。請注意,票證還包含加密形式的用戶ID。
6.目標服務器解密票證,并將隨票證發送的用戶ID與在票證中加密的用戶ID進行比較。如果它們相符,則用戶被授予服務器訪問權限。
票證包含會話密鑰,該密鑰也已發送到客戶端?,F在,客戶端和服務器都具有會話密鑰,它們可以使用它加密和解密通過網絡發送的消息,從而提供了私密通信。
對驗證進程的一種增強方法是要求用戶輸入令牌ID(令牌ID的獲取位置是生成令牌的類似于信用卡的設備)。用戶隨身攜帶令牌卡。令牌卡顯示與服務器同步的值,且用戶在登錄時輸入這些值。
Kerberos方案實現對稱 (單鑰或密鑰)加密技術,因此一些供應商對最初的用戶驗證支持公鑰驗證方案。Microsoft正在其Kerberos實現中提供此功能,并已向IETF提交建議,建議使用此技術。
圖K-1 Kerbero 驗證方案
Kerberos的優點:
Kerberos系統對用戶的口令進行加密后作為用戶的私鑰,避免口令在信道的顯式傳輸,
實現較高的安全性;
用戶在使用構成中,僅在登錄時要求輸入口令,實現對合法用戶的透明性;
Kerberos可以較方便地實現用戶數的動態改變。
Kerberos的缺點:
Kerberos服務器與用戶共享的秘密是用戶的口令字,服務器在回應時不驗證用戶的真實性,假設只有合法用戶擁有口令字。如攻擊者記錄申請回答報文,就易形成代碼本攻擊。
Kerberos服務器與用戶共享的秘密是用戶的口令字,服務器在回應時不驗證用戶的真實性,假設只有合法用戶擁有口令字。如攻擊者記錄申請回答報文,就易形成代碼本攻擊。
AS和TGS是集中式管理,容易形成瓶頸,系統的性能和安全也嚴重依賴于AS和TGS的性能和安全。在AS和TGS前應該有訪問控制,以增強AS和TGS的安全。
隨用戶數增加,密鑰管理較復雜。Kerberos擁有每個用戶的口令字的散列值,AS與TGS負責戶間通信密鑰的分配。當N個用戶想同時通信時,仍需要N*(N-1)/2個密鑰。
?非常好我支持^.^
(140) 97.9%
不好我反對
(3) 2.1%
相關閱讀:
- [電子說] NTLM身份驗證:揭秘Windows網絡安全的秘密武器 2023-09-23
- [電子說] 使用ATSHA204A和PIC16單片機對消耗品進行身份驗證 2023-09-18
- [電子說] Vivado統一Web安裝程序:下載和安裝過程中無法繞過用戶帳戶身份驗證階段 2023-07-11
- [電子說] 使用安全身份驗證器保護您的醫療設備端點 2023-06-30
- [嵌入式技術] 如何在Spring Security中實現基于API密鑰的身份驗證 2023-06-29
- [電子說] 安全身份驗證器如何確保患者安全 2023-06-29
- [電子說] 為什么身份驗證器應該是智能鎖的鑰匙 2023-06-28
- [電子說] 無需成為密碼學專家即可實施安全身份驗證 2023-06-26
( 發表人:admin )