PAP与CHAP认证简介

2018年7月13日22:05:21

PAP(口令验证协议 Password Authentication Protocol)是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。

CHAP(挑战-握手验证协议 Challenge-Handshake Authentication Protocol)是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。

CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。

关于CHAP可以参见RFC1994。 

PAP认证和CHAP认证概述

PAP认证过程非常简单,是二次握手机制,而CHAP认证过程比较复杂,是三次握手机制

一、PAP认证协议(PasswordAuthenticationProtocol,密码认证协议):

PAP认证过程非常简单,二次握手机制。

使用明文格式发送用户名和密码。

发起方为被认证方,可以做无限次的尝试(暴力破解)。

只在链路建立的阶段进行PAP认证,一旦链路建立成功将不再进行认证检测。

目前在PPPOE拨号环境中用的比较常见。

PAP认证过程:

PAP认证过程图


PAP认证和CHAP认证概述

首先被认证方向主认证方发送认证请求(包含用户名和密码),主认证方接到认证请求,再根据被认证方发送来的用户名去到自己的数据库认证用户名密码是否正确,如果密码正确,PAP认证通过,如果用户名密码错误,PAP认证未通过。

二、CHAP认证协议(ChallengeHandshakeAuthenticationProtocol,挑战-握手认证协议)

CHAP认证过程比较复杂,三次握手机制。

使用密文格式发送CHAP认证信息。

由认证方发起CHAP认证,有效避免暴力破解。

在链路建立成功后具有再次认证检测机制。

目前在企业网的远程接入环境中用的比较常见。

CHAP认证过程:

CHAP认证第一步:主认证方发送挑战信息【01(此报文为认证请求)、id(此认证的序列号)、随机数据、主认证方认证用户名】,被认证方接收到挑战信息,根据接收到主认证方的认证用户名到自己本地的数据库中查找对应的密码(如果没有设密码就用默认的密码),查到密码再结合主认证方发来的id和随机数据根据MD5算法算出一个Hash值。

CHAP认证过程图:


PAP认证和CHAP认证概述

CHAP认证第二步:被认证方回复认证请求,认证请求里面包括【02(此报文为CHAP认证响应报文)、id(与认证请求中的id相同)、Hash值、被认证方的认证用户名】,主认证方处理挑战的响应信息,根据被认证方发来的认证用户名,主认证方在本地数据库中查找被认证方对应的密码(口令)结合id找到先前保存的随机数据和id根据MD5算法算出一个Hash值,与被认证方得到的Hash值做比较,如果一致,则认证通过,如果不一致,则认证不通过。

CHAP认证过程图:


PAP认证和CHAP认证概述

CHAP认证第三步:认证方告知被认证方认证是否通过。

CHAP认证过程图:


PAP认证和CHAP认证概述

CHAP认证和PAP认证的过程如上所述,这两种认证协议都被PPP协议支持,大家可以搜索相关的内容辅助理解这两个认证过程。

【编辑推荐】

  1. 配置PPP验证时CISCO路由器CHAP认证配置
  2. PPP协议配置和PAP认证配置
  3. TCP协议的通讯方式
  4. 路由协议基础路由表篇
  5. 部分频道不通怎么办?组播协议是关键
  6. 本地邮件传输协议:SMTP和LMTP
  7. 思科网络工程师笔记:生成树协议STP
一般情况下,我们讨论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

 

ppp认证方式pap和chap原理介绍及配置(Cisco路由器)

一、预备知识:

1、PPP定义:

  点到点协议(Point to Point Protocol,PPP)是IETF(Internet Engineering Task Force,因特网工程任务组)推出的点到点类型线路的数据链路层协议。该协议不是专有协议,可以互联不同厂商设备。

  支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等。

2、PPP认证方式: www.2cto.com  

2.1、PAP认证:

PAP:密码口令验证协议,全称:Password Authentication Protocol。PAP是两次握手认证协议,在链路首次初始化时,被认证端首先发起认证请求,向认证端发送用户名和密码信息进行身份认证。密码口令以明文发送,所以安全性较低。PAP支持单项和双向认证,认证流程图和单、双向认证示意图如下:

