KB5028608 Modification de la façon dont le runtime .NET Framework importe les certificats X.509

Remarque

Date de publication :
22 juin 2022

[04/07/2023] révisé pour inclure les versions manquantes pour Windows 10, version 1607 et 1507

[24/07/2023] révisé pour ajouter les détails de publication pour la résolution du correctif cumulatif de sécurité et de qualité du 11 juillet 2023

Résumé

Cet article fournit une aide pour atténuer un problème lorsque, après l’installation des mises à jour du 13 juin 2023 pour .NET Framework et .NET, les utilisateurs peuvent rencontrer des problèmes avec la façon dont le runtime .NET Framework importe les certificats X.509.

Symptôme

Lorsque vous utilisez la X509Certificateclasse , X509Certificate2ou X509Certificate2Collection pour importer un objet blob PKCS#12 contenant une clé privée, l’application appelante peut observer l’exception ci-dessous.

  • System.Security.Cryptography.CryptographicException : PKCS12 (PFX) sans mot de passe fourni a dépassé le nombre maximal d’itérations autorisées. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?linkid=2233907.

Cet échec affecte les objets blob PKCS#12 qui ont été exportés [par exemple, via X509Certificate.Export(X509ContentType.Pfx)] sans mot de passe. L’échec peut se produire de manière non déterministe.

Solution de contournement

Microsoft a publié des programmes d’installation mis à jour pour .NET Framework et .NET pour résoudre ce problème. Ces programmes d’installation peuvent être appliqués à l’ordinateur affecté, que la machine ait ou non déjà appliqué les mises à jour de sécurité .NET Framework et .NET d’origine du 13 juin 2023.

Important

  • Si vous avez précédemment utilisé les commutateurs de Registre documentés dans KB5025823 Modifier la façon dont les applications .NET importent les certificats X.509 pour contourner ce problème, supprimez ces commutateurs de Registre avant d’installer le nouveau correctif. Exécutez les deux commandes ci-dessous à partir d’une invite de commandes avec élévation de privilèges pour supprimer les commutateurs de Registre.
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:32
  • reg delete "HKLM\Software\Microsoft\.NETFramework" /v Pkcs12UnspecifiedPasswordIterationLimit /reg:64

Solution

Ce problème a été résolu dans les mises à jour hors bande publiées le 22 juin 2023 pour .NET Framework 4.6.2 et les versions ultérieures pour Windows et Windows Server versions affectées par ce problème. Pour obtenir le package autonome pour ces mises à jour hors bande, recherchez le numéro de base de connaissances dans le catalogue Microsoft Update. Vous pouvez importer manuellement ces mises à jour dans Windows Server Update Services (WSUS) et Microsoft Endpoint Configuration Manager. Pour obtenir des instructions WSUS, consultez WSUS et le site de catalogue. Pour obtenir des instructions sur le gestionnaire de configuration, consultez Importer des mises à jour à partir du catalogue Microsoft Update.

Si vous avez utilisé des solutions de contournement ou d’atténuation pour ce problème, elles ne sont plus nécessaires et nous vous recommandons de les supprimer. Pour supprimer la solution de contournement, passez en revue la solution de contournement ou l’autre solution de contournement qui a été appliquée pour obtenir des instructions.

Version du produit Mettre à jour
Windows 11, version 22H2
.NET Framework 4.8.1 Catalogue 5028576
Windows 11, version 21H2
.NET Framework 4.8 Catalogue 5028582
.NET Framework 4.8.1 Catalogue 5028575
Windows Server 2022
.NET Framework 4.8 Catalogue 5028584
.NET Framework 4.8.1 Catalogue 5028578
Azure Stack HCI, version 22H2
.NET Framework 4.8 Catalogue 5028584
Azure Stack HCI, version 21H2
.NET Framework 4.8 Catalogue 5028584
Windows 10 version 22H2
.NET Framework 4.8 Catalogue 5028579
.NET Framework 4.8.1 Catalogue 5028574
Windows 10 version 21H2
.NET Framework 4.8 Catalogue 5028579
.NET Framework 4.8.1 Catalogue 5028574
Windows 10 1809 (mise à jour d’octobre 2018) et Windows Server 2019
.NET Framework 4.7.2 Catalogue 5028588
.NET Framework 4.8 Catalogue 5028581
Windows 10 1607 (mise à jour anniversaire) et Windows Server 2016
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028623
.NET Framework 4.8 Catalogue 5028580
Windows 10 1507
.NET Framework 4.6, 4.6.2 Catalogue 5028622
Windows Embedded 8.1 et Windows Server 2012 R2
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028590
.NET Framework 4.8 Catalogue 5028585
Windows Embedded 8 et Windows Server 2012
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028589
.NET Framework 4.8 Catalogue 5028583
Windows Embedded 7 Standard et Windows Server 2008 R2 SP1
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028591
.NET Framework 4.8 Catalogue 5028586
toutes les versions de Windows prises en charge
.NET 6.0.19 Catalogue 5028613
.NET 7.0.8 Catalogue 5028614

Ce problème a été résolu dans le correctif cumulatif standard publié le 11 juillet 2023 pour toutes les versions de .NET Framework prises en charge pour Windows et Windows Server versions affectées par ce problème.  Le correctif cumulatif de sécurité et de qualité est disponible via Windows Update, Windows Server Update Services et le catalogue Microsoft Update.

