症状
将 Windows 10 11 月更新应用到设备后,无法连接到使用证书进行服务器端或相互身份验证 (EAP TLS、PEAP、TTLS) 的 WPA-2 企业网络。
原因
在 Windows 10 的 11 月更新中,EAP 已更新为支持 TLS 1.2。 这意味着,如果服务器在 TLS 协商期间播发了对 TLS 1.2 的支持,则将使用 TLS 1.2。
我们有报告称,某些 Radius 服务器实现遇到 TLS 1.2 错误。 在此 bug 方案中,EAP 身份验证成功,但 MPPE 密钥计算失败,因为使用了不正确的 PRF (伪随机函数) 。
已知受影响的 Radius 服务器
注意:此信息基于研究和合作伙伴报告。 我们将在获得更多数据后添加更多详细信息。
| 服务器 | 其他信息 | 修复可用 |
|---|---|---|
| FreeRADIUS 2.x | 2.2.6 适用于所有基于 TLS 的方法,2.2.6 - 2.2.8 适用于 TTLS | 是 |
| FreeRADIUS 3.x | 3.0.7 适用于所有基于 TLS 的方法,3.0.7-3.0.9 适用于 TTLS | 是 |
| 散热器 | 4.14(与 Net::SSLeay 1.52 或更低版本一起使用时) | 是 |
| Aruba ClearPass 策略管理器 | 6.5.1 | 是 |
| 脉冲策略安全 | https://kb.pulsesecure.net/articles/Pulse_Secure_Article/KB40089 | 被测修复 |
| Cisco 标识服务引擎 2.x | 2.0.0.306 修补程序 1 | 被测修复 |
解决方法
建议的修复程序
与 IT 管理员协作,将 Radius 服务器更新到包含修补程序的适当版本。
适用于已应用 11 月更新的基于 Windows 的计算机的临时解决方法
请注意,Microsoft 建议在支持TLS 1.2 的情况下将其用于 EAP 身份验证。 尽管 TLS 1.0 中的所有已知问题都有可用的修补程序,但我们认识到 TLS 1.0 是一个较旧的标准,已被证明容易受到攻击。
若要配置 EAP 默认使用的 TLS 版本,必须将名为 TlsVersion 的 DWORD 值添加到以下注册表子项中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\PPP\EAP\13
此注册表项的值可以是 0xC0、0x300 或 0xC00。
便笺
- 此注册表项仅适用于 EAP、TLS 和 PEAP;它不影响 TTLS 行为。
- 如果 EAP 客户端和 EAP 服务器配置错误,导致没有通用配置的 TLS 版本,则身份验证将失败,用户可能会失去网络连接。 因此,我们建议仅 IT 管理员应用这些设置,并在部署之前测试这些设置。 但是,如果服务器支持相应的 TLS 版本,则用户可以手动配置 TLS 版本号。
重要:本节、方法或任务包含如何修改注册表的步骤。 但如果注册表修改不当,可能造成严重问题。 因此,请务必仔细遵循以下步骤。 为增强保护,请在修改前备份注册表。 如果出现问题,可以还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
要添加这些注册表值,请按照下列步骤操作:
依次单击“开始”、“运行”,在“打开”框中键入“regedit”,然后单击“确定”。
在注册表中找到并单击以下子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\PPP\EAP\13
在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。
键入 TlsVersion 作为 DWORD 值的名称,然后按 Enter。
右键单击 TlsVersion,然后单击“修改”。
在“值数据”框中,为各种版本的 TLS 使用以下值,然后单击“确定”。
TLS 版本 DWORD 值 TLS 1.0 0xC0 TLS 1.1 0x300 TLS 1.2 0xC00 退出注册表编辑器,然后重启计算机或重启 EapHost 服务。
详细信息
相关文档:
Microsoft 安全通报:适用于启用使用 TLS 的 Microsoft EAP 实现的更新:2014 年 10 月 14 日
https://support.microsoft.com/en-us/kb/2977292