认证流程图:

PAP与CHAP认证简介

单双向认证示意图: www.2cto.com  

PAP与CHAP认证简介 PAP与CHAP认证简介

2.2、CHAP认证:

CHAP:挑战握手认证协议,全称:Challenge Handshake Authentication Protocol。CHAP通过三次握手验证被认证端的身份,在初始链路建立时完成,为了提高安全性,在链路建立之后周期性进行验证。CHAP比PAP更安全,因为CHAP不在线路上发送明文,而是发送经过MD5过的随机数序列。CHAP支持单向和双向认证。CHAP认证示意图如下:
www.2cto.com  

PAP与CHAP认证简介

三、配置

3.1、配置环境:

1、模拟环境:Cisco Packet Tracer 5.3

2、模拟路由器:Cisco Router-PT

3、连接串行端口:R_A——>s2/0;R_B——>s3/0

3.2、PAP认证:

3.2.1、PAP单向认证:

PAP与CHAP认证简介

1、R_A配置信息:

hostname R_A

interface Serial2/0

 ip address 192.168.1.1 255.255.255.0

 encapsulation ppp

 ppp pap sent-username R_A password 0 123

 clock rate 64000

R_A(config-if)#ip address 192.168.1.1 255.255.255.0

R_A(config-if)#no shutdown

%LINK-5-CHANGED: Interface Serial2/0, changed state to up

2、R_B配置信息: www.2cto.com  

Router>en

Router#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#hostname R_B

R_B(config)#username R_A password 0 123

R_B(config)#interface s3/0

R_B(config-if)#encapsulation ppp

R_B(config-if)#ppp authentication pap

R_B(config-if)#ip address 192.168.1.2 255.255.255.0

R_B(config-if)#no shutdown

3、验证:

在路由器R_A上:

R_A#debug ppp authentication 

PPP authentication debugging is on

Serial2/0 Using hostname from interface PAP

Serial2/0 Using password from interface PAP

Serial2/0 PAP: O AUTH-REQ id 17 len 15

Serial2/0 PAP: Phase is FORWARDING, Attempting Forward

%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to up

在路由器R_B上: www.2cto.com  

R_B#ping 192.168.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 2/4/6 ms

3.2.2、PAP双向认证:

PAP与CHAP认证简介

(双向认证配置是在单向认证配置的基础上操作的)

1、在R_A上增加用户信息、认证方式:

R_A#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R_A(config)#username R_B password 0 123

R_A(config)#interface s2/0

R_A(config-if)#ppp authentication pap

2、在R_B上增加发送认证信息:

R_B#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R_B(config)#inter s3/0

R_B(config-if)#ppp pap sent-username R_B password 0 123

3、验证:

R_A#ping 192.168.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 2/6/16 ms

3.3、CHAP认证:

3.3.1、CHAP单向认证:

PAP与CHAP认证简介

1、R_A(被认证端)配置信息:

hostname R_A

username R_B password 0 123

interface Serial2/0

ip address 192.168.1.1 255.255.255.0

encapsulation ppp

clock rate 64000

2、R_B(认证端)配置信息:

hostname R_B

username R_A password 0 123

interface Serial3/0

ip address 192.168.1.2 255.255.255.0

encapsulation ppp

ppp authentication chap

3.3.2、CHAP双向认证:

PAP与CHAP认证简介

1、在R_A路由器上作如下配置:

R_A#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R_A(config)#inter s2/0

R_A(config-if)#ppp authentication chap

%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to down

%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to up

2、验证:

R_A(config-if)#do ping 192.168.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 2/9/35 ms

四、主意事项: www.2cto.com  

1、用户名、密码信息与主机名的对应关系;

2、认证端、被认证端之间的信息对应关系;

3、认证信息大小写敏感;

4、修改配置后,若未生效,尝试重启端口;

5、常用排错命令:

show running configuration

show interface sx/x/x

debug ppp authentication

6、验证信息可放置在第三方服务器上——AAA或TACACS+服务器。

 


  • 更新时间:2018年7月13日22:05:21 ,共 7320 字。