在
PPP
的点对点通信中,可以采用
PAP
或者
CHAP
身份验证方式(首选
CHAP
方式)对连接用户进行身份验证,以防非法用户的
PPP
连 接。但这些认证是可选的,而不是必须的。如果需要认证,则发生在网络层协议配置之前,在链路层建立健全完成,并且选择了认证协议后,通信双方就可以被认证 了。在认证阶段中,要求链路发起方在认证选项中填写认证信息,以便确认用户得到了网络管理员的许可。在认证过程中,通信双方对等的路由器要彼此交换认证信 息。
如果是采用
PAP
协议,则整个身份认证过程是两次握手验证过程,口令以明文传送。
PAP
认证过程如图
2-6
所示。用文字描述如下:
(
1
)被验证方发送用户名和口令到验证方,示例中是以客户(
client
)端
grfwgz02
向服务器(
Server
)端
grfwgz01
请求身份验证;
(
2
)验证方
grfwgz01
根据自己的网络用户配置信息查看是否有此用户己口令是否正确,然后返回不同的响应(
Acknowledge or Not Acknowledge
)。
(
3
)如果正确,则会给对端发送
ACK
(应答确认)报文,通告对端已被允许进入下一阶段协商;否则发送
NCK
(不确认)报文,通知对方验证失败。但此时并不会直接将链路关闭,客户端还可以继续偿试新的用户密码。只有当验证不通过次数达到一定值(缺省为
4
)时,才会关闭链路,来防止因误传、网络干扰等造成不必要的
LCP
重新协商过程。
图2-6 PAP身份认证的两次握手
PAP
并不是一个健全的认证协议。它的特点是,在网络上以文明的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁。因此
它并不是一种强有效的认证方法,其密码以文本格式在电路上进行发送,对于窃听、重放或重复尝试和错误攻击没有任何保护,
仅适用于对网络安全要求相对较低的环境。
而如果采取
CHAP
协议进行身份验证,则需要三次握手验证协议,不直接发送口令,由主验证方首先发起验证请求。
CHAP
的安全性比
PAP
高。
CHAP
身份验证的三次握手流程如图
2-7
所示。文字描述如下(同样以客户端
grfwgz02
向服务器端
grfwgz01
发送认证请求为例进行介绍):
图2-7 CHAP身份认证的三次握手
(
1
)当客户端要求与验证服务器连接时,并不是像
PAP
验证方式那样直接由客户端输入密码,而首先由验证方
grfwgz01
向被验证方
grfwgz02
发送一个作为身份认证请求的随机产生的报文,并同时将自己的主机名附带上一起发送给被验证方;
(
2
)被验证方得到验证方的验证请求(
Challenge
)后,便根据此报文中验证方的主机名和自己的用户表查找对应用户帐户口令。如找到用户表中与验证方主机名相同的用户帐户,便利用接受到的随机报文和该用户的密匙,以
Md5
算法生成应答(
Response
),随后将应答和自己的主机名发送给验证服务器;
(
3
)验证方接到此应答后,再利用对方的用户名在自己的用户表中查找自己系统中保留的口令字,找到后再用自己的保留口令字(密匙)和随机报文,以
Md5
算生成结果,与被验证方应答比较。验证成功验证服务器会发送一条
ACK
报文(
Success
),否则会发送一条
NAK
报文(
Failure
)。
CHAP
身份认证的特点是只在网络上传输用户名,而并不传输用户口令,因此它的安全性要比
PAP
高。
CHAP
认证方式使用不同的询问消息,每个消息都是不可能预测的唯一值,这样就可以防范再生攻击。不断询问可以被限制在一次攻击中的时间内,本地路由器可以控制询问的频率和时间。