Ich besitze derzeit einen SSH-Schlüssel, den ich bereits seit einiger Zeit verwende, und möchte GnuPG mit einem neuen Schlüsselbund verwenden. Da ich meinen Schlüssel jedoch schon seit Ewigkeiten verwende, möchte ich diesen Schlüssel in GPG weiterhin als Haupt- / Primärschlüssel verwenden. Ich habe versucht, den Schlüssel über diese Anweisungen zu importieren .
Aber am Ende habe ich einen "Unterschlüssel". Wenn ich versuche, es zu importieren, ohne einen Standard-GPG-Schlüssel zu erstellen, sieht GPG diesen Unterschlüssel nicht einmal. (Ich gehe davon aus, dass der Unterschlüssel zuerst vom Hauptschlüssel signiert werden muss.)
Wie verwende ich diesen Schlüssel als Hauptschlüssel in secring.gpg?
Antworten:
Die einfache Antwort lautet: Sie tun es nicht.
SSH-Schlüssel und GnuPG-Schlüssel (OpenPGP) sind völlig unterschiedlich, obwohl beide Protokolle RSA-Schlüsselpaare verwenden können.
Und außerdem, warum würdest du es tun wollen? Selbst wenn Sie dasselbe Schlüsselmaterial zur Erstellung Ihres PGP-Schlüssels verwenden würden, müssten Sie Ihren Schlüssel dennoch als PGP-Schlüssel verteilen. Wahrscheinlich haben Sie Ihren öffentlichen SSH-Schlüssel nicht an die Personen verteilt, mit denen Sie korrespondieren. Aus Sicht der Schlüsselverteilung besteht also kein Unterschied: Sie müssen einen öffentlichen Schlüssel von Ihnen erhalten. Und selbst wenn Sie Ihren öffentlichen SSH-Schlüssel an andere Personen verteilt haben, müssten diese einige zusätzliche Schritte unternehmen, um ihn in ihre OpenPGP-Implementierung zu importieren, was möglicherweise nicht einfach ist.
Wie Kasperd ganz zu Recht betonte, muss es nur einen Weg geben, eine Signatur (insbesondere) zu interpretieren. Wenn Sie für PGP und SSH denselben Schlüssel verwenden und jemand Sie dazu verleiten könnte, eine speziell gestaltete Nachricht (was bei bestimmten Signatursystemangriffen als möglich angesehen wird) in einer einzigen zu signieren, ist dies auch dann der Fall, wenn beide Systeme für sich genommen sicher sind Möglicherweise ist es möglich, eine solche Nachricht so zu gestalten, dass sie in einem der Systeme eine Bedeutung hat, in dem anderen jedoch eine andere. Das wäre an sich schon eine Schwachstelle. (Ausnutzbar? Wer weiß. Aber warum die Chance nutzen?)
Sowohl PGP- als auch SSH-Schlüsselpaare sind Langzeitschlüssel, mit denen vorübergehende (Nachrichten- und Sitzungs-) symmetrische Schlüssel gesichert und die Authentizität einer Gegenstelle überprüft werden. Dies macht den privaten PGP- oder SSH-Schlüssel zu einem viel höherwertigen Ziel für einen Angreifer als den entsprechenden symmetrischen Schlüssel. Wenn Sie für beide das gleiche Schlüsselmaterial verwenden und ein Angreifer dies feststellen kann, erhöht dies nur den Wert eines erfolgreichen Angriffs auf dieses Schlüsselpaar.
Ohne eines der beiden Protokolle im Detail betrachtet zu haben, stelle ich mir vor, dass es ziemlich trivial wäre, zu erkennen, dass in beiden das gleiche Schlüsselmaterial verwendet wird, da der öffentliche Schlüssel im Grunde genommen im Klaren übertragen wird.
Erstellen Sie einfach einen neuen PGP-Schlüssel. Wenn Sie möchten, dann machen Sie es RSA und von der gleichen Länge wie Ihr SSH-Schlüssel. (Kein vernünftiger Mensch wird es sich näher ansehen, als den Fingerabdruck zu überprüfen.) Verteilen Sie dann den öffentlichen Schlüssel als PGP-Schlüssel an die Personen, mit denen Sie korrespondieren möchten. Es wird für jeden viel einfacher und sehr wahrscheinlich sicherer sein, wenn eine kleine Menge Entropie aus dem zufälligen Entropiepool Ihres Systems entnommen wird, die ohnehin schnell wieder aufgefüllt werden sollte.
Wenn Sie mehrere Schlüssel in Ihrem geheimen Schlüsselbund haben und angeben möchten, welcher standardmäßig verwendet werden soll, verwenden Sie die Anweisungen
default-key
und möglicherweisedefault-recipient{,-self}
in Ihrer ~ / .gnupg / gnupg.conf.quelle
Mit dem Tool
pem2openpgp
aus dem monkeysphere-Projekt können Sie einen SSH-Key in einen OpenPGP-Key konvertieren . Dieser Schlüssel kann dann von gnupg als reguläres privates / öffentliches Schlüsselpaar importiert werden. Wie in der anderen Antwort erwähnt, ist dies in der Regel keine gute Idee, da ssh kein Zertifikatskonzept hat. Sie fügen einem vorhandenen Schlüssel also effektiv eine Funktion hinzu, die vorher nicht möglich gewesen wäre. Dies ist in der Kryptographie in der Regel ein No-Go.Ich habe es trotzdem mit einem meiner SSH-Schlüssel gemacht, aber ich habe meinem anderen OpenPGP-Schlüssel das Schlüsselpaar als Unterschlüssel hinzugefügt, der nur ein Funktionsflag hat: Authentifizierung. Dieses Flag ist für Situationen wie diese gedacht, in denen Sie nichts mit einem Schlüsselpaar signieren oder verschlüsseln möchten (Bedeutung
--encrypt
und--sign
Optionen für gnupg), es aber trotzdem in Ihrer Schlüsselbox zur Authentifizierung mit OpenSSH und dem gnupg-Agenten haben möchten.Weitere Informationen finden Sie in der Dokumentation zu monkeysphere.
quelle
Es kann gute Gründe geben, einen regulären PKCS-Schlüssel für den Import in gpg zu konvertieren.
Zum Beispiel, wenn Sie es auf eine Smart Card legen möchten. Die Funktionen, die gpg mit seinen Befehlen für Karteninformationen und Kartenbearbeitung bietet, sind für diesen Zweck sehr hilfreich. Warum also nicht als Werkzeug verwenden? Die einzige Hürde, die zu überwinden ist, ist ... genau: der Import des Schlüssels aus dem Standard-PKCS # 8-Format (oder dem "rohen" RSA-PKCS # 1-Format) in den GPG-Schlüsselspeicher zur weiteren Verarbeitung.
Beachten Sie also meinen Einspruch gegen die genehmigte Antwort! :)
Eine tatsächlich hilfreiche Antwort auf diese Art von Frage finden Sie hier: /unix/276317/how-can-i-import-a-key-in-pem-format-not-openpgp-into -gpg
quelle
Verwenden Sie dies unter Ubuntu 16.04 oder Windows WSL.
Karte importieren. Kann unter Windows oder Linux ausgeführt werden.
Auf Karte verschieben
Suchen Sie die Kennung der Schlüsselsignatur.
Bewegen Sie den Authentifizierungsschlüssel auf die Karte
Wählen Sie eine Nummer für den Authentifizierungsschlitz.
Du bist hier fertig.
Denken Sie daran, den Schlüssel aus dem gpg-Schlüsselbund zu löschen, wenn Sie eine Karte verwenden. Verwenden Sie die Schlüsselkennung von oben.
Sonstiges
Nicht erforderlich, kann aber nützlich sein, um einen Schlüssel im textbasierten PGP-Format zu erhalten.
quelle