So generieren und sichern Sie ein gpg-Schlüsselpaar unter Linux
Gnu Privacy Guard (gpg) ist die kostenlose Open-Source-Implementierung des OpenGPG-Standards des Gnu-Projekts. Das gpg-Verschlüsselungssystem wird als "asymmetrisch" bezeichnet und basiert auf der Verschlüsselung mit öffentlichen Schlüsseln: Wir verschlüsseln ein Dokument mit dem öffentlichen Schlüssel eines Empfängers, der als einziger in der Lage ist, es zu entschlüsseln, da er den damit verbundenen privaten Schlüssel besitzt. Gpg ermöglicht es uns auch, Dokumente mit unserem privaten Schlüssel zu signieren und andere diese Signatur mit unserem öffentlichen Schlüssel überprüfen zu lassen. In diesem Tutorial sehen wir, wie Sie ein Backup eines gpg-Schlüsselpaars generieren und erstellen.
In diesem Tutorial lernen Sie:
- So installieren Sie gpg
- So generieren Sie ein gpg-Schlüsselpaar
- So listen Sie unsere Schlüssel auf
- So erstellen Sie ein Backup/Exportieren eines gpg-Schlüsselpaars und trustdb
Verwendete Softwareanforderungen und Konventionen
Installation der Software
Um unser Gpg-Schlüsselpaar generieren zu können, müssen wir zunächst die gpg-Software installieren. Obwohl es bereits auf unserer bevorzugten Linux-Distribution installiert sein sollte, erfahren Sie hier, wie Sie es explizit installieren. Unter Debian sollten wir folgendes ausführen:
sudo apt-get update && sudo update-get install gpg
Auf Fedora, oder allgemeiner auf allen neueren Versionen der Distributionen, die zur Red Hat-Familie gehören, können wir den dnf-Paketmanager verwenden, um die Installation durchzuführen:
sudo dnf install gnupg2
Unter Archlinux heißt das Paket stattdessen gnupg und ist in der Distribution "Core " Repository enthalten; Wir verwenden den Pacman-Paketmanager, um es zu installieren:
sudo pacman -Sy gnupg
Generieren eines Schlüsselpaars
Sobald die gnupg-Software auf unserem System installiert ist, können wir fortfahren und unser Schlüsselpaar generieren. Um den Generierungsprozess zu starten, sollten wir den folgenden Befehl ausführen:
gpg --full-gen-key
Sobald wir den obigen Befehl ausführen, werden wir aufgefordert, eine Reihe von Fragen zu beantworten. Zunächst müssen wir auswählen, welche Art von Schlüsseln wir erstellen möchten:
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?
Standardmäßig ist die erste Option (RSA und RSA) ausgewählt. Wir können einfach die Eingabetaste drücken und es verwenden. Der nächste Schritt besteht in der Auswahl der Schlüsselgröße, die zwischen 1024 und 4096 Bit liegen kann. Der Standardwert ist 3072. Wenn wir einen anderen Wert verwenden möchten, sollten wir ihn einfach eingeben und unsere Wahl bestätigen. Zum Beispiel:
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Das nächste, was wir entscheiden sollten, ist das Ablaufdatum für unsere Schlüssel (falls vorhanden):
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Das Festlegen eines Ablaufdatums ist wichtig, um den Schaden zu begrenzen, den wir erleiden könnten, wenn wir unsere persönlichen Schlüssel verlieren: Wenn so etwas passiert, könnte sich jeder als wir ausgeben, aber zumindest für eine begrenzte Zeit. Wie auch immer wir uns hier entscheiden, am Ende des Prozesses wird auch ein Widerrufszertifikat generiert. Es ist sehr wichtig, es sicher aufzubewahren, damit wir es verwenden können, um unsere Schlüssel in solchen Situationen zu widerrufen.
Die Standardeinstellung ist 0, sodass die Schlüssel nie ablaufen. Wenn wir nur eine Ziffer eingeben, wird diese als die Anzahl der Tage nach Ablauf der Schlüssel interpretiert. Um die Ziffer(n) als Wochen, Monate oder Jahre interpretieren zu lassen, können wir die entsprechenden Suffixe
verwenden, jeweils w, m und y.
Der nächste Schritt in diesem Prozess besteht in der Konstruktion der Schlüssel-ID. Wir werden aufgefordert, unsere persönlichen Daten einzugeben:
Real name: John Smith
Email address: john.smith@gmail.com
Comment: personal
You selected this USER-ID:
"John Smith (personal) <john.smith@gmail.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
Zu den angeforderten Informationen gehören:
- Unser richtiger Name
- Unsere E-Mail-Adresse
- Ein optionaler Kommentar (dieser kann z.B. verwendet werden, um die Verwendung des Schlüssels festzulegen)
Sobald wir alle Felder ausgefüllt haben, werden wir mit der erstellten ID aufgefordert und werden aufgefordert, unsere Informationen zu bestätigen oder zu ändern. Um dies zu tun, sollten wir die Taste zwischen den Klammern drücken, also um den Namen zu ändern, sollten wir die Taste n eingeben. Zur Bestätigung geben Sie einfach o ein und drücken die Eingabetaste.
Der Prozess der Schlüsselgenerierung beginnt. Das System benötigt viele zufällige Bytes, um die Aktion auszuführen, daher schlägt es uns vor, einige andere Aktionen auf unserem auszuführen, um genügend Entropie zu erzeugen. Wir werden auch aufgefordert, eine Passphrase einzugeben und diese zu bestätigen, um unseren privaten Schlüssel zu schützen:
Please enter the passphrase to protect your new key
Passphrase:
Beachten Sie, dass sich die obige Eingabeaufforderung ändern kann, wenn Sie eine grafische Umgebung verwenden. Am Ende des Prozesses erhalten wir eine Bestätigung der Schlüssel und der Generierung des Widerrufszertifikats:
gpg: /home/egdoc/.gnupg/trustdb.gpg: trustdb created
gpg: key 705637B3C58F6090 marked as ultimately trusted
gpg: directory '/home/egdoc/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/egdoc/.gnupg/openpgp-revocs.d/A4A42A471E7C1C09C9FDC4B1705637B3C58F6090.rev'
public and secret key created and signed.
pub rsa4096 2021-04-20 [SC]
A4A42A471E7C1C09C9FDC4B1705637B3C58F6090
uid Jhon Smith (personal) <john.smith@gmail.com>
sub rsa4096 2021-04-20 [E]
Wir können die öffentlichen Schlüssel jederzeit in unserem Schlüsselbund auflisten, indem wir den folgenden Befehl ausgeben:
gpg --list-keys
Um unsere geheimen/privaten Schlüssel aufzulisten, sollten wir stattdessen Folgendes ausführen:
gpg --list-secret-keys
Master- und Sub-Schlüssel
Wenn wir einen Blick auf unseren Schlüsselbund werfen, können wir sehen, dass tatsächlich ein Master- und ein Sub-Schlüsselpaar generiert wurden. Die erste ist durch das Präfix pub am Anfang der Zeile gekennzeichnet, und zwischen den Klammern sehen wir die Notation, die ihre Verwendung angibt: [SC]. Wofür steht das? Das "S" bedeutet, dass der Schlüssel zum Signieren verwendet wird, während das "C" bedeutet, dass der Schlüssel auch zum Signieren anderer Schlüssel verwendet werden kann.
Der Unterschlüssel wird in der Zeile beschrieben, die mit dem Präfix sub beginnt. Wir können den Schlüsseltyp (rsa4096) und das Generierungsdatum sehen. Endlich können wir sehen, wofür es verwendet wird. Hier bedeutet das [E], dass das Schlüsselpaar, zu dem der Schlüssel gehört,
für die Ver- und Entschlüsselung verwendet wird.
Hier ist die vollständige Liste der Verwendungsnotationen:
(S)ign: sign some data (like a file)
(C)ertify: sign a key (this is called certification)
(A)uthenticate: authenticate yourself to a computer (for example, logging in)
(E)ncrypt: encrypt data
Erstellen eines Backups/Exportieren der Schlüssel
Nachdem wir unsere gpg-Schlüssel erstellt und mit der Zeit die öffentlichen Schlüssel einiger Empfänger zu unserem Schlüsselbund hinzugefügt haben, möchten wir möglicherweise ein Backup unseres Setups erstellen. Der einfachste Weg, wie wir vorgehen können, besteht darin, einen Tarball des gesamten ~/.gnupg-Verzeichnisses zu erstellen. Alles, was wir tun müssen, ist zu laufen:
tar -cvpzf gnupg.tar.gz ~/.gnupg
Der obige Befehl erstellt eine komprimierte Datei mit dem Namen gnupg.tar.gz in unserem aktuellen Arbeitsverzeichnis, die wir dann an einem sicheren Ort aufbewahren sollten. Eine alternative Möglichkeit, unsere öffentlichen und privaten Schlüssel zusammen mit unserer trustdb
zu sichern (die trustdb verfolgt den Vertrauensgrad der Schlüssel in unserem Schlüsselbund), ist die Verwendung einiger dedizierter gpg-Befehle. Um beispielsweise unsere öffentlichen Schlüssel zu exportieren, können wir Folgendes ausführen:
gpg --export --output public_keys
Wenn gpg mit der Option --export aufgerufen wird, exportiert es alle Schlüssel aus den Schlüsselbunden nach STDOUT oder in eine Datei, die wir mit der Option --output angeben können. In diesem Fall haben wir sie in die public_keys Datei exportiert. Auf ähnliche Weise können wir ausführen, um unsere geheimen Schlüssel zu exportieren
:
gpg --export-secret-keys --output secret_keys
Beim Exportieren oder erneuten Importieren von geheimen Schlüsseln wird das Passwort abgefragt, mit dem wir unsere Schlüssel gesichert haben. Um die Datei, die wir mit den obigen Befehlen generiert haben, wieder zu importieren, können wir die Option --import verwenden. Um beispielsweise aus der public_keys Datei zu importieren, würden wir Folgendes ausführen:
gpg --import public_keys
Um unsere trustdb zu exportieren/importieren, können wir die Optionen --export-ownertrust bzw. --import-ownertrust verwenden:
gpg --export-ownertrust > otrust.txt
So importieren Sie es zurück:
gpg --import-ownertrust otrust.txt
Schlüsse
In diesem Tutorial haben wir gesehen, wie man ein Gnu Privacy Guard (gpg) Schlüsselpaar generiert, und wir haben uns die geführte Prozedur und die angeforderten Informationen angesehen, um die Aufgabe zu erfüllen. Wir haben gesehen, wie die Haupt- und Unterschlüssel erstellt werden und was ihre Standardzwecke sind. Schließlich haben wir gelernt, wie wir unsere öffentlichen und secret
Schlüssel zusammen mit den trustdb-Informationen sichern und exportieren können.
