受保护的可扩展身份验证协议 (PEAP) 是可扩展身份验证协议 (EAP) 协议的一部分。
PEAP 使用传输层安全性 (TLS) 在进行身份验证的 PEAP 客户端(如无线计算机)与 PEAP 身份验证器(如运行网络策略服务器 (NPS) 的服务器或其他远程身份验证拨入用户服务 (RADIUS) 服务器)之间创建加密通道。
PEAP 和 NPS
PEAP 不指定身份验证方法,但可以为其他 EAP 身份验证协议(如可扩展身份验证协议-Microsoft 质询握手身份验证协议版本 2 (EAP-MSCHAP v2))提供更高的安全性,可以通过 PEAP 提供的 TLS 加密通道进行操作。PEAP 是“访问客户端”通过以下类型的网络访问服务器连接到组织网络的一种身份验证方法:
-
802.1X 无线访问点
-
802.1X 身份验证交换机
-
运行 Windows Server(R) 2008 或 Windows Server(R) 2008 R2 以及路由和远程访问服务的虚拟专用网 (VPN) 服务器
-
运行 Windows Server 2008 和终端服务网关(TS 网关)或 Windows Server(R) 2008 R2 和远程桌面网关(RD 网关)的计算机。
为了增强 EAP 协议并提高网络安全性,PEAP 提供:
-
对在客户端与服务器之间进行的 EAP 方法协商提供保护的 TLS 通道。该 TLS 通道有助于避免攻击者在客户端与网络访问服务器之间插入数据包,导致不太安全的 EAP 类型的协商。加密的 TLS 通道还有助于避免对 NPS 服务器的拒绝服务攻击。
-
支持消息的分段和重组,以便使用不提供此功能的 EAP 类型。
-
可以对 NPS 服务器或其他 RADIUS 服务器进行身份验证的客户端。由于服务器也对客户端进行身份验证,因此会发生相互身份验证。
-
在 EAP 客户端对 NPS 服务器提供的证书进行身份验证时,禁止部署未经过授权的无线访问点。此外,PEAP 身份验证器和客户端所创建的 TLS 主密钥也不会与访问点共享。因此,访问点无法解密受 PEAP 保护的消息。
-
PEAP 快速重新连接功能,这样会减少客户端发出身份验证请求和 NPS 或其他 RADIUS 服务器做出响应之间的延迟。PEAP 快速重新连接还允许无线客户端在配置为到相同 RADIUS 服务器的 RADIUS 客户端的访问点之间移动,而不会重复请求身份验证。这样可以降低客户端和服务器的资源要求,并可以最大程度地减少提示用户提供凭据的次数。
下表列出了 PEAP-MS-CHAP v2 的优势并将其与 MS-CHAP v2 进行对比。
特性/功能 | MS-CHAP v2 | PEAP-MS-CHAP v2 |
---|---|---|
使用密码提供客户端身份验证。 |
是 |
是 |
确保服务器具有访问凭据的权限。 |
是 |
是 |
对服务器进行身份验证。 |
是 |
是 |
防止无线访问点欺骗。 |
否 |
是 |
防止未经授权的服务器协商最不安全的身份验证方法。 |
否 |
是 |
使用通过公钥生成的 TLS 密钥。 |
否 |
是 |
提供端对端加密。 |
否 |
是 |
防止词典攻击或暴力攻击。 |
否 |
是 |
防止重播攻击。 |
否 |
是 |
允许链接身份验证方法。 |
否 |
是 |
要求客户端信任服务器提供的证书。 |
否 |
是 |
PEAP 身份验证过程
在 PEAP 客户端和身份验证器之间进行 PEAP 身份验证的过程有两个阶段。第一个阶段是在 PEAP 客户端和身份验证服务器之间建立一个安全通道。第二个阶段是在 PEAP 客户端和身份验证器之间提供 EAP 身份验证。
TLS 加密通道
在 PEAP 身份验证的第一个阶段中,会在 PEAP 客户端和 NPS 服务器之间创建 TLS 通道。以下步骤演示了如何为无线 PEAP 客户端创建此 TLS 通道。
-
PEAP 客户端与配置为从 RADIUS 客户端到运行 NPS 的服务器的无线访问点相关联。基于 IEEE 802.11 的关联提供开放系统或共享密钥身份验证之后,才会在 PEAP 客户端和访问点之间创建安全关联。
-
在客户端和访问点之间成功建立基于 IEEE 802.11 的关联之后,TLS 会话会与访问点进行协商。
-
在无线 PEAP 客户端和 NPS 服务器之间成功完成计算机级别的身份验证之后,TLS 会话会在它们之间进行协商。使用在此协商的过程中所得到的密钥加密所有后续通信,包括允许用户连接到组织网络的网络访问身份验证。
经过 EAP 身份验证的通信
通过 TLS 通道完成 EAP 通信(包括 EAP 协商),这是 PEAP 身份验证的第二个阶段。以下步骤扩展上一个示例,并且演示无线客户端如何使用 PEAP 完成对 NPS 服务器的身份验证。
在 NPS 服务器和 PEAP 客户端之间创建 TLS 通道之后,客户端将凭据(用户名和密码或者用户或计算机证书)通过加密通道传递给 NPS 服务器。
访问点只在无线客户端和 RADIUS 服务器之间转发消息;访问点(或监视它的人)无法加密这些消息,因为它不是 TLS 终结点。
NPS 服务器对用户和客户端计算机的已选择用于 PEAP 的身份验证类型进行身份验证。身份验证类型可以是 EAP-TLS(智能卡或其他证书)或 EAP-MS-CHAP v2(安全密码)。
注意 | |
可以在 NPS 网络策略中将 PEAP 配置为身份验证方法。 |
EAP 类型
可以在两种 EAP 类型(也称为“身份验证类型”)之间进行选择,以便与 PEAP 一起使用:EAP-MS-CHAP v2 或 EAP-TLS。EAP-MS-CHAP v2 使用基于密码的凭据(用户名和密码)进行用户身份验证,使用服务器计算机证书存储中的证书进行服务器身份验证。EAP-TLS 使用安装在客户端计算机证书存储中的证书或智能卡进行用户和客户端计算机身份验证,使用服务器计算机证书存储中的证书进行服务器身份验证。
带有 EAP-MS-CHAP v2 的 PEAP
带有 EAP-MS-CHAPv2 的 PEAP (PEAP-MS-CHAP v2) 比 EAP-TLS 容易部署,因为它使用基于密码的凭据(用户名和密码)完成用户身份验证,而不是使用证书或智能卡。只要求 NPS 服务器或其他 RADIUS 服务器具有证书。在身份验证的过程中,NPS 服务器使用 NPS 服务器证书向 PEAP 客户端证明其身份。
成功的 PEAP-MS-CHAP v2 身份验证要求客户端在检查服务器证书之后信任 NPS 服务器。若要使客户端信任 NPS 服务器,颁发服务器证书的证书颁发机构 (CA) 必须在客户端计算机上的“受信任的根证书颁发机构”证书存储中具有其自己的不同证书。
NPS 使用的服务器证书可以由组织的受信任的根 CA 或公共 CA(如已受客户端计算机信任的 VeriSign 或 Thawte)颁发。
注意 | |
PEAP-MS-CHAP v2 通过提供借助 TLS 生成的密钥,并且通过使用相互身份验证比 MS-CHAP v2 提供更高的安全性,它可以防止未经授权的服务器与 PEAP 客户端协商最不安全的身份验证方法。 |
带有 EAP-TLS 的 PEAP
借助 Active Directory 证书服务 (AD CS) 部署公钥基础结构 (PKI) 时,可以使用带有 EAP-TLS 的 PEAP (PEAP-TLS)。证书提供的身份验证方法比使用基于密码的凭据方法更强大。PEAP-TLS 使用证书进行服务器身份验证,使用包含嵌入证书的智能卡或向客户端计算机注册并且存储在本地计算机的证书存储中的证书进行用户和客户端身份验证。若要使用 PEAP-TLS,必须部署 PKI。
PEAP 快速重新连接
PEAP 快速重新连接使无线客户端可以在同一网络上的无线访问点之间进行移动,而不需要每次它们与新的访问点关联时重新进行身份验证。
将无线访问点配置为到 RADIUS 服务器的 RADIUS 客户端。如果无线客户端在配置为到同一 RADIUS 服务器的客户端的访问点之间漫游,则每次新关联时不需要对客户端进行身份验证。当客户端移动到配置为到不同 RADIUS 服务器的 RADIUS 客户端的访问点时,尽管对客户端重新进行身份验证,但是这个过程也会更高效更快捷。
PEAP 快速重新连接减少了客户端和身份验证器之间身份验证的响应时间,因为身份验证请求是从新的访问点转发到最初对客户端连接请求执行身份验证和授权的 NPS 服务器。由于 PEAP 客户端和 NPS 服务器以前都使用缓存 TLS 连接属性(名为“TLS 句柄”的集合),因此 NPS 服务器可以快速确定客户端连接为重新连接。
客户端可以为多个 PEAP 身份验证器缓存 TLS 句柄。如果最初的 NPS 服务器不可用,则必须在客户端和新的身份验证器之间进行完全身份验证。新的 PEAP 身份验证器的 TLS 句柄由客户端进行缓存。对于智能卡或 PEAP-MS-CHAP v2 身份验证,会要求用户分别提供 PIN 或凭据。
对于 PEAP-MS-CHAP v2 身份验证:
当新的访问点是到同一 RADIUS 服务器的客户端时 | 当新的访问点是到新的 RADIUS 服务器的客户端时 |
---|---|
每次客户端计算机与新的访问点关联时,不提示用户提供凭据。 |
在初始关联时提示用户提供凭据。下次客户端计算机与到该服务器的客户端的访问点关联时,不需要提供用户凭据。 |
不需要 RADIUS 服务器提供证书。 |
在初始关联时,RADIUS 服务器提供证书,以便无线客户端可以对 RADIUS 服务器进行身份验证。下次客户端计算机与到该服务器的客户端的访问点关联时,不需要对服务器重新进行身份验证。 |
对于 PEAP-TLS 身份验证:
当新的访问点是到同一 RADIUS 服务器的客户端时 | 当新的访问点是到新的 RADIUS 服务器的客户端时 |
---|---|
不需要客户端和服务器交换证书。 |
在初始关联时,客户端和服务器交换证书。下次客户端计算机与到该服务器的客户端的访问点关联时,不需要交换证书。 |
每次客户端计算机与新的访问点关联时,不提示用户提供智能卡个人标识号 (PIN)。 |
在初始关联时,提示用户提供智能卡 PIN。下次客户端计算机与到该服务器的客户端的访问点关联时,不提示用户提供 PIN。 |
若要启用 PEAP 快速重新连接:
-
PEAP 客户端(802.11 无线客户端)和 PEAP 身份验证器(RADIUS 服务器)必须已启用快速重新连接。
-
PEAP 客户端漫游的所有访问点都必须配置为到 RADIUS 服务器(PEAP 身份验证器)的 RADIUS 客户端,为此将 PEAP 配置为无线连接的身份验证方法。
-
与 PEAP 客户端关联的所有访问点都必须配置为首选同一 RADIUS 服务器(PEAP 身份验证器),以避免提示提供每个 RADIUS 服务器的凭据。如果无法将访问点配置为首选 RADIUS 服务器,则可以用首选的 RADIUS 服务器配置 NPS RADIUS 代理。
其他信息
-
PEAP 不支持来宾身份验证。
-
同时部署 PEAP 和不受 PEAP 保护的 EAP 时,请不要对带有 PEAP 和不带有 PEAP 的 EAP 使用相同的 EAP 身份验证类型。例如,如果部署 PEAP-TLS,请不要同时部署不带有 PEAP 的 EAP-TLS。使用相同的类型部署身份验证方法会产生安全漏洞。