网络专家Windows 中的 EAPHost

Joseph Davies

本专栏中有关 Windows Server“Longhorn”的预发布信息可能会有所变动。

当访问客户端连接到受保护的网络时,客户端必须使用协商的身份验证方法向身份验证服务器进行验证。例如,访问客户端和身份验证服务器可能协商使用特定的密码身份验证协议,例如第二版 Microsoft 质询握手身份验证协议

(MS-CHAP v2)。但是,如果访问客户端和身份验证服务器使用内置的硬编码身份验证方法,则难以添加新协议。

可扩展的身份验证协议 (EAP) 是一种体系结构框架,它为常用受保护的网络访问技术(如基于 IEEE 802.1X 的无线网络)和点对点协议 (PPP) 连接(如拨号连接和 VPN 连接)提供可扩展的身份验证方法。EAP 不同于 MS-CHAP v2 身份验证方法,它是基于访问客户端和身份验证服务器的体系结构框架,它允许网络供应商开发并轻松安装称为 EAP 方法的新身份验证方法。有关 EAP 的更多背景信息,请访问 Microsoft EAP 网页,网址是:microsoft.com/eap。

尽管自 Windows 2000 起 Microsoft® Windows® 就支持 EAP,但 Windows XP 和 Windows Server® 2003 中的 EAP 体系结构对于 EAP 方法和请求方(可以在特定类型的链路层上使用 EAP 的软件组件)还是存在扩展限制。Windows Vista™ 和代号为“Longhorn”的下一版 Windows Server 中的 EAPHost 体系结构解决了这些限制,使第三方网络供应商可以为新的请求方和 EAP 方法更轻松地扩展 Windows。

Windows Server 2003 和 Windows XP 中的 EAP 支持

Windows Server 2003 和 Windows XP 将 EAP 用于以下连接:使用 802.1X 进行身份验证的无线或有线连接,以及基于 PPP 的连接(如基于拨号或 VPN 的远程访问或者站点对站点的连接)。具体来说,这些操作系统包含符合 RFC 2284 的 EAP 实现,并包含 IEEE 802.1X 和 PPP 请求方。图 1 显示了 Windows XP 和 Windows Server 2003 的 EAP 和请求方体系结构。但是,请注意,在 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 SP1 中的 EAP 实现都不支持 RFC 3748(用于 EAP 的最新 Internet 标准)和其他 EAP RFC。

图 1 Windows XP 和 Windows Server 2003 的 EAP 及请求方体系结构

图 1** Windows XP 和 Windows Server 2003 的 EAP 及请求方体系结构 **

EAP API 提供了在 Windows XP 和 Windows Server 2003 中扩展身份验证的方法。尽管第三方供应商可以开发和安装新的 EAP 方法,但内置的 PPP 和 802.1X 请求方并不能使用所有安装的 EAP 方法。例如,供应商可以创建新的具有指纹扫描功能的 EAP 身份验证方法,但是该方法可能不能用于无线连接。

由于内置请求方的限制,某些第三方软件和硬件供应商开发他们自己的请求方时,通常需要替换和禁用内置的请求方和整个 EAP 体系结构。但是,这种替换方法存在几个问题。首先,替换内置请求方和 EAP 体系结构会增加开发成本并导致开发延迟。此外,如果企业客户不开发自己的请求方,则可能会增加授权和安装第三方产品而带来的每客户成本。

EAPHost 功能

EAPHost 提供以下新功能:

支持其他 EAP 方法。 EAPHost 将支持 www.iana.org/assignments/eap-numbers 上的 EAP 注册表中列出的所有 EAP 方法的安装和使用,以及其他流行的身份验证方法,例如由 Cisco Systems, Inc. 开发提供的 Lightweight EAP (LEAP)(轻型 EAP (LEAP))。

网络发现。 EAPHost 支持 RFC 4284 中所定义的网络发现。

符合 RFC 3748。 EAPHost 符合 EAP 状态机,并解决了 RFC 3748 中指定的众多安全漏洞。而在以前,请求方必须实现自己的状态机。此外,EAPHost 还支持“扩展的 EAP 类型”等功能(包括特定于供应商的 EAP 方法)。

EAP 方法共存。 EAPHost 允许同一个 EAP 方法的多个实现共存。例如,可以同时安装和选择 Microsoft 版本的 Protected EAP(受保护的 EAP,PEAP)和 Cisco Systems, Inc. 版本的 PEAP。

