挑戰碼(challenge)也稱作挑戰口令,是指遵循握手驗證協定(CHAP)生成的一組加密口令,用於在傳輸過程中保證用戶的真實密碼不被泄露。
CHAP是一種加密的驗證方式,能夠避免建立連線時傳送用戶的真實密碼。NAS向遠程用戶傳送一個挑戰碼,其中包括會話ID和一個任意生成的挑戰字串(arbitrary challengestring)。遠程客戶必須使用MD5單向哈希算法(one-way hashing algorithm)返回用戶名和加密的挑戰碼,會話ID以及用戶口令,其中用戶名以非哈希方式傳送。
CHAP對PAP進行了改進,不再直接通過鏈路傳送明文口令,而是使用挑戰碼以哈希算法對口令進行加密。因為伺服器端存有客戶的明文口令,所以伺服器可以重複客戶端進行的操作,並將結果與用戶返回的口令進行對照。CHAP為每一次驗證任意生成一個挑戰字串來防止受到再現攻擊(replay attack)。在整個連線過程中,CHAP將不定時的向客戶端重複傳送挑戰碼,從而避免第3方冒充遠程客戶(remote client impersonation)進行攻擊。
挑戰碼產品