挑戰-握手認證協定(CHAP)是一種加密的認證方式,能夠避免建立連線時傳送用戶的真實密碼。NAS向遠程用戶傳送一個挑戰口令(challenge),其中包括會話ID和一個任意生成的挑戰字串(Arbitrary Challenge String).遠程客戶必須使用MD5單向哈希算法(One-way HashingAlgorithm)返回用戶名和加密的挑戰口令,會話ID以及用戶口令,其中用戶名以非哈希方式傳送。
CHAP對PAP進行了改進,不再直接通過鏈路傳送明文口令,而是使用挑戰口令以哈希算法對口令進行加密。因為伺服器端存有客戶的明文口令,所以伺服器可以重複客戶端進行的操作,並將結果與用戶返回的口令進行對照。CHAP為每一次認證任意生成一個挑戰字串來防止受到再現攻擊(Replay Attack).在整個連線過程中,CHAP將不定時地向客戶端重複傳送挑戰口令,從而避免第三方冒充遠程客戶(Remote Client Impersonation)進行攻擊。