it-swarm.com.de

So senden Sie sicher private Schlüssel

Was ist die empfohlene Methode und bewährte Methode zum Senden von privaten Schlüsseln und privaten SSL-Schlüsseln? Ich dachte daran, die Dateien zu komprimieren und dann gpg:

gpg -c thefile.Zip

Das Problem wird dann, wie Sie die Passphrase, die zum Verschlüsseln verwendet wird, an das andere Ende senden. Gibt es eine bessere Lösung?

46
Justin

TL; DR: Private Schlüssel werden aus einem bestimmten Grund als privat bezeichnet.


Sie können private Schlüssel sichern, indem Sie sie überhaupt nicht übertragen.

  • Wenn Sie Shell-Zugriff auf den Server haben, auf dem sie verwendet werden, generieren Sie sie einfach in situ .
  • Wenn das Zielgerät zu schwach/zu schwach ist, um die Schlüssel zu generieren, ist es auch zu schwach, um eine asymmetrische Verschlüsselung zu verwenden (dies schließt Entropiequellen ein). Natürlich gibt es festverdrahtete festverdrahtete Geräte (z. B. Smartcards), aber Sie können die Schlüssel über eine physisch sichere Verbindung verschieben, ohne mit dem Internet verbunden zu sein. Ein eher unklarer Eckfall ist die asymmetrische Verschlüsselung, die in einem Remote-Gerät verwendet wird (sprich: eine Raumsonde oder ein Satellit), aber die Bedingungen werden in der Praxis wahrscheinlich nicht erfüllt (ein Schlüssel ist kompromittiert, aber eine andere sichere Verbindung ist noch verfügbar).
  • Wenn Sie keinen sicheren Shell-Zugriff (SSH) auf das Zielgerät haben, können Sie die Dateien im Allgemeinen nicht sicher kopieren (SCP). Die Verwendung von E-Mail zum Verschieben der Schlüssel, auch in verschlüsselter Form, lenkt ungerechtfertigte Aufmerksamkeit auf die Nachricht und hinterlässt die Spur an möglicherweise Dutzenden von Stellen im Internet.
  • Das Senden der Schlüssel bedeutet, dass die Personen am anderen Ende des Kanals müssen Ihnen vertrauen und Sie müssen ihnen vertrauen. In geschäftlichen und anderen Umgebungen mit hohen Einsätzen ist dies nicht immer eine gute Sache (jede Partei kann die Kommunikation mit den vorhandenen privaten Schlüsseln herstellen).

BEARBEITEN: Für den angegebenen Anwendungsfall von privaten Schlüsseln für einen Hosting-Anbieter ist es immer noch besser, diese an Ort und Stelle zu generieren.

61
Deer Hunter

Mit GPG können Sie diese sicher senden, ohne eine Passphrase senden zu müssen. Wenn das Ziel über einen eigenen GPG-Schlüssel verfügt, können Sie die Datei verschlüsseln, sodass nur sie sie öffnen können. Beispielsweise, gpg -e -r E9053BDA thefile.Zip erlaubt nur mir, die Datei.Zip mit meinem GPG-Schlüssel zu öffnen, ohne dass einer von uns jemals eine Passphrase mitteilt. Alternative gpg-Zip -e -r E9053BDA *.crt komprimiert und verschlüsselt alle *.crt Dateien in einem Befehl.

Dokumentationsreferenz:

21
akraut

Für die private Übertragung von Schlüsseln auf sichere Weise (oder für Schlüssel/Passphrasen, mit denen Sie sie verschlüsselt haben) haben Sie keine andere Wahl, als von Anfang an einen zuvor festgelegten vertrauenswürdigen, sicheren Kanal zu verwenden.

Abhängig von Ihren Anforderungen und den verfügbaren Möglichkeiten kann dies Folgendes umfassen

  • senden verschlüsselter E-Mails an eine Adresse, für die Sie bereits vertrauenswürdige öffentliche Schlüssel haben, unabhängig davon, ob OpenPGP oder S/MIME
  • versand per (Schnecken-) Post, ggf. versiegelt
  • persönlich reisen, ggf. offizielle Ausweise vergleichen
  • sicheres Hochladen auf einen vertrauenswürdigen Computer, z. B. mithilfe von SSH
  • senden einer verschlüsselten E-Mail, während die Passphrase über einen anderen Kanal übertragen wird (Telefon, SMS)

Welche Methode tatsächlich angewendet werden soll, hängt von Ihren Bedürfnissen und potenziellen Vorabendtropfern ab. Wenn Regierungsinstitutionen und Geheimagenturen mögliche Angreifer sind, werden die meisten dieser Möglichkeiten von Anfang an gefährdet: Weder Telefon noch Post sind mehr sicher - und möglicherweise auch andere.

