扩展认证协议
此条目没有列出任何参考或来源。 (2022年9月2日) |
此条目翻译品质不佳。 (2018年12月16日) |
可扩展身份验证协议(英语:Extensible Authentication Protocol,缩写为 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。思科通过允许其他厂家生产基于 EAP 的项目来保护该协议。在任何的 Windows 操作系统中不支持 LEAP,但 LEAP 被第三方的用户软件支持。该协议由于其如同 EAP-MD5 容易受到字典攻击的脆弱性,而在一开始便广为人知。但直到 2003 年 Joshua Wright 发表了 ASLEAP 以后,人们才开始讨论 LEAP 存在严重的安全问题。思科仍然认为如果使用十分复杂的密码,LEAP 是安全的。但是在现实世界中人们几乎不使用十分复杂的密码,因为这对普通人来将是一件非常困难的事情。新的协议,诸如 EAP-TTLS 和 PEAP 则没有这些问题,因为他们给 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)是一个由思科提出的协议方案,用于替代轻量级 EAP(LEAP)。设计该协议是为了解决 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 中。