Verschlüsseln und Signieren
Willemers Informatik-Ecke

Anmerkungen aus dem Jahr 2013

... anlässlich der Snowden-Enthüllungen - leider immer noch aktuell

Während bei der klassischen Post jeder Brief in einem Umschlag steckt, sind E-Mails und ihre Anhänge für jedermann lesbar. Das gilt nicht nur für die Übertragung im Kabel, sondern auch für die Lagerung der Mails auf den Mailservern. Um einen Umschlag zu schaffen, hilft die Verschlüsselungstechnik, die kostenlos zur Verfügung steht. Der Bundesinnenminister Friedrich legt anlässlich der Snowden-Veröffentlichungen die Sicherheit der Kommunikation in unsere eigenen Hände und empfielt, dass der Bürger seine Daten schützen soll, indem er sie verschlüsselt.

Vielleicht haben Sie persönlich ja nichts zu verbergen, aber leider gibt es Gruppen, wie Ärzte, Anwälte, Journalisten, Steuerberater, Krankenkassen, Diplomaten, Banken oder Wirtschaftsunternehmen, die sich auf diese einfache Position nicht zurückziehen können. Schon aus Solidarität sollten Sie zur Verschlüsselung greifen, damit nicht diese Gruppen allein durch Ihre Verschlüsselung auf der schwarzen Liste der Geheimdienste landen.

Die Dimension ist neu. Leider muss man konstatieren, dass der internationale Terrorismus sein Ziel erreicht hat. Die Staaten der westlichen Welt haben von sich aus Freiheit, Rechtsstaatlichkeit und Bürgerrechte aufgegeben, um ihren Geheimdiensten die Möglichkeit zu geben, private Unternehmen unter Druck zu setzen und selbst Standards unter Einsatz von mehreren Millionen Dollar so zu manipulieren, dass ein Angriff auf die Sicherheit der Computer-Systeme erleichtert wird. Sie schrecken nicht einmal davor zurück, das Flugzeug eines Staatspräsidenten am Weiterflug zu hindern.

Die Geheimdienste der jeweiligen Länder beschwören, dass sie nicht die Rechte der eigenen Bevölkerung einschränken, sondern nur die der Ausländer. Aber leider sind alle Menschen fast überall Ausländer. Die politischen Konsequenzen dieser Affäre können Sie bei der nächsten Wahl selbst ziehen, solange Ihnen noch eine Wahl bleibt. Die technischen Möglichkeiten der Verschlüsselung sollten Sie in jedem Fall nutzen. Es ist das Mindeste, was ein Anwender zur Stärkung der freiheitlich demokratischen Grundordnung beitragen kann.

Grundlagen: Verschlüsselung

Der asymetrische Schlüssel

Unterschrift wie Verschlüsselung arbeiten mit einem Schlüssel, der auch manchmal Zertifikat genannt wird sowie einer Passphrase, die auch als Mantra bezeichnet wird.

Der Schlüssel ist zweigeteilt asymmetrisch, besteht also aus zwei Schlüsseln. Was der eine Schlüssel verschlüsselt, kann nur der andere Schlüssel entschlüsseln. Den einen Schlüssel hält man privat, der andere kann und sollte öffentlich verteilt werden. Wenn Sie mir eine verschlüsselte Mail senden wollen, verwenden Sie dazu den öffentlichen Schlüssel von meiner Webseite. Das sorgt dafür, dass nur noch der Besitzer des privaten Schlüssels diese Mail lesen kann und das bin ich.

Schlüssel und Mantras

Der private Schlüssel befindet sich auf meinem eigenen Computer. Damit gesichert ist, dass sich nicht irgendjemand für mich ausgeben kann, wenn der Computer kurz unbeaufsichtigt ist, verlangt das Verschlüsselungsprogramm beim Entschlüsseln auch noch die Eingabe meines Mantras bzw. meiner Passphrase, die optional beim Erstellen des Schlüssels angegeben werden kann.

