PPP-CHAP原理与配置

1; PPP概述
点到点协议(Point to Point Protocol,PPP)是IETF(Internet Engineering Task Force,因特网工程任务组)推出的点到点类型线路的数据链路层协议 。它解决了SLIP中的问题,并成为正式的因特网标准 。
PPP协议在RFC 1661、RFC 1662和RFC 1663中进行了描述 。
PPP支持在各种物理类型的点到点串行线路上传输上层协议报文 。PPP有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等 。这些丰富的选项增强了PPP的功能 。同时,不论是异步拨号线路还是路由器之间的同步链路均可使用 。因此,应用十分广泛 。
本文我们主要介绍PPP的身份认证功能 。
2; CHAP原理
PPP提供了两种可选的身份认证方法:口令验证协议PAP(PassWord Authentication Protocol,PAP)和质询握手协议(Challenge Handshake Authentication Protocol,CHAP) 。假如双方协商达成一致,也可以不使用任何身份认证方法 。
CHAP认证比PAP认证更安全,因为CHAP不在线路上发送明文密码,而是发送经过摘要算法加工过的随机序列,也被称为"挑战字符串".如图1所示 。同时,身份认证可以随时进行,包括在双方正常通信过程中 。因此,非法用户就算截获并成功破解了一次密码,此密码也将在一段时间内失效 。
图1CHAP
CHAP对端系统要求很高,因为需要多次进行身份质询、响应 。这需要耗费较多的CPU资源,因此只用在对安全要求很高的场合 。
3; CHAP配置
3.1; PPP基本配置
对于同步串行接口,默认的封装格式是HDLC(Cisco私有实现) 。可以使用命令encapsulation ppp将封装格式改为PPP.如图2所示 。
图2PPP串行封装
当通信双方的某一方封装格式为HDLC,而另一方为PPP时,双方关于封装协议的协商将失败 。此时,此链路处于协议性关闭(protocol down)状态,通信无法进行 。如图3所示 。
图3两端路由器串行接口封装格式不一致
这时,在路由器RouterA与路由器RouterB的链路没有成功建立之前,路由器RouterA及RouterB的路由表将为空 。
3.2; CHAP配置
3.2.1; CHAP认证过程
同PAP一样,CHAP认证可以在一方进行,即由一方认证另一方身份,也可以进行双向身份认证 。这时,要求被认证的双方都要通过对方的认证程序,否则,无法建立二者之间的链路 。我们以单方认证为例分析CHAP配置过程及诊断方法 。
如图4所示 。当双方都封装了PPP协议且要求进行CHAP身份认证,同时它们之间的链路在物理层已激活后,认证服务器会不停地发送身份认证要求直到身份认证成功 。和PAP不同的是,这时认证服务器发送的是"挑战"字符串 。
图4CHAP验证
在图4中,当认证客户端(被认证一端)路由器RouterB发送了对"挑战"字符串的回应数据包后,认证服务器会按照摘要算法(MD5)验证对方的身份 。假如正确,则身份认证成功,通信双方的链路最终成功建立 。
假如被认证一端路由器RouterB发送了错误的"挑战"回应数据包,认证服务器将继续不断地发送身份认证要求直到收到正确的回应数据包为止 。

3.2.2; CHAP认证服务器的配置
CHAP认证服务器的配置分为两个步骤:建立本地口令数据库、要求进行CHAP认证 。
建立本地口令数据库
通过全局模式下的命令username username password password来为本地口令数据库添加记录 。这里请注重,此处的username应该是对端路由器的名称,即routerb.如下所示:
RouterA(config)#username routerb password samepass
要求进行CHAP认证
这需要在相应接口配置模式下使用命令ppp authentication chap来完成 。如下所示:

推荐阅读