Ist es wichtig, wo die CSR- und Schlüsseldateien für die SSL-Zertifizierung generiert werden?

18

Ich muss eine CSR für ein Wildcard-SSL-Zertifikat erstellen. Einige häufig gestellte Fragen von SSL-Anbietern besagen, dass ich die CSR-Datei auf dem Computer generieren soll, auf dem ich das Zertifikat installieren möchte. Meines Wissens nach sollte es keine Rolle spielen, wo ich die CSR oder die Schlüsseldatei generiere, solange ich die Dateien später an den richtigen Ort verschiebe.

Meine Frage lautet also: Ist es wichtig, wo die CSR- und Schlüsseldateien für die SSL-Zertifizierung generiert werden?

Jan Deinhard
quelle

Antworten:

21

Du hast das richtig verstanden. Wenn alle anderen Dinge gleich sind, spielt es keine Rolle. aber es gibt falten.

Ein Vorteil der Generierung auf dem betreffenden Server besteht darin, dass die Gefahr einer Beschädigung des Schlüssels während der Übertragung minimiert wird. Solange Sie eine sichere Maschine verwenden, um sie zu generieren, und eine sichere Methode (immun gegen MITM-Angriffe), um sie auf den Server zu verschieben, werden Sie dem entgehen. Vergessen Sie nicht, sie auf dem generierenden System sicher zu löschen, es sei denn, Sie möchten absichtlich Kopien aufbewahren und sind entsprechend gesichert.

Ein Vorteil beim Generieren auf einem separaten Computer: In der Regel ist dies Ihr Desktop. Der Entropiepool auf einem Desktopcomputer ist fast immer tiefer als auf einem unbeaufsichtigten Server, da der Desktop über eine große Zufallsquelle verfügt, die über Tastatur- und Mauskabel (dh Sie!) Verbunden ist. Ein Mangel an Entropie kann entweder dazu führen, dass die Schlüsselerzeugung lange dauert, oder dass /dev/urandomstattdessen die PRNG-Ausgabe verwendet wird, je nachdem, wie paranoid das Erzeugungswerkzeug ist. Dies kann zu schwächeren Schlüsseln führen. Desktop-Computer haben dieses Problem in der Regel nicht.

Später bearbeiten : Nach einer Diskussion an anderer Stelle, die hier verlinkt ist, wurden zwei Punkte angesprochen. Erstens können Sie die Entropie auf halbem Weg erstellen, indem Sie sie auf Ihrem Desktop dd if=/dev/random bs=1k count=10 of=/tmp/entropy.daterstellen , z. B. auf den Remoteserver kopieren und sie entweder direkt oder durch eine Vertiefung des Entropiepools des Remoteservers in Ihren Schlüsselerzeugungsprozess einspeisen. Ich habe noch keinen Weg gefunden, das erstere zu tun, und das letztere zu tun, erfordert im Allgemeinen das Ausüben von Privilegien, was auch unsicher ist, wenn der Kanal zwischen Ihnen und dem Remote-Server nicht sicher ist, was eher der Punkt des gesamten Einspruchs ist.

Zweitens wirft der schätzbare mjg59 das Problem von Hardware-Sicherheitsmodulen auf - also Geräten, in die Sie private Schlüssel stecken oder die Sie erstellen, und die dann Schlüsseloperationen ausführen, ohne den Schlüssel jemals herauszulassen. Das ist ein ausgezeichneter Punkt, aber außerhalb des Rahmens dieser Frage.

Aber das allgemeinere Ergebnis des Threads - dass Sie ein genaues Bedrohungsmodell haben und Ihre Antworten angemessen auswählen - ist gut. Mein Bedrohungsmodell ist, dass meine Kommunikationskanäle sicher sind, aber meine Endpunkte intelligent angegriffen werden. Das bedeutet, dass ich lokal entropisch starke SSL-Schlüsselpaare generiere und verteile. Wenn sich herausstellt, dass mein Modell ungenau ist und meine Kommunikation gefährdet ist, kann ich sofort davon ausgehen, dass alle meine SSL-Schlüsselpaare kompromittiert sind. Wenn sich Ihr Bedrohungsmodell unterscheidet, sollten Sie Ihre Praktiken entsprechend anpassen.

MadHatter unterstützt Monica
quelle
Ich bin nicht sicher, ob der CSR-Code, der auf meinem Server auf virtualbox generiert wird, die Vorteile einer großen Zufallsquelle bietet . Hast du eine Idee dazu?
Lewis
@Tresdin, wie meine Antwort sagt, generiere es lokal auf dem Desktop und kopiere es nach oben.
MadHatter unterstützt Monica am
Unter Linux können Sie dem vorhandenen Entropiepool zusätzliche Entropie hinzufügen, indem Sie in / dev / random schreiben. Ich bin mir nicht sicher, ob dies auf anderen * Nixen funktioniert.
ein Lebenslauf am
7

Es ist etwas wichtig.

Wenn Sie sie auf einem anderen Computer generieren, sind die Schlüssel auf dem generierenden Computer und dann auf dem Server anfällig. Wenn Sie einen infizierten Computer verwenden, um sie zu generieren, stehlen einige Viren möglicherweise die Schlüssel, noch bevor sie auf den sicheren Server verschoben werden.

Wenn Sie sie auf einem sicheren Server generieren und nur den CSR / das Zertifikat verschieben, ist die Wahrscheinlichkeit, dass jemand / etwas den privaten Schlüssel erhält, geringer als im ersten Fall, da sich der private Schlüssel nur auf einem Computer befindet.

Mulaz
quelle