CNG-Provider - Verfügbare Key Storage Provider in Windows
Dieses Kapitel beschreibt den Microsoft Base Cryptographic Provider.
Der Microsoft Base Cryptographic Provider ist ein grundlegender Provider in dem CryptoAPI, der grundlegende kryptographische Dienste anbietet. Er unterstützt grundlegende Algorithmen wie RSA (bis zu 512 Bit), RC2, RC4 (40 Bit) und DES (56 Bit). Obwohl die Schlüssellängen und Algorithmen begrenzt sind, ist die Kompatibilität mit älteren Anwendungen und Systemen gewährleistet. Dieser Provider ist für einfache kryptografische Operationen ausgelegt und eignet sich daher für Anwendungen mit minimalen Sicherheitsanforderungen.
Microsoft Enhanced Cryptographic Provider
Der Microsoft Enhanced Cryptographic Provider (Enhanced Provider) erweitert die Fähigkeiten des Microsoft Base Cryptographic Provider (Base Provider), indem er eine höhere Sicherheit durch längere Schlüssel und zusätzliche Algorithmen unterstützt. Er ist mit allen Versionen des CryptoAPI kompatibel.
Key Features:
- Stärkere Keys und Algorithmen:
- RSA: Bis zu 1024 Bit für Signatur und Key Exchange.
- RC2 und RC4: Bis zu 128 Bit, mit einstellbarer Salt-Länge.
- Dreifach-DES: Unterstützung von 112 Bit (2 Keys) und 168 Bit (3 Keys).
- Versionierung:
- Standard-Provider-Name:
MS_ENHANCED_PROV
(behält aus Kompatibilitätsgründen Version 1.0 bei). - Aktuelle Version: 2.0 (identifiziert mit
CryptGetProvParam
mitPP_VERSION
, Rückgabe0x0200
).
- Standard-Provider-Name:
Vergleich der Schlüssellängen:
Algorithmus | Basisanbieter | Erweiterter Anbieter |
---|---|---|
RSA ( Signatur & Austausch) | 512 bits | 1024 bits |
RC2/RC4 (Block-/Stream- Cipher) | 40 bits | 128 bits |
DES | 56 bits | 56 bits |
Triple DES (2-key/3-key) | Not supported | 112 / 168 bits |
Kompatibilität:
- Enhanced Provider und Strong Provider sind rückwärtskompatibel mit dem Base Provider.
- Es können keine RC2- oder RC4-Schlüssel mit einer Länge von 40 Bit erzeugt werden (Standardeinstellung der Basis), aber solche Schlüssel können importiert und verwendet werden.
Der Enhanced Provider bietet mehr Sicherheit bei gleichzeitiger Kompatibilität mit Legacy Systemen.
CNG Key Storage Providers (KSPs)
Das Cryptography API: Next Generation (CNG) unterscheidet im Gegensatz zum älteren CryptoAPI zwischen Kryptoanbietern und Schlüsselspeicheranbietern (KSPs). KSPs verwalten Schlüssel für Erstellung, Speicherung, Export, Import und Verwendung. Je nach Implementierung können sie auch asymmetrische Verschlüsselung, Geheimhaltungsvereinbarungen und Signierung verwalten. Windows enthält die folgenden integrierten KSPs, während Anbieter benutzerdefinierte Anbieter hinzufügen können.
Microsoft Software Key Storage Provider
Algorithmus | Zweck | Key Length (bits) |
---|---|---|
Diffie-Hellman (DH) | Geheime Vereinbarung, Schlüsselaustausch | 512 to 4096 (64-bit Stufen) |
Digitale Signatur Algorithmus (DSA) | Signaturen | 512 to 1024 (64-bit Stufen) |
Elliptic Curve Diffie-Hellman (ECDH) | Geheime Vereinbarung, Schlüsselaustausch | P256, P384, P521 |
Elliptic Curve Digital Signatur Algorithmus (ECDSA) | Signaturen | P256, P384, P521 |
RSA | Asymmetrische Verschlüsselung, Signierung | 512 bis 16384 (in 64-Bit-Stufen) |
Microsoft Smart Card Key Storage Provider
Algorithmus | Zweck | Key Length (bits) |
---|---|---|
Diffie-Hellman (DH) | Geheime Vereinbarung, Schlüsselaustausch | 512 to 4096 (in 64-Bit-Stufen) |
Elliptic Curve Diffie-Hellman (ECDH) | Geheime Vereinbarung, Schlüsselaustausch | P256, P384, P521 |
Elliptic Curve Digital Signature Algorithm (ECDSA) | Signaturen | P256, P384, P521 |
RSA | symmetrische Verschlüsselung, Signierung | 512 to 16384 (in 64-Bit-Stufen) |
Zusammenfassung
CNG-KSPs bieten Flexibilität und erhöhte Sicherheit für die Schlüsselverwaltung:
- Microsoft Software KSP: Geeignet für softwarebasierte kryptografische Schlüssel.
- Microsoft Smart Card KSP: Entwickelt für hardwaregestützte kryptografische Operationen auf Smartcards.
- Custom KSPs: Anbieter können die Funktionalität erweitern, indem sie zusätzliche Schlüsselspeicheranbieter erstellen.
Diese KSPs ermöglichen robuste kryptografische Arbeitsabläufe unter Einhaltung moderner Sicherheitsstandards.
Unterstützte Schlüsselalgorithmen im CNG-Provider
Name der Kurve | OID | Bits | Unterstützt von Microsoft CNG | Unterstützt von OpenSSL | Status | Implementiert |
---|---|---|---|---|---|---|
nistP256 / prime256v1 | 1.2.840.10045.3.1.7 | 256 | Ja | Ja | Modern (Recommended) | Ja |
nistP384 / secp384r1 | 1.3.132.0.34 | 384 | Ja | Ja | Modern (Recommended) | Ja |
nistP521 / secp521r1 | 1.3.132.0.35 | 521 | Ja | Ja | Modern (Recommended) | Ja |
brainpoolP256r1 | 1.3.36.3.3.2.8.1.1.7 | 256 | Ja | Ja | Modern (Optional) | Implementiert, aber derzeit nicht für die Verwendung in OpenSSL Version 3.0.15 unterstützt |
brainpoolP384r1 | 1.3.36.3.3.2.8.1.1.11 | 384 | Ja | Ja | Modern (Optional) | Implementiert, aber derzeit nicht für die Verwendung in OpenSSL Version 3.0.15 unterstützt |
brainpoolP512r1 | 1.3.36.3.3.2.8.1.1.13 | 512 | Ja | Ja | Modern (Optional) | Implementiert, aber derzeit nicht für die Verwendung in OpenSSL Version 3.0.15 unterstützt |
Algorithmus | Key Size | Unterstützt von Microsoft CNG | Unterstützt von OpenSSL | Status | Implementiert |
---|---|---|---|---|---|
RSA-2048 | 2048 bits | Ja | Ja | Modern (empfohlen) | Ja |
RSA-3072 | 3072 bits | Ja | Ja | Modern (empfohlen für Langzeit) | Ja |
RSA-4096 | 4096 bits | Ja | Ja | Modern (Hochsicherheit) | Ja |
RSA-512 | 512 bits | Yes (Deprecated) | Yes (Deprecated) | Legacy (unsicher) | Ja, aber wegen der geringen Sicherheit ist die Verwendung durch OpenSSL verboten. |
RSA-1024 | 1024 bits | Ja (Deprecated) | Ja (Deprecated) | Legacy (unsicher) | Ja |
RSA-1536 | 1536 bits | Ja (Deprecated) | Ja | Legacy (unsicher) | Ja |
RSA-8192 | 8192 bits | Ja | Ja | Modern (optional, hohe Sicherheit) | Ja |