it-swarm.com.de

Kriterien für die Auswahl eines HSM

Eine sehr sensible Anwendung muss verschiedene Arten von Daten schützen, z. B. Passwörter, Kreditkarten und geheime Dokumente - und natürlich Verschlüsselungsschlüssel.
Als Alternative zur Entwicklung einer benutzerdefinierten Lösung für (Standard-) Verschlüsselungs- und Schlüsselverwaltungsprozesse wird der Kauf eines HSM ( Hardware-Sicherheitsmodul ) in Betracht gezogen.

Natürlich würde dies (zumindest teilweise) von der spezifischen Anwendung, dem Unternehmen, den Datentypen, den Technologien und dem Budget abhängen - aber ich möchte dieses Generikum beibehalten, also lasse ich es auf einer allgemeinen Ebene und ignoriere ein bestimmtes Arbeitsablauf.

Nehmen wir einfach an, es gibt geheime Daten, die verschlüsselt werden müssen, und wir suchen nach hardwarebasierten Lösungen, um die Komplexität und wahrscheinliche Unsicherheit der maßgeschneiderten Schlüsselverwaltung zu bewältigen und die offensichtlichen Bedrohungen für softwarebasierte Verschlüsselung und Schlüssel zu mindern.

Welche Faktoren und Kriterien sollten beim Vergleichen und Auswählen eines HSM berücksichtigt werden? Und was sind die jeweiligen Überlegungen?

Zum Beispiel:

  • Natürlich sind die Kosten ein Faktor, aber gibt es unterschiedliche Preismodelle? Was ist zu beachten?
  • Sind einige Produkte besser für verschiedene Formen der Verschlüsselung geeignet (z. B. symmetrisch gegen asymmetrisch, Block gegen Strom usw.)?
  • Gleiches gilt für verschiedene Workflows und Lebenszyklen
  • Welches Maß an Sicherheit, z. Welche Stufe von FIPS 140-2, ist wann erforderlich?
  • Netzwerk verbunden oder Server verbunden
  • usw

KLAR SEIN : Ich suche hier NICHT nach Produktempfehlungen, sondern nur danach, wie man bewertet ein bestimmtes Produkt. Fühlen Sie sich frei, Produkte in Kommentaren zu benennen, oder noch besser im Chatroom ...

47
AviD