Das Signieren einer E-Mail geschieht, indem das Verschlüsselungsprogramm über den Inhalt der Mail einen Index ermittelt, der durch den Einsatz des privaten Schlüssels und der Passphrase eine Art Fingerabdruck bekommt. Der Empfänger kann über meinen öffentlichen Key feststellen, ob der Mail-Inhalt tatsächlich von mir stammt. Komfortable E-Mail-Programme schlagen die Absende-Mail-Adresse in einem Key-Server nach und können sofort feststellen, ob die Unterschrift gültig ist.

Eine ausführliche Einführung in das Thema finden Sie im GPG4Win-Kompendium.

Verschlüsselungs-Software GPG

Zum Verschlüsseln benötigt man Verschlüsselungsprogramme. Der bekannteste Vertreter ist PGP (Pretty Good Privacy). Das Programm wurde von Phil Zimmermann entwickelt und wurde später kommerzialisiert. In dieser Zeit entstand OpenPGP, das von GnuPG implementiert wurde.

Unter Linux kann GPG (alias GnuPG) direkt aus den Softwarequellen installiert werden. Für Windows gibt es GPG4Win. Für den Mac gibt es MacGPG2 und GPGTools

Verschlüsselungsfähiges Mail-Programm Thunderbird

Plattformübergreifend steht das Programm Thunderbird zur Verfügung. Dieses besitzt ein Plugin namens Enigmail, das den umgang mit verschlüsselten Mails übernimmt. Enigmail kann die Verwaltung der Schlüssel übernehmen.

Thunderbird erhält man auf http://www.mozilla.org/thunderbird. Wenn man mit Linux arbeitet, ist allerdings die Installation über den Paketdienst der Distribution einfacher und sicherer.

Nach dem Einrichten von Thunderbird muss noch das Add-On Enigmail installiert werden. Unter Windows und Mac funktioniert das über den Menüaufruf Extras | Add-ons. Unter Linux ist es wiederum das Beste, man lädt Enigmail über den Systempaketdienst.

Nach der Einrichtung von Enigmail muss Thunderbird neu gestartet werden. Nun gibt es ein zusätzliches Menü namens OpenPGP. Darin findet sich der Punkt Schlüssel verwalten. Der Dialog hat ein Menü, in dem über Erzeugen - Neues Schlüsselpaar... ein weiterer Dialog aufgerufen wird.

In der obersten Zeile ist die verwendete E-Mail-Adresse. Die Passphrase muss zweimal eingegeben werden. Ein Kommentar und dann Schlüsselpaar erzeugen anklicken. Es wird gleich anschließend ein Widerrufschlüssel gebildet.

Nun können Sie Mails verschlüsseln und unterschreiben. Damit Andere Ihre Unterschrift prüfen können oder Ihnen verschlüsselte Mails schicken können, sollten Sie den öffentlichen Schlüssel verteilen, beispielsweise über einen Key-Server. Eine weitere Anleitung finden Sie bei www.german-privacy-fund.de.

Plattform Linux

Linux ist in Sachen Verschlüsselung am besten aufgestellt. Die Software GPG ist von Haus aus installiert. Fast alle Mailprogramme unterstützen Verschlüsselung. Linux verschlüsselt Dateien oder gesamte Festplatten.

Für Linux gibt es natürlich auch die grafischen Tools. So ist beispielsiweise Kleopatra auch unter Linux zu Hause. Auch Thunderbird ist als Open-Source-Projekt mit Linux eng verbunden. Zu Linux gehören aber auch die Programme, die auf der Kommandozeilenebene arbeiten. Sie sind oft flexibler, schneller und werden gern von den grafischen Programmen aufgerufen, um im Hintergrund die Arbeit zu machen.

Erzeugen eines Keys

Sie können über die gängigen E-Mail-Programme Ihren Schlüssel erzeugen. Bei Thunderbird benötigen Sie das Plugin Enigmail. Dann rufen Sie die Schlüsselerzeugung über den Menüaufruf OpenGPG - Schlüssel verwalten - Erzeugen - Neues Schlüsselpaar. KMail unter KDE integriert einfach Kleopatra.

Auf der Kommandozeile können Sie mit dem dem Befehl gpg --key-gen Ihren eigenen Schlüssel erzeugen. Das Programm stellt Ihnen ein paar Fragen.

Das Ergebnis wird im Verzeichnis .gnupg in zwei Schlüselbunddateien gespeichert: secring.gpg und pubring.gpg.

