概述
EAP 总是由另一个协议承载。请求者(验证用户的设备)和 NAS(网络访问服务器)之间最常见的传输是 IEEE-802.1X EAPOL(EAP Over Lan)、PPP(点对点协议)和 IKEv2。
对于 NAS(在 802.1X 术语中也称为身份验证器)和 RADIUS 服务器之间的链路,EAP 数据包在 253 字节边界上分段并拆分为多个 EAP 消息属性。RFC3579定义了 EAP 如何通过 RADIUS传输。
NAS 通常不会窥探 EAP 对话。对于提供隐私的 EAP 方法,例如 EAP-TLS、EAP-PEAP 和 EAP-TTLS,窥探无论如何都不会有效,因为将在请求者和 RADIUS 服务器之间建立 TLS 隧道。
验证
当 NAS 接收到来自请求方的 EAP 数据包时,它将剥离封装(EAPOL/PPP/IKEv2)并将 EAP 数据分段为 253 字节的块。然后它将 EAP 数据块作为多个 EAP 消息属性插入 RADIUS 访问请求数据包。然后 NAS 会将 RADIUS 访问请求数据包发送到 RADIUS 服务器。
RADIUS 服务器使用 EAP-Message 属性的存在作为它应该执行 EAP 身份验证的指示,就像它使用 User-Password 作为它应该执行 PAP 的提示和 CHAP-password 作为它应该执行 CHAP 的提示一样。
RADIUS 服务器将按照接收到的顺序连接 EAP 消息属性(这就是为什么代理不重新排序 EAP 消息属性很重要的原因)并将连接的数据传递给初始化 EAP 状态机的代码。
然后,EAP 代码将制定其响应并将其编码为 EAP 数据包,将该数据包拆分为 EAP 消息属性,并将这些属性在 RADIUS 访问挑战数据包中发送回 NAS。
State 属性也将在挑战中发送。该状态属性将包含在 NAS 的下一个访问请求中。state 属性允许 RADIUS 服务器在多轮访问请求/访问挑战之间恢复 EAP 身份验证状态。它通常用作进入正在进行的 EAP 会话存储的密钥。
当 NAS 收到 Access-Challenge 后,它会重新组装 EAP-Message 属性,将 EAP 数据封装在 EAPOL/PPP/IKEv2 中,并将封装后的数据发送回请求方。
多轮访问请求/访问挑战交换发生在 NAS 充当翻译器的情况下。
当 RADIUS 服务器有足够的信息来决定接受或拒绝用户时,它将发回包含 EAP-Success/EAP-Failure 的 EAP-Message。RADIUS 服务器将在 Access-Accept 或 Accept-Reject 数据包中将此 EAP-Message 发送回 NAS。RFC3579要求 EAP-Successes 在 Access-Accept 数据包中返回,EAP-Failures 在 Access-Reject 数据包中返回。
当需要向 NAS 和请求者分发密钥材料时,NAS 的密钥材料在 Access-Accept 中包含的 MS-MPPE-Recv-Key 和 MS-MPPE-Send-Key RADIUS 属性中提供。在 EAP 方法的进展过程中,请求者将收到(或导出)相同的密钥材料。此密钥材料的派生方式因 EAP 方法而异。
当一个 Access-Accept 数据包被发送时,通常会包含告诉 NAS 如何配置会话的属性。对于 802.1X/无线环境,返回给 NAS 的常见属性是 Session-Timeout,它设置会话时间的最大限制,以及 Tunnel-Private-Group-ID 等 ( RFC4675 ),它为会话指定未标记的 VLAN。
总之,RADIUS 可以看作是一种传输和控制(对于 NAS)协议,而 EAP 可以看作是在 RADIUS 之上运行的实际身份验证/授权协议。
希望这可以帮助!