PPP验证(PAP和CHAP)

简介:

ppp协议

PPP协议是一种点到点的链路协议,主要运用于在全双工的链路上进行点到点的数据传输

特点:

-支持点到点和点到多点

-支持同步和异步串行服务

-可同时支持多种网络层协议

-支持验证

-支持地址自动协商,能够远程分配IP地址


PPP组成:

LCP:链路控制协议,负责物理层和二层的协商(用来建立、拆除和监控PPP数据链路)

NCP:网络控制协议,负责和三层协商(对于不同的网络层协议进行连接建立和参数协商)

wKioL1mFqFayaH9mAAA8D6TTPW4904.png-wh_50

PPP链路认证如下:

1:Dead阶段是没有进行任何连接的阶段,为不可用阶段,只有当两端检测到物理接口被激活的时候,才会从Dead阶段到Establish阶段,也叫链路建立阶段。

2:Establish阶段,PPP链路进行LCP参数协商。协商内容包括MRU、认证方式、魔术字等,LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。

3:接下来就是链路两端的设备需要经过认证阶段(Authenticate)才能进入到网络层协议阶段,如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。

4:在Network阶段,PPP链路进行NCP协商,只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。

5:NCP协商成功后,PPP链路保持通信状态。

6:在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead状态,直达通信双方建立起一个PPP连接。

PS:Configure-Request(配置请求):链路层协商过程中发送的第一个报文,该报文表明点对点双方开始进行链路层参数的协商。

MRU:最大接受单元

认证方式:包括PAP和CHAP

魔术字:随机产生一个数值,检测链路上是否有环路,如果收到的LCP报文中的魔术字和本段产生的魔术字一样,就认为有环路。但是要保证两端的数字都是一样的,基本上为0


首先了解一下这些名词,:

1. Configure-Request(配置请求):链路层协商过程中发送的第一个报文,该报文表明点对点双方开始进行链路层参数的协商。

2. Configure-Ack(配置响应):收到对端发来的Configure-Request报文,如果参数取值完全接受,则以此报文响应。

3. Configure-Nak(配置不响应):收到对端发来的Configure-Request报文,如果参数取值不被本端认可,则发送此报文并且携带本端可接受的配置参数。

4. Configure-Reject(配置拒绝):收到对端发来的Configure-Request报文,如果本端不能识别对端发送的Configure-Request中的某些参数,则发送此报文并且携带那些本端不能认别的配置参数。

wKiom1mFqJGxyZWXAABVEg4r6B0520.png-wh_50


1:RTA发送一个Configure-Request报文,这个报文中包含RTA上的链路层上的一些参数,当RTB收到这个配置请求之后,如果RTB能够识别,那么就会向RTA发送Configure-Ack报文。

2:当然,RTA不会等到RTB主动回复信息,RTA每隔3次就会发送一次,连续发10次,如果还没有收到Configure-Ack报文,就会停止发送

3:RTB收到RTA发送的Configure-Request报文之后,如果RTB能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则RTB需要向RTA发送一个Configure-Nak报文。

4:当RTB收到RTA发送的Configure-Request报文之后,如果RTB不能识别此报文中携带的部分或全部链路层参数,则RTB需要向RTA回应一个Configure-Reject报文。在此Configure-Reject报文中,只包含不能被识别的链路层参数。在收到Configure-Reject报文之后,RTA需要向RTB重新发送一个Configure-Request报文

以上只是LCP链路上的一些协商配置过程,接下来是认证过程(PAP和CHAP)

wKiom1mFqKrg28E4AABxtH5CKNM416.png-wh_50

pap认证使用的是两次握手协议,密码以明文的方式在链路上传输。在LCP链路上写上完成后,认证方要求被验证方进行pap认证。

被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方。认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配,如果匹配,则返回Authenticate-Ack报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。

wKioL1mFqLmQJ4H8AAB0Ma-ivrc378.png-wh_50

CHAP需要三次验证,是一种比较安全的认证方式。它有一个加密算法,这个算法叫做MD5,它是一个不可逆的过程,通常我们也会在网上看到一些解密MD5的网站,但是这些网站是依靠强大的数据库进行碰撞得出的结果,现在还没有一个有效的解密的手段去对他解密。

1. LCP协商完成后,认证方发送一个Challenge报文给被认证方,认证方很皮,他要挑战一下被认证方。

2. 被认证方收到此Challenge报文之后,也皮一下,进行一次加密运算,也是MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发到认证方那里去。

3. 认证方接收到被认证方发送的Response报文之后,按照Response的用户名在认证方的本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同,然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。




本文转自 towardly 51CTO博客,原文链接:http://blog.51cto.com/brighttime/1953874
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
安全 网络协议 文件存储
【HCIA】13.AAA与PPP及PPPOE(一)
【HCIA】13.AAA与PPP及PPPOE
141 0
|
10月前
|
数据安全/隐私保护
PPP点到点协议认证之PAP认证
PPP点到点协议认证之PAP认证
70 0
|
存储 算法 安全
CHAP:PPP 质询握手认证协议
点对点协议 (Point-to-Point Protocol,PPP) [1] 提供了一种通过点对点链路传输多协议数据报的标准方法。
356 0
CHAP:PPP 质询握手认证协议
|
数据安全/隐私保护
|
网络协议 数据安全/隐私保护 网络架构
|
数据安全/隐私保护 网络架构
|
数据安全/隐私保护 网络架构