KB5028608 Cambio en la forma en que el tiempo de ejecución de .NET Framework importa los certificados X.509

Nota

Fecha de lanzamiento:
22 de junio de 2022

[04/07/2023] revisado para incluir las versiones que faltan para Windows 10, versión 1607 y 1507

[24/07/2023] revisado para añadir detalles de la versión para la resolución del paquete acumulativo de actualizaciones de calidad y seguridad del 11 de julio de 2023

Resumen

Este artículo proporciona ayuda para mitigar un problema cuando después de instalar las actualizaciones del 13 de junio de 2023 para .NET Framework y .NET, los usuarios pueden experimentar problemas con cómo el tiempo de ejecución de .NET Framework importa los certificados X.509.

Síntoma

Cuando se usa , o la X509CertificateX509Certificate2clase para X509Certificate2Collection importar un blob PKCS#12 que contiene una clave privada, la aplicación que realiza la llamada puede observar la excepción siguiente.

  • System.Security.Cryptography.CryptographicException: PKCS12 (PFX) sin una contraseña proporcionada ha superado el límite máximo de iteraciones permitidas. Consulte https://go.microsoft.com/fwlink/?linkid=2233907 para obtener más información.

Este error afecta a los blobs PKCS#12 que se han exportado [por ejemplo, a través de X509Certificate.Export(X509ContentType.Pfx)] sin contraseña. El error puede ocurrir de forma no determinista.

Solución alternativa

Microsoft ha publicado instaladores actualizados para .NET Framework y .NET para solucionar este problema. Estos instaladores se pueden aplicar al equipo afectado independientemente de si el equipo ya ha aplicado las actualizaciones de seguridad originales del 13 de junio de 2023, .NET Framework y .NET.

Importante

  • Si anteriormente utilizó los modificadores del Registro documentados en KB5025823 Cambio en la forma en que las aplicaciones .NET importan certificados X.509 para solucionar este problema, quite esos modificadores del Registro antes de instalar la nueva revisión. Ejecute los dos comandos siguientes desde un símbolo del sistema con privilegios elevados para quitar los modificadores del Registro.
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64

Resolución

Este problema se solucionó en las actualizaciones fuera de banda publicadas el 22 de junio de 2023 para .NET Framework 4.6.2 y versiones más recientes para Windows y las versiones de Windows Server afectadas por este problema. Para obtener el paquete independiente de estas actualizaciones fuera de banda, busque el número de KB en el Catálogo de Microsoft Update. Puede importar manualmente estas actualizaciones en Windows Server Update Services (WSUS) y Microsoft Endpoint Configuration Manager. Para obtener instrucciones de WSUS, consulte WSUS y el sitio de catálogo. Para obtener instrucciones sobre Configuration Manager, consulte Importar actualizaciones desde el Catálogo de Microsoft Update.

Si ha usado soluciones alternativas o mitigaciones para este problema, ya no son necesarias y se recomienda quitarlas. Para quitar la solución, revise la solución o la solución alternativa que se aplicó para las instrucciones.

Versión del producto Actualizar Artículo de Knowledge Base
Windows 11, versión 22H2
.NET Framework 4.8.1 Catálogo 5028576
Windows 11, versión 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, versión 22H2
.NET Framework 4.8 Catálogo 5028584
Azure Stack HCI, versión 21H2
.NET Framework 4.8 Catálogo 5028584
Windows 10 versión 22H2
.NET Framework 4.8 Catálogo 5028579
.NET Framework 4.8.1 Catálogo 5028574
Windows 10 versión 21H2
.NET Framework 4.8 Catálogo 5028579
.NET Framework 4.8.1 Catálogo 5028574
Windows 10 1809 (actualización de octubre de 2018) y Windows Server 2019
.NET Framework 4.7.2 Catálogo 5028588
.NET Framework 4.8 Catálogo 5028581
Windows 10 1607 (actualización de aniversario) y Windows Server 2016
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028623
.NET Framework 4.8 Catálogo 5028580
Windows 10 1507
.NET Framework 4.6 y 4.6.2 Catálogo 5028622
Windows Embedded 8.1 y Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028590
.NET Framework 4.8 Catálogo 5028585
Windows Embedded 8 y Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028589
.NET Framework 4.8 Catálogo 5028583
Windows Embedded 7 Standard y Windows Server 2008 R2 SP1
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028591
.NET Framework 4.8 Catálogo 5028586
todas las versiones de Windows compatibles
.NET 6.0.19 Catálogo 5028613
.NET 7.0.8 Catálogo 5028614

Este problema se solucionó en el paquete acumulativo normal publicado el 11 de julio de 2023 para todas las versiones compatibles de .NET Framework para Windows y versiones de Windows Server afectadas por este problema.  El paquete acumulativo de actualizaciones de calidad y seguridad está disponible a través de Windows Update, Windows Server Update Services y el catálogo de Microsoft Update.

