KB5028608 Alterar a forma como .NET Framework runtime importa Certificados X.509

Nota

Data de Lançamento:
22 de junho de 2022

[07/04/2023] revised to include missing versions for Windows 10, version 1607 and 1507

[07/24/2023] revised to add release details for July 11, 2023 Security and Quality Rollup resolution

Resumo

Este artigo fornece ajuda para mitigar um problema quando após a instalação das atualizações de 13 de junho de 2023 para .NET Framework e .NET, os utilizadores podem ter problemas com a forma como .NET Framework runtime importa Certificados X.509.

Sintoma

Ao utilizar a X509Certificateclasse , X509Certificate2ou X509Certificate2Collection para importar um blob PKCS#12 que contenha uma chave privada, a aplicação de chamada pode observar a exceção abaixo.

  • System.Security.Cryptography.CryptographicException: O PKCS12 (PFX) sem uma palavra-passe fornecida excedeu as iterações máximas permitidas. Consulte https://go.microsoft.com/fwlink/?linkid=2233907 para obter mais informações.

Esta falha afeta os blobs PKCS#12 que foram exportados [por exemplo, através X509Certificate.Export(X509ContentType.Pfx)de ] sem uma palavra-passe. A falha pode ocorrer de forma não determinista.

Solução

A Microsoft lançou instaladores atualizados para .NET Framework e .NET para resolver este problema. Estes instaladores podem ser aplicados ao computador afetado, independentemente de o computador já ter aplicado as atualizações de segurança originais de 13 de junho de 2023, .NET Framework e .NET.

Importante

  • Se utilizou anteriormente os comutadores de registo documentados em KB5025823 Alterar a forma como as aplicações .NET importam certificados X.509 para resolver este problema, remova esses comutadores de registo antes de instalar o novo patch. Execute os dois comandos abaixo a partir de uma linha de comandos elevada para remover os comutadores de registo.
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64

Resolução

Este problema foi resolvido em atualizações fora de banda lançadas a 22 de junho de 2023, para .NET Framework 4.6.2 e versões mais recentes para o Windows e versões Windows Server afetadas por este problema. Para obter o pacote autónomo para estas atualizações fora de banda, procure o número KB no Catálogo Microsoft Update. Pode importar manualmente estas atualizações para o Windows Server Update Services (WSUS) e o Microsoft Endpoint Configuration Manager. Para obter instruções sobre o WSUS, veja WSUS e o Site de Catálogo. Para obter instruções sobre o Configuration Manger, consulte Importar atualizações do Catálogo Microsoft Update.

Se utilizou alguma solução ou mitigação para este problema, estas já não são necessárias e recomendamos que as remova. Para remover a solução, reveja a solução alternativa ou solução alternativa que foi aplicada para obter instruções.

Versão do Produto Atualização
Windows 11, versão 22H2
.NET Framework 4.8.1 Catálogo 5028576
Windows 11, versão 21H2
.NET Framework 4.8 Catálogo 5028582
.NET Framework 4.8.1 Catálogo 5028575
Windows Server 2022
.NET Framework 4.8 Catálogo 5028584
.NET Framework 4.8.1 Catálogo 5028578
Azure Stack HCI, versão 22H2
.NET Framework 4.8 Catálogo 5028584
Azure Stack HCI, versão 21H2
.NET Framework 4.8 Catálogo 5028584
Windows 10 Versão 22H2
.NET Framework 4.8 Catálogo 5028579
.NET Framework 4.8.1 Catálogo 5028574
Windows 10 Versão 21H2
.NET Framework 4.8 Catálogo 5028579
.NET Framework 4.8.1 Catálogo 5028574
Windows 10 1809 (Atualização de Outubro de 2018) e Windows Server 2019
.NET Framework 4.7.2 Catálogo 5028588
.NET Framework 4.8 Catálogo 5028581
Windows 10 1607 (Atualização de Aniversário) e Windows Server 2016
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028623
.NET Framework 4.8 Catálogo 5028580
Windows 10 1507
.NET Framework 4.6, 4.6.2 Catálogo 5028622
Windows Embedded 8.1 e Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028590
.NET Framework 4.8 Catálogo 5028585
Windows Embedded 8 e Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028589
.NET Framework 4.8 Catálogo 5028583
Windows Embedded 7 Standard e Windows Server 2008 R2 SP1
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028591
.NET Framework 4.8 Catálogo 5028586
todas as versões suportadas do Windows
.NET 6.0.19 Catálogo 5028613
.NET 7.0.8 Catálogo 5028614

Este problema foi resolvido no rollup cumulativo normal lançado a 11 de julho de 2023 para todas as versões de .NET Framework suportadas para o Windows e Windows Server versões afetadas por este problema.  O Rollup de Segurança e Qualidade está disponível através de Windows Update, Windows Server Update Services e Catálogo Microsoft Update.

