我一直在处理在安装新操作系统后仍存在的 VPN 错误,因此似乎与 PC 正在接收的 Windows 11 更新有关。它是具有本机 Windows 客户端的仅 IKEv2 VPN。在使用 Microsoft 工具制作的可启动媒体安装新的 Windows 11 Pro 后,VPN 可以正常工作。但是,最终在计算机更新后,它将始终无法连接。根据服务器日志,这是因为出于未知原因,Windows 开始忽略 VPN 连接配置或无法使用正确的算法来验证证书存储中的 RSA 根证书,该证书用作此 VPN 的身份验证。使用 PowerShell 始终将连接设置为使用 SHA256 进行哈希处理,并且 Windows 证书存储报告与根证书的签名哈希算法相同。但是,当错误开始时,Windows 会3072-bit RSA PKCS1 with SHA1
向服务器提供,但由于不安全而被拒绝并在服务器端禁用。
我尝试了几种方法试图强制 PC 在协商中永远不使用 SHA1,包括:
使用
Disable-TlsCipherSuite
PowerShell 中的 cmdlet 禁用所有使用 SHA1 哈希的集合在 Schannel 的注册表项中禁用 SHA1 (
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA\Enabled=0
)使用 PowerShell 将 IPsec 主模式策略添加到活动存储中,并使用默认的硬编码策略指定 VPN 客户端似乎正在回退到的 SHA1
使用组策略覆盖 TLS 密码套件顺序
强化 RemoteAccess 设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters\NegotiateDH2048_AES256=1
(这通常会给出与我收到的错误消息不同的错误消息,“策略匹配错误”,而我的是“错误处理有效负载”)使用以下方法对网络、winsock 等进行各种重置和缓存清除:
netsh
通过使用设备管理器卸载 WAN 微型端口适配器来强制重新初始化它们 - 添加到
AssumeUDPEncapsulationContextOnSendRule=2
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\PolicyAgent
尽管这可能只会影响 L2TP/IPsec 连接,并且我的服务器不在 NAT 后面)
我认为这可能与 Windows 更新中新 Credential Guard 的实施有关,因为我收到的有关 Credential Guard 的安全中心消息和事件日志警告中提到了错误签名的 LSA 包,与 Microsoft 提到的错误相同。我尝试按照建议通过添加到禁用 Credential Guard LsaCfgFlags
(HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DeviceGuard
Microsoft 自己的建议,他们似乎在文档中半承认 CG 可能会破坏某些功能),但这没有效果,安全中心报告 Credential Guard 仍处于启用状态。Microsoft 还建议完全禁用基于虚拟化的安全性,但出于安全原因我真的不想完全这样做。
任何帮助都将不胜感激,因为我不希望在服务器端启用 SHA1 作为可接受的密码,因为它非常老旧,容易受到碰撞攻击,并且已被包括微软在内的许多人弃用。我更喜欢本机 VPN 客户端的速度和易用性,但如果我无法解决这个问题,我将不得不切换到第三方 VPN 解决方案。我在 Microsoft Learn Q&A 上发布了此内容,几分钟后就因“违反社区准则”而被删除。他们似乎没有分享这些准则是什么。所以我把这个非常有争议的长篇大论带到了这里。抛开所有玩笑不谈,我确实碰巧发现一个 VPN 客户端在没有任何警告的情况下随机降低其提案的级别,这对我来说非常严重。我仍然无法让我的 Windows 安全系统停止说 Credential Guard 已通过组策略或注册表启用,而且由于这个循环已经重复了几次,我半信半疑微软正在通过他们正在推出的所有这些虚拟化安全性破坏他们自己的 VPN 客户端。