挑战握手认证协议

更新时间:2023-11-08 07:39

CHAP:挑战握手认证协议 (Challenge Handshake Authentication Protocol)

简介

CHAP:挑战握手认证协议 (Challenge Handshake Authentication Protocol)

挑战握手认证协议(CHAP,Challenge-Handshake Authentication Protocol)是在网络物理连接后进行连接安全性验证的协议。它比另一种协议密码验证程序(PAP)更加可靠。

挑战握手认证协议(CHAP)通过三次握手周期性的校验对端的身份,在初始链路建立时完成,可以在链路建立之后的任何时候重复进行。

1. 链路建立阶段结束之后,认证者向对端点发送“challenge”消息。

2. 对端点用经过单向哈希函数计算出来的值做应答。

3. 认证者根据它自己计算的哈希值来检查应答,如果值匹配,认证得到承认;否则,连接应该终止。

4. 经过一定的随机间隔,认证者发送一个新的 challenge 给端点,重复步骤 1 到 3 。

通过递增改变的标识符和可变的挑战值,CHAP 防止了来自端点的重放攻击,使用重复校验可以限制暴露于单个攻击的时间。认证者控制验证频度和时间。

该认证方法依赖于只有认证者和对端共享的密钥,密钥不是通过该链路发送的。

虽然该认证是单向的,但是在两个方向都进行 CHAP 协商,同一密钥可以很容易的实现相互认证。

由于 CHAP 可以用在许多不同的系统认证中,因此可以用 NAME 字段作为索引,以便在一张大型密钥表中查找正确的密钥,这样也可以在一个系统中支持多个 NAME/ 密钥对,并可以在会话中随时改变密钥。

CHAP 要求密钥以明文形式存在,无法使用通常的不可回复加密口令数据库。

CHAP 在大型网络中不适用,因为每个可能的密钥由链路的两端共同维护。

协议结构

CHAP 的配置选项格式如下:

8 16 32 40 bit

Type Length Authentication-Protocol Algorithm

· Type ― 3

· Length ― 5

· Authentication-Protocol ― 对于 CHAP,为 C223(Hex)。

· Algorithm ― Algorithm 字段为八位字节,表示使用的认证方法。

CHAP 数据包结构如下所示:

8 16 32 bit Variable

Code> Identifier Length Data . . .

· Code ― 识别 CHAP 数据包类型。CHAP 代码具有以下几种:1、Challenge;2、Response;3、Success;4、Failure。

· Identifier ― 用于匹配 Challenges、Responses 和 Replies 信息。

· Length ― CHAP 数据包的长度,包括 Code、Identifier、Length 和 Data 字段。

· Data ― 0或更多八位字节。该字段格式取决于 Code 字段。对于 Success 和 Failure,Data 字段包括一个独立执行的可变信息字段

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}