模块化请求方体系结构。 EAPHost 支持模块化请求方体系结构。在该体系结构中,可以轻松地添加新的请求方,而不必像早期版本中那样替换整个 EAP 实现。

对于 EAP 方法供应商,EAPHost 支持针对 Windows XP 和 Windows Server 2003 开发的 EAP 方法,并提供一种更为简单的方法,用以为 Windows Vista 和 Windows Server“Longhorn”开发新的 EAP 方法。EAPHost 还可以更好地对 EAP 类型进行分类,从而可供内置的 IEEE 802.1X 请求方使用。

对于请求方供应商,EAPHost 支持新链路层的其他请求方。由于 EAPHost 与网络访问保护 (NAP) 相集成,因此新的请求方不必具备识别 NAP 的功能。为了加入 NAP,新的请求方只需注册一个连接标识符和一个通知请求方重新进行身份验证的回调函数。有关 NAP 的详细信息,请参阅本期《TechNet 杂志》**中 John Morello 撰写的“安全观察”专栏,以及 NAP 网页 microsoft.com/nap。有关如何开发 EAP 方法或 EAPHost 请求方的详细信息,请参阅“可扩展的身份验证协议 (EAP) 宿主”,网址是 msdn2.microsoft.com/aa364249.aspx。

EAPHost 和 EAP 基础体系结构

EAPHost 体系结构包括:EAPHost 的 EAP 基础体系结构、EAP 对等方(身份验证客户端)上的 EAPHost 体系结构,以及身份验证服务器上的 EAPHost 体系结构。图 2 显示了在运行 Windows Vista 或 Windows Server“Longhorn”的计算机上,EAPHost 的 EAP 基础体系结构的组件。在这些操作系统上,EAP 对等方包含:一个请求方层(如 802.1X 的内置请求方),用于 EAP 对等方的新 EAPHost 体系结构(便于请求方和 EAP 方法的通信和管理),一个执行身份验证的 EAP 方法层。

图 2 EAPHost 的 EAP 基础体系结构

图 2** EAPHost 的 EAP 基础体系结构 **(单击该图像获得较大视图)

Windows Server“Longhorn”的身份验证服务器包含:网络策略服务器 (NPS),用于身份验证服务器的新的 EAPHost 体系结构,以及一个 EAP 方法层。在 Windows Server 2003 中,NPS 被称为 Internet 验证服务 (IAS),它是一个远程身份验证拨入用户服务 (RADIUS) 服务器和代理,也是 NAP 的策略服务器。

EAP 对等方中的请求方使用链路层技术(如 PPP 或 802.1X)在 EAP 对等方与传递验证器(如无线接入点或远程访问服务器等网络访问服务器)之间的链路上发送和接收 EAP 消息。在身份验证服务器上,传递验证器和 NPS 使用 RADIUS 在传递验证器与 NPS 之间,在基于 IP 的网络上发送和接收 EAP 消息。

在 EAP 对等方和身份验证服务器协商使用特定的 EAP 方法后,逻辑通信则包含在 EAP 对等方上协商的 EAP 方法与身份验证服务器之间发送的 EAP 消息。

图 3 显示了运行 Windows Vista 或 Windows Server“Longhorn”的 EAP 对等方上的 EAPHost 体系结构。该体系结构包含请求方、EAPHost 组件、EAP 方法管理组件和 NAP 组件。

图 3 EAP 对等方上的 EAPHost 体系结构

图 3** EAP 对等方上的 EAPHost 体系结构 **(单击该图像获得较大视图)

Windows Vista 和 Windows Server“Longhorn”包括针对基于 802.1X 的无线和有线连接的 802.1X 请求方。目前正在对用于基于拨号或 VPN 的远程访问、或者站点对站点连接的 PPP 请求方进行研究,以便将来更新这两个操作系统。此外,还可以添加由第三方开发的其他请求方。EAPHost API 允许请求方使用 EAP 进行连接。有关详细信息,请参阅 msdn2.microsoft.com/aa364249.aspx 上的相关文章。

EAPHost 组件包括 EAP 客户端状态机/协议验证器,用于维护 EAP 对等方状态机(请参阅 RFC 3748)和验证 EAP 消息。此外,还包括 EAP 方法管理器,用于管理各种 EAP 方法(无论是否与 EAPHost 兼容),使 EAP 方法可供应用程序和服务使用。最后,还包括 EAP 库管理器,以便于加载和卸载 EAP 方法库。