Verschlüsseln von Mails

Es gibt drei weit verbreitete Mail-Programme unter Linux: Thunderbird, KMail (Bestandteil von Kontact) und Evolution. Alle diese Programme unterstützen verschlüsselte Mails. Man sollte die Mail-Programme so einstellen, dass bei ausgehende Mails auch der eigene Schlüssel eingetragen wird, damit man die eigenen Mails im Sent-Ordner auch noch lesen kann.

Verschlüsseln von Dateien

Jede Datei, die vertrauliche Daten enthält, sollte verschlüsselt sein. Schließlich könnte der Computer gestohlen werden und die Daten in die Hände Dritter geraten. Absurd? Selbst britsche Verteidigungsministern passiert so etwas.

Für das Verschlüssel über den Dateimanager gibt es eine Reihe von Programmen wie KGpg für KDE oder Seahorse für GNOME. Sie können über das Kontextmenü aufgerufen der zu ver- oder entschlüsselnden Datei aufgerufen werden und leiten den Anwender für die notwendigen Eingaben.

Die Basis dieser Programme ist GPG. Auch mit dem Kommandozeilenprogramm gpg, das auf jedem Linux-System von Haus aus installiert ist, lassen sich Dateien verschlüsseln (encrypt -e) und entschlüsseln (decrypt -d).

Liste der Schlüssel

Für die Verschlüsselung benötigen Sie einen öffentlichen Schlüssel.
$ gpg --list-public-keys
Die verschlüsselte Datei kann nur derjenige öffnen, der den privaten Schlüssel besitzt. Wollen Sie die Datei später selbst entschlüsseln, sollten Sie auch den privaten Schlüssel besitzen. Eine Liste erhalten Sie so:
$ gpg --list-secret-keys

Verschlüsseln

Beim Verschlüsseln können Sie mehrere Empfänger angeben, also Schlüsselbesitzer, die die Datei wieder entschlüsseln können. Diese geben Sie nacheinander an.
$ gpg -e geheimer.txt
Sie haben keine User-ID angegeben (Sie können die Option "-r" verwenden).

Derzeitige Empfänger:

Geben Sie die User-ID ein. Beenden mit einer leeren Zeile: Arnold Willemer

Derzeitige Empfänger:
2048g/5EA3FF59 2007-03-13 "Arnold Willemer "

Geben Sie die User-ID ein. Beenden mit einer leeren Zeile: 
$
Den Empfänger (recipient) können Sie auch mit der Option -r direkt in der Kommandozeile angeben. Hier werden Anführungszeichen verwendet, weil der Empfängername ein Leerzeichen enthält.
$ gpg -e -r "Arnold Willemer" geheimer.txt

Entschlüsseln

Entschlüsselt wird über den Aufruf:
$ gpg -d geheimer.txt.gpg > geheimer.txt

Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: »Arnold Willemer «
2048-Bit ELG-E Schlüssel, ID 5EA3FF59, erzeugt 2007-03-13 (Hauptschlüssel-ID A005AFE2)

gpg: verschlüsselt mit 2048-Bit ELG-E Schlüssel, ID 5EA3FF59, erzeugt 2007-03-13
      "Arnold Willemer "
Die Passphrase wird über eine Dialogbox eingegeben, um nachzuweisen, dass ich berechtigt bin, die Datei zu entschlüsseln. Natürlich muss auch der private Schlüssel auf meinem Rechner vorhanden sein.

Verschlüsseln des Heimatverzeichnisses

Anstatt nun jede einzelne Datei zu verschlüsseln, können Ärzte, Journalisten, Versicherungsvertreter oder britische Außenminister unter Linux einfach das komplette Heimatverzeichnis verschlüsseln lassen. Auf diese Methode ist gewährleistet, dass alle Informationen unlesbar sind, wenn die Festplatte in fremde Hände fällt.

Die meisten Linux-Distributionen erlauben es, gleich bei der Installation, das Heimatverzeichnis (home directory) zu verschlüsseln.

