PPPOE中的PAP与CHAP

PPPOE中的PAP与CHAP
2010年09月04日 星期六 07:33

 

一般情况下,我们讨论PAP和CHAP都是讨论的NAS和用户之间的验证方式。当用户上网时,NAS决定对用户采用何种验证方法。下面分别在本地验证和Radius验证两种情况下介绍用户与NAS之间的PAP和CHAP验证方式。
1)NAS本地认证
PAP 验证(Password Authentication Protocol:密码验证协议):用户以明文的形式把用户名和密码传递给NAS。 NAS根据用户名在NAS端查找本地数据库,如果存在相同的用户名和密码表明验证通过,否则表明验证未通过。
CHAP 验证(Challenge Handshake Authentication Protocol:挑战握手验证协议): 当用户请求上网时,服务器产生一个16字节的随机码(challenge)给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独用的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS根据用户名查找自己本地的数据库,得到和用户端进行加密所用的一样的密码,然后根据原来的16字节的随机码进行加密,将其结果与Secret Password作比较,如果相同表明验证通过,如果不相同表明验证失败。
Secret Password = MD5(Chap ID + Password + challenge)
Radius认证
2)RADIUS认证
如果用户配置了RADIUS验证而不是本地验证,过程略有不同。
PAP验证:用户以明文的形式把用户名和他的密码传递给NAS,NAS把用户名和加密过的密码放到验证请求包的相应属性中传递给RADIUS服务器。RADIUS服务器对NAS上传的帐号进行验证并返回结果来决定是否允许用户上网。
Secret password =Password XOR MD5(Challenge + Key)
(Challenge就是Radius报文中的Authenticator)
CHAP验证:当用户请求上网时,NAS产生一个16字节的随机码给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独有的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS把传回来的CHAP ID和Secret Password分别作为用户名和密码,并把原来的16字节随机码传给RADIUS服务器。RADIUS根据用户名在服务器端查找数据库,得到和用户端进行加密所用的一样的密码,然后根据传来的16字节的随机码进行加密,将其结果与传来的Password作比较,如果相同表明验证通过,如果不相同表明验证失败。另外如果验证成功,RADIUS服务器同样可以生成一个16字节的随机码对用户进行挑战询问(魔术字),该部分内容由于应用较少,此处略。
Secret password = MD5(Chap ID + Password + challenge)
从上面的过程看得出来,如果NAS到用户端都是一个用户一个PVC,或者一个用户一个VLAN,这时,BAS到用户端(MODEM)设置为PAP和CHAP都是无所谓的。但是如果BAS到用户端如果不是一个独立的链路,例如是一个VLAN下来到很多用户,这时,最好设置为CHAP。因为对用户的用户名和密码,CHAP是加密传送,而PAP是明文传送的的。但是,现在有些MODEM或系统不支持CHAP,也有NAS不支持,这时就没有选择了。

 

 

先由服务器端给客户端发送一个随机码challenge,客户端根据challenge,对自己掌握的口令、challenge、会话ID进行单向散例,即md5(password1,challenge,ppp_id),然后把这个结果发送给服务器端。服务器端从数据库中取出库存口令password2,进行同样的算法,即md5(password2,challenge,ppp_id),最后,比较加密的结果是否相同。如相同,则认证通过。

优点:安全性较SPAP有了很大改进,不用将密码发送到网络上。
缺点:安全性还不够强健,但也不错、单向加密、单向认证、通过认证后不支持Microsoft点对点加密(MPPE)。

4、MS-CHAP

微软版本的CHAP,和CHAP基本上一样,区别我也不太清楚。认证后支持MPPE,安全性要较CHAP好一点。

5、MS-CHAP V2

微软版本的CHAP第二版,它提供了双向身份验证和更强大的初始数据密钥,而且发送和接收分别使用不同的密钥。如果将VPN连接配置为用 MS-CHAP v2作为唯一的身份验证方法,那么客户端和服务器端都要证明其身份,如果所连接的服务器不提供对自己身份的验证,则连接将被断开。

优点:双向加密、双向认证、安全性相当高。
缺点:不太清楚。

6、EAP:可扩展的认证协议

EAP可以增加对许多身份验证方案的支持,其中包括令牌卡、一次性密码、使用智能卡的公钥身份验证、证书及其他身份验证。最安全的认证方法就是和智能卡一起使用的“可扩展身份验证协议—传输层安全协议”,即EAP-TLS认证。

优点:安全性最好。
缺点:需要PKI(公钥基础设施)支持。(目前PKI还没有真正建立起来)

总结:协议是一个非常复杂的内容,不是三言两语就能说清楚。但是,只要知道了这些基本内容了,就足够我们在搭建VPN时使用了。如果想了解更多内容,请查看RFC。






你可能感兴趣的:(杂类)