KB5028608 .NET Framework執行階段匯入 X.509 憑證方式的變更

注意

發行日期:
2022 年 6 月 22 日

[07/04/2023] 已修訂以包含 Windows 10 版本 1607 和 1507 的遺失版本

[07/24/2023] 已修訂以新增 2023 年 7 月 11 日安全性和品質彙總套件解決方案的發行詳細資料

摘要

本文提供的說明可降低下列問題的風險:安裝 2023 年 6 月 13 日的 .NET Framework 和 .NET 更新後,使用者可能會遇到 .NET Framework 執行階段匯入 X.509 憑證的方式之問題。

徵兆

使用 X509CertificateX509Certificate2X509Certificate2Collection 類別匯入包含私密金鑰的 PKCS#12 blob 時,呼叫應用程式可能會觀察到下列例外情況。

  • System.Security.Cryptography.CryptographicException: PKCS12 (PFX) 沒有提供密碼時,已超過允許的反覆運算次數上限。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2233907。

此失敗會影響已匯出 [例如,透過 X509Certificate.Export(X509ContentType.Pfx)] 而沒有密碼的 PKCS#12 blob。 失敗可能會不確定地發生。

因應措施

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

解決方法

這個問題已在 2023 年 6 月 22 日發佈的頻外更新中解決,適用於受此問題影響的 Windows 和 Windows Server 版本的 .NET Framework 4.6.2 和較新版本。 若要取得這些頻外更新的獨立套件,請在 Microsoft Update Catalog 中搜尋 KB 編號。 您可以手動將這些更新匯入 Windows Server Update Services (WSUS) 和 Microsoft Endpoint Configuration Manager。 如需 WSUS 指示,請參閱 WSUS 和目錄網站。 如需設定管理員指示,請參閱 從 Microsoft Update Catalog 匯入更新

如果您已使用此問題的任何解決方法或緩和措施,則不再需要它們,建議您將它們移除。 若要移除因應措施,請檢閱針對指示套用的因應措施或替代因應措施。

產品版本 更新 知識庫文件
Windows 11 版本 22H2
.NET Framework 4.8.1 目錄 5028576
Windows 11 版本 21H2
.NET Framework 4.8 目錄 5028582
.NET Framework 4.8.1 目錄 5028575
Windows Server 2022
.NET Framework 4.8 目錄 5028584
.NET Framework 4.8.1 目錄 5028578
Azure Stack HCI,版本 22H2
.NET Framework 4.8 目錄 5028584
Azure Stack HCI,版本 21H2
.NET Framework 4.8 目錄 5028584
Windows 10 版本 22H2
.NET Framework 4.8 目錄 5028579
.NET Framework 4.8.1 目錄 5028574
Windows 10 版本 21H2
.NET Framework 4.8 目錄 5028579
.NET Framework 4.8.1 目錄 5028574
Windows 10 1809 (2018 年 10 月更新) 和 2019 Windows Server
.NET Framework 4.7.2 目錄 5028588
.NET Framework 4.8 目錄 5028581
Windows 10 1607 (年度更新版) 和 Windows Server 2016
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028623
.NET Framework 4.8 目錄 5028580
Windows 10 1507
.NET Framework 4.6、4.6.2 目錄 5028622
Windows Embedded 8.1 和 Windows Server 2012 R2
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028590
.NET Framework 4.8 目錄 5028585
Windows Embedded 8 和 Windows Server 2012
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028589
.NET Framework 4.8 目錄 5028583
Windows Embedded 7 Standard 和 Windows Server 2008 R2 SP1
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028591
.NET Framework 4.8 目錄 5028586
所有支援的 Windows 版本
.NET 6.0.19 目錄 5028613
.NET 7.0.8 目錄 5028614

此問題已在 2023 年 7 月 11 日發佈的一般累積彙總套件中解決,適用於受此問題影響的 Windows 和 Windows Server 版本的所有支援 .NET Framework 版本。  安全性和品質彙總套件可透過 Windows Update、Windows Server Update Services 和 Microsoft Update Catalog 取得。

注意:依賴 Windows Update 和 Windows Server Update Services 的客戶將會自動收到 ..NET Framework 版本特定的更新。 進階系統管理員也可以使用下列 Microsoft Update Catalog 直接下載連結,以導向 .NET Framework 特定更新。 在套用這些更新之前,請務必仔細檢閱 .NET Framework 版本適用性,以確保您只在適用這些更新的系統上安裝更新。