Ein Benutzer hat unter Linux ausschließlich Schreibzugriff auf die Datei und Verzeichnisse, die unterhalb seines Heimatverzeichnisses sind. Damit ist neben den Office-Dokumenten alles automatisch verschlüsselt, was er auf dem Gerät bearbeitet - von der Office-Datei bis zu seinem Mailarchiv.

Technisch funktioniert es auf der Basis, dass für den Benutzer ein virtuelles Dateisystem in seinem Heimatverzeichnis angelegt wird, das alle Daten beim Schreiben verschlüsselt und beim Lesen entschlüsselt.

Verschlüsseln externer Festplatten und USB-Sticks

Da Linux die Heimatverzeichnisse als virtuelle Dateisysteme verschlüsseln kann, ist es naheliegend, dass Linux dies auch mit realen Dateisystemen auf externen Speichermedien wie USB-Sticks oder externen Festplatten kann.

Grafische Lösung

Unter GNOME und MATE (Linux MINT) können Sie einen solchen verschlüsselten externen Speicher über die grafische Oberfläche mit dem Programm "Laufwerksverwaltung" erzeugen. Dort formatieren Sie den externen Speicher und legen eine neue Partition an. Sie erhalten daraufhin die Option, das Laufwerk zu verschlüsseln und werden um die zweimalige Eingabe einer Passphrase gebeten.

Das war es dann auch schon. Sobald Sie den externen Speicher in einen Computer einstecken, bittet Sie dieser um die korrekte Passphrase und Sie haben einen freien Zugriff, wie bei jedem normalen USB-Stick.

Von der Kommandozeile

Um von der Konsole aus einen USB-Stick, eine externe Festplatte mit einem verschlüsselten Dateisystem anzulegen, benötigen Sie das Paket cryptsetup, das Sie über Ihren Software-Manager nachinstallieren, beispielsweise über die Konsole mit dem folgenden Befehl:
# apt-get install cryptsetup
Unter der Annahme, dass Ihre externe Festplatte bereits partitioniert ist und unter /dev/sdc eingehängt ist, geben Sie die folgenden Befehle:

# cryptsetup luksFormat /dev/sdc1
# cryptsetup luksOpen /dev/sdc1 cryptextern
# mkfs.ext3 /dev/mapper/cryptextern
Damit wurde die erste Partition auf dem Laufwerk /dev/sdc mit einem verschlüsselten Dateisystem überschrieben. Sie können es mit dem folgenden Befehl direkt einhängen:
# mount /dev/mapper/cryptextern /mnt

Einlegen

Wenn Sie ein verschlüsseltes externes Laufwerk einfach einstecken, werden die Desktops unter Linux Sie automatisch auffordern, die Passphrase einzutippen und dann steht Ihnen das Laufwerk frei zur Verfügung.

Vorteil: Open Source

Es steht zu vermuten, dass sämtliche Sicherheitssysteme dank der Geheimdienste löchrig sind wie ein Käse. Es steht zu befürchten, dass diese in ihrem Überwachungswahn alle Möglichkeiten genutzt haben, um Hintertüren einzubauen oder die Verschlüsselung zu schwächen. Aus diesem Grund sind alle Systeme, deren Quellcode nicht einsehbar ist, als unsicher einzustufen.

Bei Open-Source-Systemen wie Linux oder GnuPG ist der Quellcode einsehbar. Eine Hintertür ist für Fachleute erkennbar. Eine Schwächung der Verschlüsselung ist vermutlich bereits 2006 einmal durch eine Veränderung des Zufallszahlengenerators versucht worden und wurde erst nach zwei Jahren entdeckt. Aber sie wurde eben entdeckt, weil der Quellcode einsehbar ist.

Wer darauf angewiesen ist, mit vertraulichen Daten zu operieren, handelt also fahrlässig, wenn er sich anderer Systeme bedient als denen mit offenem Quellcode.

Windows

Der Quellcode von Windows ist nicht offen einsehbar. Damit ist natürlich nicht nachprüfbar, ob Microsoft zum Einbau von Hintertüren gezwungen wurde.

Da nun Windows aber weitverbreitet ist und für die meisten Anwender ein Systemwechsel nicht infrage kommt, muss dennoch versucht werden, soviel Schutz und Vertraulichkeit wie möglich zu erreichen. Glücklicherweise sind viele quelloffenen Programme aus dem Linux-Bereich nach Windows portiert worden und dort einsetzbar.

