PAP与CHAP认证

一、PPP介绍

   PPP(point-to-point protocol)是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。

##在PPP中主要由三类协议簇组成
1、链路控制协议簇(Link Control protocol):主要用来建立、拆除和监控PPP链路。
2、网络层控制协议簇(Network control protocol):主要用来协商在该链路上传输的数据包的格式与类型。
3、 扩展协议簇:CHAP(Challenge-Handshake Authentication Protocol)挑战握手认证协议和PAP(Password Authentication Protocol)密码认证协议,主要用于网络安全方面的验证,保证链路中协商过程的安全性,从而保证数据传输的安全性。

1、PPP基本配置

PAP认证为两次握手验证、发送的用户名和密码均为明文。
PAP与CHAP认证_第1张图片
如图所示,在R1、R2之间采用PPP链路连接,首先在接口下封装PPP,并且配置好IP地址。
R1、R2:
interface Serial2/0
ip address 12.0.0.2 255.255.255.0 //配置IP地址
encapsulation ppp //封装PPP协议

2、从抓包过程看待PPP协商过程

配置完成后链路自动进行协商,协商过程如下:
PAP与CHAP认证_第2张图片
1、 在配置好PPP链路封装后,在抓包过程中可以看出,PPP链路通过LCP协议进行协商连接,LCP协商通过发送configuration Request消息进行,协商链路配置信息,通过configuration ack消息进行响应。
消息内容中主要关注options现象字段,此字段用来说明在PPP协商过程中启用的功能,包括认证选项。
PAP与CHAP认证_第3张图片
PAP与CHAP认证_第4张图片
2、LCP协商完成后进行IPCP的协商,IPCP的协商通过发送IPCP相关的配置消息实现,并且通过IPCP的配置消息进行应答,在此消息中会将自身的一些配置信息发送至对方,其中最主要的信息为自身配置的IP地址信息,通过PPP IPCP协商完成后可以在自己本地看到通往对方的32位掩码的路由,如下图所示。

PAP与CHAP认证_第5张图片
PAP与CHAP认证_第6张图片
PAP与CHAP认证_第7张图片
3、通过PPP CDPCP消息进行PPP邻居发现,并通过LCP Echo request消息定期发送进行维系PPP链路的连接关系,在互联网中,所有协商消息基本都是通过request,relay消息进行,PPP协商过程也不例外,由configuration request和configuration ack组成。
PAP与CHAP认证_第8张图片
PAP与CHAP认证_第9张图片
PAP与CHAP认证_第10张图片
PAP与CHAP认证_第11张图片

二、认证阶段

缺省情况下,PPP链路不进行验证。如果要求验证,在链路建立阶段必须指定验证协议。
PPP验证主要是用于主机和设备之间,通过PPP网络服务器交换电路或拨号接入连接的链路,偶尔也用于专用线路。
PPP提供密码验证协议PAP(Password Authentication Protocol)和质询握手验证协议CHAP(Challenge-Handshake Authentication Protocol)两种验证方式。
单向验证是指一端作为验证方,另一端作为被验证方。双向验证是单向验证的简单叠加,即两端都是既作为验证方又作为被验证方。在实际应用中一般只采用单向验证。

三、PAP认证

1、认证流程说明

PAP验证协议为两次握手验证,口令为明文。
PAP与CHAP认证_第12张图片

  1. 被验证方把本地用户名和口令发送到验证方。
  2. 验证方根据本地用户表查看是否有被验证方的用户名
  3. 若有,则查看口令是否正确,若口令正确,则认证通过;若口令不正确,则认证失败。
  4. 若没有,则认证失败。

2、认证配置信息介绍