Wenn Sie nur mit jemand anderem kommunizieren möchten, sollten beide Enden ihre eigenen Schlüsselpaare generieren, den öffentlichen Schlüssel verteilen und den privaten Schlüssel privat halten. Sie müssen weiterhin Informationen über die öffentlichen Schlüssel, z. B. den Fingerabdruck, über einen zuvor festgelegten, vertrauenswürdigen Kanal wie oben beschrieben austauschen.

10
Jens Erat

Lesen Sie zuerst, was Deer Hunter oben geschrieben hat. Der beste Weg, um private Schlüssel sicher zu senden, besteht darin, sie niemals zu senden. Punkt.

Abgesehen davon gibt es wahrscheinlich einige Umstände, unter denen Sie möglicherweise einige private Schlüssel, die in Ihren Händen und an einem Ort vorhanden sind, an die Hände eines anderen an einem anderen Ort übertragen müssen. Sie sollten diese Zeiten so weit wie möglich minimieren , vorzugsweise indem Sie einfach den Client, der sie benötigt, durch Generieren der Schlüssel selbst führen. Aber es kann Zeiten geben, in denen dies aus irgendeinem Grund (oder wahrscheinlicher) nicht praktikabel ist. Also, was machst du dann?

Nun, Sie tun das, was Regierungen und Technologiefirmen tun, wenn sie sehr sensible Verschlüsselungsschlüssel (meistens in symmetrischen oder sogar in einmaligen Pad-Schlüsselverteilungsszenarien, anstatt mit asymmetrischen privaten Schlüsseln) an einen entfernten Standort verteilen müssen: Sie ::

(1.) Verschlüsseln Sie die zu übertragenden Schlüssel, bevor sie Ihre Einrichtungen verlassen, mit einem eindeutigen "äußeren" Schlüssel, der nur für eine Übertragung erstellt und dann zerstört wird. Wenn dieser schützende Verschlüsselungsschlüssel aus einem Passwort oder einer Passphrase generiert wird, erfüllt das Passwort oder die Phrase sehr hohe Anforderungen an die Festigkeit.

(2.) Verwenden Sie einen Kanal mit viel besserer Sicherheit als vorhandene Allzwecknetzwerke - auch bekannt als Internet! - -Um das verschlüsselte Paket an sein Ziel zu bringen. Die physische Übermittlung eines Speichergeräts mit dem verschlüsselten Schlüssel ist der einfachste, aber nicht immer praktischste Kanal.

(3.) Behalten Sie den "äußeren" Schlüssel, der die Schutzverschlüsselung (oder ein Passwort/eine Passphrase, die die Grundlage für den Schlüssel bildet) entsperrt, in Ihrem Besitz, bis es Zeit ist, die gewünschten Schlüssel zu übertragen um sie beim Kunden zu übertragen und dann zu entschlüsseln. Dies bedeutet, dass Sie entweder persönlich am Schlüsselübertragungsereignis teilnehmen, um die Schutzverschlüsselung zu entschlüsseln, oder den Schlüssel, der die Schutzverschlüsselung entsperrt, über einen anderen unabhängigen elektronischen Hochsicherheitskanal senden, um ihn zum Zeitpunkt der Entschlüsselung an den Client zu bringen.

