|
挑战握手认证协议(CHAP)通过三次握手周期性的认证对端的身份,在初始链路建立时完成,可以在链路建立之后的任何时候重复进行。
- 链路建立阶段结束之后,认证者向对端发送“挑战”消息。
- 对端用经过单向哈希函数计算出来的值做应答。
- 认证者根据它自己的预期哈希值的计算来检查应答,如果值匹配,认证得到承认;否则,连接应该终止。
- 经过一定的随机间隔,认证者发送一个新的挑战给对端,重复1到3。
通过递增改变的标识符和可变的挑战值,CHAP 防止了重放攻击,重复挑战限制了对单个攻击的暴露时间,认证者控制挑战的频度。
该认证方法依赖于认证者和对端共享的密钥,密钥不是通过该链路发送的。
虽然该认证是单向的,但是在两个方向都进行CHAP协商,同一密钥可以很容的实现交互认证。
由于 CHAP 可以用在许多不同的系统认证中,因此可以用 NAME 字段作为索引,以便在一张大型密钥表中查找正确的密钥,这样也可以在一个系统中支持多个 NAME 密钥对,在会话中随时改变密钥。
CHAP 要求密钥以明文形式存在,无法使用通常的不可回复加密口令数据库。
在大型设备中不适用,因为每个可能的密钥由链路的两端共同维护。 |