E-Mail-Verschlüsselung mit Ubuntu

Der steinige Weg zu verschlüsselter Kommunikation ist noch nicht zu Ende. Im Gegenteil, er hat gerade erst begonnen.

Dieser Artikel beschreibt den Weg über die Erstellung eines PGP-Schlüsselbunds bis hin zum Versand und Empfang der ersten verschlüsselten E-Mail. Ich beziehe mich dabei auf mein aktuelles Desktopbetriebssystem Ubuntu 13.04 Gnome Edition.

Ein wirklicher Segen bei diesem Unterfangen ist das gute Wiki von Ubuntuusers.de.[1. http://wiki.ubuntuusers.de] Es enthält für alle Teilbereiche unseres Vorhabens bereits ausführliche Artikel.

Wie ihr vielleicht schon ahnt liegt vor uns nun erst mal das Studium einiger dieser Artikel. Es gibt einen guten Artikel zu GnuPG selbst und einen zum technischen Hintergrund.[2. Artikel zu GnuPG][3. GnuPG – Technischer Hintergrund]

Das grafische Schlüsselverwaltungsprogramm unter Ubuntu Gnome/Unity heißt Seahorse. Wir folgen der Anleitung im Wikiartikel, um uns einen PGP-Schlüssel zu erzeugen.

Ist der Schlüssel erzeugt, erscheint er in der Übersicht der eigenen Schlüssel. Durch einen Rechtsklick auf den Schlüssel lassen sich dessen Eigenschaften öffnen. Hier können dem Schlüssel weitere E-Mail Adressen hinzugefügt werden. Damit ist die Schlüsselerstellung abgeschlossen.

Doch was nun? Nach langem Lesen von Wiki-Artikeln haben wir einen PGP-Schlüssel. Doch wie hilft uns das jetzt weiter? Im Ubuntuusers Wiki ist ein Abschnitt zu finden, der beschreibt, wie wir die E-Mail-Verschlüsselung testen können. Dazu müssen wir jedoch zuerst unseren öffentlichen Schlüssel in eine Datei exportieren. Dies geschieht, in dem wir in Seahorse unseren Schlüssel markieren und anschließend im Menü Datei den Punkt Exportieren auswählen. Wir speichern unseren öffentlichen Schlüssel, als *.asc Datei und schreiben mit der E-Mail-Anwendung unserer Wahl eine E-Mail an adele@gnupp.de. In den Betreff schreiben wir „mein öffentlicher Schlüssel“ und die Datei mit unserem öffentlichen Schlüssel hängen wir als Anhang dran.

Ich habe die Mail versendet und kurz darauf eine Antwort erhalten. Ergebnis: Hat nicht funktioniert. Adele schreibt mir, dass sie in meiner Mail keinen öffentlichen Schlüssel finden konnte. Also habe ich meine *.asc Datei mit einem Editor geöffnet und den darin enthaltenen Textblock in via Copy’n’Paste in die Mail kopiert und erneut an Adele geschickt. Diesmal hat es funktioniert und ich erhalte von Adele eine E-Mail zurück, die mit meinem öffentlichen Schlüssel verschlüsselt wurde.

Wenn ihr glaubt dies ist ein Grund zur Freude, habt ihr euch leider zu früh gefreut. Ich bin Gmail-Nutzer und verwende Gmail ausschließlich im Webbrowser, ohne separaten Mailclient. Und ich habe nun gerade eine verschlüsselte Mail an mich empfangen, die ich erst mal nicht lesen kann. Es stellt sich nun also die Frage, wie die empfangene Mail wieder zu entschlüsseln ist.

Möglichkeit 1 wäre die Nutzung eines E-Mail Clients zur Verwendung von GnuPG.[4. http://wiki.ubuntuusers.de/GnuPG#GnuPG-in-anderen-Programmen-nutzen] Dies kommt für mich jedoch nicht in Frage, da ich mich durch diese Programme zu sehr eingeschränkt fühle und meiner Meinung nach, mir das Webfrontend die beste Nutzung des E-Mail Dienstes ermöglicht.

Also bleibt mir nur Möglichkeit 2. Die Ver- und Entschlüsselung von Text in der Zwischenablage. And it’s a pain in the ass!

Die Scripts aus dem Ubuntuusers.de Artikel gefallen mir ihrer aktuellen Form nicht. Daher habe ich sie kurzer Hand etwas erweitert. Beim Script zur Verschlüsselung ist es nun möglich, die Empfänger E-Mail Adresse als Parameter mit anzugeben. Zusätzlich können nun bei den Scripts zur Verschlüsselung und zur Entschlüsselung die Ausgaben in eine Datei geschrieben werden.

Script zur Entschlüsselung:

#!/bin/bash

# Entschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

# Quelle des Scripts: Ubuntuusers.de
# Ueberarbeitet von: Joerg Kastning

usage()
{
cat << EOF
usage: $0 options

Dieses Script entschlüsselt mit OpenPGP verschlüsselten Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.
EOF
}

while getopts .ho. OPTION
do
case $OPTION in
h)
usage
exit 1
;;
o)
Dateiausgabe="true"
;;
?)
usage
exit
;;
esac
done

echo "Clipboard Inhalt vor Entschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG entschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --decrypt -a | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Entschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > decrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"

Script zur Verschlüsselung:

#!/bin/bash

# Verschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

# Quelle: Ubuntuusers.de
# Überarbeitet von: Jörg Kastning

usage()
{
cat << EOF
usage: $0 options

Dieses Script verschlüsselt mit OpenPGP Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.

-m Angabe der Empfänger E-Mailadresse
EOF
}

while getopts .hom:. OPTION
do
case $OPTION in
                h)
                        usage
                        exit 1
                        ;;
                o)
                        Dateiausgabe="true"
                        ;;
m)
Mail="${OPTARG}"
;;
                ?)
                        usage
                        exit
                        ;;
        esac
done

echo "Clipboard Inhalt vor Verschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG verschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --encrypt -a --recipient $Mail | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Verschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > encrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"

Das dritte Script wurde noch nicht überarbeitet. Ihr findet die aktuelle Version der Scripts immer auf GitHub.[5. https://github.com/Tronde/Schriftrolle]

Die Anwendung der Scripts habe ich mit Hilfe eines Kommilitonen getestet. Ver- und Entschlüsselung sind damit möglich. Komfortabel ist es sicherlich nicht, doch bin ich so in der Lage vertrauliche Nachrichten zu versenden und zu empfangen. Mit kompatiblen E-Mail Clients lässt sich der Komfort sicher noch deutlich steigern.

Ich selbst suche noch nach einer Firefox-Erweiterung, die mir dies auch im Browser ermöglicht. Wenn jemand eine Erweiterung kennt, immer her damit.

Damit ist das Ziel dieses Kapitels erreicht. In einem weiteren Artikel werde ich mich dann an die Dateiverschlüsselung unter Ubuntu wagen.

2 Gedanken zu „E-Mail-Verschlüsselung mit Ubuntu

  1. Pingback: E-Mail-Verschlüsselung mit Thunderbird | My-IT-Brain

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.