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/urandom
stattdessen 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.dat
erstellen , 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.
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.
quelle