Principes de base : fournisseur de services cryptographiques (CSP) et fournisseur de stockage de clés (KSP)

Depuis Windows NT 4.0, CryptoAPI comprend les Cryptographic Service Provider (CSP).

Le but est qu'une application n'ait pas à se soucier de la mise en œuvre concrète de la gestion des clés, mais puisse laisser cette tâche à des interfaces génériques du système d'exploitation. Cela permet également d'éviter que les clés cryptographiques soient chargées dans la mémoire vive dans le contexte de sécurité de l'utilisateur/de l'application utilisée (un incident de sécurité grave, basé précisément sur ce problème, a été le Incident Heartbleed).

Par exemple, pour le logiciel de l'autorité de certification, la manière dont votre clé privée est protégée (dans un logiciel ou à l'aide d'un module de sécurité matériel (HSM), par exemple) n'a aucune importance sur le plan technique. L'appel de la clé privée est toujours identique pour l'autorité de certification.

Avec Windows Vista et l'introduction de Cryptography Next Generation (CNG) en remplacement de CryptoAPI, les fournisseurs de stockage de clés (KSP) ont été introduits.

Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.

Introduction

Les avantages des fournisseurs de stockage clé sont notamment les suivants :

  • Isolation de la clé. Les clés peuvent être utilisées sans quitter le PSC (important pour l'utilisation de clés stockées dans le matériel).
  • Audibilité des accès clés (voir événement n. 5058 et 5059).
  • Soutien pour les technologies modernes Algorithmes tels que SHA2 et sur courbes elliptiques clé basée sur l'utilisation.

Les fabricants de matériel peuvent développer leurs propres CSP ou KSP pour permettre l'accès à leurs produits. Ceci est souvent le cas pour Modules de sécurité matérielle (HSM, par exemple de SafeNet ou Utimaco) ou des cartes à puce (comme celles de Gemalto ou Yubico).

Lieux de stockage

Il s'agit des emplacements de stockage des clés privées. Les clés publiques font partie intégrante des certificats correspondants.

DomaineCryptoAPI / CSPCNG / KSP
Utilisateur%AppData%\Microsoft\Crypto\RSA\{SID utilisateur}
%AppData%\Microsoft\Crypto\DSA\{SID utilisateur}
%AppData%\Microsoft\Crypto\Keys
Système local%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\S-1-5-18
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\S-1-5-18
%AllUsersProfile%\Application Data\Microsoft\Crypto\SystemKeys
Service local%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\S-1-5-19
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\S-1-5-19
%WinDir%\ServiceProfiles\LocalService
Service réseau%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\S-1-5-20
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\S-1-5-20
%WinDir%\ServiceProfiles\NNetworkService
Tous les utilisateurs%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\MachineKeys
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\MachineKeys
%AllUsersProfile%\Application Data\Microsoft\Crypto\Keys
Source : Sécurité de l'infrastructure de clés publiques et des certificats de Microsoft Windows Server 2008. Brian Komar, 2008

Aperçu des fournisseurs d'accès présents dans le système Windows

Voici un aperçu des KSP et CSP présents sur un système Windows moderne.

Fournisseur de stockage de clés

FournisseurNotes
Fournisseur de stockage de clés Microsoft PassportUtilisé entre autres par Windows Hello for Business. Peut stocker des clés de manière transparente soit dans un logiciel, soit (si disponible) dans un module de plate-forme de confiance (TPM).
Microsoft Platform Crypto ProviderPeut-on mettre les clés dans un Module de plate-forme de confiance (TPM) enregistrer. Ne prend pas en charge tous les algorithmes CNG en raison de restrictions dans la norme TPM correspondante. Clé ECC possible uniquement à partir de Windows 10 21H2 ou Windows 11 en cas de demande via un modèle de certificat.
Fournisseur de stockage de clés de cartes à puce MicrosoftFournisseur générique permettant de stocker des clés dans un Carte à puce pour l'enregistrer. Est pris en charge par de nombreux fabricants de cartes à puce. La prise en charge de certains algorithmes dépend de la carte à puce utilisée, par exemple la carte à puce virtuelle Microsoft ne prend pas en charge les clés ECC.
Fournisseur de stockage de clés logicielles MicrosoftFournisseur générique permettant de stocker des clés dans des logiciels. Supporte tous les algorithmes de certificats disponibles dans l'écosystème Windows. Devrait être la norme minimale.

Fournisseur de services cryptographiques

Parmi les CSP répertoriés, les suivants peuvent être utilisés pour générer des clés RSA d'une taille maximale de 16384 bits :

  • Microsoft Base Cryptographic Provider v1.0
  • Microsoft Base Smart Card Crypto Provider (taille de clé maximale de 2048 bits)
  • Microsoft Enhanced Cryptographic Provider v1.0
  • Microsoft Enhanced RSA and AES Cryptographic Provider
  • Microsoft RSA SChannel Cryptographic Provider (pas pour les clés de signature pures)
  • Fournisseur de cryptographie Microsoft Strong
FournisseurNotes
Microsoft Base Cryptographic Provider v1.0Ne devrait plus être utilisé dans la mesure du possible.
Microsoft Base DSS et Diffie-Hellman Cryptographic ProviderNe peut pas être utilisé pour la génération de clés RSA.
Ne devrait plus être utilisé dans la mesure du possible.
Microsoft Base DSS Cryptographic ProviderNe peut pas être utilisé pour la génération de clés RSA.
Fournisseur de cartes à puce Microsoft Base CryptoFournisseur générique permettant de stocker des clés dans un Carte à puce à enregistrer.
Longueur de clé maximale limitée à 2048 bits.
Ne devrait plus être utilisé dans la mesure du possible.
Fournisseur de cryptographie Microsoft DH SChannelNe peut pas être utilisé pour la génération de clés RSA.
Microsoft Enhanced Cryptographic Provider v1.0Ne devrait plus être utilisé dans la mesure du possible.
Microsoft Enhanced DSS et Diffie-Hellman Cryptographic ProviderNe peut pas être utilisé pour la génération de clés RSA.
Microsoft Enhanced RSA and AES Cryptographic ProviderNe devrait plus être utilisé dans la mesure du possible.
Fournisseur de cryptographie Microsoft RSA SChannelSupporte le SChannel Security Package et AES avec une longueur de clé allant jusqu'à 256 bits. Devrait donc être utilisé pour TLS/SSL (p.ex. Serveur web, Bureau à distance) si aucun fournisseur de stockage de clés n'est possible. Paramètre par défaut pour les serveurs web et les modèles de certificats CEP Encryption.
Fournisseur de cryptographie Microsoft StrongNe devrait plus être utilisé dans la mesure du possible.

Utilisation de fournisseurs de stockage de clés

L'utilisation de fournisseurs de stockage de clés dans un modèle de certificat est autorisée si la compatibilité de l'autorité de certification et des clients demandeurs est réglée sur au moins Windows Vista / Windows Server 2008. Le modèle de certificat passe ainsi à la version 3 et ne peut plus être utilisé par des systèmes d'exploitation plus anciens.

Voir également les articles suivants à ce sujet :

Suis-je libre de choisir mon fournisseur d'accès lors de la configuration de mon modèle de certificat ?

Non, l'utilisation du fournisseur dépend non seulement de ses capacités cryptographiques, mais aussi de la capacité de l'application à l'utiliser. Par exemple, les systèmes d'exploitation antérieurs à Windows Vista ne sont pas en mesure d'utiliser des fournisseurs de stockage de clés. Le site Microsoft Platform Crypto Provider ne prend pas en charge tous les algorithmes, par exemple.

De même, certaines applications dépendent encore aujourd'hui de l'utilisation d'un CSP. Un exemple marquant est le Service d'enregistrement des périphériques réseau (NDES), ainsi que le connecteur correspondant pour Microsoft Intune.

Voir également les articles suivants à ce sujet :

Dois-je absolument utiliser un fournisseur de stockage de clés ?

On peut considérer comme une bonne pratique le fait de recourir à un fournisseur de stockage de clés plutôt qu'à un fournisseur de services cryptographiques partout où cela est possible et de veiller à ce que les applications développées en interne soient compatibles avec ces derniers.

Comment afficher les fournisseurs d'accès installés sur le système ?

Les fournisseurs d'accès présents sur un système peuvent être listés à l'aide de la commande suivante :

certutil -csplist

Avec Windows PowerShell, l'énumération est possible grâce à l'attribut ICSPInformations COM objet possible :

$KspList = New-Object -ComObject 'X509Enrollment.CCspInformations'
$KspList.AddAvailableCsps()
$KspList | Select-Object -Property Name

Comment puis-je savoir quel fournisseur d'accès utilise un certificat donné ?

Il existe pour cela une commande „certutil“. Le certificat correspondant est identifié par sa somme de contrôle SHA1 (également appelée thumbprint).

Pour le magasin de certificats de l'ordinateur :

certutil -verifystore my {Thumbprint}

Pour la liste de certificats de l'utilisateur actuellement connecté :

certutil -user -verifystore my {Thumbprint}

Comment répertorier les clés protégées par un fournisseur d'accès spécifique ?

Il existe également une commande „certutil“ pour cela :

Pour le magasin de certificats de l'ordinateur :

certutil -csp "{CSPName}" -key

Pour la liste de certificats de l'utilisateur actuellement connecté :

certutil -user -csp "{CSPName}" -key

Liens complémentaires :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais