2009-08-26 3 views
7

Ich habe ein PKI-Projekt bearbeitet und abgeschlossen, das ein HSM zum Generieren - Speichern von Schlüsseln und Ausführen von Kryptofunktionen verwendet hat. Ich benutzte PKCS # 11, um mit unserer Anwendung zum Signieren/Verifizieren und Verschlüsseln/Entschlüsseln zu kommunizieren. Unsere Plattform ist Windows.Softwaresicherheitsmodul/Toolkit ersetzt HSM zur Entwicklung von Kryptofunktionen

Jetzt suchen wir nach einer kostengünstigen alternativen Lösung, indem wir das HSM durch ein Software-Sicherheitsmodul ersetzen. Ich muss hier anmerken, dass mir die Nachteile der Nichtverwendung eines HSM bekannt sind. Es ist ein Kompromiss zwischen Sicherheit und Kosten.

Ich habe festgestellt, dass Microsoft die nächste Generation CryptoAPI (CNG), Schlüsselspeicher und Zertifikatsdienste bietet. Mein Senior Management ist nicht geneigt, Open-Source-Software zu verwenden. Ich fand auch RSA und Cryptomathic Toolkits, um Software-basierte Lösungen durchzuführen.

Hat irgendjemand Software-Toolkits für kommerzielle Software gefunden, um Schlüsselgenerierung, Keystore und Crypto-Funktionen auszuführen?

Programmiersprache - c/C++

Dank

Raj

Antwort

2

Ihre beste Option sollte eine Software PKCS 11-Bibliothek # zu finden sein. Es sollte mehrere Implementierungen auf dem Markt geben - ich weiß, dass die Firma, für die ich arbeite, eine verkauft. Auf diese Weise können Sie immer noch zu einem PKCS # 11-kompatiblen HSM wechseln und die erforderlichen Änderungen an der Anwendung sollten minimal sein.

Ihre anderen Optionen sind CryptoAPI oder CNG von Microsoft oder ein Toolkit von RSA, Cryptomathic oder einem anderen Hersteller. Das würde wahrscheinlich mehr Arbeit erfordern, um die Anwendung neu zu schreiben - ich kann keinen wirklichen Vorteil für diese Option sehen, außer dass CryptoAPI und CNG frei sind.

+0

Verweisen Sie "Software PKCS # 11-Bibliothek" als Wrapper um PKCS # 11 Cryptoki-Bibliothek? Wenn dies der Fall ist, auf welche Art und Weise denken Sie, dass dies anders ist als die Funktionen, die ich für Signatur/Verschlüsselung geschrieben habe? Können Sie mich bitte auf einige Anbieter auf "Software PKCS # 11 library" hinweisen. Stellen diese Anbieter auch Schlüsselverwaltungsfunktionen bereit oder muss ich mich auf das Betriebssystem und eine andere Bibliothek zum Speichern/Zugreifen auf die Schlüssel verlassen? Inwiefern unterscheidet sich Absatz 1 Ihrer Antwort von Absatz 2? Ich bin hier wirklich sehr verwirrt. Entschuldigung, wenn ich zu ignorant klänge. – Raj

+0

PKCS # 11 spezifiziert eine API (Cryptoki).Sie haben sich mit dieser API programmiert und hatten vermutlich eine DLL, die diese API mit einem HSM implementierte, der die Operationen ausführt. Mehrere Unternehmen (darunter Cryptomathic, mein Arbeitgeber) verkaufen "Software PKCS # 11-Bibliotheken". Eine Software-PKCS # 11-Bibliothek wäre eine DLL, die die PKCS # 11-Bibliothek implementiert, die Funktionen jedoch einer reinen Softwareimplementierung zuordnet (und die Schlüssel in (verschlüsselten) Dateien speichert). Die Schlüsselverwaltung kann über die PKCS # 11-API erfolgen, aber Sie erhalten möglicherweise auch ein separates Tool (abhängig vom Anbieter). –

+0

Mein zweiter Absatz enthielt nur die Optionen, von denen Sie bereits wussten: andere kryptografische APIs. –

7

Sie könnten SoftHSM verwenden, was eine reine PKCS # 11-Implementierung ist. Es wird vom OpenDNSSEC-Projekt verwendet, um genau dann ausgetauscht zu werden, wenn ein echtes HSM nicht verfügbar ist, also könnte es auch für Sie funktionieren. Es ist jedoch BSD lizenziert, also denke ich, dass Ihr Management es auf dieser Basis nicht mag.

Wenn Sie nach kostengünstigen und dennoch kommerziellen suchen (Ich bin mir nicht sicher, ob Sie speziell nach etwas Eigenem suchen, welches CryptoAPI ist, oder für etwas, das kommerziell unterstützt wird, welches CryptoAPI nicht ist, außer Sie haben Sie einen Vertrag mit Microsoft), das Neuschreiben Ihrer Anwendung, um die Win32 CryptoAPI zu verwenden, scheint mir die einzig mögliche Option zu sein. RSA's Toolkits sind meiner Erfahrung nach nicht billig.

+1

Danke Jack. Du hast recht. Wenn es Fall 2 ist, plane ich, mit CNG zu gehen, während MS kryptoAPI phasingout ist. Auch Mozilla NSS verfügt über dieses virtuelle Token der PKCS # 11-Implementierung. – Raj

2

Ich habe einen Kunden, der die Software-Implementierung von PKCS # 11 verwendet, die mit Mozillas NSS als Drop-In-Ersatz für das HSM geliefert wird. Sie verwenden Linux unter Verwendung von ruby-pkcs11, sodass Ihre Laufleistung variieren kann.

+0

Hallo Sander - Dieses Projekt hat tatsächlich überstanden. Aber ich bin gespannt auf NSS. Ich habe mir die Beispielquellen von Mozilla usw. angesehen; Aber mein Problem ist welche Version/von wo - um das NSS herunterzuladen? Meins wird Fenster sein. – Raj

+0

@Raj das Haus der Bibliothek ist auf https://developer.mozilla.org/en/NSS, aber sie scheinen keine Binärdateien zu veröffentlichen. Zum Glück scheint jede Kopie von Firefox einen zu haben! Sie finden libsoftokn3.dll unter der Firefox-Installation (ich habe keine Windows-Maschine zur Überprüfung). Ich finde, ich kann libsoftokn3.so einfach in ein triviales PKCS # 11-Programm auf meinem Linux-Host fallen lassen. –

Verwandte Themen