Wie können Sie einen privaten GPG-Schlüssel sicher sichern?


25

Ich habe einen sehr interessanten CLI-Passwort-Manager namens pass gefunden . Um es zu verwenden, generieren Sie ein GPG2-Schlüsselpaar und verwenden das Tool, um Kennwörter in gpg2-verschlüsselten Dateien zu speichern.

Zum Verschlüsseln der Dateien (Hinzufügen eines neuen Kennworts) wird der öffentliche Schlüssel verwendet.

Zum Entschlüsseln der Dateien (Abrufen eines gespeicherten Kennworts) wird der private Schlüssel verwendet, für den ein Kennwort erforderlich ist.

Das funktioniert super.

Nachdem das Tool alle meine Kennwörter gespeichert hat, möchte ich alle diese Daten sichern, damit ich bei einem Absturz meines Computers nicht von allen meinen Online-Konten ausgeschlossen werde.

Das Tool lässt sich gut in git integrieren, sodass ich die .gpg-Dateien problemlos auf einem anderen Computer auf mein privates git-Repo übertragen konnte. Soweit ich weiß, sind diese Dateien ohne den privaten Schlüssel zum Entschlüsseln nutzlos.

Meine Frage lautet: Wie kann ich den privaten und den öffentlichen Schlüssel auf sichere Weise sichern, damit ich bei Bedarf die "Datenbank" auf einem anderen Computer wiederherstellen kann? Kann ich sowohl den öffentlichen als auch den privaten Schlüssel in meinem Git-Repo speichern und zu einem späteren Zeitpunkt auf einen anderen Computer importieren? Oder wird es als unsichere Praxis angesehen, einen privaten Schlüssel in einem privaten, lokalen Git-Repo zu speichern? Für den Zugriff auf das Git Repo ist ein Passwort erforderlich. Der private Schlüssel ist verschlüsselt und erfordert zum Öffnen ein Kennwort. Ist das Speichern dann sicher?

Antworten:


10

Das Speichern eines privaten PGP-Schlüssels in einem Revisionskontrollsystem wirft an und für sich keine wesentlichen Sicherheitsprobleme auf. Das Speichern des privaten Schlüssels in einem lokalen, privaten (unveröffentlichten) Git-Repository sollte keine wesentlichen Auswirkungen auf die Sicherheit haben, verglichen mit dem Speichern des privaten Schlüssels auf demselben Computer, jedoch außerhalb eines Git-Repositorys.

Das einzige Problem, an das ich denken kann, ist das versionierte Speichern des privaten Schlüssels. Wenn Sie die älteren Revisionen nicht irgendwie zerstören können , bieten Ihnen Änderungen der Schlüsselpassphrase weitaus weniger Schutz als sonst.

Was mit seinen eigenen Auswirkungen auf die Sicherheit einhergehen kann, ist das Speichern eines privaten Schlüssels , sodass möglicherweise jemand anderes auf die Schlüsseldatei zugreifen kann. In einer solchen Situation ist alles, was zwischen einem Angreifer und Ihrem Schlüssel steht, die Stärke seiner Passphrase.

In der Erkenntnis, dass die Speichersicherheit nicht perfekt ist, und insbesondere in der modernen Umgebung, in der Benutzer regelmäßig auf Cloud-Dienste zurückgreifen (was wörtlich übersetzt "Computer eines anderen" bedeutet), schützen wir unsere geheimen Schlüssel normalerweise mit Passphrasen. Ich vertraue darauf, dass Sie dasselbe tun, auch wenn Sie beispielsweise gpg-agent ausführen.

Unter dem Strich sollte das Speichern einer Kopie der verschlüsselten Schlüsseldatei auf dem Computer eines anderen relativ sicher sein , solange Ihre Passphrase gut ist.

Das ist jedoch ein ziemlich großes Problem, wenn: Die Passwörter oder Passphrasen der meisten Leute sind ziemlich mies, was computergestützte Versuche angeht, sie zu knacken. GnuPG geht bis zu einem gewissen ziemlich Länge als auch zu arbeiten , um zu versuchen , wie es kann mit dem, was Sie ihm geben, aber für festen Datenschutz, Sie benötigen ein gutes Passwort ein , und Sie müssen sie festlegen , bevor mit dem privaten Schlüssel in das Git Repository zu importieren. Nachdem der Schlüssel importiert wurde, kann ein Angreifer im Prinzip jede Version davon angreifen. Wenn er Grund zu der Annahme hat, dass eine bestimmte Revision eine Passphrase mit geringerer Qualität aufweist, wird dies wahrscheinlich der Fall sein. Stellen Sie daher sicher, dass Sie die Passphrase sorgfältig auswählen. Ich habe eine kleine Einführung in den Umgang mit Passwörtern geschrieben, einschließlichVorschläge zur Auswahl von Passwörtern oder Passphrasen, an die Sie sich erinnern müssen , die Sie möglicherweise nützlich finden.


