如今Internet用户都需要连接到ISP以取得网络服务,同时也有许多个人需要将家中的个人计算机互联起来,他们一般都有拨号电话线路或租用的电话专用线路。然而这些线路都只是提供了点到点之间的一条物理链路,要在物理链路上进行通信必须借助于某种通信协议来对链路进行控制。因此出现了两种协议: SLIP和PPP。其中SLIP有以下一些缺陷:
而PPP却为点到点数据链路上传输多协议数据报提供了一种通用方法。为了在点到点物理链路上建立通信,在链路建立阶段, PPP通信链路的每一端都必须首先发送LCP数据包来对该数据链路进行配置协商。在链路已经建立起来后,在进入网络层协议进行实际的数据通信之前,PPP提供了一个可选的认证阶段。缺省时,认证并不是必需的。如果想要对通信链路进行认证,具体实现时必须在链路建立阶段指定认证协议配置选项来说明要进行认证。起初PPP上支持的认证方式主要是PAP和CHAP,然而它们都不能扩展。对此,PPP协议现在增加了一种新的可扩展认证协议(EAP),它是PPP , 认证的一个通用认证协议 在它上面可以支持多种认证机制,也就是说它提供了在PPP上进行多种认证的底层框架其它各种具体的认证机制都是建立在它之上的。 ,具体来讲, EAP在链路建立阶段并没有选定某一种特定的认证机制,只需说明要使用EAP , 认证即可 而把具体认证过程推迟到后面一个独立的认证阶段。在这一阶段进行认证方式的协商和具体认证过程,并由认证成功与失败的结果来决定是否进入网络层以使网络层数据能够在链路上进行传输。
可扩展认证协议(Extensible authentication protocol,EAP)是一个第二层处理过程,允许网络对无线客户端进行认证。有两种EAP:一种用于无线网路,另一种用于LAN
连接,通常称为 EAP over LAN(EAPoL)。无线环境中的一个问题是要允许WLAN设备与AP 后面的设备进行通信。有3个标准定义了此过程:EAP,802.1x和远程认证拨入用户服务(Remote authentication dial in user service, RADIUS )。EAP定义了标准的认证信息封装方法,如AP用于对用户进行认证的用户名和密码和数字证书。EAP本质上是点对点协议(PPP)的扩展,第一种EAP是EAP-MD5,它使用挑战握手认证协议(challenge handshake authentication protocol, CHAP)进行认证,下面是一些EAP扩展(介绍其中EAP-MD5和EAP-TLS)。
设计思想:PPP主要作用于两层,
数据链路层和物理层。PPP根据双方的选项协商、认证协商等来控制串行网络设备数据链路是否允许某些特定的网络层数据是否可以通过。网络层是建立在数据链路层之上的,当数据链路层有来自物理层的数据时,它将处理得到的数据,即根据数据帧协议域的不同而对网络协议数据进行分流,将不同协议的数据分别发往相应的上层网络协议输入队列,并相应地给它们发一个软中断,以通知上层对输入队列进行处理。只需通过检测认证过程的成功与否来决定是否将链路交给相应的上层网络使用,具体如图1所示。
下面是具体的设计与实现:首先设计一个用于EAP认证配置信息文件,PPP用此文件来获得EAP认证的客户与服务器的认证选项信息。有PPP一个从文件中获取各种认证选项信息的通用子程序,通过它可把与EAP认证有关的选项参数加入到的PPPLCP配置选项列表中。如果真的要进行EAP认证,则在LCP发送LCP配置包时,对方将知道要进行EAP认证。同时将EAP的通信认证过程设计为一个
有限状态自动机。
有限自动机的信息结构主要内容如下:
802.1x和 RADIUS 定义了如何打包EAP信息,从而在网络上传输这些信息。 802.1x描述了客户端(通常称为请求者)如何将EAP信息传输到网络访问设备(认证者)。网络访问设备可以是AP,交换机,路由器,
VPN网关等。认证者使用RADIUS 协议将这些信息传输到
认证服务器,改服务器会确认此请求者是否可以访问网络。注意,认证者处通常没有本地定义的用户凭据,它通常在认证服务器上查找此内容。