PPP - leaves的日志- 网易博客

PPP

2010-05-06 23:13:55 阅读13 评论0 字号:

    PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

  在网络通信中,“包”(Packet)和 “帧”(Frame)的概念相同,均指通信中的一个数据块。对于具体某种通信网络,一般使用术语“帧”。一种网络的帧格式可能与另一种网络不同,通常使用术语“包”来指一般意义的帧。串行通信的数据格式有面向字符型的数据格式,如单同步、双同步、外同步;也有面向比特型的数据格式,这以帧为单位传输,每帧由六个部分组成,分别是标志区、地址区、控制区、信息区、帧校验区和标志区。

串行通信协议属于ISO国际参考标准的第三层,数据链路层。数据链路层必须使用物理层提供给它的服务。物理层所做的工作是接收个一个原始的比特流,并准备把它交给目的地。不能保证这个比特流无差错。所接收的比特的数量也许少于,也许等于或多于所传递的比特的数量,它们具有不同的值。一直要上到数据链路层才能进行检测,如果需要的话,纠正错误。对于数据层,通常的方法是把比特流分成离散的帧,并对每一帧计算出校验和……。当一帧到达目的地后重新计算校验和时,如果新算出的校验和不同于帧中所包括的值,数据链路层就知道出现差错了,从而会采取措施处理差错(即,丢弃坏帧,并发回一个差错报告)。

数据链路层的任务是在两个相邻接点间的线路上无差错地传送以帧为单位的数据。每一帧包括数据和必要的控制信息。人们发现,对于经常产生误码的实际链路,只要加上合适的控制规程,就可以使通信变为比较可靠的。如IBM公司推出了xx的体系结构SNA,在SNA的数据链路规程采用了面向比特的规程SDLC,后来ISO把它修改后称为HDLC,译为高级数据链路控制。在INTERNET中,用户与ISP(INTERNET服务提供者)之间的链路上使用得最多的协议就是SLIP和PPP。

PPP 一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。

  阶段1:创建PPP链路

  LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过LCP向对方发送配置信息报文(Configure Packets)。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。

  应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。

  阶段2:用户验证

  在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。

  在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。

  最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。 认证方式介绍在第三部分中介绍。

  阶段3:调用网络层协议

  认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。

  这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。

  三、 认证方式

  1)口令验证协议(PAP)

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

  2)挑战-握手验证协议(CHAP)

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

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

<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--相关日志--> <#--推荐日志--> <#--推荐阅读--> <#--相关文章 2010.04.29="" by="" yangfan--=""> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【PPP - leaves的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——