6

Ich habe kürzlich über ein ähnliches Setup nachgedacht. Lassen Sie mich vor der Beantwortung Ihrer Frage darauf hinweisen, was mich daran stört. Dies wird hier ausführlich erklärt . Kurz gesagt, wenn Pass GPG aufruft, führt es unnötige asymmetrische (RSA / EC) Krypto unter der Haube durch. Unnötig - weil es hier keine nicht vertrauenswürdige Partei gibt.

Dies ist ärgerlich, da asymmetrische Krypto weniger zukunftssicher ist als symmetrische Krypto. Beispielsweise wird die asymmetrische Krypto von heute durch ausreichend große Quantencomputer unterbrochen, die es noch nicht gibt. Im Allgemeinen beruht asymmetrische Krypto auf "mathematischen Problemen", die wir nicht lösen können, viel mehr als symmetrische Krypto.

Um diese Schwachstelle zu mindern, können Sie Ihren öffentlichen GPG-Schlüssel, der auch mit Pass verwendet wird, zumindest privat halten, da beispielsweise der (potenzielle) Quantenangriff diesen öffentlichen Schlüssel benötigt: siehe hier .

Bei Ihrer eigentlichen Frage ist unklar, ob Sie das Git-Repo (mit den Passwörtern) öffentlich oder privat speichern möchten. Wenn Sie es privat halten möchten, können Sie so ziemlich das tun, was Sie wollen, und die Sicherheit des privaten GPG-Schlüssels auf die des Mediums reduzieren, auf dem Sie das Repo sichern. Dies könnte jedoch zu einem Henne-Ei-Problem werden: Wenn das Repo privat ist, wie erhalten Sie es im Falle eines Absturzes zurück? Mit anderen Worten, im Falle eines "schlechten Absturzes" muss es etwas geben, das Sie zuerst abrufen . Vielleicht möchten Sie das Git-Repo privat halten, aber den GPG-Schlüssel so sichern, dass Sie ihn unabhängig von allem anderen zuerst abrufen können.

Es gibt zahlreiche Offline-Backup-Lösungen, Anwälte, Keller usw. finden Sie hier . Aber Keller sind nicht jedermanns Sache. Lassen Sie mich eine Online-Lösung vorschlagen:

  • Erstellen Sie eine super starke Passphrase, die seit Jahren nicht mehr eingegeben werden soll. Vorschlag: Lange, einprägsame Rechtschreibfehler einer Phrase, die eine persönliche Bedeutung hat, oder aus einem Buch, dem nicht die Kopien ausgehen, wenn Sie sie nachschlagen müssen.

  • Erstellen Sie einen Tarball mit Ihrem exportierten geheimen GPG-Schlüssel und möglicherweise Ihren SSH-Anmeldeinformationen.

  • Verschlüsseln Sie es symmetrisch mit Ihrer Passphrase : gpg --symmetric --armor.

  • Erstellen Sie ein kostenloses Git-Hosting-Konto.

  • Erstellen Sie ein öffentliches Repository, das ohne Anmeldeinformationen geklont werden kann.

  • Legen Sie den verschlüsselten und gepanzerten Teerball hinein.

So rufen Sie es nach einem "schlechten Absturz" ab:

  • Starten Sie einen Live-USB-Stick.

  • Öffentliches Repo klonen.

  • gpg --decrypt.

Die symmetrische Passphrase ist Ihr Hauptschutz gegen die Zombies. Menschen geben Ihnen oder dem anonymen Leser manchmal nicht den Vorteil des Zweifels, wenn es um die Auswahl von Passphrasen geht. Aber mit einer guten Passphrase sollte symmetrische Krypto solide sein.

Wenn Sie Ihren privaten GPG-Schlüssel exportieren, wird er mit einer eigenen Passphrase verschlüsselt. Neuere Versionen von GPG erlauben keinen unverschlüsselten Export. Hier können Sie Ihre "normale" GPG-Passphrase verwenden. Denken Sie daran, dass Sie im Falle eines Absturzes beide Passphrasen benötigen, um zu Ihrem privaten GPG-Schlüssel zu gelangen.


4

Eine andere Option, die ich benutze, ist: Drucken Sie Ihren Schlüssel auf Papier .

Die Details finden Sie in der verknüpften Antwort. Die großen Vorteile sind: Sie können es einfach aufbewahren, wo immer Sie möchten, und Sie können überprüfen, ob es wahrscheinlich noch in gutem Zustand ist, indem Sie es sich nur ansehen. Der größte Vorteil ist jedoch: Niemand kann es hacken, ohne sich physisch an dem Ort zu befinden, an dem Sie Ihr Backup speichern und es aufnehmen.