GPG4Win

Das Paket GPG4Win enthält das eigentliche GPG und einige zusätzliche Programme. Zum Download wird auch eine Light-Version angeboten, die beispielsweise reicht, wenn man Thunderbird mit Enigmail verwendet.

Start der Installation

Outlook

Beim nächsten Start von Outlook erscheint ein Willkommensgruß von GpgOL. Sie finden unter Extras | Optionen | GpgOL nähere Einstellungen.

Exchange-basierte Outlook-Konten sollen angeblich Probleme beim Senden von verschlüsselten und signierten Mails haben. Auch ältere Outlook-Versionen, insbesondere vor 2003 und älter als SP2 funktionieren nicht. Dagegen gibt es im Internet Hinweise, dass man Outlook 2010 verwenden können soll. Mangels Lizenz kann ich das nicht bestätigen.

Windows Live Mail

Mit dem Mailprogramm Windows Live Mail ist es mir nicht gelungen, eine Mail zu verschlüsseln. Für Hinweise bin ich dankbar. Allgemein wird im Internet die Kombination Thunderbird/EnigMail empfohlen.

Kleopatra

Kleopatra ist auf dem Linux-Desktop KDE heimisch, aber eben auch für Windows verfügbar. Kleopatra ist die Benutzeroberfläche zur Verwaltung der Schlüssel bzw. Zertifikate. Das Erstellen eines Zertifikats erfolgt über Datei - Neues Zertifikat. Im folgenden Dialog wird Persönliches OpenPGP-Schlüsselpaar erzeugen ausgewählt. Daraufhin müssen Name, E-Mail und Kommentar eingegeben werden. Dann werden Sie aufgefordert, eine Passphrase einzugeben. Dieses wird auch Mantra genannt und sollte etwas länger als ein Passwort sein, gern auch mit Zahlen und Sonderzeichen.

Dateien verschlüsseln über den Windows Explorer

Wurde bei Win4GPG auch das Programm GpgEX installiert, kann im Windows Explorer (dem Dateiverwalter, nicht dem Internet-Browser) eine Datei mit der rechten Maustaste angeklickt werden. Im Menü erscheint Signieren und verschlüsseln. Es erscheint ein Dialog, in dem Verschlüsseln angewählt ist. Klicken Sie auf Weiter.

Im nächsten Schritt müssen Sie festlegen, wer die verschlüsselte Datei wieder öffnen können soll. Sie müssen dessen öffentlichen Schlüssel natürlich kennen. Alle bekannten öffentlichen Schlüssel erscheinen in der oberen Liste. Es ist in jedem Fall nicht verkehrt, den eigenen Schlüssel anzugeben, wenn Sie die Datei auch selbst wieder öffnen wollen.

Klicken Sie im oberen Fenster die gewünschten Schlüssel an, klicken Sie dann auf Hinzufügen. Sie erscheinen nun in der unteren Liste. Nun können Sie den Button Verschlüsseln aktivieren. Das Programm arbeitet eine Weile. Dann erscheint der Button Fertigstellen.

Es ist eine neue Datei mit der Endung gpg entstanden. Diese können Sie nun per Mail versenden oder in Ihrer Cloud ablegen, ohne dass sie sofort jeder öffnen kann.

Zum Öffnen müssen Sie sie wiederum mit der rechten Maustaste anklicken. Im Menü erscheint Enstschlüsseln und prüfen. Wenn Sie unten den entsprechenden Button anklicken erscheint das Eingabefeld für die Passphrase für den Schlüssel. Wieder ist das Programm eine Weile beschäftigt. Dann erscheint die entschlüsselte Datei parallel zur verschlüsselten.

Die gleiche Vorgehensweise ist unter Linux mit KDE möglich, wenn Kleopatra nachinstalliert wurde. Ähnlich arbeitet Kgpg, das ebenfalls nachinstalliert werden muss.

Android

Auf dem Android-Handy ist es möglich, mit dem Mail-Programm K9 und der Implementierung APG verschlüsselte Mails zu verwenden.

Links