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.

Einleitung

Zu den Vorteilen von Key Storage Providern zählen unter Anderem:

  • Schlüsselisolation. Schlüssel können verwendet werden, ohne dass sie den KSP verlassen (wichtig für Verwendung von in Hardware gespeicherten Schlüsseln).
  • Auditierbarkeit von Schlüsselzugriffen (siehe Ereignis Nr. 5058 et 5059).
  • Unterstützung für moderne Algorithmen wie SHA2 und auf courbes elliptiques basierende Schlüssel.

Hardware-Hersteller können eigene CSP oder KSP entwickeln, um den Zugriff auf ihre Produkte zu ermöglichen. Dies ist häufig bei Hardware Security Modulen (HSM, etwa von SafeNet oder Utimaco) oder Smartcards (etwa von Gemalto oder Yubico) der Fall.

Speicherorte

Hiermit sind die Speicherorte der privaten Schlüssel gemeint. Öffentliche Schlüssel sind Bestandteil der dazugehörigen Zertifikate.

BereichCryptoAPI / CSPCNG / KSP
Benutzer%AppData%\Microsoft\Crypto\RSA\{Benutzer-SID}
%AppData%\Microsoft\Crypto\DSA\{Benutzer-SID}
%AppData%\Microsoft\Crypto\Keys
Lokales System%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
Lokaler Dienst%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\S-1-5-19
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\S-1-5-19
%WinDir%\ServiceProfiles\LocalService
Netzwerkdienst%AllUsersProfile%\Application Data\Microsoft\Crypto\RSA\S-1-5-20
%AllUsersProfile%\Application Data\Microsoft\Crypto\DSA\S-1-5-20
%WinDir%\ServiceProfiles\NetworkService
Alle Benutzer%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

Übersicht über die im Windows System vorhandenen Provider

Nachfolgend eine Übersicht über auf einem modernen Windows-System vorhandene KSP und CSP.

Fournisseur de stockage de clés

FournisseurNotes
Microsoft Passport Key Storage ProviderWird u.A. von Windows Hello for Business verwendet. Kann Schlüssel transparent entweder in Software, oder (sofern vorhanden) in einem Trusted Platform Modul (TPM) speichern.
Microsoft Platform Crypto ProviderKann Schlüssel in einem Module de plate-forme de confiance (TPM) speichern. Unterstützt nicht alle CNG-Algorithmen aufgrund Einschränkungen im jeweiligen TPM-Standard. ECC-Schlüssel bei Beantragung über eine Zertifikatvorlage erst ab Windows 10 21H2 oder Windows 11 möglich.
Fournisseur de stockage de clés de cartes à puce MicrosoftGenerischer Provider, um Schlüssel in einer Carte à puce zu speichern. Wird von vielen Smartcard-Herstellern unterstützt. Die Unterstützung für bestimmte Algorithmen hängt von der verwendeten Smartcard ab, z.B. unterstützt die Microsoft virtuelle Smartcard keine ECC-Schlüssel.
Microsoft Software Key Storage ProviderGenerischer Provider, um Schlüssel in Software zu speichern. Unterstützt alle im Windows Ökosystem vorhandenen Algorithmen für Zertifikate. Sollte der Mindest-Standard sein.

Cryptographic Service Provider

Unter den gelisteten CSP können die folgenden für die Erzeugung von RSA-Schlüsseln bis 16384 Bit Schlüsselgröße verwendet werden:

  • Microsoft Base Cryptographic Provider v1.0
  • Microsoft Base Smart Card Crypto Provider (maximal 2048 Bit Schlüsselgröße)
  • Microsoft Enhanced Cryptographic Provider v1.0
  • Microsoft Enhanced RSA and AES Cryptographic Provider
  • Microsoft RSA SChannel Cryptographic Provider (nicht für reine Signaturschlüssel)
  • Microsoft Strong Cryptographic Provider
