Cryptographic Service Provider (CSP) sind Komponenten (Software-/Programmbibliotheken) der Windows-Betriebssysteme von Microsoft. Jeder CSP implementiert Funktionen der Microsoft Cryptographic API (MS-CryptoAPI). Diese API bietet Programmen kryptografische Funktionen zum Verschlüsseln und Entschlüsseln (engl. encrypt und decrypt) von Daten sowie für starke Authentifizierung mit digitalen Zertifikaten und sichere Generierung von (Pseudo-)Zufallszahlen an. Einsatzbeispiele bilden das Ver- und Entschlüsseln von E-Mails oder die Anmeldung an Systemen mit Smartcards.
CSPs werden als eine besondere Variante von Dynamic Link Librarys implementiert. Eine CSP-DLL benötigt eine digitale Signatur von Microsoft. Beim Laden wird die Gültigkeit der Signatur vom Betriebssystem überprüft (validiert).
Zusätzlich wird die CSP nach dem Laden in den Arbeitsspeicher kontinuierlich auf Veränderungen durch Malware überwacht.
Um eine Signatur zu beantragen, ist es zwar notwendig, entsprechende Erklärungen über die Einhaltung von diversen Auflagen abzugeben, aber eine Überprüfung des Quellcodes durch Microsoft findet nicht statt.
Die Bearbeitung und Ausstellung der Signatur durch Microsoft erfolgt bislang kostenlos.
Aufgrund der staatlichen Beschränkungen, die in den USA gelten, sind alle Exportversionen (für die Verwendung außerhalb der USA) auf einen 512 bit RSA public key und eine symmetrische 40-bit-Verschlüsselung beschränkt.
Neben CSPs mit grundlegenden kryptografischen Algorithmen (z. B. RSA), können sich die kryptografischen Funktionen auch auf eine Chipkarte (Smart Card) erstrecken.
Ein Smart Card CSP stellt das Microsoft-Pendant zu dem Public Key Cryptography Standard #11 dar und ermöglicht die Verwendung als Zwischenanwendung für den Einsatz von Chipkarten.
Smart Card CSP
Ein Smart Card CSP ist jeweils an spezifische Chipkartenbetriebssysteme angepasst und bringt auf diesen Datei- und Sicherheitsstrukturen, am besten gemäß PKCS#15, auf. Da PKCS#11 mächtiger als die CSP-Schnittstelle ist, setzen viele CSP auf einem PKCS#11 auf.
Windows identifiziert den zu verwendenden CSP zu einer Chipkarte über den Answer to Reset der Karte, da dieser in die Registry eingetragen ist.
Microsoft stellt seit Herbst 2005 einen eigenen Base Smart Card CSP zur Verfügung, der im Grunde eine weitere spezifischere Schnittstelle dieses Typus darstellt.
In diesem Base Smart Card CSP sind Schnittstelleninformationen für einige weit verbreitete Smartcards enthalten. Einige Chipkarten können deshalb bei den Betriebssystemen Windows NT, Windows 2000 und Windows XP ohne Verwendung einer zusätzlichen Middleware genutzt werden. Das Betriebssystem Windows Vista enthält allerdings einen anderen Base Smart Card CSP und unterstützt daher nicht die gleichen Chipkarten.
Weblinks
- Seite über CSPs im Microsoft Developer Network.
- Java Cryptography Architecture – Cryptographic Service Provider bei Oracle
- Cryptographic Service Provider bei IAIK-JCE
- Cryptographic Service Provider bei FlexiProvider