Einige technische Faktoren, die relevant sein können:

  1. Leistung - über alles, was für Ihre Anwendung wichtig ist (falls vorhanden): Verschlüsselung/Entschlüsselung/Schlüsselgenerierung/-signierung, symmetrisch, asymmetrisch, EC, ...
  2. Rahmen:
    • Gibt es eine Begrenzung für die Anzahl der unterstützten Schlüssel, und könnte diese Begrenzung ein Problem sein?
    • Wie einfach ist es, ein weiteres HSM hinzuzufügen, wenn Ihre Anwendung anspruchsvoller wird (Größe, Geschwindigkeit, geografische Verteilung ...)?
  3. Redundanz - Wenn ein HSM ausfällt, wie stark wirkt sich dies auf Ihren Betrieb aus, wie einfach ist der Austausch ohne Serviceverlust usw.
  4. Backups - wie einfach ist die Automatisierung und Wiederherstellung? Müssen Sie die Vertraulichkeit und/oder Integrität des Backups unabhängig schützen oder stellt das Produkt dies sicher? Wie wahrscheinlich ist es, dass Sie in eine Position geraten, in der Sie Ihre Daten unwiederbringlich verloren haben (wie viele Faktoren müssen verloren gehen/vergessen werden, HSMs sind gestorben usw.).
  5. API-Unterstützung:
    • MS CAPI/ [~ # ~] cng [~ # ~] (einfach aus einer Windows-Umgebung zu programmieren);
    • [~ # ~] jca [~ # ~] (einfach zu entwickeln für die Verwendung von Java. Welche Version wird unterstützt?);
    • PKCS # 11 (und eine neuere Version? Breite Unterstützung für alle Anwendungen, obwohl bekannte Sicherheitsprobleme auftreten);
    • herstellereigener Anbieter (wahrscheinlich der flexibelste/leistungsstärkste/sicherste, wenn Sie wissen, was Sie tun, aber die Kosten für den Wechsel zu einem anderen Anbieter erhöhen), und obwohl C wahrscheinlich eine Selbstverständlichkeit ist, verfügt es über Bindungen für Ihren bevorzugten Anbieter Sprache?
    • ein verwandter Hinweis: Gibt es Anleitungen zur Integration in Ihre Anwendung (z. B. DBMS, Betriebssystemdienste)?
  6. OS/Hardware-Unterstützung
  7. Verwaltungsoptionen - Welche GUI-/Befehlszeilentools stehen für Verwaltungsaufgaben zur Verfügung - d. H. Alles, was Sie selten genug tun, um nicht zu automatisieren (Schlüsselgenerierung?; Verwaltung von Authentifizierungsfaktoren?). Müssen Ihre Administratoren physisch anwesend sein, um das Gerät in Betrieb zu nehmen, oder zusätzliche Aufgaben nach der Inbetriebnahme ausführen?
  8. Programmierbarkeit - Der größte Teil Ihrer Entwicklung befindet sich wahrscheinlich am anderen Ende einer der APIs. Manchmal ist es jedoch hilfreich, Anwendungen schreiben zu können, die auf dem Gerät ausgeführt werden, um mehr Flexibilität oder Geschwindigkeit zu erzielen (siehe Thomas 'Antwort )
  9. Physische Sicherheit - Wie widerstandsfähig muss Ihre Lösung gegen direkte physische Angriffe sein (unter Berücksichtigung nicht nur des HSM, sondern der gesamten Lösung)? Wenn Sie aus irgendeinem Grund entscheiden, dass dies besonders wichtig ist (Ihr HSM ist exponiert, Ihre Clients jedoch nicht, oder die Offenlegung der Schlüssel ist weitaus schlimmer, als nur die Schlüssel use Für schändliche Zwecke - ref DigiNotar ?) möchten Sie möglicherweise nach aktiver Manipulationserkennung und -reaktion suchen, nicht nur nach passiver Manipulationsresistenz und Beweisen.
  10. Logisches Sicherheitsmodell - Können böswillige Entitäten im Netzwerk Ihren HSM missbrauchen? Schädliche Prozesse auf dem Host-PC?
  11. Algorithmen - Unterstützt der HSM die Krypto, die Sie verwenden möchten (Grundelemente, Betriebsmodi und Parameter, z. B. Kurven, Schlüsselgrößen)?
  12. Authentifizierungsoptionen - Passwörter; Quoren; n-Faktoren; Smartcards; OTP; ... Sie sollten wahrscheinlich zumindest nach etwas suchen, für das eine konfigurierbare Quorumgröße von Benutzern mit Token- und Kennwortauthentifizierung erforderlich sein kann, bevor Sie Vorgänge mit einem Schlüssel zulassen.
  13. Richtlinienoptionen - Möglicherweise möchten Sie in der Lage sein, Richtlinien zu definieren, z. B. zu steuern, ob: Schlüssel aus dem HSM exportiert werden können (verpackt oder unverschlüsselt); Ein Schlüssel kann nur zum Signieren/Verschlüsseln/Entschlüsseln/... verwendet werden. Zum Signieren, aber nicht zum Überprüfen ist eine Authentifizierung erforderlich. usw.
  14. Überwachungsfunktion - einschließlich HSM-ähnlicher Vorgänge (generierter Schlüssel, signiert etwas mit Schlüssel Y) und Behandlung von Abstürzen (Kommentar von Ref. G3k). Wie einfach wird es sein, die Protokolle in so etwas wie Splunk zu integrieren (vernünftiges Protokollformat, Syslog/SNMP/anderes Netzwerk, auf das zugegriffen werden kann - oder zumindest nicht proprietäre Ausgabe)?
  15. Formfaktor:
    • Netzwerkangehängt (für größere Bereitstellungen, insbesondere wenn mehrere Anwendungen/Server/Clients die Schlüssel verwenden müssen);
    • Desktop (für den individuellen Gebrauch; Leistung, Verfügbarkeit und Skalierbarkeit sind kein großes Problem, aber die Kosten sind besonders gut, wenn Ihre Lösung viele Personen erfordert, die direkten Zugriff auf ein HSM benötigen);
    • PCI (-express) (billiger als Netzwerkanschluss; mehr Aufwand bei der Bereitstellung für mehrere Anwendungen);
    • USB-Token (einfaches Server-Upgrade; billig und langsam (und leicht zu stehlen!));
    • PC-Karte (laut Desktop, aber gut für Laptop-Benutzer). (PC-Karten sind jetzt ziemlich tot)

Einige nichttechnische Faktoren:

  1. Zertifizierungen - benötigen Sie welche/möchten Sie welche, weil sie Ihnen Vertrauen in die Sicherheit des Produkts geben? Ignorieren, was Sie benötigen aus regulatorischen Gründen:
    • FIPS 140-2 bietet eine nützliche Bestätigung dafür, dass die von NIST genehmigten Algorithmen funktionieren und zur Laufzeit bekannte Antworttests haben (überprüfen Sie die Sicherheitsrichtlinie, um festzustellen, welche Algen genehmigt wurden), aber legen Sie nicht viel Wert darauf, da sonst die Produkt ist sicher; Meine Faustregel für Hardware-Sicherheit der Stufe 3 besagt, dass Personen mit nur wenigen Minuten Zugriff auf das Gerät nur schwer in Gefahr sind, es zu gefährden. FIPS 140-2 Level 3 ist die De-facto-Basiszertifizierung für HSMs - seien Sie vorsichtig, wenn es keine gibt (obwohl das nicht heißt, dass Sie sie in einem FIPSverwenden müssen) _ konform).
    • Common Criteria-Bewertungen sind flexibel in der Gewissheit, die sie bieten: Lesen Sie das Sicherheitsziel! Es gibt noch keine anständigen HSM-Schutzprofile. Sie müssen also zumindest die Definition des Sicherheitsproblems (Bedrohungen und Annahmen) lesen, bevor Sie eine Vorstellung davon haben, was die Evaluierung bietet.
    • PCI-HSM ist nützlich, wenn Sie in der relevanten Branche tätig sind
  2. Wie sieht der Anbieter neben Zertifizierungen in Bezug auf Sicherheit aus? CC EAL4-Zertifikate sind ein guter Ausgangspunkt, aber denken Sie daran, dass Win2k auch solche hat ... Machen sie überzeugende Geräusche über die Integrität der Lieferkette, den sicheren Softwareentwicklungslebenszyklus, ISO2700x oder so etwas wie The Trust Group's Trusted Technology Provider Framework ?
  3. Gefällt Ihnen die Offenlegungsrichtlinie des Anbieters?
  4. Support (Optionen, Ruf, verfügbar in Ihrer Sprache)
  5. Services - Wenn Sie eine komplexe Anforderung haben, kann es vorteilhaft sein, den Anbieter in Ihre Konfiguration/Programmierung einzubeziehen.
  6. Dokumentation:
    • Dokumentation auf hoher Ebene - HSMs sind komplexe Allzweckprodukte, die ein etwas kompliziertes Management erfordern können. Eine gute Dokumentation ist wichtig, damit Sie einen sicheren und funktionsfähigen Prozess entwickeln können (weitere Informationen finden Sie unter Thomas 'Antwort ).
    • API-Dokumentation - gute Abdeckung, vorzugsweise mit guten Beispielen für allgemeine (und komplexe) Aufgaben
  7. Kosten (Einheiten + Wartung)
  8. Vorlaufzeit
  9. Hersteller-Patch-Richtlinien/Häufigkeit (+ Unterstützung für und einfache Firmware-Aktualisierung)
  10. Land des Designs und/oder der Herstellung - Sie können eine Regierung oder ein Unternehmen sein, das/das bestimmten Ländern besonders (nicht) vertraut
  11. Lieferantenstabilität - werden sie das Produkt wahrscheinlich so lange unterstützen, wie Sie es verwenden werden?
  12. Was ist die Produkt-Roadmap des Anbieters, ist sie für Sie von Wert und haben Sie über ein Firmware-Upgrade Zugriff auf die zukünftigen Versionen?
  13. Wie gut der Swag war, dass du bei [~ # ~] rsa [~ # ~] von ihnen ausgestiegen bist

Es gibt wahrscheinlich noch viel mehr.

Das SANS-Institut hat ein gutes Einführungspapier , in dem beschrieben wird, warum Sie ein HSM wünschen, welche positiven Eigenschaften es haben sollte (sollte) und einige der Nachteile.

Es scheint, dass ein HSM-Anbieter dem größten Teil dieser Liste zustimmt und eine eigene (nicht zugeordnete) Version davon erstellt hat.

37
Michael

Ein HSM vermeidet nicht die Komplexität. Vielmehr wird das gesamte System erheblich komplexer.

Was HSM am besten kann, ist der Schlüsselspeicher : Der Schlüssel befindet sich im HSM und kommt nie wieder heraus. Sie müssen sich jedoch immer noch um den wichtigsten Lebenszyklus kümmern. Mit einem "Software" -Schlüssel, der in einer Datei oder in den Eingeweiden des Betriebssystems gespeichert ist, stellen Sicherungen eine Sicherheitsanfälligkeit dar (Sie möchten nicht, dass viele Kopien des Schlüssels im Umlauf sind). Mit dem HSM wird diese Sicherheitsanfälligkeit vermieden, aber Backups werden zu einem großen Problem: Der Verlust des Schlüssels ist auch ein großes Risiko, insbesondere für die Verschlüsselung (wenn Sie den Verschlüsselungsschlüssel verlieren, verlieren Sie die Daten). Das ist also ein erster Punkt, den Sie für HSM prüfen sollten: Sicherungsprozeduren . Ich habe einige Erfahrungen mit Thales (nCipher) HSM, die dies folgendermaßen tun: Die Schlüssel werden tatsächlich als verschlüsselte Dateien gespeichert (die wie jede Datei gespeichert werden können), und der Entschlüsselungsschlüssel für dafür Der Schlüssel kann mit einem Quorum von Administrator-Smartcards (innerhalb eines neuen HSM) neu erstellt werden.

HSM führt selten eine symmetrische Massenverschlüsselung durch. Es macht eigentlich wenig Sinn, eine symmetrische Verschlüsselung mit einem HSM durchzuführen: Sie verwenden die Verschlüsselung, weil die Daten vertraulich sind. Wenn das Bedürfnis nach Geheimhaltung so ist, dass der symmetrische Schlüssel das HSM nicht verlassen darf, sollten die Daten selbst es auch nicht verlassen. Symmetrische Verschlüsselung bedeutet auch, dass sowohl Verschlüsselung als auch Entschlüsselung denselben Schlüssel verwenden: Wenn sich dieser Schlüssel im HSM befindet, müssen sowohl Verschlüsselung als auch Entschlüsselung durchlaufen werden.

HSM werden besser mit Hybridverschlüsselung verwendet: Der HSM speichert und verwendet den privaten Schlüssel eines asymmetrischen Verschlüsselungssystems. Wenn Daten verschlüsselt werden sollen , generiert jeder, der die Daten hat, einen zufälligen symmetrischen Schlüssel [~ # ~] k [~ # ~] verschlüsselt die Daten mit [~ # ~] k [~ # ~] und verschlüsselt [~ # ~] k [~ # ~] mit dem öffentlichen Schlüssel, der dem im HSM gespeicherten privaten Schlüssel entspricht. In diesem Sinne arbeitet HSM als (übergroß, überteuert) Smartcards .

Natürlich gibt es noch ein anderes Extrem, bei dem Sie Ihre gesamte Anwendung in das HSM einpassen. Dies erfordert ein programmierbares HSM , und das ist ein völlig anderer Kontext. Thales HSM erlaubt dies als Option (es heißt "CodeSafe" und "SEE"), die sie nicht kostenlos verschenken ... und erwarten nicht, dass darin traditioneller Code ausgeführt wird. HSM haben Kryptobeschleuniger, aber sie sind ansonsten ziemlich begrenzte eingebettete Systeme (denken Sie an 60 MHz ARM CPU bestenfalls: HSM-Abschirmung steht im Widerspruch zur Wärmeableitung). Sie können relativ komplexen Code in ein HSM einpassen (was es erlaubt), aber es ist ein spezifischer Programmieraufwand. Außerdem erlauben einige HSM dies überhaupt nicht.

Obwohl HSM teuer sind, sind die größten Kosten in einem HSM Vorgänge : Sie beinhalten viele Verfahren zum Installieren, Konfigurieren, Betreiben, Wiederherstellen und Stilllegen. Du wirst Leute brauchen. Mein Hauptkriterium wäre dann: Prozeduren . Ein gutes HSM wird mit einem detaillierten Bedienungshandbuch geliefert, das beschreibt, wie Dinge zu tun sind. Es kommt nicht auf die Hardware an, sondern darauf, wie Sie sie verwenden.

Zertifizierungen wie EAL 4+ oder FIPS 140-2 Level 3) können aus regulatorischen Gründen erforderlich sein. Sie entscheiden selten, ob Sie sie benötigen oder nicht. Dies ist eine Anforderung aus dem beabsichtigten Verwendungskontext Eine solche Zertifizierung ist ein sehr langer und teurer Prozess, daher werden Sie dies nicht selbst tun. Andererseits möchten Sie möglicherweise Ihren Einkaufsbereich erweitern: Wenn es sich bei HSM hauptsächlich um große Smartcards handelt, können Smartcards stattdessen verwendet werden des HSM. A 20 EUR Smartcard kann FIPS 140-2 Level 3 sein; es wird nur eine RSA-2048-Entschlüsselung pro Sekunde anstelle von 500 berechnet, aber das kann für dich ausreichen.

23
Thomas Pornin