Ich forsche nach Key-Management-Lösungen, um PCI-konform zu werden. Ich habe mit einer Reihe von Anbietern in der Arena gesprochen, und obwohl ich ihre Produkte mag, liegen die Kosten über meinem Budget. Kennt jemand Open-Source- oder kostengünstige Lösungen für das Schlüsselmanagement? Ich benutze eine Windows / .NET-Umgebung, daher würde ich Lösungen bevorzugen, die auf diese Umgebung abzielen, aber ich würde mich über alles, was da draußen ist, interessieren.
Danke
Wir hatten eine ähnliche Erfahrung wie du. Wir benötigten eine Schlüsselverwaltungslösung für die PCI-Konformität, und alle kommerziellen Produkte, die wir sahen, waren zu teuer. Einige Schlüsselmanager kosten mehr als unser Produkt für kleine Kunden!
Am Ende haben wir einen softwarebasierten Schlüsselmanager gemacht. Wir haben Anforderungen gemacht und Offshore-Entwickler haben es codiert. Zu einer Zeit suchten sie nach anderen Kunden, um sie zu benutzen. Ich weiß nicht, ob sie es immer noch sind oder nicht.
Lassen Sie mich die Optionen erklären, die wir untersucht haben. Die erste Sache, an die man sich erinnern sollte, ist, dass PCI-Compliance und -Sicherheit andere Dinge sind, man kann PCI-konform und nicht sehr sicher sein.
Option 0 - Weisen Sie einen Schlüssel pro DB-Spalte zu und speichern Sie Schlüssel in einer DLL-Datei. Ihre Anwendung verknüpft die DLL-Datei, um auf die Schlüssel zum Verschlüsseln und Entschlüsseln der Daten zuzugreifen. Niemand kennt die Schlüssel. Für den periodischen Schlüsselaustausch erstellen Sie eine neue DLL mit neuen Schlüsseln, nehmen Sie sich Zeit, um alle Daten mit alten Schlüsseln zu entschlüsseln, und verschlüsseln Sie die Daten mit neuen Schlüsseln erneut. Starten Sie dann Ihre Anwendung mit der neuen DLL mit neuen Schlüsseln neu. (Hinweis: Wenn Sie jemals in Erwägung ziehen, eine Datenbanksicherung wiederherzustellen, müssen Sie die alten Schlüssel beibehalten.)
Als ich das erste Mal von Option 0 hörte, war ich überrascht, dass es PCI-konform war. Wir verwenden Option 0 nicht.
Möglichkeiten zur Verbesserung von Option 0.
Wenn in Ihrer Umgebung ein HSM vorhanden ist, verwenden Sie das HSM, um die Schlüssel in der DLL-Datei zu verschlüsseln. Wenn Ihre Anwendung gestartet wird, werden die Schlüssel mit dem HSM entschlüsselt. Wenn Sie mehr Sicherheit wünschen, entschlüsseln Sie die Schlüssel jedes Mal, wenn sie benötigt werden.
Sobald Ihre Schlüssel verschlüsselt sind, können Sie sie sicher in einer DB-Tabelle speichern. Wenn Sie jedem Schlüssel (alt und neu) eine kleine Integer-Schlüssel-ID zuweisen, können Sie die Schlüssel-ID mit den verschlüsselten Daten speichern. Dadurch können Sie inkrementelle Schlüssel ersetzen und Ausfallzeiten vermeiden.
Wenn Ihre Schlüssel in vielen Prozessen gespeichert sind, erhöht sich die Wahrscheinlichkeit eines Speicher-Scan-Angriffs, wenn Sie die Schlüssel finden. Sie können einen neuen Prozess erstellen, bei dem es sich um den einzigen Prozess handelt, der die Schlüssel entschlüsselt. Ihre Anwendungen sprechen mit diesem neuen Prozess zum Verschlüsseln und Entschlüsseln von Daten. Dieser neue Prozess sollte auf einer Box mit einer kleinen "Oberfläche" sein, um sie zu schützen. Da vertrauliche Daten jetzt über das Netzwerk übertragen werden, sollte diese Kommunikation verschlüsselt werden. SSL ist eine gute Option.
Ich weiß, das ist ein alter Thread, aber es gibt ein paar Möglichkeiten:
Allerdings bietet Option # 2 viele Vorteile, da Sie Public Clouds vollständig PCI-kompatibel nutzen können (suchen Sie nach "Regulatory Compliant Cloud Computing (RC3)") und klicken Sie auf den Link bei IBM - ich kann nur poste zwei Links in meiner Antwort) mit weiteren Ankündigungen, wie man diese Appliance nutzen kann, die auf der RSA 2013 in San Francisco angekündigt wurde.
Ich hoffe, das hilft.
Sehen Sie sich KeyManager an, die Schlüsselverwaltungskomponente der OpenStack-Suite. Die Anwendung kann als eigenständige Schlüsselverwaltungslösung außerhalb von OpenStack verwendet werden.
Als eine Komponente von OpenStack wird KeyManager aktiv mit neuen Funktionen entwickelt, die in sechsmonatigen Zyklen geplant sind.
KLMS über KMIP ist eine gute und einfach zu bedienende Lösung für das Schlüsselmanagement. Dies ist eine Open-Source-Lösung, die in Java geschrieben ist. Siehe den folgenden Link als Referenz. Ссылка
Das Paket stubInterface enthält alle APIs, die für die Verwendung von KLMS über KMIP erforderlich sind.
KLMS : Key Lifecycle Management-Systeme
KMIP : Schlüsselverwaltungs-Interoperabilitätsprotokoll
Tags und Links key-management