分类: 系统运维
2011-05-06 13:40:07
NJZhuJinhua@csdn May.09, 2010
mail:jinhua1982@gmail.com
http://blog.csdn.net/njzhujinhua
转载请注明出处。
朱金华
EAP是一个可以支持多种鉴权方法的框架协议,主要用于网络接入认证过程,此时一般是尚未分配IP的情况。EAP可以直接运行于PPP或IEEE802之上,不必依赖于IP。EAP自身可以识别别人的重发报文,也可支持自己主动重发,当然这要依赖于底层对消息顺序的保证。
EAP交互过程是peer与server一来一往的过程,每次只能处理一个eap报文,在收到响应之前不能发送新的请求,即锁步LockStep。
eap支持重传机制,但这需要依赖于底层对顺序的保证,具有错误id的响应报文是被直接丢弃了。
EAP本身不需要分片与重组,但EAP鉴权方法生成大于MTU的数据时,要求该鉴权方法必须支持分片与重组。
EAP过程由鉴权者(authenticator)发起,而一般认证方法都是由客户端,因而为了支持EAP需要增加一个或多个的附加报文来满足着条件。
EAP的流程简述:
[1]通常情况下终端发送EAPOL,鉴权开始。authenticator发送EAP-Req/Identity给终端,表示EAP认证过程开始。
终端回送EAP-Resp/Identity.上述发送EAP-Req/Identity的步骤某些情况下也可省去,譬如在有线网络authenticator即NAS根据终端连到的端口识别用户身份,或者通过MAC地址,IMSI卡等识别用户身份情况下。
[2]authenticator继续发送EAPReq,后跟具体EAPType及其协议数据,终端对此作出响应。根据EAPMethod的不同此步骤可能进行交互多次
[3]交互多次后,或者authenticator不能确认终端的接入权限,此时必须发送EAP-Failure。或者确认接入权限,此时必须发送EAPSuccess消息。
如果peer发送了某种EAPType的EAP-Resp则在完成该方法之前,authenticator不允许发送另一个EAPType的请求报文(通知请求除外)。
EAP Multiplex model(EAP复用模型)
Lower Layer:负责在peer和authenticator直接收发EAP帧信息。EAP可以运行在多种底层协议上,包括PPP,wired
IEEE 802 LANs,IEEE 802.11 wireless LANs, UDP (L2TP and IKEv2)以及TCP
EAP Layer: EAP层负责从Lower layer收发EAP报文,对EAP消息进行重发检测以及超时重传,将消息在EAPPeer及EAP Authenticator之间传递。
EAP
peer/authenticator:EAPLayer负责将EAP报文解复用并传给上层的EAPPeer和EAPAuthenticator。
eaplayer解复用的依据是eap报文的code,对于1Request,3Success,4Failure转给EAPPeer,对于
2Response则需要转给EAPAuthenticator。
对于前者但是没实现eappeer时,或对于后者但是没有实现eapauth时,eaplayer均会直接丢弃。
( EAP packets received with Code=1 (Request), Code=3 (Success), and
Code=4 (Failure) are demultiplexed by the EAP layer and delivered to
the peer layer. Therefore, unless a host implements an EAP peer
layer, these packets will be silently discarded. Similarly, EAP
packets received with Code=2 (Response) are demultiplexed by the EAP
layer and delivered to the authenticator layer. Therefore, unless a
host implements an EAP authenticator layer, these packets will be
silently discarded. The behavior of a "pass-through peer" is
undefined within this specification, and is unsupported by AAA
protocols such as RADIUS [RFC3579] and Diameter [DIAM-EAP].)
EAP methods layer:EAP方法层实现了eap methods并处理来自eap peer/authenticator的消息。EAP本身未提供报文的分片与重组,因而如果eapmethods如果需要,则该eapmethod应该自己实现。
+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+
| | | | | |
| EAP method| EAP method| | EAP method| EAP method|
| Type = X | Type = Y | | Type = X | Type = Y |
| V | | | ^ | |
+-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+
| ! | | ! |
| EAP ! Peer layer | | EAP ! Auth. layer |
| ! | | ! |
+-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+
| ! | | ! |
| EAP ! layer | | EAP ! layer |
| ! | | ! |
+-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+
| ! | | ! |
| Lower ! layer | | Lower ! layer |
| ! | | ! |
+-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+
! !
! Peer ! Authenticator
+------------>-------------+
Figure 1: EAP Multiplexing Model
csdn将+等同于两个-的宽度,造成上图看上去不好,大家拷贝到记事本中就正常了,这里不做专门为了csdn的修正。
贴图如下
EAP Peer/Auth layer根据eaptype将报文传给不同的EAPmethod。类似于tcp/ip协议中的port,根据port不同将数据传送给不同的应用。
eaptype中的NAK或扩展NAK消息用在算法协商阶段,当eap初始 消息发送的eaptype不被eappeer接收时,eappeer可以发送NAK或扩展NAK消息进行指示。
EAP-Success或EAP-Faliure消息不含有EAPdata,即没有eaptype了。
【关于EAP的透传:pass through】
作为passthrough
authenticator时,其检查eap的code,id及length并将报文转发出去。透传鉴权者需要将eapcode为2resp的报文转给
eapauthenticator,将eapcode=1req,2success,4failure的报文转给eappeer。在这个处理过程中除非
passthrough authenticator实现了某种eapmethods,一般是只讲将消息转发,并不去检查eap methods
layer的的消息头(即eaptype)
EAP的pass through forwarding模型
Peer Pass-through Authenticator Authentication
Server
+-+-+-+-+-+-+ +-+-+-+-+-+-+
| | | |
|EAP method | |EAP method |
| V | | ^ |
+-+-+-!-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-!-+-+-+
| ! | |EAP | EAP | | | ! |
| ! | |Peer | Auth.| EAP Auth. | | ! |
|EAP ! peer| | | +-----------+ | |EAP !Auth.|
| ! | | | ! | ! | | ! |
+-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+
| ! | | ! | ! | | ! |
|EAP !layer| | EAP !layer| EAP !layer | |EAP !layer|
| ! | | ! | ! | | ! |
+-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+
| ! | | ! | ! | | ! |
|Lower!layer| | Lower!layer| AAA ! /IP | | AAA ! /IP |
| ! | | ! | ! | | ! |
+-+-+-!-+-+-+ +-+-+-+-!-+-+-+-+-+-!-+-+-+-+ +-+-+-!-+-+-+
! ! ! !
! ! ! !
+-------->--------+ +--------->-------+
Figure 2: Pass-through Authenticator
贴图如下