KB5028608 Alteração na forma como o .NET Framework runtime importa Certificados X.509

Nota

Data de lançamento:
22 de junho de 2022

[07/04/2023] revisto para incluir versões ausentes para Windows 10, versão 1607 e 1507

[24/07/2023] revisto para adicionar detalhes de lançamento para resolução de Rollup de Segurança e Qualidade de 11 de julho de 2023

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 poderão ter problemas com a forma como o .NET Framework runtime importa Certificados X.509.

Sintoma

Ao usar a X509Certificateclasse , X509Certificate2ou X509Certificate2Collection para importar um blob PKCS#12 contendo uma chave privada, o aplicativo de chamada pode observar a exceção abaixo.

  • System.Security.Cryptography.CryptographicException: PKCS12 (PFX) sem uma senha fornecida excedeu o máximo de iterações 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 determinística.

Solução

A Microsoft disponibilizou instaladores atualizados para o .NET Framework e o .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 parâmetros de registo documentados em KB5025823 Alteração na forma como as aplicações .NET importam certificados X.509 para contornar este problema, remova esses parâmetros de registo antes de instalar a nova correção. Execute os dois comandos abaixo a partir de uma linha de comandos elevada para remover os parâmetros do 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 extraordinárias lançadas a 22 de junho de 2023 para o .NET Framework 4.6.2 e versões mais recentes para Windows e versões Windows Server afetadas por este problema. Para obter o pacote autónomo para estas atualizações extraordinárias, 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, consulte 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 alternativa, reveja a solução ou solução alternativa que foi aplicada para obter as instruções.

Versão do Produto Atualização Artigo da Base de Dados de Conhecimento
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 do Windows suportadas
.NET 6.0.19 Catálogo 5028613
.NET 7.0.8 Catálogo 5028614

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

Observação: Os clientes que dependem do Windows Update e do Windows Server Update Services irão receber automaticamente as .NET Framework atualizações específicas da versão. Os administradores de sistema avançados também podem utilizar as ligações de transferência direta do Catálogo Microsoft Update abaixo para .NET Framework atualizações específicas. 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 em que se aplicam.

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 alternativa, reveja a solução ou solução alternativa que foi aplicada para obter as instruções.

Versão do Produto Atualização Artigo da Base de Dados de Conhecimento
Windows 11, versão 22H2
.NET Framework 3.5 e 4.8.1 Catálogo 5028851
Windows 11, versão 21H2
.NET Framework 3.5, 4.8 Catálogo 5028856
.NET Framework 3.5 e 4.8.1 Catálogo 5028850
Windows Server 2022
.NET Framework 3.5, 4.8 Catálogo 5028858
.NET Framework 3.5 e 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 e 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 e 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 é instalada.
  • .NET Framework 4.8.1, quando a atualização de segurança de 13 de junho de 2022 é instalada.
  • .NET 6.0.18.
  • .NET 7.0.7.

Perguntas Frequentes (FAQs)

Quando foi introduzida esta alteração?

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

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

A instalação desta nova atualização é necessária apenas se a sua aplicação estiver a ter o problema descrito no título "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 .NET Framework de 13 de junho de 2023?

Não. Se estiver a utilizar o .NET Framework, deve primeiro instalar o rollup de 13 de junho de 2023 ou 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 estamos lançando o .NET 6.0.19 e o .NET 7.0.8, que podem ser baixados do 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 carrega nenhuma correção de segurança adicional além do que já foi publicado no .NET 6.0.18 / 7.0.7.

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