如果您已使用此問題的任何解決方法或緩和措施,則不再需要它們,建議您將它們移除。 若要移除因應措施,請檢閱針對指示套用的因應措施或替代因應措施。

產品版本 更新 知識庫文件
Windows 11 版本 22H2
.NET Framework 3.5、4.8.1 目錄 5028851
Windows 11 版本 21H2
.NET Framework 3.5、4.8 目錄 5028856
.NET Framework 3.5、4.8.1 目錄 5028850
Windows Server 2022
.NET Framework 3.5、4.8 目錄 5028858
.NET Framework 3.5、4.8.1 目錄 5028852
Azure Stack HCI,版本 22H2 5028935
.NET Framework 3.5、4.8 目錄 5028858
Azure Stack HCI,版本 21H2 5028943
.NET Framework 3.5、4.8 目錄 5028858
Windows 10 版本 22H2 5028937
.NET Framework 3.5、4.8 目錄 5028853
.NET Framework 3.5、4.8.1 目錄 5028849
Windows 10 版本 21H2 5028944
.NET Framework 3.5、4.8 目錄 5028853
.NET Framework 3.5、4.8.1 目錄 5028849
Windows 10 1809 (2018 年 10 月更新) 和 2019 Windows Server 5028936
.NET Framework 3.5、4.7.2 目錄 5028862
.NET Framework 3.5、4.8 目錄 5028855
Windows 10 1607 (年度更新版) 和 Windows Server 2016
.NET Framework 3.5、4.6.2、4.7、4.7.1、4.7.2 目錄 5028169
.NET Framework 4.8 目錄 5028854
Windows 10 1507
.NET Framework 3.5、4.6、4.6.2 目錄 5028186
Windows Embedded 8.1 和 Windows Server 2012 R2 5028941
.NET Framework 3.5 目錄 5028872
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028864
.NET Framework 4.8 目錄 5028859
Windows Embedded 8 和 Windows Server 2012 5028940
.NET Framework 3.5 目錄 5028869
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028863
.NET Framework 4.8 目錄 5028857
Windows Embedded 7 Standard 和 Windows Server 2008 R2 SP1 5028939
.NET Framework 3.5.1 目錄 5028871
.NET Framework 4.6.2、4.7、4.7.1、4.7.2 目錄 5028865
.NET Framework 4.8 目錄 5028860
Windows Server 2008 SP2 5028942
.NET Framework 2.0、3.0 目錄 5028870
.NET Framework 4.6.2 目錄 5028865

受影響的更新

以下 .NET Framework 和 .NET 版本受到影響:

  • .NET Framework 4.6.2、4.7、4.7.1、4.7.2,安裝 2022 年 6 月 13 日安全更新時。
  • .NET Framework 4.8,安裝 2022 年 6 月 13 日安全更新時。
  • .NET Framework 4.8.1,安裝 2022 年 6 月 13 日安全更新時。
  • .NET 6.0.18。
  • .NET 7.0.7。

常見問題集 (FAQ)

這項變更何時推出?

此行為變更已於 2022 年 6 月 13 日的 .NET 和 .NET Framework 安全性更新中引進。

我有必要安裝這個新更新嗎?

只有當您的應用程式遇到本文頂端 [徵兆] 標題中所述的問題時,才需要安裝此新更新。 如果您沒有遇到此問題,則無需安裝此更新。

此更新是否會取代 2023 年 6 月 13 日的 .NET Framework 更新?

否。 如果您使用的是 .NET Framework,您應該先安裝 2023 年 6 月 13 日的彙總套件或僅限安全性更新,然後再安裝新的 2023 年 6 月 22 日更新。

此更新會取代 .NET 6.0.18 或 .NET 7.0.7 嗎?

是。 作為此更新的一部分,我們也發佈了 .NET 6.0.19 和 .NET 7.0.8,這兩者都可以從 https://get.dot.net/ 下載。 這些版本旨在取代 2023 年 6 月 13 日發行的 .NET 6.0.18 和 .NET 7.0.7。

.NET 6.0.19 / 7.0.8 與 .NET 6.0.18 / 7.0.7 之間的唯一差異是上述的相容性修正。 .NET 6.0.19 / 7.0.8 除了 .NET 6.0.18 / 7.0.7 中已發佈之外,不包含任何其他安全性修正程式。

有關保護和安全性的資訊