Nota: Los clientes que dependan de Windows Update y Windows Server Update Services recibirán automáticamente las actualizaciones específicas de la versión de .NET Framework. Los administradores de sistemas avanzados también pueden usar los vínculos de descarga directos del Catálogo de Microsoft Update a continuación para actualizaciones específicas de .NET Framework. Antes de aplicar estas actualizaciones, asegúrese de revisar cuidadosamente la aplicabilidad de la versión de .NET Framework, para asegurarse de que solo instala actualizaciones en los sistemas en los que se aplican.

Si ha usado soluciones alternativas o mitigaciones para este problema, ya no son necesarias y se recomienda quitarlas. Para quitar la solución, revise la solución o la solución alternativa que se aplicó para las instrucciones.

Versión del producto Actualizar Artículo de Knowledge Base
Windows 11, versión 22H2
.NET Framework 3.5 y 4.8.1 Catálogo 5028851
Windows 11, versión 21H2
.NET Framework 3.5 y 4.8 Catálogo 5028856
.NET Framework 3.5 y 4.8.1 Catálogo 5028850
Windows Server 2022
.NET Framework 3.5 y 4.8 Catálogo 5028858
.NET Framework 3.5 y 4.8.1 Catálogo 5028852
Azure Stack HCI, versión 22H2 5028935
.NET Framework 3.5 y 4.8 Catálogo 5028858
Azure Stack HCI, versión 21H2 5028943
.NET Framework 3.5 y 4.8 Catálogo 5028858
Windows 10 versión 22H2 5028937
.NET Framework 3.5 y 4.8 Catálogo 5028853
.NET Framework 3.5 y 4.8.1 Catálogo 5028849
Windows 10 versión 21H2 5028944
.NET Framework 3.5 y 4.8 Catálogo 5028853
.NET Framework 3.5 y 4.8.1 Catálogo 5028849
Windows 10 1809 (actualización de octubre de 2018) y Windows Server 2019 5028936
.NET Framework 3.5 y 4.7.2 Catálogo 5028862
.NET Framework 3.5 y 4.8 Catálogo 5028855
Windows 10 1607 (actualización de aniversario) y Windows Server 2016
.NET Framework 3.5, 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028169
.NET Framework 4.8 Catálogo 5028854
Windows 10 1507
.NET Framework 3.5, 4.6 y 4.6.2 Catálogo 5028186
Windows Embedded 8.1 y Windows Server 2012 R2 5028941
.NET Framework 3.5 Catálogo 5028872
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028864
.NET Framework 4.8 Catálogo 5028859
Windows Embedded 8 y Windows Server 2012 5028940
.NET Framework 3.5 Catálogo 5028869
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028863
.NET Framework 4.8 Catálogo 5028857
Windows Embedded 7 Standard y Windows Server 2008 R2 SP1 5028939
.NET Framework 3.5.1 Catálogo 5028871
.NET Framework 4.6.2, 4.7, 4.7.1 y 4.7.2 Catálogo 5028865
.NET Framework 4.8 Catálogo 5028860
Windows Server 2008 R2 SP2 5028942
.NET Framework 2.0 y 3.0 Catálogo 5028870
.NET Framework 4.6.2 Catálogo 5028865

Actualizaciones afectadas

Las siguientes versiones de .NET Framework y .NET están afectadas:

  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, cuando se instala la actualización de seguridad del 13 de junio de 2022.
  • .NET Framework 4.8, cuando se instala la actualización de seguridad del 13 de junio de 2022.
  • .NET Framework 4.8.1, cuando se instala la actualización de seguridad del 13 de junio de 2022.
  • .NET 6.0.18.
  • .NET 7.0.7.

Preguntas más frecuentes (FAQ)

¿Cuándo se introdujo este cambio?

Este cambio de comportamiento se introdujo en las actualizaciones de seguridad del 13 de junio de 2022 para .NET y .NET Framework.

¿Es necesario instalar esta nueva actualización?

La instalación de esta nueva actualización solo es necesaria si su aplicación está experimentando el problema descrito en el encabezado "Síntoma" en la parte superior de este artículo. Si no tiene este problema, no es necesario que instale esta actualización.

¿Esta nueva actualización reemplaza la actualización del 13 de junio de 2023 de .NET Framework?

No. Si usa .NET Framework, primero debe instalar el paquete acumulativo del 13 de junio de 2023 o las actualizaciones solo de seguridad antes de instalar la nueva actualización del 22 de junio de 2023.

¿Esta nueva actualización reemplaza a .NET 6.0.18 o .NET 7.0.7?

Sí. Como parte de esta actualización, también publicamos .NET 6.0.19 y .NET 7.0.8, que se pueden descargar desde https://get.dot.net/. Estas versiones están destinadas a reemplazar .NET 6.0.18 y .NET 7.0.7, que se publicaron el 13 de junio de 2023.

La única diferencia entre .NET 6.0.19 / 7.0.8 y .NET 6.0.18 / 7.0.7 es la corrección de compatibilidad mencionada anteriormente. .NET 6.0.19 / 7.0.8 no incluyen correcciones de seguridad adicionales más allá de lo que ya se publicó en .NET 6.0.18 / 7.0.7.

Información sobre protección y seguridad