it-swarm.com.de

Wie kann ein privater GPG-Schlüssel sicher gesichert werden?

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.

Jetzt, da das Tool alle meine Passwörter speichert, möchte ich alle diese Daten sichern, damit bei einem Absturz meines Computers nicht alle meine Online-Konten gesperrt werden.

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 sichere ich die privaten und öffentlichen Schlüssel, damit ich die "Datenbank" bei Bedarf 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 einem anderen Computer importieren? Oder wird es als unsichere Praxis angesehen, einen privaten Schlüssel in einem privaten, lokalen Git-Repo zu speichern? Das Git Repo benötigt ein Passwort, um darauf zuzugreifen. Der private Schlüssel ist verschlüsselt und erfordert zum Öffnen ein Kennwort. Ist das Speichern dann sicher?

19
Tal

Das Speichern eines privaten PGP-Schlüssels in einem Revisionskontrollsystem birgt an sich keine wesentlichen Sicherheitsprobleme. Das Speichern des privaten Schlüssels in einem lokalen, privaten (unveröffentlichten) Git-Repository sollte keine wesentlichen Auswirkungen auf die Sicherheit haben, im Gegensatz zum Speichern des privaten Schlüssels auf demselben Computer, jedoch außerhalb eines solchen Git-Repository.

Das einzige Problem, das mir durch das versionskontrollierte Speichern des privaten Schlüssels einfällt, ist, dass Sie durch Schlüssel-Passphrase-Änderungen weit weniger Schutz erhalten, als dies ansonsten der Fall wäre, wenn Sie die älteren Versionen nicht irgendwie zerstören können .

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

In Anbetracht der Tatsache, dass die Speichersicherheit nicht perfekt ist, schützen wir unsere geheimen Schlüssel in der Regel mit Passwörtern, insbesondere in modernen Umgebungen, in denen regelmäßig auf Cloud-Dienste zurückgegriffen wird (was wörtlich übersetzt "Computer eines anderen" bedeutet). Ich vertraue darauf, dass Sie dasselbe tun, auch wenn Sie zum Beispiel gpg-agent ausführen.

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

Allerdings ist ein ziemlich großes Problem, wenn: die Passwörter oder Passphrasen der meisten Leute in Bezug auf computergestützte Versuche, sie zu knacken, ziemlich mies sind. GnuPG unternimmt einige Anstrengungen, um so gut wie möglich mit dem zu arbeiten, was Sie ihm geben, aber für einen soliden Datenschutz benötigen Sie eine gute Passphrase und Sie müssen festlegen , bevor Sie den privaten Schlüssel in das Git-Repository importieren. Nachdem der Schlüssel importiert wurde, ein Angreifer Im Prinzip könnte jede Version davon angegriffen werden, und wenn sie Grund zu der Annahme haben, dass eine bestimmte Revision eine schlechtere Passphrase aufweist, wird dies wahrscheinlich der Fall sein. Stellen Sie daher sicher, dass Sie die Passphrase sorgfältig auswählen. Ich habe einen kleinen Leitfaden zum Umgang mit Passwörtern verfasst, einschließlich Vorschlägen zur Auswahl von Passwörtern oder Passphrasen, die Sie sich merken müssen Sie können nützlich finden.

7
a CVn

Ich habe vor kurzem über eine ähnliche Einrichtung 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 eine unnötige asymmetrische (RSA/EC) Verschlüsselung 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 abzumildern, können Sie Ihren öffentlichen GPG-Schlüssel zumindest auch mit Pass privat verwenden, da beispielsweise für den (potenziellen) Quantenangriff dieser öffentliche Schlüssel erforderlich ist: see here .

Bei Ihrer eigentlichen Frage ist unklar, ob Sie beabsichtigen, das Git-Repo (mit den Passwörtern) öffentlich oder privat zu speichern. Wenn Sie es privat halten möchten, können Sie so ziemlich alles 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 können Sie es im Falle eines Absturzes zurückbekommen? Mit anderen Worten, im Falle eines "schlechten Absturzes" muss zuerst etwas abgerufen werden . Vielleicht möchten Sie das Git-Repo also privat halten, aber den GPG-Schlüssel so sichern, dass Sie ihn unabhängig von allem anderen zuerst abrufen können.

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

  • Erstellen Sie eine superstarke Passphrase, die seit Jahren nicht mehr eingegeben werden soll. Vorschlag: Lange, einprägsame Rechtschreibfehler bei einer Phrase, die eine persönliche Bedeutung hat, oder bei einem Buch, bei dem die Kopien nicht 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 "schlimmen Absturz" ab:

  • Booten 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 Passwörtern geht. Mit einer guten Passphrase sollte die symmetrische Krypto jedoch solide sein.

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

5
Matei David

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

Die Details finden Sie in der verlinkten Antwort. Die großen Vorteile sind: Sie können es einfach an jedem beliebigen Ort aufbewahren und ü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 aufbewahren und ablegen.

4
Josef

Eine andere Antwort auf diese Frage lautet "offline", d. H. An einem sicheren Ort, an dem keine Verbindung zu einem Computer besteht. Ich behalte eine vollständige unverschlüsselte Kopie aller meiner Schlüssel auf einer Diskette (das mache ich schon lange so, jetzt ist es eine Gewohnheit) im Safe bei der Bank. Der Grund, warum ich sie in den Medien der Bank unverschlüsselt halte, ist, dass ein mögliches Szenario für den "Verlust" des Schlüssels darin besteht, die Passphrase zu vergessen unbrauchbar). Ich musste nie darauf zurückgreifen, es von dieser Kopie zurückzubekommen, aber ich plane das Schlimmste.

Zusätzlich gibt es eine wichtige Widerrufsbelehrung in den Medien und eine Notiz, in der meine Erben darüber informiert werden, was zu tun ist, falls ich nicht mehr verfügbar bin.

2
MAP