
挑戰握手認證協議(CHAP)是簡單口令協議(PAP)的改進型,它用“挑戰/應答”的方式,經過三次握手周期性認證被認證對象的身份。
CHAP的認證過程如下。
(1)在需認證對象要訪問給出服務的系統的時候,認證方向被認證對象發送遞增改變的標識符和一個挑戰消息,也就是一段隨機的數據。
(2)被認證對象對認證方發個響應,此響應數據顺利获得單向散列函數計算出來,單向散列函數的輸入參數是本次認證的標識符、密鑰與挑戰消息組成的。
(3)認證方把得到的響應與由認證標識符、密鑰與挑戰消息計算得出的散列函數值對比。如果相符那麼認證顺利获得,對被認證對象發“成功”消息;要不然發送“失敗”消息,斷開服務連接。
(4)CHAP協議不只是在連接建立階段實施,在後面的數據傳輸階段,仍是在隨機的間隔周期中實施,若發現結果不同,認證方也會切斷服務連接。
CHAP具有以下優點。
(1)融入不確定因素,藉助持續使認證標識符與隨機的挑戰消息變化進行避免重放攻擊。
(2)用周期性的挑戰消息認證約束了單個攻擊的暴露時間,認證者管控挑戰的頻度。
(3)認證過程中依賴的密鑰不在鏈路傳輸。
(4)儘管CHAP實施的是單向認證,不過在兩個方向上實施CHAP協商,同一密鑰能非常輕易地完成交互認證。
CHAP的不足之處如下。
(1)CHAP認證的關鍵是密鑰,密鑰以明文形式存放與使用,無法用通常的不可逆運算加密口令。
(2)CHAP的密鑰是通信兩方共享的,這點和對稱密鑰體制相似,所以給密鑰的分發與更新造成了困難,需要每個通信對均有個共享的密鑰,不符合大規模的系統。
