什么是詢問握手身份驗證協議
什么是詢問握手身份驗證協議
CHAP(詢問握手身份驗證協議)是用于遠程登錄的身份驗證協議,通過三次握手周期性的校驗對端的身份,在初始鏈路建立時完成,可以在鏈路建立之后的任何時候重復進行。CHAP通常用在客戶機與服務器之間或者Web瀏覽器與Web服務器之間。詢問/響應是一種安全機制,用于在不泄露由兩個實體共享的密碼的情況下,驗證用戶或進程的身份。它也指的是三次握手。與CHAP相關的重要概念是客戶機必須向服務器證明它知道共享密碼,但實際上并不泄露密碼(通過線路發送密碼可能將它泄露給偷聽者)。CHAP提供了這么做的機制。
當客戶機與使用CHAP的系統進行聯系時,該系統(此處稱為驗證者)通過將“詢問”發送到客戶機來響應。詢問是對此身份驗證會話惟一的一些信息。然后,客戶機接受此信息并使用以前發布的由客戶機和驗證者共享的密碼對它加密。然后,此操作的結果返回到驗證者。驗證者具有相同的密碼并將其用作對它加密。以前發送到客戶機的信息的密鑰。它把它的加密結果與客戶機發送過來的加密結果進行比較。如果它們相同,則客戶機被認為是真實可信的。
在會話過程中始終重復該過程,以驗證正確的客戶機仍在連接中。重復這些步驟可以防止有人通過“重放”從線路上截獲的信息來“偷聽”客戶機的會話。
后面描述該例程的細節,如圖C-11所示。注意:該技術不要求客戶機以開放方式通過線路將密碼發送到服務器(驗證者)。該密碼已經由客戶機和驗證者共享,而且用它執行各自的單獨的散列函數。
圖C-11 詢問、響應機制
l.客戶機與驗證者連接。
2.驗證者通過向客戶機發送詢問進行響應。
3.客戶機將共享密碼附加到詢問,并通過單向散列函數運行該組合,該散列函數創建不可能由當前標準回復到原始形式的消息摘要。
4.客戶機將此操作的結果返回到驗證者。
5.驗證者單獨執行相同的操作。它組合并散列處理共享密碼和它發送到客戶機的詢問。然后,它將其結果與從客戶機收到的結果相比較。
6.如果它們匹配,則認為該客戶機真實可信。如果不匹配,則終止該連接。
CHAP通過遞增改變的標識符和可變的挑戰值,防止了來自端點的重放攻擊,使用重復校驗可以限制暴露于單個攻擊的時間。認證者控制驗證頻度和時間。該認證方法依賴于只有認證者和對端共享的密鑰,密鑰不是通過該鏈路發送的。
另一個重要特征是,驗證者在每次登錄時發布不同的詢問,并且隨著會話的進行,周期性地發布不同的詢問來檢測已經被黑客接管的會話。當發送每個新的詢問時,必須用共享密碼散列處理。如果沒有共享密碼的人已經接管會話,這將導致身份驗證失敗,服務器將斷開該會話。
在這種情況下,驗證者詢問客戶機——一種單向方案。客戶機也希望確定它被連接到正確的服務器,因為黑客也可能侵入會話并偽裝成服務器。解決方案是在兩個方向上都運行CHAP,但每個CHAP會話的共享密碼應該不同。
挑戰握手協議的優點在于密鑰不在網絡中傳送,不會被竊聽。由于使用三次握手的方法,發起連接的一方如果沒有收到“挑戰信息”就不能進行驗證,因此在某種程度上挑戰握手協議不容易被強制攻擊。但是,CHAP中的密鑰必須以明文形式存在,不允許被加密,安全性無法得到保障。密鑰的保管和分發也是CHAP的一個難點,在大型網絡中通常需要專門的服務器來管理密鑰。
由于CHAP可以用在許多不同的系統認證中,因此可以用 NAME 字段作為索引,以便在一張大型密鑰表中查找正確的密鑰,這樣也可以在一個系統中支持多個 NAME密鑰對,并可以在會話中隨時改變密鑰。CHAP 在大型網絡中不適用,因為每個可能的密鑰由鏈路的兩端共同維護。
CHAP數據分組格式和身份驗證時交換數據分組的方法會泄露關于CHAP如何工作的更多細節。交換如圖C-12所示。CHAP數據分組的大小是可變的,這取決于發送的數據分組的類型。
圖C-12 CHAP數據分組交換
CHAP數據分組中的字段如下所述:
?代碼字段 代碼字段包含一個數字值,按以下方式標識CHAP數據分組的類型:1=詢問數據分組(驗證者到客戶機),2=響應數據分組(客戶機到驗證者),3=成功數據分組(驗證者到客戶機,身份驗證成功時),4=失敗(驗證者到客戶機,身份驗證失敗時)。驗證者在發送代碼為4的數據分組后,終止連接。
?標識符 該字段包含一個值,標識特定的身份驗證會話。所有的詢問和響應數據分組具有相同的標識符以與其他身份驗證會話區別。
?長度 該字段包含一個值,指示CHAP數據分組的長度,包括“代碼”、“標識符”、“長度”和“數據”字段。
?數據(值) 根據數據分組代碼類型,該字段具有可變的大小,并包含以下信息: 詢問值(代碼1)字段中的該值是由驗證者生成的惟一的且不可預測的值。該值的惟一性防止攻擊者試圖用以前截取的值欺騙驗證者。
響應值(代碼2)該值字段保存客戶機創建的單向散列。通過加密標識符、密鑰和詢問值的組合創建該散列。通常使用MD5加密來創建散列。
成功或失敗值(代碼3和代碼4)這些數據分組的成功或失敗值取決于執行情況,但通常只是用戶可讀取的消息,對協議操作沒有影響。
在圖C-12中,注意如何在交換數據分組中區別代碼值和數據值。步驟3和5大約同時發生在客戶機和驗證者上,然后驗證者等待來自客戶機的散列結果,并將它們與自己的結果相比較。然后,它根據比較結果,發送成功或失敗的數據分組。
詢問/驗證方案也可以與公共密鑰一起使用來驗證用戶身份。假設甲給乙發送一個詢問,甲用乙的公共密鑰加密該詢問。乙用他的私人密鑰解密該詢問并將詢問返回給甲,以此向甲證明,他擁有與甲用于加密該詢問的公共密鑰相關的私人密鑰。另一項技術是,乙將詢問與一些其他信息組合,并用他的私人密鑰簽署它,將結果返回給甲。甲用乙的公共密鑰執行相同的操作,并將該操作結果與它從乙那里收到的結果相比較。如果它們匹配,則甲知道乙擁有正確的密鑰。
非常好我支持^.^
(12) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] 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 )