Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398596
  • 博文数量: 74
  • 博客积分: 2088
  • 博客等级: 大尉
  • 技术积分: 703
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 13:04
文章分类

全部博文(74)

文章存档

2013年(1)

2012年(9)

2011年(57)

2010年(6)

2008年(1)

分类: 系统运维

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

贴图如下

阅读(2263) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~