扩展认证协议

可扩展身份验证协议（，縮寫為 EAP），是一个在无线网络或点对点协议中普遍使用的认证框架。它被定义在 RFC 3748 中，并且取代了旧版协议 RFC 2284，后来被新版协议 RFC 5247 取代。EAP 不仅可以用于无线局域网，還可以用于有线局域网，但它在无线局域网中使用的更频繁。最近，WPA 和 WPA2 标准已经正式采纳了 5 类 EAP 作为正式的认证机制。

EAP 是一个认证框架，不是一个特殊的认证机制。EAP 提供一些公共的功能，并且允许协商所希望的认证机制。这些机制被叫做 EAP 方法，现在大约有 40 种不同的方法。IETF 的 RFC 中定义的方法包括：EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM 和 EAP-AKA，还包括一些厂商提供的方法和新的建议。无线网络中常用的方法包括 EAP-TLS、EAP-SIM、EAP-AKA、PEAP、LEAP 和 EAP-TTLS。

当 EAP 被基于 IEEE 802.1X 的网络接入设备（诸如 802.11a/b/g，无线接入点）调用时，现代的 EAP 方法可以提供一个安全认证机制，并且在用户和网络接入服务器之间协商一个安全的 PMK。该 PMK 可以用于使用 TKIP 和 AES 加密的无线会话。

 轻量级 EAP（Lightweight Extensible Authentication Protocol, LEAP） 
，是一个由思科私人拥有的 EAP。思科通过允许其他厂家生产基于 EAP 的项目来保护该协议。在任何的 Windows 操作系统中不支持 LEAP，但 LEAP 被第三方的用户软件支持。该协议由于其如同 EAP-MD5 容易受到字典攻击的脆弱性，而在一开始便广为人知。但直到 2003 年 Joshua Wright 发表了 ASLEAP 以后，人们才开始讨论 LEAP 存在严重的安全问题。思科仍然认为如果使用十分复杂的密码，LEAP 是安全的。但是在现实世界中人们几乎不使用十分复杂的密码，因为这对普通人来将是一件非常困难的事情。新的协议，诸如 EAP-TTLS 和  则没有这些问题，因为他们给 MSCHAPv2 用户认证会话建立了一个安全的传输层安全（TLS）通道，而且可以运行在使用思科设备和不使用思科设备的接入点上。

 EAP-TLS 
EAP-TLS 是 IETF 的一个开放标准，并且在无线厂商之间得到很好的支持。它能够提供很好的安全保证。因为 TLS 被认为是 SSL 的继承者。它使用 PKI 来保护 RADIUS 认证服务器的通信，这是很难完成的任务。所以即使 EAP-TLS 良好的安全，用户端在认证时的负载成为它的致命伤。
EAP-TLS 是无线局域网 EAP 的原始版本，虽然它因为配置困难而很少被使用，但它仍被认为是最安全的 EAP 标准之一，而且广泛地被无线局域网硬件和软件制造厂商，包括微软所支持。要求用户方给出证书，虽然不是很流行，但是 EAP-TLS 在认证方面的长处，而且既方便又安全。一个脆弱的密码不会导致入侵基于 EAP-TLS 的系统，因为攻击者仍然需要用户端的证书。当用户端的证书是储存在智能卡中时，EAP-TLS 提供了最安全的认证解决方案，因为如果不窃取智能卡是无法得到客户端证书的。如果将智能卡偷窃的话则会立刻引起注意并且更换新卡。到 2005 年 4 月，EAP-TLS 是唯一厂商需要保证的 WPA 和 WPA2 的 EAP 类型。在微软、思科、蘋果 和 Linux 中都有实现客户端和服务器端的源代码。EAP-TLS 在 MAC OS 10.3 及以上、Windows 2000 SP4、Windows XP、Windows Mobile 2003 及以上，和 Windows CE 4.2 中被支持。

 EAP-MD5 
EAP-MD5 是另一个 IETF 开放标准，但提供最少的安全。MD5 Hash 函数容易受到字典攻击，它被使用在不支持动态 WEP 的 EAP 中。

 EAP-FAST 
EAP-FAST（基于安全隧道的灵活认证，Flexible Authentication via Secure Tunneling）是一个由思科提出的协议方案，用于替代。设计该协议是为了解决 LEAP 实现“轻量级”时的缺点。在 EAP-FAST 中使用服务器证书是可选的。EAP-FAST 使用一个保护访问凭证（Protected Access Credential，PAC）来建立 TLS 隧道，并通过该隧道对客户端证书进行验证。EAP-FAST 拥有三个阶段。 阶段 0 是一个可选的阶段，在该阶段 PAC 可以是手工或者动态设置，但超出了 RFC 4851 中定义的 EAP-FAST 的范围。

尽管 PAC 设置存在着许多实现，但是官方的实现依然在进行状态。PAC 典型地只需要为 RADIUS 服务器和客户端设置一次。 在阶段 1 中，客户端和 AAA 服务器使用 PAC 来建立 TLS 隧道。 在阶段 2 中，客户端证书在该加密的隧道中进行传输。当自动 PAC 设置开启之后，EAP-FAST 拥有一个小漏洞。攻击者可以拦截该 PAC 并随后使用它来获得用户证书。该漏洞可以通过手动配置 PAC 或者在 PAC 配置阶段使用服务器证书来解决。

还有一个漏洞：黑客的 AP 可以使用同一个 SSID，拒绝用户 PAC 并提供新的 PAC。大多数恳求将会被设置来使得用户接收它。如果用户不这样做，那么用户将使用内部方法发送他的证书给黑客。而黑客将会获得明文的密码（EAP-FAST w/GTC）或者易受字典攻击的 MSCHAPv2 散列。值得一提的是，PAC 文件的发放时基于每个用户的。这是 RFC 4851 第 7.4.4 节中的要求，因此如果一个新的用户从设备进入网络，他首先需要一个新的已配置的 PAC 文件。这是为什么很难不以非安全匿名设置模式运行 EAP-FAST 的原因。另一种方式是使用设备密码来替代，但这就不是在网络中对用户进行认证了。

EAP-FAST 可以不使用 PAC 文件，则为普通的 TLS。

 EAP-TTLS 
EAP-TTLS 是由 Funk Software 和 Certicom 合作开发的。它目前是 IETF 的开放标准草案。它可跨平台支持，提供非常优秀的安全，并且在认证服务器上使用 PKI 证书。
TTLS 与 TLS 最大的区别是 TTLS 不需要客户端认证的协议。

 PEAP 
PEAP 由思科，微软和 RSA Security 联合提出的开放标准的建议。它早已被运用在产品中，而且提供很好的安全。它在设计上和 EAP-TTLS 相似，只需要一份服务器端的 PKI 证书来建立一个安全的传输层安全通道（TLS）以保护用户认证。
到 2005 年 5 月，已有两个 PEAP 的子类型被 WPA 和 WPA2 标准批准。它们是：
 PEAPv0/EAP-MSCHAPv2 
 PEAPv1/EAP-GTC

 EAP-AKA 
EAP-AKA（EAP for UMTS Authentication and Key Agreement）是用来在使用 USIM 接入 UMTS 移动通信网络时进行用户认证和密钥协商的方案。EAP-AKA 定义于 RFC 4187 中。

Category:加密协议
Category:无线网络