Nota: Os clientes que dependem de Windows Update e Windows Server Update Services receberão automaticamente as atualizações específicas da versão .NET Framework. Os administradores de sistema avançados também podem utilizar as ligações de transferência diretas do Catálogo Microsoft Update abaixo para atualizações específicas de .NET Framework. Antes de aplicar estas atualizações, certifique-se de que revê cuidadosamente a aplicabilidade da versão .NET Framework, para garantir que só instala atualizações nos sistemas onde são aplicadas.

Se utilizou alguma solução ou mitigação para este problema, estas já não são necessárias e recomendamos que as remova. Para remover a solução, reveja a solução alternativa ou solução alternativa que foi aplicada para obter instruções.

Versão do Produto Atualização
Windows 11, versão 22H2
.NET Framework 3.5, 4.8.1 Catálogo 5028851
Windows 11, versão 21H2
.NET Framework 3.5, 4.8 Catálogo 5028856
.NET Framework 3.5, 4.8.1 Catálogo 5028850
Windows Server 2022
.NET Framework 3.5, 4.8 Catálogo 5028858
.NET Framework 3.5, 4.8.1 Catálogo 5028852
Azure Stack HCI, versão 22H2 5028935
.NET Framework 3.5, 4.8 Catálogo 5028858
Azure Stack HCI, versão 21H2 5028943
.NET Framework 3.5, 4.8 Catálogo 5028858
Windows 10 Versão 22H2 5028937
.NET Framework 3.5, 4.8 Catálogo 5028853
.NET Framework 3.5, 4.8.1 Catálogo 5028849
Windows 10 Versão 21H2 5028944
.NET Framework 3.5, 4.8 Catálogo 5028853
.NET Framework 3.5, 4.8.1 Catálogo 5028849
Windows 10 1809 (Atualização de Outubro de 2018) e Windows Server 2019 5028936
.NET Framework 3.5, 4.7.2 Catálogo 5028862
.NET Framework 3.5, 4.8 Catálogo 5028855
Windows 10 1607 (Atualização de Aniversário) e Windows Server 2016
.NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028169
.NET Framework 4.8 Catálogo 5028854
Windows 10 1507
.NET Framework 3,5, 4.6, 4.6.2 Catálogo 5028186
Windows Embedded 8.1 e Windows Server 2012 R2 5028941
.NET Framework 3.5 Catálogo 5028872
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028864
.NET Framework 4.8 Catálogo 5028859
Windows Embedded 8 e Windows Server 2012 5028940
.NET Framework 3.5 Catálogo 5028869
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028863
.NET Framework 4.8 Catálogo 5028857
Windows Embedded 7 Standard e Windows Server 2008 R2 SP1 5028939
.NET Framework 3.5.1 Catálogo 5028871
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catálogo 5028865
.NET Framework 4.8 Catálogo 5028860
Windows Server 2008 SP2 5028942
.NET Framework 2.0, 3.0 Catálogo 5028870
NET Framework 4.6.2 Catálogo 5028865

Atualizações afetadas

As seguintes versões .NET Framework e .NET são afetadas:

  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, quando a atualização de segurança de 13 de junho de 2022 for instalada.
  • .NET Framework 4.8, quando a atualização de segurança de 13 de junho de 2022 estiver instalada.
  • .NET Framework 4.8.1, quando a atualização de segurança de 13 de junho de 2022 for instalada.
  • .NET 6.0.18.
  • .NET 7.0.7.

Perguntas Mais Frequentes (FAQs)

Quando é que esta alteração foi introduzida?

Esta alteração de comportamento foi introduzida em 13 de junho de 2022, atualizações de segurança para .NET e .NET Framework.

É necessário instalar esta nova atualização?

A instalação desta nova atualização só é necessária se a aplicação estiver a ter o problema descrito no cabeçalho "Sintoma" na parte superior deste artigo. Se não estiver a ter este problema, não é necessário instalar esta atualização.

Esta nova atualização substitui a atualização de 13 de junho de 2023 .NET Framework?

Não. Se estiver a utilizar .NET Framework, deve instalar primeiro o rollup de 13 de junho de 2023 ou as atualizações apenas de segurança antes de instalar a nova atualização de 22 de junho de 2023.

Esta nova atualização substitui o .NET 6.0.18 ou o .NET 7.0.7?

Sim. Como parte desta atualização, também vamos lançar o .NET 6.0.19 e o .NET 7.0.8, sendo que ambos podem ser transferidos a partir de https://get.dot.net/. Estas versões destinam-se a substituir o .NET 6.0.18 e o .NET 7.0.7, que foram lançados a 13 de junho de 2023.

A única diferença entre o .NET 6.0.19/7.0.8 e o .NET 6.0.18/7.0.7 é a correção de compatibilidade mencionada acima. O .NET 6.0.19/ 7.0.8 não tem correções de segurança adicionais para além do que já foi publicado no .NET 6.0.18/ 7.0.7.

Informações sobre proteção e segurança