GnuPG einrichten und benutzen

Linux GnuPG einrichten und benutzen

In diesem Artikel soll auf die [DOC:START:79]Hintergrundinfos[DOC:END] aufbauend erklärt werden, wie man mit seinem GnuPG arbeiten kann. Dabei soll weniger auf die grafischen Oberflächen zu diesem Programm eingegangen werden, als auf die Benutzung in der Konsole.

Zunächst erstmal solltest du dir diese Software installieren. GnuPG wird meistens unter dem Paket Namen gpg gehandelt und ist bei den gängigen Distributionen dabei. Nach der Installation sollte man erstmal ein Schlüsselpaar erzeugen, falls man noch keines hat. Dazu gibt man

gpg --gen-key

ein und folgt der Programmführung. Sollte beim ersten Aufruf nicht viel passieren, muss man das Programm nochmal aufrufen, da dann nur ein paar Verzeichnisse erzeugt wurden. Gleich bei der ersten Frage sollte man den voreingestellten Wert wählen, weil man sich so alle Optionen offen hält und sowohl die Verschlüsselung als auch die digitalen Signaturen selbst verwenden kann. Bei der zweiten Frage wird nach der Länge des Schlüssels gefragt. Auch hier wird üblicherweise der vorgegebene Wert übernommen. Ein längerer Schlüssel bringt zwar etwas mehr Sicherheit, aber die Berechnungen bei der Verschlüsselung dauern dann länger, was sich schon bemerkbar machen kann. Kürzere Schlüssel sollte man jedoch auf keinen Fall wählen. Danach muss die Gültigkeitsdauer des Schlüssels angegeben werden. Hier scheiden sich schon die Geister. Natürlich kann es sein, dass ein Schlüssel nicht immer gültig sein soll. Beispielsweise, wenn ein Mitarbeiter mit einem Zeitvertrag einen Schlüssel für die Firmenkorrespondenz erzeugt. Andererseits reicht ein Schlüssel ohne Verfalldatum in der Regel aus. Das Verfalldatum kann im Zweifelsfall immer noch geändert werden. Nach einer Sicherheitsabfrage muss man dann seine Persönlichen Daten eingeben. Dazu gehören Name, Vorname, die eMail Adresse und ein Kommentar. Jetzt kommt einer der wichtigsten Teile, denn nun muss man das Mantra eingeben. Das Mantra ist eine möglichst lange Zeichenkette, die man sich gut merken kann. Üblicherweise ein Satz, den niemand erraten kann. Dabei sollte man bedenken, dass man vielleicht nicht unbedingt immer eine deutsche Tastatur zur Verfügung haben muss. Ist das Mantra zweimal eingegeben, wird man aufgefordert, durch Bewegungen mit der Maus oder mit Programmstarts Zufallsdaten zu erzeugen, danach erst ist der private Schlüssel fertig.

Nun sollte man als nächstes einen Schlüsselserver, auch neudeutsch Keyserver genannt, konfigurieren. Das macht man, indem man die Datei ~/.gnupg/options öffnet und eine Zeile sucht, die mit #keyserver anfängt. Gleich darunter wird dann eine Zeile

keyserver blackhole.pca.dfn.de

geschrieben. Das ist der Keyserver, welcher auf einer Seite des Heise-Verlages angegeben wird. Es gibt aber auch noch einige andere. Zum Beispiel "wwwkeys.de.pgp.net". Welchen man nun genau wählt, hängt wohl eher damit zusammen, welchen Keyserver die Leute verwenden, mit denen man am meisten zu tun hat. Der Grund, einen Keyserver einzustellen ist einfach nur der, dass man ihn nicht ständig mit angeben muss, wenn man einen öffentlichen Schlüssel aus dem Internet holen will.

Informationen sammeln

Nun möchte man vielleicht wissen, was man so alles in seiner Schlüssel-Datenbank hat und wie der eigene Schlüssel jetzt heißt. Mit

gpg --list-keys

kann man alle Schlüssel anzeigen lassen, die man bereits importiert hat. Das ist interessant, wenn man sich einen Überblick verschaffen will. Interessanter ist es aber zu wissen, wer wessen Schlüssel signiert hat. Das findet man heraus, indem man

gpg --list-sigs

eingibt. Dabei sollte beim aktuellen Zustand auf jeden Fall angezeigt werden, dass man seinen eigenen Schlüssel signiert hat, was normal ist, da man sich ja selbst vertraut. Dann kann man sich noch sehr einfach den Fingerabdruck eines Schlüssels anzeigen lassen. Dafür benötigt man die Schlüssel-ID, welche in der Ausgabe von --list-keys hinter dem Schrägstrich steht:

gpg --fingerprint [Schlüssel-ID]

Der Fingerabdruck ist eine Art Erkennungsmerkmal für den öffentlichen Schlüssel.

Den eigenen Schlüssel auf einen Keyserver hochladen:

Um seinen eigenen Schlüssel zu exportieren, gibt es verschiedene Möglichkeiten. Es kommt aber recht selten vor, dass man seinen öffentlichen Schlüssel auf einer Diskette speichert und mit zu einem Treffen nimmt. Vielmehr wählt man den Weg über einen Keyserver.

gpg --send-keys [Schlüssel-ID]

