CHAP單向驗證是指一端作為驗證方,另一端作為被驗證方。雙向驗證是單向驗證的簡(jiǎn)單疊加,即兩端都是既作為驗證方又作為被驗證方。在實(shí)際應用中一般只采用單向驗證。
CHAP驗證過(guò)程如下:
(1) 主驗證方主動(dòng)發(fā)起驗證請求,主驗證方向被驗證方發(fā)送隨機產(chǎn)生的報文(Challenge),
并同時(shí)將本端的用戶(hù)名(若在接口上有配置用戶(hù)名則使用此用戶(hù)名,若沒(méi)有則使用路由器的名字)一起發(fā)送給被驗證方;
(2) 被驗證方接到驗證方的驗證請求后,檢查本端接口上是否配置了缺省的CHAP密碼,如果配置了則被驗證方利用報文ID、
該缺省密碼和MD5算法對該隨機報文進(jìn)行加密,將生成的密文和自己的用戶(hù)名發(fā)回驗證方(Response);
(3) 如果被驗證方檢查發(fā)現本端接口上沒(méi)有配置缺省的CHAP密碼,則被驗證方根據此報文中驗證方的用戶(hù)名在本端的用戶(hù)表查找該用戶(hù)對應的密碼,
如果在用戶(hù)表找到了與驗證方用戶(hù)名相同的用戶(hù),便利用報文ID、此用戶(hù)的密碼和MD5算法對該隨機報文進(jìn)行加密,
將生成的密文和被驗證方自己的用戶(hù)名發(fā)回驗證方(Response);
(4) 驗證方用自己保存的被驗證方密碼、報文ID和MD5算法對原隨機報文加密,比較二者的密文,根據比較結果返回不同的響應(Acknowledge or Not Acknowledge)。