CHAP PPP挑战握手身份验证协议( 二 )


到承认;否则,连接应该终止 。
4.经过一定的随机间隔,认证者发送一个新的挑战给对端,重复1到3 。
2.1. 优点
 通过递增改变的标识符和可变的挑战值,CHAP防止了重放攻击,重复挑战限制了
对单个攻击的暴露时间,认证者控制挑战的频度 。
 该认证方*依靠于认证者和对端共享的密钥,密钥不是通过该链路发送的 。
 虽然该认证是单向的,但是在两个方向都进行CHAP协商,同一密钥可以很轻易的
实现交互认证 。
 由于CHAP可以用在许多不同的系统认证中,因此可以用NAME字段作为索引,以便
 在一张大型密钥表中查找正确的密钥,这样也可以在一个系统中支持多个NAME/
密钥对,在会话中随时改变密钥 。
2.2. 缺点
CHAP要求密钥以明文形式存在,无*使用通常的不可回复加密口令数据库 。
 在大型设备中不适用,因为每个可能的密钥由链路的两端共同维护 。
注:为了避免在网络的其他链路上发送密钥,推荐在中心服务器中检查挑战
和应答,而不是在每一个接入服务器中,否则,密钥最好发送到可回复加密
格式的服务器中 。无论那种情况都需要信任关系,信任关系的讨论超出本文
 的范围 。
2.3. 设计要求
CHAP算*要求密钥长度必须至少是一字节,至少应该不易让人猜出,密钥最好
 至少是哈希算*(16字节,MD5)所选用的哈希值的长度,如此可以保证密钥
不易受到穷搜索攻击 。
 所选用的哈希算*,必须使得从已知挑战值和应答值来确定密钥在计算上是不
可行的 。
 每一个挑战值应该是唯一的,否则在同一密钥下,重复挑战值将使攻击者能够
 用以前截获的应答值响应挑战 。由于希望同一密钥可以用于地理上分散的不同
服务器的认证,因此挑战应该全局临时唯一 。
 每一个挑战值也应该是不可预计的,否则攻击者可以欺骗对端,让对端响应一
个预计的的挑战值,然后用该响应冒充对端欺骗认证者 。
 虽然CHAP不能防止实时的主动搭线窃听攻击,然后只要能产生不可预计的挑战
就可以防范大多数的主动攻击 。
 唯一性来源和分歧可能性在魔术数配置选项【1】中讨论 。
3. 配置选项格式
 协商CHAP的“认证协议配置选项”格式如下图所示,字段从左到右传输 。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeLengthAuthentication-Protocol
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Algorithm
- - - - - - - -
类型 Type
 3
长度Length
 5
认证协议Authentication-Protocol
 0xc223 CHAP
算*
算*字段一字节,指示所使用的认证方*,最?翟谧钚碌摹癆ssigned
Number”【2】中指定,必须实现的值是:
5MD5【3】下的CHAP
4. 包格式
CHAP数据包封装在PPP数据链路层帧的信息域中,PPP的协议字段指示0xc223,
CHAP包格式如下图所示,字段从左到右传输 。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeIdentifierLength
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Data ...
- - - -
代码 Code
代码字段一字节,指示CHAP包的类型,分配如下:
1挑战 Challenge
2应答 Response
3成功UCcess
4失败 Failure
标识符 Identifier
标识符字段一字节,辅助匹配挑战、应答和响应 。
长度 Length
长度字段两字节,指示CHAP包的长度,包括代码、长度和数据字段 。超出

推荐阅读