- Wichtige Erkenntnisse
- Was ist ein CSP (Cryptographic Service Provider)?
- Moderne Microsoft-Kryptografieanbieter
- Was ist PKCS#11?
- CSP vs. PKCS#11: Vergleich
- CSP, PKCS#11 und Codesignierung
- Eine Anmerkung zu FIPS 140-3
- Wie Verschlüsselungsberatung hilft
- Häufig gestellte Fragen
- Unterschrift gegen hardwaregeschützte Schlüssel
CSP (Cryptographic Service Provider) ist eine Windows-Softwarebibliothek, die kryptografische Operationen über Microsofts CryptoAPI durchführt. PKCS#11 ist ein plattformübergreifender Standard, der die Kommunikation zwischen Software und kryptografischer Hardware wie HSMs, Smartcards und USB-Tokens definiert. Beide ermöglichen Anwendungen den sicheren Zugriff auf kryptografische Funktionen und Schlüssel.
CSP und PKCS#11 sind zwei kryptografische Schnittstellen, die es Anwendungen ermöglichen, kryptografische Funktionen zu nutzen und Schlüssel zu schützen. Ein CSP (Cryptographic Service Provider) ist ein Windows-spezifisches Softwaremodul, das über Microsofts CryptoAPI verwendet wird. PKCS#11 ist ein offener, plattformübergreifender Standard (auch Cryptoki genannt) für die Kommunikation mit Hardware wie HSMs und Smartcards. Beide werden häufig für die Codesignierung eingesetzt , um private Schlüssel in sicherer Hardware zu speichern.
Wichtige Erkenntnisse
- Ein CSP (Cryptographic Service Provider) ist eine Windows-Softwarebibliothek, die kryptografische Operationen über Microsofts CryptoAPI (und deren Nachfolger CNG) durchführt.
- PKCS#11 (auch Cryptoki genannt) ist ein plattformübergreifender Standard, der definiert, wie Anwendungen mit kryptografischen Token wie HSMs, Smartcards und USB-Token kommunizieren.
- Der Hauptunterschied: CSP ist Windows-spezifisch und von Microsoft definiert, während PKCS#11 ein offener Standard ist, der unter Windows, Linux und macOS funktioniert.
- Beide sind für die Codesignierung von zentraler Bedeutung, da sie es einem Signaturtool ermöglichen, einen privaten Schlüssel zu verwenden, der sich innerhalb sicherer Hardware befindet, ohne dass der Schlüssel diese jemals verlässt.
- Beide sind nach FIPS 140-3 (dem Nachfolger von FIPS 140-2) validiert und werden weiterentwickelt, um Post-Quantum-Signaturalgorithmen wie ML-DSA und die Hash-basierten Verfahren LMS und XMSS zu unterstützen.
Was ist ein CSP (Cryptographic Service Provider)?
Ein Kryptografiedienstanbieter (CSP) ist eine Softwarebibliothek in Microsoft Windows, die die eigentliche Implementierung kryptografischer Operationen für die Microsoft CryptoAPI (CAPI) bereitstellt. Wenn eine Windows-Anwendung eine CryptoAPI-Funktion aufruft, um Daten zu verschlüsseln, einen Schlüssel zu generieren oder eine digitale Signatur zu erstellen , wird die Anfrage an einen CSP weitergeleitet. Dieser führt die kryptografischen Operationen aus und verwaltet die zugehörigen Schlüssel. CSPs sind spezielle DLLs, die von Microsoft digital signiert werden müssen. Windows überprüft diese Signatur beim Laden der CSPs, um sicherzustellen, dass sie nicht manipuliert wurden.
CSPs können software- oder hardwarebasiert sein, beispielsweise durch Smartcards und HSMs. Es ist wichtig zu wissen, dass die klassische CryptoAPI und ihre CSPs das ältere kryptografische Modell von Windows darstellen. Microsofts neueres Framework, die Cryptography API : Next Generation (CNG), verwendet Key Storage Providers (KSPs) und ist der moderne Nachfolger. Der Begriff CSP ist jedoch weiterhin weit verbreitet, und viele Anbieter sind nach wie vor aktiv.
Warum CSPs wichtig sind
- Sie vereinfachen die Verschlüsselung für Anwendungen: Entwickler können ihre Anwendungen über Standard-API-Aufrufe absichern, ohne selbst Kryptografie implementieren zu müssen; der CSP kümmert sich darum im Hintergrund.
- Sie unterstützen sowohl Software als auch Hardware: Ein CSP kann softwarebasierte Schlüssel oder hardwaregestützte Sicherheitslösungen wie Smartcards und HSMs verwenden und so eine stärkere Schutzebene hinzufügen.
- Sie sind nativ in Windows integriert: Für Windows-Anwendungen sind CSPs und ihre CNG-Nachfolger der integrierte, sofort einsatzbereite Weg zu sicheren kryptografischen Operationen.
- Sie zentralisieren die kryptografische Verwaltung: VerschlüsselungDigitale Signaturen und Schlüsselverwaltung werden einheitlich gehandhabt, sodass sich die Entwickler auf die Anwendungslogik konzentrieren können.
- Sie unterstützen die Einhaltung der Vorschriften: Durch die Durchsetzung starker, validierter GeheimschriftSie helfen dabei, Anforderungen wie beispielsweise HIPAA, PCI DSS und Datenschutz.
Moderne Microsoft-Kryptografieanbieter
Microsoft bietet mehrere aktuelle Anbieter an, während ältere (wie der Microsoft Base Cryptographic Provider und der RSA SChannel Provider) zugunsten leistungsstärkerer, modernerer Alternativen nicht mehr unterstützt werden. Die wichtigsten modernen Anbieter:
| Provider | Zweck | Typische Verwendung |
| Software Key Storage Provider (KSP) | Universelle softwarebasierte Schlüsselspeicherung und -operationen (RSA, ECC, SHA-2) | Schlüsselaustausch, digitale Signaturen, Datenverschlüsselung |
| Anbieter von Smartcard-Schlüsselspeicherung | Verwaltet auf Smartcards gespeicherte Schlüssel | Sichere Anmeldung, Identitätsprüfung, MFA |
| Plattform-Kryptoanbieter | Nutzt das TPM für hardwaregestützte Operationen | Sicherer Systemstart, Festplattenverschlüsselung, Schlüsselattestierung |
| Erweiterter kryptografischer Anbieter | Höhere Sicherheit durch längere Schlüsselunterstützung (RSA, AES, SHA). | Längere Tasten, Abwärtskompatibilität |
| AES-Kryptografieanbieter | Dedizierte symmetrische AES-Verschlüsselung | Schnelle Datei- und Datenverschlüsselung |
Was ist PKCS#11?
PKCS#11 steht für Public-Key Cryptography Standard #11. PKCS ist eine Familie kryptografischer Standards, die ursprünglich von RSA Laboratories entwickelt wurden. Jede Nummer definiert einen spezifischen Standard. PKCS#11 definiert insbesondere eine kryptografische Token-Schnittstelle (API), über die Anwendungen mit kryptografischer Hardware wie HSMs, Smartcards und USB-Tokens kommunizieren. Diese API heißt Cryptoki (kurz für Cryptographic Token Interface). Im Gegensatz zu einem CSP ist PKCS#11 ein offener, herstellerneutraler Standard, der unter Windows, Linux und macOS funktioniert. Daher ist er die gemeinsame Sprache für die plattformübergreifende Kommunikation mit HSMs.
Cryptoki, Spielautomaten, Token und Objekte
PKCS#11 organisiert den Hardwarezugriff anhand einiger weniger Kernkonzepte:
- فتحة: Die physische Schnittstelle, über die eine Anwendung auf ein Token zugreift, beispielsweise einen Smartcard-Leser oder einen USB-Anschluss. Ein System kann mehrere Steckplätze besitzen.
- Token: Das eigentliche Gerät, das die Schlüssel speichert und kryptografische Operationen durchführt, wie beispielsweise eine Smartcard, ein USB-Stick oder ein HSM. Dies ist der Kern von PKCS#11: Die Schlüssel bleiben im Token eingeschlossen.
- Objekte: Die vom Token verwalteten Daten: Schlüsselobjekte (öffentliche, private oder geheime Schlüssel), Zertifikatsobjekte (wie z. B. X.509-Zertifikate), Datenobjekte und herstellerspezifische Objekte.
- Sitzungen: Eine Sitzung ist eine temporäre Verbindung zwischen einer Anwendung und einem Token. Öffentliche Objekte sind für alle zugänglich; für private Objekte ist eine Anmeldung erforderlich. PKCS#11 definiert zwei Rollen: den Sicherheitsbeauftragten (der Token und PINs verwaltet) und den normalen Benutzer (der auf private Objekte zugreift).
Die entscheidende Sicherheitseigenschaft besteht darin, dass die Signierung oder Entschlüsselung des Tokens durch eine Anwendung innerhalb des Tokens erfolgt und der private Schlüssel die Hardware niemals verlässt. Die Anwendung sendet lediglich Daten und erhält ein Ergebnis zurück.
Warum PKCS#11 wichtig ist
- Es handelt sich um einen einheitlichen Standard: Anwendungen interagieren konsistent mit kryptografischer Hardware, unabhängig vom Gerätehersteller, wodurch Kompatibilität und Zuverlässigkeit verbessert werden.
- Es ist plattformübergreifend: PKCS#11 funktioniert unter Windows, Linux und macOS, sodass Entwickler nicht an ein bestimmtes Betriebssystem gebunden sind.
- Es speichert Schlüssel in Hardware: Die zum Signieren und Entschlüsseln verwendeten privaten Schlüssel bleiben im Token enthalten, wodurch ein Diebstahl selbst bei Kompromittierung des Hosts verhindert wird.
- Es unterstützt die Einhaltung der Vorschriften: PKCS#11-Implementierungen werden üblicherweise validiert, um FIPS 140-3, die strenge Anforderungen an ein sicheres Schlüsselmanagement erfüllt.
CSP vs. PKCS#11: Vergleich
| Funktion | CSP | PKCS # 11 |
| Plattform | Windows-spezifisch | Plattformübergreifend (Windows, Linux, macOS) |
| Hauptnutzen | Windows-Anwendungen | Jede Anwendung, die kryptografische Token verwendet |
| Hardwareunterstützung | Smartcards, HSMs, Software | Smartcards, HSMs, USB-Tokens |
| Standardisierung | Microsoft-definierte Schnittstelle | Offener Standard (ursprünglich RSA Labs) |
| Schlüsselverwaltung | Integriert in die Windows-Sicherheit | Sichere Schlüsselspeicherung in Hardware-Token |
| Verwendung bei der Codesignierung | Windows-Signaturtools (signtool) | Plattformübergreifende Signierung gegen HSM-verwaltete Schlüssel |
CSP, PKCS#11 und Codesignierung
Beide Schnittstellen sind grundlegend für die sichere Codesignierung. Die Sicherheit der Codesignierung hängt vollständig vom Schutz des privaten Signaturschlüssels ab. Am sichersten lässt sich dies gewährleisten, indem der Schlüssel in einem HSM (Helikopter-Sicherheitsmodul) gespeichert wird und somit niemals auf die Festplatte gelangt. CSP (über CNG und KSP) und PKCS#11 sind die beiden Schnittstellen, die es einem Signaturtool ermöglichen, einen im HSM gespeicherten Schlüssel zu verwenden: Das Signaturtool sendet den zu signierenden Hash über die Schnittstelle an das HSM, das HSM signiert innerhalb seiner sicheren Grenzen, und die Signatur wird zurückgesendet, ohne dass der Schlüssel das HSM verlässt. Unter Windows verwenden Tools wie signtool typischerweise CSP oder KSP; plattformübergreifende und unternehmensweite Signaturen nutzen üblicherweise PKCS#11. Dasselbe Muster sichert die Signierung von Container-Images, Firmware und die Zeitstempelung.
Post-Quantum Signing Through CSP and PKCS#11
Mit der Umstellung der Codesignierung auf Post-Quanten-Algorithmen entwickeln sich auch diese Schnittstellen weiter. Der PKCS#11-Standard und HSM-Anbieter fügen Unterstützung für … hinzu. NIST Post-Quanten-Signaturalgorithmen, hauptsächlich ML-DSA (FIPS 204), und die zustandsbehafteten Hash-basierten Verfahren LMS und XMSS (NIST SP 800-208), die NSA CNSA 2.0 wird heute für die Signierung von Firmware und Software empfohlen. Da ein Großteil der Signaturinfrastruktur Schlüssel über PKCS#11 oder CNG erhält, ist die Unterstützung dieser Schnittstelle ein praktischer Hürdenfaktor für die Post-Quanten-Codesignierung: Eine Organisation kann nur mit dieser Schnittstelle signieren. ML-DSA oder LMS, sobald sein HSM und seine kryptografische Schnittstelle diese Algorithmen bereitstellen. Die Bestätigung dieser Unterstützung ist ein erster Schritt bei jeder Migration nach der Quantensignatur.
Eine Anmerkung zu FIPS 140-3
HSMs und kryptografische Module, auf die über CSP und PKCS#11 zugegriffen wird, werden gemäß FIPS 140-3, dem aktuellen US-amerikanischen und kanadischen Standard für kryptografische Module, validiert. FIPS 140-2 wurde durch FIPS 140-2 ersetzt. Das Validierungsprogramm für kryptografische Module hat die Annahme neuer FIPS-140-2-Einreichungen im Jahr 2022 eingestellt. Alle verbleibenden FIPS-140-2-Zertifikate werden am 21. September 2026 in den historischen Status versetzt. Bei der Auswahl eines HSM oder Tokens für die Verwendung über eine der beiden Schnittstellen sollte bei neuen Implementierungen auf eine Validierung nach FIPS 140-3 anstelle von FIPS 140-2 geachtet werden.
Wie Verschlüsselungsberatung hilft
CodeSign Secure von Encryption Consulting nutzt diese Schnittstellen für die unternehmensweite Codesignierung mit in einem HSM geschützten Schlüsseln. Die Integration über PKCS#11 und Windows CNG ermöglicht es Signaturtools verschiedener Plattformen, mit hardwarebasierten Schlüsseln zu signieren, die Signierberechtigung zu kontrollieren und jeden Vorgang für Auditzwecke zu protokollieren. Durch die zentrale Signierung aller Artefakttypen steuert dieselbe Plattform die Signierung von Windows, Java, Containern und Firmware und unterstützt den Übergang zu Post-Quantum-Signaturalgorithmen mit zunehmender Reife der HSM- und Schnittstellenunterstützung. Die Lösung entspricht den Standards von ISO/IEC 27001:2022 und SOC 2.
Häufig gestellte Fragen
Worin besteht der Unterschied zwischen CSP und PKCS#11?
Ein CSP (Cryptographic Service Provider) ist eine Windows-spezifische Softwarebibliothek, die kryptografische Operationen über Microsofts CryptoAPI durchführt. PKCS#11 ist ein offener, plattformübergreifender Standard, der die Kommunikation von Anwendungen mit kryptografischer Hardware wie HSMs und Smartcards definiert und unter Windows, Linux und macOS funktioniert. Kurz gesagt: CSP ist von Microsoft definiert und Windows-spezifisch, während PKCS#11 herstellerneutral und plattformübergreifend ist. Beide ermöglichen es Anwendungen, Schlüssel sicher in Hardware zu speichern.
Was ist ein kryptografischer Dienstanbieter (CSP)?
Ein CryptoSignature Provider (CSP) ist eine Softwarebibliothek in Windows, die kryptografische Operationen für die Microsoft CryptoAPI implementiert. Fordert eine Anwendung Verschlüsselung, Schlüsselgenerierung oder eine digitale Signatur an, wird die Anfrage an einen CSP weitergeleitet, der die Operation ausführt und die Schlüssel verwaltet. CSPs müssen von Microsoft digital signiert sein und können durch Software oder Hardware wie Smartcards und HSMs unterstützt werden. Das neuere CNG-Framework von Microsoft, das Key Storage Providers verwendet, ist der moderne Nachfolger.
Was ist PKCS#11?
PKCS#11, auch Cryptoki genannt, ist der Public-Key-Kryptographiestandard Nr. 11. Er definiert eine kryptografische Token-Schnittstelle (API), über die Software mit kryptografischer Hardware wie HSMs, Smartcards und USB-Tokens kommuniziert. PKCS#11 ist ein offener, plattformübergreifender Standard, der ursprünglich von RSA Laboratories entwickelt wurde und die gängige Methode darstellt, mit der Anwendungen HSM-geschützte Schlüssel auf verschiedenen Betriebssystemen und Geräten unterschiedlicher Hersteller verwenden.
Was sind Slots, Token und Objekte in PKCS#11?
In PKCS#11 ist ein Slot die physische Schnittstelle zum Zugriff auf ein Token, beispielsweise ein Smartcard-Lesegerät oder ein USB-Anschluss. Ein Token ist das eigentliche Gerät (Smartcard, USB-Stick oder HSM), das Schlüssel speichert und Operationen ausführt. Objekte sind die Daten, die das Token verwaltet: Schlüsselobjekte, Zertifikatsobjekte, Datenobjekte und herstellerspezifische Objekte. Benötigt eine Anwendung eine kryptografische Operation, greift sie über einen Slot auf das Token zu, welches die Operation ausführt und dabei den Schlüssel intern speichert.
Werden CSP und PKCS#11 bei der Codesignierung verwendet?
Ja. Beide sind für die sichere Codesignierung von zentraler Bedeutung, da sie es einem Signaturtool ermöglichen, einen im HSM gespeicherten privaten Schlüssel zu verwenden, ohne dass dieser die Hardware verlässt. Unter Windows verwenden Signaturtools wie signtool typischerweise einen CSP oder dessen CNG-Nachfolger; plattformübergreifende und unternehmensweite Signaturen nutzen üblicherweise PKCS#11. Dies schützt den Signaturschlüssel, der das wichtigste Element bei der Codesignierung darstellt, da ein gestohlener Schlüssel es einem Angreifer ermöglicht, Schadsoftware zu signieren.
Unterstützen CSP und PKCS#11 Post-Quanten-Algorithmen?
Die Unterstützung wird erweitert. HSM-Anbieter und der PKCS#11-Standard integrieren die NIST-Post-Quanten-Signaturalgorithmen, insbesondere ML-DSA (FIPS 204), sowie die Hash-basierten Verfahren LMS und XMSS für die Signierung von Firmware und Software. Da die meisten Signaturinfrastrukturen Schlüssel über PKCS#11 oder Windows CNG beziehen, ist die Unterstützung dieser Algorithmen durch Schnittstellen und HSMs eine praktische Voraussetzung für die Post-Quanten-Codesignierung. Ihre Bestätigung ist ein wichtiger erster Schritt bei jeder Migration.
Unterschrift gegen hardwaregeschützte Schlüssel
CSP und PKCS#11 ermöglichen es Signaturwerkzeugen, sicher in Hardware gespeicherte Schlüssel zu erreichen. Die korrekte Integration dieser Funktionen ist die Grundlage für sicheres Codesignieren. Entdecken Sie CodeSign Secure von Encryption Consulting für plattformübergreifendes Signieren mit HSM-geschützten Schlüsseln – inklusive integrierter Post-Quantum-Unterstützung.
- Wichtige Erkenntnisse
- Was ist ein CSP (Cryptographic Service Provider)?
- Moderne Microsoft-Kryptografieanbieter
- Was ist PKCS#11?
- CSP vs. PKCS#11: Vergleich
- CSP, PKCS#11 und Codesignierung
- Eine Anmerkung zu FIPS 140-3
- Wie Verschlüsselungsberatung hilft
- Häufig gestellte Fragen
- Unterschrift gegen hardwaregeschützte Schlüssel