EAP 方法组件包括:

内置 EAP 方法。 其中包括 PEAP、EAP 传输层安全性 (TLS) 和 EAP-MS-CHAP-V2。

两个宿主 API。 它们承载非 EAPHost 兼容的 EAP 方法(原有 EAP API)和第三方的 EAPHost 兼容的 EAP 方法(EAPHost 方法 API)。

原有转换器方法。 用于在非 EAPHost 兼容的 EAP 方法(写入到原有 EAP API)与 EAPHost 方法 API 之间进行转换。

EAP 方法代理管理器 . 用于承载第三方 EAP 方法(无论它们是否与 EAPHost 兼容)。

EAP 方法 API 是新的 API,用于 EAPHost 兼容的 EAP 方法。EAP 方法导出 EAP 方法 API 中定义的 API。EAPHost 加载 EAP 方法并调用导出的 API 函数。

NAP 组件包括以下各项:

EAP NAP EC Messenger . 该组件可以促进 NAP 相关数据的通信,例如在 EAPHost NAP 强制客户端 (EC) 与 EAPHost 其他组件之间的运行状况和事件声明。

EAPHost NAP EC . 该组件与其他 NAP 组件进行交互,以提供运行状况验证,并在 802.1X 身份验证的连接不符合 NAP 系统运行状况要求时进行强制限制访问。

NAP 代理。 该组件维护客户端当前运行状况,并促进安装的 NAP EC 与系统运行状况代理 (SHA) 层之间进行通信。每个 SHA 都可以针对一个或多个系统运行状况要求进行定义。

图 3 所示,第三方供应商可以开发新的请求方和新的 EAPHost 兼容的 EAP 方法。您也可以使用为 Windows Server 2003 或 Windows XP 开发的现有 EAP 方法。

图 4 显示了运行 Windows Server“Longhorn”和 NPS 的身份验证服务器上的 EAPHost 体系结构。 该体系结构与支持 EAP 方法的 EAP 对等方的体系结构相同。 不必通过请求方,该身份验证服务器通过 NPS 用 EAPHost API 来使用和配置 EAP 方法。在 EAP 组件内,EAP 服务器状态机/协议验证器执行以下任务:维护 EAP 身份验证服务器状态机,并验证传入的 EAP 消息。

图 4 身份验证服务器上的 EAPHost 体系结构

图 4** 身份验证服务器上的 EAPHost 体系结构 **(单击该图像获得较大视图)

身份验证服务器上的 EAPHost 允许第三方软件供应商开发和安装新的 EAPHost 兼容的 EAP 方法,并支持已针对 Windows XP 和 Windows Server 2003 开发的 EAP 方法。

对于 EAP 对等方和身份验证服务器,EAPHost 还提供了 EAPHost UI 代理 API(图 3 和图 4 中未显示),EAPHost 兼容的方法可将其用于显示需要用户交互的对话框。EAPHost UI 代理 API 允许第三方供应商添加自己的对话框,来提供更加完美的用户体验。

总结

Windows Server“Longhorn”和 Windows Vista 中的 EAPHost 将 Windows 中的 EAP 实现按最新 Internet 标准进行了更新,并提供了新的模块化体系结构,以便用 EAP 身份验证方法和请求方来扩展 Windows。网络供应商通过开发新请求方(写入 EAPHost API)和新身份验证方法(写入 EAPHost 方法 API),而无需替换整个 Windows EAP 实现即可扩展 Windows 中的现有用户体验。EAPHost 还支持为 Windows Server 2003 和 Windows XP 开发的现有 EAP 方法。

针对 Windows XP 的 EAPHost

Microsoft 计划针对 Windows XP SP2 发布一个更新,它将包含 EAPHost 体系结构和一个用于有线 802.1X 连接的基于 EAPHost 的请求方,并支持 RFC 3748。通过这一更新,针对 Windows Vista 开发的 EAPHost 请求方也可以在 Windows XP SP2 上运行。有关此更新的最新信息,请参阅 NAP 产品团队博客,网址是:blogs.technet.com/nap

Joseph Davies是 Microsoft 的技术撰稿人,自 1992 年以来就一直从事有关 Windows 网络主题方面的培训和编撰工作,在 Microsoft Press 出版了 5 本著作,是 TechNet 网络专家专栏月刊的作者。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.