微软修复 6 月「补丁星期二」导致.NET 相关故障

通过TG电报 订阅本站 / 加入群组

软餐获悉,微软修复了 2023 年 6 月 13 日 “星期二补丁日” .NET Framework 运行时更新导致的 X.509 证书导入相关的问题。与之前的功能不同,额外的验证现在可能会导致 CryptographicException 错误。

这些问题已在 Windows 10 和 Windows 11 上得到修复。更多问题还可通过微软发布的带外更新解决,可从微软更新目录网站手动下载,详见官网

变更说明

在 2023 年 6 月 13 日更改之前,当 .NET Framework 和 .NET 提供二进制证书 blob 进行导入时,.NET Framework 和 .NET 通常会将 blob 的验证和导入委托给底层操作系统。例如,在 Windows 上,.NET Framework 和 .NET 通常依赖 PFXImportCertStore API 进行验证和导入。

自 2023 年 6 月 13 日起,当 .NET Framework 和 .NET 提供二进制证书 blob 进行导入时,.NET Framework 和 .NET 在某些情况下将执行额外的验证,然后再将该 blob 交给底层操作系统。此附加验证会执行一系列启发式检查,以确定传入的证书是否会在导入时恶意耗尽资源。由于这是超出底层操作系统正常执行范围的额外验证,因此它可能会阻止在 2023 年 6 月 13 日更改之前成功导入的证书 blob。

微软还详细说明了该问题的症状:

症状

当使用 X509Certificate、X509Certificate2 或 X509Certificate2Collection 类导入包含私钥的 PKCS#12 blob 时,调用应用程序可能会观察到以下异常。

System.Security.Cryptography.CryptographicException:没有提供密码的 PKCS12 (PFX) 已超出允许的最大迭代次数。

此故障会影响已在没有密码的情况下导出的 PKCS#12 blob [例如,通过 X509Certificate.Export(X509ContentType.Pfx)]。失败可能会不确定地发生。

该问题的解决方法已部署在受影响的系统上,但该公司表示,为解决该问题而进行的任何注册表更改都必须恢复:

解决方法

Microsoft 已发布 .NET Framework 和 .NET 的更新安装程序来解决此问题。这些安装程序可以应用于受影响的计算机,无论该计算机是否已经应用了 2023 年 6 月 13 日的原始 .NET Framework 和 .NET 安全更新。

重要

如果您之前使用 KB5025823 更改 .NET 应用程序导入 X.509 证书的方式中记录的注册表开关来解决此问题,请在安装新补丁之前删除这些注册表开关。从提升的命令提示符运行以下两个命令以删除注册表开关。

reg delete “HKLM\Software\Microsoft\.NETFramework” /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32

reg delete “HKLM\Software\Microsoft.NETFramework” /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64

微软修复6 月「补丁星期二」导致.NET相关故障

本文为原创文章,转载需获授权。软餐食堂

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注