(Warum nicht einfach zu Nummer 3 springen und den ursprünglichen privaten Schlüssel senden, den Sie benötigen, um über diesen hochsicheren elektronischen Kanal zum Client zu gelangen? Weil wir keinem Kanal vertrauen, nicht einmal dem, was wir für besonders halten. Gute Sicherheit, fast genug, um Informationen wie einen privaten Schlüssel zu verarbeiten. Wir lassen einen möglichen Gegner mindestens zwei Kanäle/Übertragungsmechanismen abfangen , und wir machen es Es ist schwierig, irgendetwas Nützliches von einem abzufangen, geschweige denn von beiden.

Nun, das klingt alles mühsam und kompliziert. Aber in Wirklichkeit muss es auch nicht unbedingt so sein. (Vorausgesetzt, wir befinden uns in einer gemeinsamen Situation, ist dieser Schlüssel wichtig, aber es wäre nicht wirklich katastrophal, wenn er kompromittiert würde.) Zum Beispiel könnten Sie:

- Verwenden Sie ein angesehenes USB-Gerät mit Hardwareverschlüsselung - kein Mangel an Optionen - für den Transport. Schreiben Sie einen privaten Schlüssel dazu, sperren Sie ihn mit einem eindeutigen sicheren Passwort/Code/Satz und fahren Sie ihn quer durch die Stadt zum Standort des Kunden, der den Schlüssel benötigt. Schließen Sie es an, wenn Sie dort ankommen, entsperren Sie es und kopieren Sie den privaten Schlüssel auf das Client-System.

- Schnapp dir einen neuen (bisher nicht verwendeten) normalen USB-Stick. Verwenden Sie ein Softwareprogramm, dem Sie stark vertrauen, um den privaten Schlüssel in einer Datei zu verschlüsseln. Datei auf den USB übertragen. Überprüfen Sie dann USB - nur um sicherzugehen -, dass das einzige, was darauf ist, das jetzt verschlüsselte Paket ist. Machen Sie Einschreiben oder FedEx, um es auf die Website des Kunden zu bringen. Verwenden Sie Off-the-Record oder eine ähnliche Sicherheitsnachrichten-App wie diese, um den Schlüssel für die Schutzverschlüsselung (oder das Kennwort/die Phrase, die zum erneuten Generieren erforderlich ist) an den Client weiterzuleiten, der dann den privaten Schlüssel entschlüsselt und erhält .

- Müssen Sie Schlüssel bei Bedarf und elektronisch wiederholt an einen Kunden verteilen können? Verschlüsseln Sie den privaten Schlüssel in der Datei wie im letzten Beispiel. Verfügen Sie über einen einfachen, aber sicheren VPN- oder SSH-Zugriffsserver, den Sie nur für die Verteilung verschlüsselter Schlüsseldateien verwenden, für den Client vorinstallierte Authentifizierungsinformationen zum Anmelden haben und den Sie normalerweise von jedem Remotezugriff getrennt halten. Wenn der Client Sie anruft und Ihnen mitteilt, dass er bereit ist, den Schlüssel zu empfangen, übertragen Sie ihn von Ihrer internen Speicherumgebung auf den Server. Aktivieren Sie Remoteverbindungen zum Server über die IP-Adresse des Clients. Der Client stellt eine verschlüsselte Schlüsseldatei her und greift darauf zu. Schließlich verwenden Sie die Hochsicherheits-Messaging-App (oder was auch immer), um den Schutzschlüssel an Ihren Client zu übertragen.

Viele Möglichkeiten. Es ist wahr, dass mit jedem etwas Arbeit verbunden ist, wenn Sie möchten, dass die Übertragung gut gesichert ist. Von der Aussicht, die Arbeit zu erledigen, abgeschaltet? Das ist verständlich. In diesem Fall siehe Punkt 1 (der ursprüngliche Punkt, den Deer Hunter gemacht hat): Erstellen Sie eine technologische Anordnung, bei der Sie überhaupt keine privaten Schlüssel übertragen müssen.

4
mostlyinformed

Der richtige Weg, dies in einem ungesicherten Kanal zu tun, besteht darin, eine Infrastruktur mit öffentlichem Schlüssel zum Senden eines privaten Schlüssels zu verwenden.

1) Die empfangende Partei generiert ein öffentliches/privates Schlüsselpaar.

2) Die sendende Partei verwendet dann den öffentlichen Schlüssel der empfangenden Partei, um den privaten Schlüssel zu verschlüsseln und zu senden. Diese Verschlüsselung kann nur mit dem privaten Schlüssel des Empfängers entschlüsselt werden, den nur der Empfänger kennt. Auf diese Weise kann der private Schlüssel auf sichere Weise über einen nicht gesicherten Kanal gesendet werden.

Hierbei ist mehr zu beachten: Wie kann der Empfänger die Identität des Absenders sicherstellen? Dazu muss der Absender auch ein Paar privater/öffentlicher Schlüssel generieren.

Nachdem der Absender "The Private Key" mit dem öffentlichen Schlüssel des Empfängers verschlüsselt hat, muss der Absender das Ergebnis mit seinem privaten Schlüssel verschlüsseln, um die endgültige Nachricht vor dem Senden zu generieren. Nach dem Empfang der Nachricht muss der Empfänger die Nachricht zunächst mit dem öffentlichen Schlüssel des Absenders entschlüsseln. Bei Erfolg kann er sicherstellen, dass die Nachricht authentisch ist.

Sei K Der private Schlüssel muss gesendet werden, E ist Verschlüsselung, D ist Entschlüsselung

Absender: Nachricht M = E (E (K, Pub-K-Empfänger), Pri-K-Absender)

Empfänger: K = D (D (M, Pub-K-Sender), Pri-K-Empfänger)

Jetzt muss sich der Empfänger Sorgen machen, ob die Nachricht frisch ist, d. H. Keine alten Daten, die ein Dritter abgefangen und zu einem späteren Zeitpunkt wiedergegeben hat. Normalerweise wird ein Zeitstempel in die Nachricht M eingebettet, um dieses Problem zu lösen.

Absender: Nachricht M = E (E (K + Zeitstempel, Pub-K-Empfänger), Pri-K-Absender)

Empfänger: K = D (D (M, Pub-K-Sender), Pri-K-Empfänger) - Zeitstempel

1
alex

Im Allgemeinen sollten Sie keine privaten Schlüssel senden. Wenn Sie jedoch unbedingt einen privaten Schlüssel senden müssen, verschlüsseln Sie ihn mit dem öffentlichen Schlüssel des Empfängers. Denken Sie daran, dass Ihr Empfänger bereit sein muss, das Risiko einzugehen, dass Sie eine Kopie des privaten Schlüssels behalten.

0
Micheal Johnson