Date de publication d’origine : 21 novembre 2025
ID de la base de connaissances : 5073121
Introduction
Les mises à jour Windows du 14 octobre 2025 traitant de CVE-2024-30098 ont révélé des problèmes dans les applications où le code n’identifie pas correctement le fournisseur qui gère la clé pour les certificats propagés d’un carte intelligent vers le magasin de certificats. Cette erreur d’identification peut entraîner l’échec des opérations de chiffrement dans certains scénarios. Ce document fournit des conseils aux développeurs d’applications sur la façon de détecter le gestionnaire approprié et de résoudre ces problèmes.
Résumé
Lorsque des certificats sont propagés d’un carte intelligent vers le magasin de certificats Windows, le processus de propagation peut utiliser l’un des fournisseurs suivants :
-
Fournisseur de services de chiffrement (CSP) hérité, qui s’appuie sur l’interface de programmation d’applications de chiffrement (CAPI) héritée
-
Fournisseur de stockage de clés (KSP), qui s’appuie sur l’API de chiffrement : Nouvelle génération (CNG). Il s’agit du remplacement moderne introduit dans Windows Vista.
Avant le correctif pour CVE-2024-30098, l’algorithme de propagation utilisait csp pour les certificats rsa et KSP pour tous les autres. Cette approche n’était pas sécurisée, car l’interface CAPI ne prend pas en charge les algorithmes de chiffrement modernes, ce qui limite les fonctionnalités de sécurité.
Les mises à jour de sécurité du 14 octobre 2025 ont supprimé cette gestion spéciale et KSP est désormais utilisé pour tous les certificats.
Déterminer l’ensemble d’API à utiliser
Les applications qui s’appuient sur des clés RSA gérées par csp peuvent échouer lorsque la clé est gérée par KSP. Pour résoudre ce problème, les applications doivent détecter quel fournisseur gère la clé et utiliser l’ensemble d’API correspondant (CAPI ou CNG).
Important : N’utilisez pas les fonctions CryptAcquireContextW ou CryptAcquireContextA , car l’API est déconseillée. Utilisez plutôt la fonction CryptAcquireCertificatePrivateKey .
Fonction CryptAcquireCertificatePrivateKey
L’appel de CryptAcquireCertificatePrivateKey renvoie un handle (phCryptProvOrNCryptKey) de type HCRYPTPROV_OR_NCRYPT_KEY_HANDLE. Ce handle peut être :
-
Handle CSP (HCRYPTPROV) : utilisez des fonctions CryptoAPI comme CryptSignHash.
-
Handle CNG (NCRYPT_KEY_HANDLE) : utilisez des fonctions CNG comme NCryptSignHash.
Remarque : Lorsque vous appelez CryptAcquireCertificatePrivateKey, veillez à inclure le CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG dans le paramètre dwFlags.
Pour déterminer le type de handle, case activée la valeur pdwKeySpec :
|
valeur pdwKeySpec |
API de chiffrement à utiliser |
|
AT_KEYEXCHANGE ou AT_SIGNATURE |
CAPI |
|
CERT_NCRYPT_KEY_SPEC |
CNG |
Solution de contournement
Une solution de contournement temporaire est disponible pour les clients affectés par l’application de cette modification. Une clé de Registre temporaire est disponible pour passer du mode Application au mode Audit .
Important : La prise en charge de cette clé de Registre sera supprimée dans les mises à jour d’avril 2026.
|
Chemin d’accès au Registre |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais |
|
Type (Type) |
REG_DWORD |
|
Nom de la valeur |
DisableCapiOverrideForRSA |
|
Données de la valeur |
|
Références
Stockage et récupération de clés
Fonction CryptAcquireCertificatePrivateKey (wincrypt.h)
.