当前位置:文档之家› 认证方式pap chap协议解读

认证方式pap chap协议解读

1. 前言

PAP和CHAP协议是目前的在PPP(MODEM或ADSL拨号)中普遍使用的认证协议,CHAP 在RFC1994中定义,是一种挑战响应式协议,双方共享的口令信息不用在通信中传输;PAP 在RFC1334中定义,是一种简单的明文用户名/口令认证方式。

2. PAP

PAP全称为:Password Authentication Protocol(口令认证协议),是PPP中的基本认证协议。PAP就是普通的口令认证,要求将密钥信息在通信信道中明文传输,因此容易被sniffer监听而泄漏。

PAP协商选项格式:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Type | Length | Authentication-Protocol |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

对于PAP,参数为:

Type = 3,Length = 4,Authentication-Protocol = 0xc023(PAP)

PAP数据包格式:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Code | Identifier | Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Data ...

+-+-+-+-+

Code:1字节,表示PAP包的类型

1 认证请求

2 认证确认

3 认证失败

Identifier:ID号,1字节,辅助匹配请求和回应

Length:2字节,表示整个PAP数据的长度,包括Code, Identifier, Length和

Data字段。

Data:可能是0字节或多个字节,具体格式由Code字段决定,成功或失败类型包中长度可能为0。

对于认证请求(Code = 1)类型,PAP包格式为:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Code | Identifier | Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Peer-ID Length| Peer-Id ...

+-+-+-+-+-+-+-+-+-+-+-+-+

| Passwd-Length | Password ...

+-+-+-+-+-+-+-+-+-+-+-+-+-+

Code(Code = 1),Identifier和Length字段含义如前面所述,响应包的Identifier字段值和挑战包中的相同,Identifier字段必须每次认证时改变。

Peer-ID-Length:长度1个字节,表示Peer-ID域的长度

Peer-ID:可为0到多个字节长,表示认证对方的名称。

Passwd-Length:长度1个字节,表示Password域的长度

Password:可为0到多个字节长,表示认证的口令,明文

对于认证确认(Code = 2)和认证失败(Code = 3)类型,PAP包格式为:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Code | Identifier | Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Msg-Length | Message ...

+-+-+-+-+-+-+-+-+-+-+-+-+-

其中:

Code,Identifier和Length字段含义如前面所述,响应包的Identifier字段值和认证请求包中的相同。

Msg-Length:长度1个字节,表示Message域的长度

Message:可为0到多个字节长,具体内容由应用实际实现时确定,RFC中没有限制其

内容,推荐使用可读的ASCII字符表示信息内容。

3. CHAP

CHAP全称为:Challenge Handshake Authentication Protocol(挑战握手认证协议),主要就是针对PPP的,除了在拨号开始时使用外,还可以在连接建立后的任何时刻使用。

CHAP 协议基本过程是认证者先发送一个随机挑战信息给对方,接收方根据此挑战信息和共享的密钥信息,使用单向HASH函数计算出响应值,然后发送给认证者,认证者也进行相同的计算,验证自己的计算结果和接收到的结果是否一致,一致则认证通过,否则认证失

相关主题