PPP(Pointment-to-point Protocol)协议是一种点到点链路协议,主要用在全双工的同异步链路上进行点到点的数据传输。
这里我们使用两台路由器模拟
PPP链路建立过程
开始是
Dead阶段:这个阶段表示物理层没有连接,也就是链路Down。
Link Establishment(链路建立)阶段:
此时物理层有连接,LCP开始链路层基本建立工,首先发送配置请求(configuration request里面带有自己想要的参数,如果对方同意,就回确认消息,如果对方不同意,就返回不同意或者弹出
(reject)消息不接受,那么本端就会再次发送request使用新的参数,最终如果双方协商成功了,就进入LCP open状态,证明底层链路创建成功,下一步开始认证,如果失败进进入dead状态。
这里通过抓包,发现在链路建立阶段,发送了配置请求,并且对方同意建立了。
让我们来看看请求包里面的参数。
我们来看以下携带的基本选项:
MRU:定义最大携带数据包(接收)
Magic—Number:用来检测环路和不正常的连接错误
认证方式,这里我们没有配置认证,所以报文里面无认证方式。
Quality-Protocol:定义是否要使用链路质量监控
Authentication-Protocol:认证方式
Authentiicate阶段(验证阶段)
默认情况下,PPP链路不进行验证,如果要求验证,在链路建立阶段必须制定验证协议。PAP或者CHAP,认证成功进入下一阶段网络层协议阶段,认证失败就进入Termination阶段(终止连接。)
PAP
PAP验证协议为两次握手验证,口令为明文,验证过程仅在链路初始建立阶段进行,当链路建立阶段结束后,用户名密码将由被验证方重复的在链路上发送给验证方,直到验证通过或者终止。
AR2是验证方,AR1是被验证方。
首先通过配置,在验证方创建本地用户设置密码,并开启PAP认证协议。
在进入AAA,(认证,审计,授权)创建一个本地用户名PAP,密码huawei,权限为15(最高)的用户。
将用户设置为PPP协议专用。
接下来我们去端口开启认证协议为PAP
我们查看接口s2/0/0 协议那里是Down状态,我们看看抓包。
开始Link Establishment 链路建立阶段成功,对方也回了ACK同意,进入认证阶段。发现,请求终止,对方也同意了。原因是,被验证方没有通过验证。
所以我们接下来在AR1(被验证方上配置)
通过抓包发现,被验证方向验证方发送Authenticate-Reauest,里面包含了用户名和密码,由于是明文。我们通过抓包可以清清楚楚看见用户名和密码。
而验证方收到验证请求,查看里面的用户名密码,发现和本地用户对上。用户名密码完全正确,认证通过。回一个Authenticate—ACK
如果不通过就会回Authenticate–Nck
然后请求终止。
PAP总结如下图
CHAP验证过程
CHAP验证协议为三次握手协议,它只在网络上传输用户名,并不传输用户密码。所以安全性要比PAP高。
验证方创建用户,端口开启认证等等我们就忽略了。
然后我们在被验证方AR1端口S2/0/0上配置用户名密码
通过抓包观察到的过程1.链路建立阶段2.认证阶段,也通过了。
我们来分析一波,CHAP协议验证过程。
- 首先由验证方主动发送验证请求,我们称之为“挑战”验证方向被验证方发送一些随机产生的报文(challenge),并且同时将本端的用户名附带一起发送给被验证方。
我们来看看Challenge包里面Date数据
1.挑战信息里面包括(用户名1,和一个随机数)
2.AR1被验证方收到挑战信息后,查找用户名1对应的password1,然后将这个password和验证方发来的挑战信息里面的随机数做哈希,得到password+随机数=hash1,然后将自己的用户名+刚刚算出来的hash1发过去,(Respose)
3.验证方AR2收到被验证方AR1发过来的Respose后,将查找包里面发过来的用户名对应的密码password2,然后和开始挑战信息(challege)发过去的随机数,做哈希。也就是password2+随机数=hash2.
当hash1=hash2时验证通过。
回复:success
不一致:Failure 认证失败。
其实总结起来,也还是对比用户名和密码的过程。
因为双方发送的随机数还是一样的。
CHAP的双向认证,也是如此。
接下来我们对比一下CHAP和PAP验证过程 - PAP认证中,口令以明文方式在链路上发送,完成PPP链路建立后,被验证方会不停地在链路上反复发送用户名和口令,直到身份验证过程结束,所以安全性不高。当实际应用过程中,对安全性要求不高时,可以采用PAP认证建立PPP连接。
- CHAP认证中,验证协议为三次握手协议,他只在网络上传输用户名,并不传输密码,一次安全性比PAP认证高当实际应用过程中,对安全性要求较高时,可以采用CHAP认证建立PPP连接。
认证阶段完成,进入下一阶段。
Network阶段(网络层协商阶段)
PPP完成了前面几个阶段,通过NCP协商来选择和配置同一个网络层协议,并进行网络层参数协商。每个NCP协议可在任何时候打开和关闭,当一个NCP状态机变成Opened状态,则PPP就可以开始在链路上承载网络层数据传输。
Terminate阶段(网络终止阶段)
PPP能在任何时候终止链路。当载波丢失、认证失败或管理员人为关闭链路等情况均会导致链路终止。
总结PPP建立过程如下图
一个典型的PPP链路建立过程分为三个阶段:
阶段1:链路建立阶段
物理层可用时,PPP首先进行LCP协商,协商的内容包括工作方式是SP还是MP,验证方式,最大传输单元(MRU)等。LCP协商通过后,状态变为Opened,表示链路已经建立。
阶段2:认证阶段
这个阶段是可选,如果配置了认证,就进入认证阶段,在认证阶段可以选择PAP认证或者CHAP认证,建议配置CHAP认证,因为安全。认证通过后,就进入network协商阶段。如果没配置认证,就直接进入network协商阶段。
阶段3:网络层协议阶段.
:网络层协议阶段 PPP完成前面的阶段后,每一个网络层协议(例如IP、IPX或者AppleTalk)必须通过各自相应的 NCP分别进行协商。NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址。当一个NCP处于 Opened状态时,该网络层协议就可以通过这条链路发送报文了。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了
来源:CSDN
作者:陈长安CYC
链接:https://blog.csdn.net/qq_45519920/article/details/103993493