2013-09-30 177 views
2

我一直在阅读关于认证方法的一些信息。 我已阅读有关RADIUS和有关EAP。 我只是不明白他们之间的联系。RADIUS和EAP如何结合?

RADIUS是一种认证协议,它使用共享密钥和其他方法进行安全认证,而EAP更多是一种通用协议。我知道EAP本身并不做任何事情(它只是一个框架),并且使用更具体的类型(如EAP-TLS)来执行身份验证。

我只是不明白,如果认证过程与客户端 - >认证者 - >认证服务器,应该选择其中一个协议,或者如果他们以某种方式组合。

我相信我只是完全错误,并希望如果有人只是简要地解释我缺少的东西。

谢谢!

回答

9

概述

How EAP is carried in 802.1X

EAP总是由另一协议承载。请求者(认证用户设备)和NAS(网络访问服务器)之间最常见的传输是IEEE-802.1X EAPOL(EAP Over LAN),PPP(点对点协议)和IKEv2。

对于NAS与RADIUS服务器之间的链接,EAP数据包在253字节的边界上被分段并分成多个EAP-Message属性。如何通过RADIUS传输EAP由RFC3579定义。

NAS通常不会在EAP对话上窥探。对于提供隐私的EAP方法(例如EAP-TLS,EAP-PEAP和EAP-TTLS),无论如何snooping都不会有效,因为在请求方和RADIUS服务器之间将建立TLS隧道。

认证

当NAS从请求者接收到EAP分组时,它将剥离封装(EAPOL/PPP/IKEv2协议)和片段的EAP数据转换成253字节的块。然后它会将EAP数据块作为多个EAP-Message属性插入到RADIUS Access-Request数据包中。 NAS然后将RADIUS Access-Request数据包发送到RADIUS服务器。

RADIUS服务器使用EAP-Message属性作为它应该执行EAP验证的指示,就像它使用用户密码作为它应该执行PAP和CHAP密码的提示一样,它应该提示它应该执行CHAP。

RADIUS服务器将按照它们收到的顺序连接EAP-Message属性(这就是为什么代理不重新排序EAP-Message属性很重要)并将连接数据传递给初始化EAP状态机。

然后,EAP代码将制定其响应并将其编码为EAP数据包,将该数据包拆分为EAP-Message属性,然后将这些属性通过RADIUS Access-Challenge数据包发送回NAS。

状态属性也将在挑战中发送。该状态属性将被NAS包括在下一个访问请求中。状态属性允许RADIUS服务器在多轮访问请求/访问挑战之间恢复E​​AP身份验证状态。它通常用作正在进行的EAP会话存储的关键。

当NAS接收到Access-Challenge时,它将重新组装EAP-Message属性,将EAP数据封装在EAPOL/PPP/IKEv2中,并将封装的数据发送回请求者。

访问 - 请求/访问 - 挑战交换的多轮与作为翻译者的NAS发生。

当RADIUS服务器有足够的信息做出接受或拒绝用户的决定时,它将发回一个包含EAP-Success/EAP-Failure的EAP-Message,RADIUS服务器将把它发送回NAS在Access-Accept或Accept-Reject数据包中。 RFC3579要求在Access-Accept数据包中返回EAP-Successes,并且在Access-Reject数据包中返回EAP-Failures。

当需要将密钥资料分发给NAS和请求方时,NAS的密钥资料在MS-MPPE-Recv-Key和MS-MPPE-Send-Key RADIUS属性中提供,包含在Access -接受。申请人将在EAP方法进展期间接收(或派生)相同的密钥资料。 EAP方法之间这种密钥材料的派生方式不同。

总之,RADIUS可以被看作是传输和控制(对于NAS)协议,并且EAP可以被看作是在RADIUS顶部运行的实际认证/授权协议。

希望这会有所帮助!