FournisseurNotes
Microsoft Base Cryptographic Provider v1.0Sollte nach Möglichkeit nicht mehr verwendet werden.
Microsoft Base DSS and Diffie-Hellman Cryptographic ProviderNicht für die Erzeugung von RSA Schlüsseln verwendbar.
Sollte nach Möglichkeit nicht mehr verwendet werden.
Microsoft Base DSS Cryptographic ProviderNicht für die Erzeugung von RSA Schlüsseln verwendbar.
Microsoft Base Smart Card Crypto ProviderGenerischer Provider, um Schlüssel in einer Carte à puce zu speichern.
Maximale Schlüssellänge auf 2048 Bit begrenzt.
Sollte nach Möglichkeit nicht mehr verwendet werden.
Microsoft DH SChannel Cryptographic ProviderNicht für die Erzeugung von RSA Schlüsseln verwendbar.
Microsoft Enhanced Cryptographic Provider v1.0Sollte nach Möglichkeit nicht mehr verwendet werden.
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic ProviderNicht für die Erzeugung von RSA Schlüsseln verwendbar.
Microsoft Enhanced RSA and AES Cryptographic ProviderSollte nach Möglichkeit nicht mehr verwendet werden.
Fournisseur de cryptographie Microsoft RSA SChannelUnterstützt das SChannel Security Package und AES mit bis zu 256 Bit Schlüssellänge. Sollte deshalb für TLS/SSL (z.B. Serveur web, Remotedesktop) verwendet werden, wenn kein Key Storage Provider möglich ist. Standardeinstellung für Webserver und CEP Encryption Zertifikatvorlagen.
Microsoft Strong Cryptographic ProviderSollte nach Möglichkeit nicht mehr verwendet werden.

Verwendung von Key Storage Providern

Die Verwendbarkeit von Key Storage Providern in einer Zertifikatvorlage wird dadurch freigegeben, dass die Kompatibilität von Zertifizierungsstelle und beantragenden Clients auf mindestens Windows Vista / Windows Server 2008 gestellt wird. Hierdurch wird die Zertifikatvorlage auf die Version 3 angehoben und kann nicht mehr durch ältere Betriebssysteme verwendet werden.

Voir également les articles suivants à ce sujet :

Bin ich bei der Konfiguration meiner Zertifikatvorlage frei in der Wahl des Providers?

Nein, die Verwendung des Providers hängt neben dessen kryptographischen Fähigkeiten auch davon ab, ob die Anwendung ihn verwenden kann. Beispielsweise sind Betriebssysteme vor Windows Vista nicht in der Lage, Key Storage Provider einzusetzen. Der Microsoft Platform Crypto Provider unterstützt beispielsweise nicht alle Algorithmen.

Ebenfalls sind einige Anwendungen bis heute auf die Verwendung eines CSP angewiesen. Ein prominentes Beispiel ist der Service d'enregistrement des périphériques réseau (NDES), sowie der dazugehörige Connector für Microsoft Intune.

Voir également les articles suivants à ce sujet :

Muss ich unbedingt einen Key Storage Provider verwenden?

Es kann als Best Practice angesehen werden, überall wo es möglich ist einen Key Storage Provider anstelle eines Cryptographic Service Provider einzusetzen und dafür zu sorgen, dass selbst entwickelte Anwendungen zu diesen kompatibel sind.

Wie kann ich die auf dem System installierten Provider anzeigen?

Die auf einem System vorhandenen Provider können mit folgendem Befehl aufgelistet werden:

certutil -csplist

Über die Windows PowerShell ist das Auflisten über das ICSPInformations COM Objekt möglich:

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

Wie kann ich herausfinden, welchen Provider ein bestimmtes Zertifikat verwendet?

Hierfür gibt es einen „certutil“-Befehl. Das entsprechende Zertifikat wird anhand seiner SHA1-Prüfsumme (auch Thumbprint genannt) identifiziert.

Für den Computer-Zertifikatspeicher:

certutil -verifystore my {Thumbprint}

Für den Zertifikatspeicher des aktuell angemeldeten Benutzers:

certutil -user -verifystore my {Thumbprint}

Wie kann ich die durch einen bestimmten Provider geschützte Schlüssel auflisten?

Auch hierfür gibt es einen „certutil“-Befehl:

Für den Computer-Zertifikatspeicher:

certutil -csp "{CSPName}" -key

Für den Zertifikatspeicher des aktuell angemeldeten Benutzers:

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

Liens complémentaires :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais