KB5028608 Zmiana sposobu importowania certyfikatów X.509 .NET Framework środowisku uruchomieniowym

Uwaga

Data wydania:
22 czerwca 2022 r.

[04/07/2023] Poprawiono w celu uwzględnienia brakujących wersji dla systemu Windows 10, wersji 1607 i 1507

[24.07.2023 r.] Zmieniono w celu dodania szczegółów wersji dla pakietu zbiorczego aktualizacji zabezpieczeń i jakości z 11 lipca 2023 r.

Podsumowanie

Ten artykuł zawiera pomoc w ograniczeniu problemu, gdy po zainstalowaniu aktualizacji z 13 czerwca 2023 r. dla platformy .NET Framework i .NET użytkownicy mogą napotkać problemy ze sposobem, w jaki środowisko uruchomieniowe platformy .NET Framework importuje certyfikaty X.509.

Objaw

Podczas importowania obiektu blob PKCS#12 zawierającego klucz prywatny za pomocą X509Certificateklasy , X509Certificate2or X509Certificate2Collection lub aplikacja wywołująca może zaobserwować poniższy wyjątek.

  • System.Security.Cryptography.CryptographicException: PKCS12 (PFX) bez podanego hasła przekroczył maksymalną dozwoloną liczbę iteracji. Aby uzyskać więcej informacji, zobacz https://go.microsoft.com/fwlink/?linkid=2233907.

Ten błąd dotyczy obiektów blob PKCS#12, które zostały wyeksportowane [np. za pośrednictwem X509Certificate.Export(X509ContentType.Pfx)] bez hasła. Awaria może wystąpić niedeterministycznie.

Obejście

Firma Microsoft wydała zaktualizowane instalatory oprogramowania .NET Framework i .NET rozwiązujące ten problem. Te instalatory można zastosować na komputerze, którego dotyczy problem, niezależnie od tego, czy komputer już zastosował oryginalne aktualizacje zabezpieczeń platformy .NET Framework i platformy .NET z 13 czerwca 2023 r.

Ważne

  • Jeśli wcześniej używano przełączników rejestru udokumentowanych w artykule KB5025823 Zmiany w sposobie importowania certyfikatów X.509 przez aplikacje .NET w celu obejścia tego problemu, usuń te przełączniki rejestru przed zainstalowaniem nowej poprawki. Uruchom dwa poniższe polecenia z wiersza polecenia z podwyższonym poziomem uprawnień, aby usunąć przełączniki rejestru.
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64

Rozwiązanie

Ten problem został rozwiązany w aktualizacjach poza pasmem wydanych 22 czerwca 2023 r. dla platformy .NET Framework 4.6.2 i nowszych wersji dla systemów Windows i wersji systemu Windows Server, których dotyczy ten problem. Aby uzyskać pakiet autonomiczny dla tych aktualizacji poza pasmem, wyszukaj numer aktualizacji KB w wykazie usługi Microsoft Update. Te aktualizacje można zaimportować ręcznie do usług Windows Server Update Services (WSUS) i programu Microsoft Endpoint Configuration Manager. Aby uzyskać instrukcje dotyczące usług WSUS, zobacz WSUS i witrynę wykazu. Aby uzyskać instrukcje dotyczące menedżera konfiguracji, zobacz Importowanie aktualizacji z wykazu usługi Microsoft Update.

Jeśli zastosowano jakiekolwiek obejście lub środki zaradcze dla tego problemu, nie są one już potrzebne i zalecamy ich usunięcie. Aby usunąć obejście, zapoznaj się z obejściem lub alternatywnym obejściem, które zostało zastosowane do instrukcji.

Wersja produktu Aktualizuj
System Windows 11 w wersji 22H2
.NET Framework 4.8.1 Katalog produktów 5028576
System Windows 11 w wersji 21H2
.NET Framework 4.8 Katalog produktów 5028582
.NET Framework 4.8.1 Katalog produktów 5028575
Windows Server 2022
.NET Framework 4.8 Katalog produktów 5028584
.NET Framework 4.8.1 Katalog produktów 5028578
Azure Stack HCI, wersja 22H2
.NET Framework 4.8 Katalog produktów 5028584
Azure Stack HCI, wersja 21H2
.NET Framework 4.8 Katalog produktów 5028584
Windows 10 w wersji 22H2
.NET Framework 4.8 Katalog produktów 5028579
.NET Framework 4.8.1 Katalog produktów 5028574
Windows 10 w wersji 21H2
.NET Framework 4.8 Katalog produktów 5028579
.NET Framework 4.8.1 Katalog produktów 5028574
Windows 10 1809 (aktualizacja z października 2018) i Windows Server 2019
.NET Framework 4.7.2 Katalog produktów 5028588
.NET Framework 4.8 Katalog produktów 5028581
Windows 10 1607 (Anniversary Update) i Windows Server 2016
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028623
.NET Framework 4.8 Katalog produktów 5028580
Windows 10 1507
.NET Framework 4.6, 4.6.2 Katalog produktów 5028622
Windows Embedded 8.1 i Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028590
.NET Framework 4.8 Katalog produktów 5028585
Windows Embedded 8 i Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028589
.NET Framework 4.8 Katalog produktów 5028583
Windows Embedded 7 Standard i Windows Server 2008 R2 z dodatkiem SP1
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028591
.NET Framework 4.8 Katalog produktów 5028586
wszystkie obsługiwane wersje systemu Windows
.NET 6.0.19 Katalog produktów 5028613
.NET 7.0.8 Katalog produktów 5028614

Ten problem został rozwiązany w regularnym zbiorczym pakiecie zbiorczym aktualizacji wydanym 11 lipca 2023 r. dla wszystkich obsługiwanych wersji platformy .NET Framework dla systemów Windows i wersji systemu Windows Server, których dotyczy ten problem.  Pakiet zbiorczy aktualizacji zabezpieczeń i jakości jest dostępny za pośrednictwem usług Windows Update, Windows Server Update Services i wykazu usługi Microsoft Update.

Uwaga: Klienci korzystający z usług Windows Update i Windows Server Update Services automatycznie otrzymają aktualizacje specyficzne dla wersji programu .NET Framework. Zaawansowani administratorzy systemu mogą również skorzystać z poniższych bezpośrednich linków pobierania z wykazu usługi Microsoft Update do aktualizacji specyficznych dla platformy .NET Framework. Przed zastosowaniem tych aktualizacji należy dokładnie sprawdzić możliwości zastosowania wersji programu .NET Framework, aby mieć pewność, że aktualizacje są instalowane tylko w systemach, w których mają zastosowanie.

Jeśli zastosowano jakiekolwiek obejście lub środki zaradcze dla tego problemu, nie są one już potrzebne i zalecamy ich usunięcie. Aby usunąć obejście, zapoznaj się z obejściem lub alternatywnym obejściem, które zostało zastosowane do instrukcji.

