Wo speichern Unternehmen normalerweise SSL-Zertifikate für die zukünftige Verwendung?

26

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.

Amerikanischer Kryptonit
quelle
Sichern Sie sie verschlüsselt in Ihrer herkömmlichen Sicherungslösung. Speichern Sie die privaten Schlüssel nicht unverschlüsselt bei einem externen Anbieter. Normalerweise füge ich das Problem und das Ablaufdatum zur Unterscheidung in meinen Zertifikats- und Schlüsseldateinamen ein.
Andrew Domaszek

Antworten:

22

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.

HBruijn
quelle
Ich bin gespannt, was meinst du mit "softwarebasiertem Äquivalent" für das HSM?
Einige Anbieter von Hardware-Appliances verkaufen ihre Appliances heutzutage auch in Form einer virtuellen Appliance, einer virtuellen Maschine. Es gibt auch Dinge wie Oracle Key Vault und The Open Source SoftHSM, um nur einige zu nennen.
HBruijn
Im Grunde genommen erlaubt das, einen Standardcomputer in einen HSM zu verwandeln ...
1
"Aber das wird eine Hündin, die es zu restaurieren gilt." Witze beiseite, sollten Sie es vor dem Speichern verschlüsseln.
Ismael Miguel
Per Definition machen Sie Ihren öffentlichen Schlüssel für alle zugänglich. Es gibt keinen Grund, das zu verschlüsseln. Aber das ist auch kein Grund, schlampig damit umzugehen. Sicherheit betrifft hauptsächlich den privaten Schlüssel, der in der Regel tatsächlich verschlüsselt / kennwortgeschützt sein sollte. Sie sollten versuchen, so wenig Kopien wie möglich davon zu haben.
HBruijn
21

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.

Gewähren
quelle
3

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): -

openssl rsa -aes256 -in private.key -out encrypted.private.key

Entfernen einer Passphrase (Sie werden aufgefordert, die Passphrase einzugeben): -

openssl rsa -in encrypted.private.key -out decrypted.private.key
Tricky
quelle
1
Wenn Sie die Dinge richtig machen, sollte selbst das Freilegen des privaten Schlüssels nicht zu einer Beeinträchtigung des früheren Datenverkehrs führen, obwohl dies MITM auf jeden Fall erleichtern würde , um den zukünftigen Datenverkehr wesentlich zu beeinträchtigen.
ein
Hi @Michael, Theoretisch konnte ich leider viele Apache- und IIS-Captures entschlüsseln, sodass ich nur davon ausgehen kann, dass PFS standardmäßig deaktiviert ist. Sogar viele IPSEC-VPNs haben es deaktiviert.
Tricky
PFS ist standardmäßig nicht so stark deaktiviert, da es von vielen Cipher Suites nicht unterstützt wird. Probieren Sie den SSL Labs-Servertest einige Zeit aus. Es zeigt an, welche Chiffresuiten FS unterstützen. Das Deaktivieren aller Nicht-FS-Chiffresuiten lässt wahrscheinlich viele Clients im Dunkeln, da sie die FS-Chiffresuiten nicht unterstützen. Die bevorzugte Behandlung von FS-Suites sollte jedoch funktionieren (ich rate jedoch dringend davon ab, Cipher Suites manuell zu bestellen, es sei denn, Sie wissen, was Sie tun und welche relativen Stärken und Schwächen sie haben).
ein Lebenslauf vom
Vielen Dank für die Empfehlung zu SSL Labs @Michael. Leider sind meine Server nicht mit dem Internet verbunden, aber ich habe mit aktivierten Chiffren herumgespielt, und wie Sie vermuten, wird PFS nur von einigen Chiffren unterstützt. PFS verhindert in der Tat, dass ich Paketverfolgungen decodiere. Ich werde meine Antwort entsprechend aktualisieren.
Tricky
1

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.

  1. https://www.vaultproject.io/
  2. https://github.com/hashicorp/vault
Pred
quelle
0

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.

DTK
quelle
Warum die Abstimmungen? Nicht beschweren; neugierig, was mit dieser Antwort falsch ist.
Matt
Ich bin mir nicht sicher, warum es runtergestimmt wurde. HSMs wurden speziell für die sichere Speicherung von Schlüsseln und die Hochgeschwindigkeitsverschlüsselung entwickelt. Ich kann nur vermuten, dass dies mit dem Aufwand oder der komplexeren Verwaltung zusammenhängt. Alle großen Banken verwenden HSMs für wichtige Operationen wie Chip & Pin-Transaktionen.
Tricky