sendet den angegebenen öffentlichen Schlüssel an einen Schlüsselserver. Schon ist der Schlüssel für jeden Menschen auf diesem Erdball erreichbar. Auf die gleiche Weise kann man natürlich auch jeden anderen Schlüssel aus der eigenen Schlüssel-Datenbank hochladen.

Einen Schlüssel importieren:

In der Regel ist es so, dass man einen neuen Schlüssel für seine Datenbank nicht etwa auf einer Diskette bekommt, sondern sich diesen aus dem Internet holt. Man hat von einer Person, deren Identität man überprüft hat, eine Key-ID und einen (hoffentlich) passenden Fingerabdruck zu dem Schlüssel erhalten. Außerdem hat die Person einen Schlüsselserver genannt, von dem der Schlüssel zu beziehen ist.

gpg --recv-keys [Schlüssel-ID]

holt den Schlüssel mit der angegebenen Kennung von dem in der Datei ~/.gnupg/options angegebenen Schlüsselserver. Möchte man einen anderen Schlüsselserver verwenden, so kann man diesen explizit angeben:

gpg --keyserver blackhole.pca.dfn.de --recv-keys [Schlüssel-ID]

Die Angabe eines Schlüsselservers ist auch bei allen anderen Aktionen möglich, für die auf einen Schlüsselserver zugegriffen wird. Mit gpg --list-keys kann man nun sehen, dass der Schlüssel auf den eigenen Rechner runtergeladen wurde.

Die Identität eines Schlüssels prüfen/Schlüssel signieren:

Nachdem du einen GPG-Fingerabdruck von einer Person erhalten hast, die sich dir gegenüber ausgewiesen hat, solltest du auch die Identität des entsprechenden Schlüssels prüfen. Um dies zu tun, holst du ihn dir wie oben angegeben von einem Schlüsselserver, lässt dir den Fingerabdruck des Schlüssels anzeigen und vergleichst diesen mit dem, den du von der entsprechenden Person erhalten hast. Sind diese identisch, kannst du den Schlüssel signieren (digital unterschreiben), um anzuzeigen, dass du diese Person getroffen und den Schlüssel geprüft hast. Dies dient im "Web of Trust" als Orientierung für andere, die diesen Menschen noch nie persönlich gesehen haben. Einen Schlüssel signiert man so:

gpg --sign-key [Schlüssel-ID]

Es wird natürlich die Eingabe deines Mantras erwartet. Doch Vorsicht: Sei sorgfältig, denn wenn du nicht vertrauenswürdige Schlüssel signierst, wird man dir und deinem Schlüssel auch nicht mehr vertrauen! Vergiss nicht, den signierten Schlüssel wieder auf den Schlüsselserver hochzuladen, damit auch andere Leute die Änderung sehen können.

Eine Datei verschlüsseln

Um eine beliebige Datei für einen bestimmten Adressaten zu verschlüsseln, musst du nun nur noch

gpg --armor --encrypt --recipient [Schlüssel-ID] [Dateiname.irgendwas]

eingeben. Das "--armor" sorgt dafür, dass die Datei nur ganz normale Zeichen enthält. Bitte beachte, dass du die neue Datei, an die beim Namen ".asc" angehängt wird, nicht mehr entschlüsseln kannst. Denn du bist sicherlich nicht im Besitz des privaten Schlüssels dieser Person. Nur wenn man Dateien für sich selbst verschlüsselt, dann kann man sie auch wieder entschlüsseln. Auf diese Weise kannst du das ja mal testen.

Eine Datei entschlüsseln

Eine verschlüsselte Datei zu entschlüsseln ist ziemlich einfach. Einfach

gpg --decrypt [Dateiname.verschluesselt]

eingeben und danach das Mantra.

Eine Datei signieren

Beim Signieren gibt es verschiedene Möglichkeiten. Am besten ist in der Regel eine so genannte "abgetrennte" Signatur:

gpg --armor --detach-sign [Schlüssel-ID] [Dateiname.irgendwas]

Nach der Eingabe des Mantras erscheint eine neue Datei, die in diesem Fall Dateiname.irgendwas.asc heißen würde. Diese Datei muss man dann mit weitergeben, damit der Empfänger überprüfen kann, dass das Dokument vom richtigen Absender stammt.

Eine signierte Datei prüfen

Mit

gpg --verify [Dateiname.irgendwas.asc]

kann man die Korrektheit einer abgetrennten Signatur prüfen. Bei einer Signatur direkt im Dokument würde man einfach das Dokument selbst als Datei angeben.

So, das soll's erstmal gewesen sein. Nun gut, ich könnte natürlich noch stundenlang über die Vertrauens-Datenbank (trustdb) usw. schreiben, aber ich denke, dass die hier vorgestellten Kommandos zumindest erstmal ausreichen sollten, um GnuPG sinnvoll einzusetzen. Von vielen Kommandos gibt es auch eine Kurzform, die aber weniger anschaulich ist. Ich kann dir auf jeden Fall einen Blick in die Man-Page von GnuPG empfehlen. Auch die [LINK:START:89]GnuPG Homepage[LINK:END] ist sehr ausführlich und unter anderem sogar auf deutsch. Viel Spaß mit mehr Sicherheit und Privatsphäre!

Artikelbewertung: 
4
Average: 4 (1 vote)
War dieser Artikel hilfreich?