Wersja produktu Aktualizuj
System Windows 11 w wersji 22H2
.NET Framework 3.5, 4.8.1 Katalog produktów 5028851
System Windows 11 w wersji 21H2
.NET Framework 3.5, 4.8 Katalog produktów 5028856
.NET Framework 3.5, 4.8.1 Katalog produktów 5028850
Windows Server 2022
.NET Framework 3.5, 4.8 Katalog produktów 5028858
.NET Framework 3.5, 4.8.1 Katalog produktów 5028852
Azure Stack HCI, wersja 22H2 5028935
.NET Framework 3.5, 4.8 Katalog produktów 5028858
Azure Stack HCI, wersja 21H2 5028943
.NET Framework 3.5, 4.8 Katalog produktów 5028858
Windows 10 w wersji 22H2 5028937
.NET Framework 3.5, 4.8 Katalog produktów 5028853
.NET Framework 3.5, 4.8.1 Katalog produktów 5028849
Windows 10 w wersji 21H2 5028944
.NET Framework 3.5, 4.8 Katalog produktów 5028853
.NET Framework 3.5, 4.8.1 Katalog produktów 5028849
Windows 10 1809 (aktualizacja z października 2018) i Windows Server 2019 5028936
.NET Framework 3.5, 4.7.2 Katalog produktów 5028862
.NET Framework 3.5, 4.8 Katalog produktów 5028855
Windows 10 1607 (Anniversary Update) i Windows Server 2016
.NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028169
.NET Framework 4.8 Katalog produktów 5028854
Windows 10 1507
.NET Framework 3.5, 4.6, 4.6.2 Katalog produktów 5028186
Windows Embedded 8.1 i Windows Server 2012 R2 5028941
.NET Framework 3.5 Katalog produktów 5028872
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028864
.NET Framework 4.8 Katalog produktów 5028859
Windows Embedded 8 i Windows Server 2012 5028940
.NET Framework 3.5 Katalog produktów 5028869
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028863
.NET Framework 4.8 Katalog produktów 5028857
Windows Embedded 7 Standard i Windows Server 2008 R2 z dodatkiem SP1 5028939
.NET Framework 3.5.1 Katalog produktów 5028871
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Katalog produktów 5028865
.NET Framework 4.8 Katalog produktów 5028860
Windows Server 2008 z dodatkiem SP2 5028942
.NET Framework 2.0, 3.0 Katalog produktów 5028870
.NET Framework 4.6.2 Katalog produktów 5028865

Aktualizacje, których dotyczy problem

Problem dotyczy następujących wersji programu .NET Framework i .NET:

  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 podczas instalowania aktualizacji zabezpieczeń z 13 czerwca 2022 r.
  • .NET Framework 4.8, gdy zostanie zainstalowana aktualizacja zabezpieczeń z 13 czerwca 2022 r.
  • .NET Framework 4.8.1 po zainstalowaniu aktualizacji zabezpieczeń z 13 czerwca 2022 r.
  • .NET 6.0.18.
  • .NET 7.0.7.

Często zadawane pytania (FAQ)

Kiedy ta zmiana została wprowadzona?

Ta zmiana zachowania została wprowadzona w aktualizacjach zabezpieczeń z 13 czerwca 2022 r. dla platformy .NET i platformy .NET Framework.

Czy muszę instalować tę nową aktualizację?

Zainstalowanie tej nowej aktualizacji jest konieczne tylko wtedy, gdy w Twojej aplikacji występuje problem opisany w nagłówku "Objaw" u góry tego artykułu. Jeśli ten problem nie występuje, nie ma potrzeby instalowania tej aktualizacji.

Czy ta nowa aktualizacja zastępuje aktualizację programu .NET Framework z 13 czerwca 2023 r.?

Nie. Jeśli korzystasz z platformy .NET Framework, przed zainstalowaniem nowej aktualizacji z 22 czerwca 2023 r. należy najpierw zainstalować pakiet zbiorczy aktualizacji z 13 czerwca 2023 r. lub aktualizacje samych zabezpieczeń.

Czy ta nowa aktualizacja zastępuje program .NET 6.0.18 lub .NET 7.0.7?

Tak. W ramach tej aktualizacji udostępniamy również wersje .NET 6.0.19 i .NET 7.0.8, które można pobrać z https://get.dot.net/. Te wersje mają zastąpić wersje .NET 6.0.18 i .NET 7.0.7, które zostały wydane 13 czerwca 2023 r.

Jedyną różnicą między wersjami .NET 6.0.19 / 7.0.8 i .NET 6.0.18 / 7.0.7 jest wspomniana powyżej poprawka zgodności. .NET 6.0.19/7.0.8 nie zawierają żadnych dodatkowych poprawek zabezpieczeń poza tymi, które zostały już opublikowane w .NET 6.0.18/7.0.7.

Informacje o ochronie i zabezpieczeniach