选择在R1中开启PAP认证
R1:
interface Serial2/0
ip address 12.0.0.1 255.255.255.0
encapsulation ppp
ppp authentication pap
开启认证后在抓包信息中可以看出,LCP在协商过程中会告诉给对方,自身已开启认证。请求对方进行验证,并告诉对方自身开启的认证的类型。
PAP与CHAP认证_第13张图片
在R2中接口下配置用于认证使用的用户名和密码
R2:
interface Serial2/0
ip address 12.0.0.2 255.255.255.0
encapsulation ppp
ppp pap sent-username R2 password 0 cisco
在这里插入图片描述
PAP与CHAP认证_第14张图片
通过抓包可以发现,R2在接口下配置好pap认证的用户名和密码后,会首先发起验证请求,并且携带配置的用户名和密码首先发起。故可以看出配置了开启认证指令ppp authentication pap的一方是作为验证方存在,作为配置了用户名和密码ppp pap sent-username R2 password 0 cisco指令的一方作为被验证方存在。
接下来在验证方R1全局下配置用户名和密码,让验证方可以通过被验证方的认证。
R1:
username R2 password cisco
最终可以看到认证通过过程。
在这里插入图片描述
双向PAP认证需要将在两边同步开启认证,接口下配置发送的用户名和密码,在全局下配置用户名和密码确保认证可以通过。

四、CHAP认证

1、认证流程说明

CHAP验证协议为三次握手验证协议。它只在网络上传输用户名,而并不传输用户密码,因此安全性要比PAP高。
PAP与CHAP认证_第15张图片
CHAP单向验证过程分为两种情况:验证方配置了用户名和验证方没有配置用户名。推荐使用验证方配置用户名的方式,这样可以对验证方的用户名进行确认。
验证方配置了用户名的验证过程(思科中username优先于接口的password)
1) 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge),并同时将本端的用户名附带上一起发送给被验证方。
2) 被验证方接到验证方的验证请求后,先检查本端接口上是否配置了ppp chap password命令,如果配置了该命令,则被验证方用报文ID、命令中配置的用户密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发回验证方(Response)。如果接口上未配置ppp chap password命令,则根据此报文中验证方的用户名在本端的用户表查找该用户对应的密码,用报文ID、此用户的密钥(密码)和MD5算法对该随机报文进行加密,将生成的密文和被验证方自己的用户名发回验证方(Response)。
3) 验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败。
Ø 验证方没有配置用户名的验证过程(思科中无此过程)
1) 验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge)。
2) 被验证方接到验证方的验证请求后,利用报文ID、ppp chap password命令配置的CHAP密码和MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发回验证方(Response)。
3) 验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败。

2、认证配置信息介绍

选择在R1中开启CHAP认证
R1:
interface Serial2/0
ip address 12.0.0.1 255.255.255.0
encapsulation ppp
ppp authentication chap
在R1中通过ppp authentication chap指令开启认证过后,本路由器将作为验证方存在,对方路由器将作为被验证方存在,由验证方首先发起验证请求,最开始没有由于没有配置用户名和密码等相关信息,所以会将自己的主机名作为用户名向对方发送验证请求。如果对方
PAP与CHAP认证_第16张图片PAP与CHAP认证_第17张图片
选择在R2接口下配置用户名和密码
R2:
interface Serial2/0
ip address 12.0.0.2 255.255.255.0
encapsulation ppp
ppp chap hostname R2
ppp chap password 0 cisco
在这里插入图片描述
PAP与CHAP认证_第18张图片
PAP与CHAP认证_第19张图片
PAP与CHAP认证_第20张图片
从抓包中可以看出,首先由验证方发起验证请求,以自己的主机名作为用户名进行发送,在被验证方接口下配置了用户名和密码后,被验证方会采用本地接口下配置的用户名和密码进行回应,然后由验证方在本地查找被验证方发送的用户名进行匹配,确认验证是否可以通过。
本地配置用户和密码方式完成验证
在配置认证过程中,可以选择在接口下配置用户名和密码的方式,也可选择在本地配置用户和密码的方式完成认证:
R1:
interface Serial2/0
ip address 12.0.0.1 255.255.255.0
encapsulation ppp
ppp authentication chap
R1(config)#do show run | s username
username R2 password 0 cisco
R2:
R2(config)#do show run | s username
username R1 password 0 cisco
在这里插入图片描述
在全局下配置用户名和密码方法同样可以完成CHAP的认证需求,过程同接口下配置相同,cisco下全局优先于接口下的配置。

你可能感兴趣的:(网络相关)