Soweit ich sehen kann, hat Papier in diesem Fall keinen Vorteil gegenüber Wechselmedien und den Nachteil, dass Sie, wenn Sie den Schlüssel wiederherstellen müssen, den gesamten Kauderwelsch für den Schlüssel eingeben müssen.
MAP

Der Vorteil ist, dass es weitaus langlebiger ist und Sie überprüfen können, ob es ohne Computer mit Ihren eigenen Augen noch lesbar ist. Wenn ich einen Dollar für jede Diskette, CD oder DVD hätte, die ich verwendet habe und die jetzt nicht behebbare Datenfehler aufweist, könnte ich mit diesem Geld Urlaub machen. Sie müssen nichts eingeben! PaperBack druckt es als 2D-Code mit hinzugefügter Fehlerkorrektur. Sie scannen oder fotografieren es einfach und das Programm verwandelt es wieder in das, was Sie zuvor zum Drucken gegeben haben.
Josef sagt Reinstate Monica

Vorausgesetzt natürlich, Sie haben noch die Technologie, um das zu tun.
MAP

Nun, die Wahrscheinlichkeit, dass ich mit Wine in 20 Jahren problemlos eine Windows-VM oder Linux mit Wine mit einer Kopie dieser Open-Source-Software erhalten kann, ist meiner Meinung nach viel höher als die Wahrscheinlichkeit, dass ich die Hardware zum Lesen einer Diskette / CD bringen kann /DVD. Nehmen wir einfach an, ich habe das 1990 getan. Ich kann jetzt sogar Software von damals in meinem Browser ausführen . Aber viel Glück beim Versuch, Hardware zu bekommen, mit der Sie eine 5 1/4 Zoll-Diskette mit Ihrem modernen PC lesen können.
Josef sagt Reinstate Monica

2

Eine andere Antwort darauf ist "offline", dh es wird an einem sicheren Ort gespeichert, der mit keinem Computer verbunden ist. Ich bewahre eine vollständige, unverschlüsselte Kopie aller meiner Schlüssel auf einer Diskette (ich mache das schon lange so, jetzt ist es eine Gewohnheit) im Safe der Bank auf. Der Grund, warum ich sie in den Medien der Bank unverschlüsselt halte, ist, dass ein mögliches Szenario für das "Verlieren" des Schlüssels darin besteht, die Passphrase zu vergessen (meine Passphrasen enthalten in der Regel viele seltsame Satzzeichen und Schreibweisen, und nur eine davon macht es aus unbrauchbar). Ich musste nie darauf zurückgreifen, es von dieser Kopie zurückzubekommen, aber ich plane das Schlimmste.

Zusätzlich gibt es einen wichtigen Widerruf in den Medien und eine Notiz, in der meine Erben darüber informiert werden, was sie damit tun sollen, falls ich nicht mehr verfügbar bin.


Wenn Sie den privaten Schlüssel für die Mastersignatur sichern, kann dies nicht zum Generieren eines Sperrzertifikats verwendet werden? In welchem ​​Szenario ist es sinnvoll, das Sperrzertifikat zu sichern?
Matei David

Ah ja, aber Sie müssen verstehen, dass ich nicht sicher sein kann, wie computerbewusst die Person sein wird, die die Anfrage ausführt (beachten Sie, dass nicht ich sie verwenden werde, sondern "meine Erben"). Wenn der Widerruf bereits generiert wurde und die Anweisungen "Senden Sie einfach eine E-Mail mit dieser angehängten Datei" gesendet werden, ist die Wahrscheinlichkeit geringer, dass sie nicht ordnungsgemäß verwaltet werden.
MAP

@MateiDavid Durch das Generieren eines Sperrzertifikats beim erstmaligen Erstellen des Schlüsselpaars und das Speichern dieses Sperrzertifikats können Sie den Schlüssel widerrufen, wenn der Schlüssel für Sie nicht mehr verfügbar ist. Es gibt gültige Szenarien, in denen dies passieren kann. Natürlich müssen Sie das Widerrufszertifikat sehr gut schützen, denn jeder, der es in die Hände bekommt, kann es veröffentlichen und so Ihr Schlüsselpaar widerrufen. Ich bin mir jedoch nicht sicher, wie ein Widerrufszertifikat überhaupt für die Situation des OP gilt.
ein CVn

Ja, wir sind in ein Rattenloch gegangen. Ich entschuldige mich, meine Erwähnung des Widerrufszertifikats diente nur der Vollständigkeit in der Beschreibung der von mir unternommenen Schritte und hatte nichts mit der ursprünglichen Frage zu tun.
MAP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.