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

Remarque

Date de publication :
Dernière mise à jour : 22 juin 2022

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

[24/07/2023] révisé pour ajouter des 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 de l’aide pour atténuer un problème survenant après l’installation des mises à jour du 13 juin 2023 pour .NET Framework et .NET, en raison duquel les utilisateurs peuvent rencontrer des problèmes avec la façon dont .NET Framework importe les certificats X.509.

Symptôme

Lors de l’utilisation de la classe , X509Certificate2ou X509Certificate2Collection pour X509Certificateimporter 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 afin de résoudre ce problème. Ces programmes d’installation peuvent être appliqués à la machine affectée, que celle-ci ait déjà appliqué les mises à jour de sécurité .NET Framework et .NET du 13 juin 2023 d’origine.

Important

  • Si vous avez déjà utilisé les commutateurs de Registre documentés dans KB5025823 Modification de la façon dont les applications .NET importent les certificats X.509 pour contourner ce problème, veuillez supprimer 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 plus récentes pour Windows et les versions de Windows Windows Server 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 sur WSUS, consultez WSUS et le site de catalogue. Pour obtenir des instructions sur Configuration Manager, 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, consultez la solution de contournement ou la solution de contournement alternative qui a été appliquée pour obtenir des instructions.

Version du produit Mettre à jour Article de la Base de connaissances
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 version 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 version 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 régulier publié le 11 juillet 2023 pour toutes les versions prises en charge de .NET Framework pour Windows et les versions de Windows Windows Server concerné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.

Remarque : Les clients qui s’appuient sur Windows Update et Windows Server Update Services recevront automatiquement les mises à jour spécifiques à la version de .NET Framework. Les administrateurs système avancés peuvent également utiliser les liens de téléchargement directs du catalogue Microsoft Update ci-dessous pour les mises à jour spécifiques à .NET Framework. Avant d’appliquer ces mises à jour, veillez à examiner attentivement l’applicabilité de la version de .NET Framework, afin de vous assurer que vous n’installez les mises à jour que 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, consultez la solution de contournement ou la solution de contournement alternative qui a été appliquée pour obtenir des instructions.

Version du produit Mettre à jour Article de la Base de connaissances
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 version 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 version 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 concernées

Les versions .NET Framework et .NET suivantes sont concerné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.

Dois-je 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 l’en-tête « Symptôme » au début de cet article. Si vous ne rencontrez pas ce problème, il n’est pas nécessaire que vous installiez cette mise à jour.

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

Non. Si vous utilisez .NET Framework, vous devez d’abord installer le correctif cumulatif ou les mises à jour de sécurité uniquement du 13 juin 2023 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 ê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 comporte aucun correctif de sécurité supplémentaire 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é