来自http://zh.wikipedia.org/wiki/CHAP (维基百科)
挑战握手协议(Challenge-Handshake Authentication Protocol,CHAP)是一个用来验证用户或网络提供者的协议。负责提供验证服务的机构,可以是互联网服务供应商,又或是其他的验证机构。
RFC 1994详细定义了CHAP这个协议。
CHAP 用于使用3次握手周期性的验证对端身份。在链路建立初始化时这样做,也可以在链路建立后任何时间重复验证。
- 在链路建立完成后,验证者向对端发送一个“challenge”信息。
- 对端使用一个“one-way-hash”函数,例如MD5,计算出的值响应这个信息。
- 验证者使用自己计算的hash值校验响应值。如果两个值匹配,则验证是承认得,否则连接应该终止。
- 在随机时间,验证端发送一个“challenge”给对端,重复1到3步。
CHAP通过增量改变标识和“challenge-value”的值避免“playback attack”攻击。验证的两端都需要知道“challenge”信息的明文,但不会在互联网上传播。