Haben Sie sich schon einmal gefragt, warum in den Dokumenten immer von der Verwendung von Modulschutz die Rede ist, wenn Sie FIM CM und Thales HSM zusammen verwenden? Warum sollte das HSM in einem weniger sicheren Modus verwendet werden, wenn es als K-von-N-Gerät konzipiert ist?
Vor kurzem hatte ich einen Kunden, der bei seiner PKI- und Smartcard-Implementierung die höchstmögliche Sicherheit anstrebte. Er lagerte seine IT aus und wollte, dass alle PKI-Komponenten von einem Mitarbeiter und einem Auftragnehmer kontrolliert werden. Dies ist die beste Vorgehensweise in dieser Umgebung, da das System durch die Beschränkung des Zugriffs sicher bleibt.
Der Kunde wollte eine 2 aus 6-Implementierung, bei der 2 der 6 für das Gerät programmierten Smartcards zur Authentifizierung am Gerät verwendet werden. Dies funktionierte gut für die CA-Komponenten, und der Kunde wollte dann, dass die FIM CM-Server auf die gleiche Weise eingerichtet werden. Ich habe keine Dokumentation oder Artikel gefunden, die besagen, dass K of N für FIM CM nicht funktionieren würde.
Die Servereinrichtung wurde mit dem K von N für FIM CM durchgeführt, und die Installation und Einrichtung verlief problemlos... zumindest dachte ich das. Beim Versuch, eine Smartcard von FIM auszustellen, blieb das System bei der Initialisierung der Smartcard stecken.
Zu diesem Zeitpunkt hätte das FIM CM-System nach der Passphrase und den OCS-Karten fragen müssen. Auf dem Server-Desktop oder in Sitzung 0 war nichts zu sehen. Jetzt beginnt der eigentliche Spaß.
Nachdem wir die Ereignisprotokolle und alle anderen verfügbaren Debug-Protokolle durchgesehen hatten, schienen keine Fehler vorzuliegen. Wir ließen das System 24 Stunden lang mit dem Karteninitialisierungsdialog laufen, weil wir dachten, dass das System vielleicht nur langsam war. Ohne Erfolg. Keine Fehlermeldungen und kein Hinweis auf ein Problem. Was ist also der nächste Schritt?
Wir beschlossen, eine Anfrage an Microsoft zu richten, um Unterstützung zu erhalten. Nachdem wir mehrere Tage lang Ereignis- und Fehlersuchprotokolle erhalten hatten, stellte der Techniker fest, dass es sich nicht um ein Microsoft-Problem, sondern um ein Problem von Thales handelte. Also ab zum Thales-Support.
Thales bat um weitere Ereignis- und Debug-Protokolle. Nach etwa einer Woche erklärten sie, dass es sich nicht um ein Problem von Thales, sondern von Microsoft handelte. Zurück zum Anfang.
Da ich in meinem früheren Leben als Entwickler von Kryptodienstanbietern tätig war, beschloss ich, dem Problem auf den Grund zu gehen, da weder bei Thales noch bei Microsoft jemand in der Lage zu sein schien, mir zu helfen. Microsoft hat FIM CM nie mit irgendeiner Art von HSM getestet und Thales hat nie mit FIM CM getestet.
Nach der Installation mehrerer Debug-Komponenten und der Verwendung eines Kernel-Debuggers fand ich mehrere Unstimmigkeiten sowohl in der Microsoft-Implementierung von FIM CM als auch in der Thales-Implementierung des von FIM CM für den Zugriff auf das HSM verwendeten CSP.
Nach ein paar Tagen der Suche habe ich herausgefunden, warum K of N keine Chance hat, mit FIM CM und einem HSM zu funktionieren. Microsoft versucht, die Sitzung zum HSM mit einem CryptAcquireContext-Aufruf mit gesetztem crypt_silent-Flag zu eröffnen. Dadurch wird der CSP angewiesen, die Passphrasen für die OCS-Karten nicht anzufordern. Lichtblitz Nummer eins ging an.
Dann stellte ich fest, dass das Thales CSP beim Zugriff auf das HSM einen Erfolg an den CryptAcquireContext zurückgibt. In den Microsoft-Spezifikationen für die CSP-Entwicklung heißt es, dass während des CryptAcquireContext, wenn eine Passphrase benötigt wird und das crypt_silent-Flag angefordert wird, ein Fehlercode zurückgegeben werden sollte. Thales hat sich nicht an die Spezifikationen gehalten, da sie zum Zeitpunkt des CryptAcquireContext nicht wissen, dass eine Passphrase erforderlich ist.
FIM CM hängt sich auf, wenn der nächste Kryptoaufruf an das HSM erfolgt. Microsoft sollte zumindest einen Timeout nach einer gewissen Zeit durchführen und Thales sollte den CSP korrigieren.
Mit Modulschutz ist keine Passphrase erforderlich und das System funktioniert.
Jetzt wissen Sie, warum die Verwendung von K of N mit einem HSM nicht mit FIM CM funktioniert.