Note: Les clients qui s’appuient sur Windows Update et Windows Server Update Services reçoivent automatiquement les mises à jour spécifiques à la version du .NET Framework. Les administrateurs système avancés peuvent également utiliser les liens de téléchargement directs du catalogue Microsoft Update ci-dessous vers les mises à jour spécifiques au .NET Framework. Avant d’appliquer ces mises à jour, veillez à examiner attentivement l’applicabilité de la version du .NET Framework pour vous assurer que vous installez uniquement les mises à jour sur les systèmes où elles s’appliquent.

Si vous avez utilisé des solutions de contournement ou d’atténuation pour ce problème, elles ne sont plus nécessaires et nous vous recommandons de les supprimer. Pour supprimer la solution de contournement, passez en revue la solution de contournement ou l’autre solution de contournement qui a été appliquée pour obtenir des instructions.

Version du produit Mettre à jour
Windows 11, version 22H2
.NET Framework 3.5, 4.8.1 Catalogue 5028851
Windows 11, version 21H2
.NET Framework 3.5, 4.8 Catalogue 5028856
.NET Framework 3.5, 4.8.1 Catalogue 5028850
Windows Server 2022
.NET Framework 3.5, 4.8 Catalogue 5028858
.NET Framework 3.5, 4.8.1 Catalogue 5028852
Azure Stack HCI, version 22H2 5028935
.NET Framework 3.5, 4.8 Catalogue 5028858
Azure Stack HCI, version 21H2 5028943
.NET Framework 3.5, 4.8 Catalogue 5028858
Windows 10 version 22H2 5028937
.NET Framework 3.5, 4.8 Catalogue 5028853
.NET Framework 3.5, 4.8.1 Catalogue 5028849
Windows 10 version 21H2 5028944
.NET Framework 3.5, 4.8 Catalogue 5028853
.NET Framework 3.5, 4.8.1 Catalogue 5028849
Windows 10 1809 (mise à jour d’octobre 2018) et Windows Server 2019 5028936
.NET Framework 3.5, 4.7.2 Catalogue 5028862
.NET Framework 3.5, 4.8 Catalogue 5028855
Windows 10 1607 (mise à jour anniversaire) et Windows Server 2016
.NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028169
.NET Framework 4.8 Catalogue 5028854
Windows 10 1507
.NET Framework 3.5, 4.6, 4.6.2 Catalogue 5028186
Windows Embedded 8.1 et Windows Server 2012 R2 5028941
.NET Framework 3.5 Catalogue 5028872
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028864
.NET Framework 4.8 Catalogue 5028859
Windows Embedded 8 et Windows Server 2012 5028940
.NET Framework 3.5 Catalogue 5028869
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028863
.NET Framework 4.8 Catalogue 5028857
Windows Embedded 7 Standard et Windows Server 2008 R2 SP1 5028939
.NET Framework 3.5.1 Catalogue 5028871
.NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2 Catalogue 5028865
.NET Framework 4.8 Catalogue 5028860
Windows Server 2008 SP2 5028942
.NET Framework 2.0, 3.0 Catalogue 5028870
.NET Framework 4.6.2 Catalogue 5028865

Mises à jour affectées

Les versions .NET Framework et .NET suivantes sont affectées :

  • .NET Framework 4.6.2, 4.7, 4.7.1, 4.7.2, lorsque la mise à jour de sécurité du 13 juin 2022 est installée.
  • .NET Framework 4.8, lorsque la mise à jour de sécurité du 13 juin 2022 est installée.
  • .NET Framework 4.8.1, lorsque la mise à jour de sécurité du 13 juin 2022 est installée.
  • .NET 6.0.18.
  • .NET 7.0.7.

Forum aux questions sur la protection des données personnelles

Quand ce changement a-t-il été introduit ?

Ce changement de comportement a été introduit dans les mises à jour de sécurité du 13 juin 2022 pour .NET et .NET Framework.

Est-il nécessaire pour moi d’installer cette nouvelle mise à jour ?

L’installation de cette nouvelle mise à jour est nécessaire uniquement si votre application rencontre le problème décrit dans le titre « Symptôme » en haut de cet article. Si vous ne rencontrez pas ce problème, vous n’avez pas besoin d’installer cette mise à jour.

Cette nouvelle mise à jour remplace-t-elle la mise à jour du .NET Framework du 13 juin 2023 ?

Non. Si vous utilisez .NET Framework, vous devez d’abord installer le correctif cumulatif du 13 juin 2023 ou les mises à jour de sécurité uniquement avant d’installer la nouvelle mise à jour du 22 juin 2023.

Cette nouvelle mise à jour remplace-t-elle .NET 6.0.18 ou .NET 7.0.7 ?

Oui. Dans le cadre de cette mise à jour, nous publions également .NET 6.0.19 et .NET 7.0.8, qui peuvent tous deux être téléchargés à partir de https://get.dot.net/. Ces versions sont destinées à remplacer .NET 6.0.18 et .NET 7.0.7, qui ont été publiées le 13 juin 2023.

La seule différence entre .NET 6.0.19 / 7.0.8 et .NET 6.0.18 / 7.0.7 est le correctif de compatibilité mentionné ci-dessus. .NET 6.0.19 / 7.0.8 ne comportent pas de correctifs de sécurité supplémentaires au-delà de ce qui a déjà été publié dans .NET 6.0.18 / 7.0.7.

Informations sur la protection et la sécurité