7 März 2013 14:31

E-Mails und GPG über die Konsole

Manchmal befindet man sich in der Situation, dass man eine E-Mail mit GPG verschlüsseln oder unterschreiben möchte, aber nur einen Webclient zur Verfügung hat. Aber es geht auch ohne Thunderbird und Enigmail.

Die folgende Anleitung demonstriert einen simplen Workflow mit GPG in der Konsole. Mit den gleichen Methoden lassen sich natürlich auch andere Texte verschlüsseln, die E-Mail als Kontext stellt nur einen spezifischen Use-Case da.

Voraussetzungen

Natürlich ist GPG bereits installiert und eingerichtet. Man hat bereits ein eigenes Schlüsselpaar erzeugt und den öffentlichen Schlüssel des Empfängers importiert. Außerdem sollte man ungefähr wissen, wozu GPG gut ist und warum man das nutzen möchte.

Die Nachricht verfassen

Grundsätzlich gibt es zwei Methoden eine Nachricht zu verfassen:

  1. In Ruhe in einem Texteditor verfassen
  2. Direkt über stdin (Standardeingabe) eingeben

Möglichkeit 1 bietet die größte Flexibilität, erfordert jedoch das Anlegen einer Datei (da die wenigsten Texteditoren beim Schließen ihren Inhalt nach stdout ausgeben).

Möglichkeit 2 hat den Nachteil, dass man nicht mehr in vorherige Zeilen zurückwechseln kann. Die Eingabe beendet man dann mittels Enter und Strg+D.

In den folgenden Abschnitten sind in dieser Reihenfolge jeweils Befehle für beide Methoden angegeben. email.txt steht dabei für die in Methode 1 erstellte Datei.

Nachricht verschlüsseln

$ gpg --encrypt --armor email.txt
$ gpg --clearsign --armor

Nun wird man nach den Empfängern gefragt. Hier kann man entweder die Schlüssel-ID eingeben oder den Namen (gerne auch einen Teil davon, sofern er eindeutig ist). Jeden Empfänger bestätigt man mit Enter. Idealerweise fügt man sich selbst auch hinzu, damit man die Nachricht später selbst entschlüsseln kann.

Nachricht signieren

Hierbei muss sichergestellt werden, dass die Nachricht nach dem Signieren nicht verändert wird. Dies findet beim Senden von E-Mails oftmals statt, da eine Zeilenlänge von 76 Zeichen nicht überschritten werden soll.

$ fold -s -w 76 email.txt | gpg --clearsign
$ fold -s -w 76 | gpg --clearsign

Alternativ kann man den Text neu kodieren, sodass zum Beispiel Zeilenumbrüche keine Probleme mehr machen (unterschiedliche Systeme können unterschiedliche Kodierungen für den Zeilenumbruch verwenden, wodurch die Signatur ungültig werden kann).

$ gpg --clearsign --textmode email.txt
$ gpg --clearsign --textmode

Der Nachteil davon ist, dass man den Text nicht mehr ohne GPG kann.

Nachricht entschlüsseln

$ gpg --decrypt email.txt
$ gpg --decrypt

Man wird nun ggf. nach seinem Passwort gefragt, anschließend bekommt man die entschlüsselte Nachricht und ggf. eine Meldung, ob die Signatur korrekt ist.

Signatur überprüfen

$ gpg --verify email.txt
$ gpg --verify

Das ist auch schon alles.

Arbeiten mit der Zwischenablage

An der ein oder anderen Stelle ist es notwendig, den Text in die Zwischenablage zu kopieren oder ihn daraus einzufügen. Man kann dies mit dem Programm xsel automatisieren.

Möchte man den Inhalt der Zwischenablage ausgeben, so verwendet man xsel -ob, zum Beispiel:

$ xsel -ob | gpg --verify

Viel praktischer ist es aber, die Ausgabe von gpg direkt in die Zwischenablage zu kopieren. Dies geht mit xsel -ib, zum Beispiel:

$ fold -s -w 76 | gpg --clearsign | xsel -ib

Kommentare

Powered by BetaBlog
Login | RSS Beiträge RSS Kommentare Impressum