Wir haben kürzlich ein Wildcard-SSL-Zertifikat für unsere Domain gekauft. Wir haben alle Zertifikate in einen Java-Keystore konvertiert, aber jetzt fragen wir uns, wo wir diese für die spätere Verwendung aufbewahren sollen.
Verwenden Benutzer die Quellcodeverwaltung wie BitBucket für diese Art von Dateien oder generieren sie nur jedes Mal, wenn sie benötigt werden, oder etwas anderes?
Wir fragen uns, ob es eine Standardlösung oder bewährte Methoden gibt, um diese Zertifikate für die zukünftige Verwendung zu speichern.
ssl-certificate
certificate
best-practices
Amerikanischer Kryptonit
quelle
quelle
Antworten:
Es gibt mehrere Lösungen:
Eine Möglichkeit ist ein bestimmtes Schlüsseldepot, entweder eine hardwarebasierte Appliance, ein Hardwaresicherheitsmodul oder ein softwarebasiertes Äquivalent.
Eine andere Möglichkeit besteht darin, den alten Schlüssel einfach zu widerrufen und ein neues privates / öffentliches Schlüsselpaar zu generieren, wenn die Situation eintritt. Das Problem verschiebt sich ein wenig von der Aufrechterhaltung der Schlüsselsicherheit zur Sicherung des Benutzernamens / Kennworts des Kontos beim Zertifikatsanbieter und dessen Verfahren zur erneuten Ausstellung. Der Vorteil besteht darin, dass die meisten Organisationen bereits über eine privilegierte Kontoverwaltungslösung verfügen, z. B. 1 2
Es gibt verschiedene Möglichkeiten der Offline-Speicherung, angefangen beim Ausdrucken einer Kopie des privaten und des öffentlichen Schlüsselpaars einschließlich des Kennworts (dies ist jedoch eine Hündin, die wiederhergestellt werden muss) bis hin zur einfachen Speicherung auf digitalen Medien, die für die Langzeitspeicherung ausgelegt sind .
Wirklich schlechte Orte sind GitHub, Ihr Team-WiKi oder eine Netzwerkfreigabe (und Sie bekommen die Idee).
Update 29.04.2015: Keywhiz scheint ebenfalls ein interessanter Ansatz zu sein.
quelle
Nein, SSL-Zertifikate gehen nicht in die Quellcodeverwaltung, zumindest nicht in den privaten Schlüssel.
Behandle sie wie ein Passwort. Unsere Passwörter werden genauso gespeichert wie unsere Passwörter - in KeePass. Es ermöglicht das Anhängen von Dateien und ist verschlüsselt.
quelle
Wenn Sie den privaten Schlüssel in die Quellcodeverwaltung versetzen, kann sich jeder, der Zugriff darauf hat, als Ihr Server ausgeben. Wenn Ihr Webserver kein PFS (Perfect Forward Secrecy) verwendet, ist es auch möglich, den erfassten SSL-Datenverkehr mit allgemein verfügbaren Open Source-Tools wie Wireshark zu entschlüsseln.
Sie können den Schlüssel schützen, indem Sie ihn mit DES oder AES mit einer Passphrase unter Verwendung von OpenSSL verschlüsseln. OpenSSL ist für Linux, OSX und Windows verfügbar.
OpenSSL kann die Passphrase auch entfernen, wenn eine Passphrase unpraktisch ist (z. B. auf einem Webserver, der automatisch gestartet wird, aber die automatische Eingabe von Passphrasen nicht unterstützt).
Hinzufügen einer Passphrase mit AES-Verschlüsselung (sicherer als DES): -
Entfernen einer Passphrase (Sie werden aufgefordert, die Passphrase einzugeben): -
quelle
Eine andere Option, nachdem ich über KeyWhiz gelesen hatte, war HashiCorp's Vault. Es ist nicht nur ein Passwort-Manager, sondern auch ein Secrets-Store, der meiner Meinung nach KeyWhiz ähnelt. Es ist in GO geschrieben, und der Client fungiert auch als Server und lässt sich in eine Reihe von Backends und Authentifizierungsmethoden einbinden. Vault ist auch Open Source, auch mit der Enterprise-Option.
Da SSL-Schlüssel und -Zertifikate nur Textdateien sind, können Sie sie mit base64 codieren und als Zeichenfolge in Vault oder auch nur als Text in Vault speichern. Es gibt kein WebUI oder GUI, keine Befehlszeile oder kein Skript, und es ist eine sehr gute, stabile Web-API vorhanden, die gebootet werden kann.
quelle
Ich würde empfehlen, einen Offline-HSM (z. B. ein Hardware-Verschlüsselungstoken oder eine CAC) zu prüfen, um den privaten Schlüssel und das Zertifikat zu speichern. Dies schützt nicht nur den privaten Schlüssel vor versehentlicher Gefährdung, sondern bietet auch eine grundlegende kryptografische Auslagerung.
Wenn Sie mehr kryptografische Assets verwalten müssen, empfehlen wir Ihnen, sich eine Enterprise Key & Certificate Management-Software anzusehen, mit der Sie Erneuerungen automatisieren, den Lebenszyklus nachverfolgen, die Bereitstellung an Endpunkten automatisieren können usw. Die meisten dieser Assets speichern das im Ruhezustand verschlüsselte Asset CLOB in einer Datenbank.
quelle