Grundlagen zur sicheren Kommunikation mit GnuPG

Aus LinuxUser 03/2006

Grundlagen zur sicheren Kommunikation mit GnuPG

Verschlußsache

E-Mails sind wie Postkarten – jeder kann sie lesen. Zumindest dann, wenn sie unverschlüsselt durch die Leitung wandern. Mit GnuPG sperren Sie unerwünschte Mitleser aus.

Im Internet kursiert seit Jahren ein Sprichwort: E-Mails sind so sicher wie Postkarten – eben für jeden lesbar. Zwar beherrschen viele Mail-Clients mittlerweile die gesicherte Kommunikation zum E-Mail-Server des eigenen Anbieters. Die Server leiten die Nachrichten untereinander nicht verschlüsselt weiter, und so geht der Schutz spätestens an dieser Stelle zu Ende.

Wenn eine Mail an einen Freund in Taipeh vielleicht über vier verschiedene Server reist, bietet sich jedem, der Zugriff auf einen dieser Rechner hat, zahlreiche Möglichkeiten zum Zugriff. Mit dem Schutz des Briefgeheimnisses ist es freilich schnell vorbei.

Wie schützen Sie sich effizient gegen etwaige Spähversuche? Schon 1991, als das Internet noch eine zarte Pflanze war und vom Boom keine Rede, stellte Phil Zimmermann ein simples Verschlüsselungsverfahren vor, das später die Internet-Kommunikation revolutionierte: Pretty Good Privacy. Das System, das er so taufte, kennen viele heute als PGP [1].

Der hohe Verbreitungsgrad liegt nicht zuletzt an seiner Einfachheit: Im Grunde verschlüsseln Sie lediglich den E-Mail-Text, der sonst im Klartext zum Empfänger ginge, mit einem Schlüssel, zu dem nur der Empfänger mit seinem eigenen Schlüssel das Gegenstück besitzt.

Schlüsselbund

Wie funktioniert das im Detail? Zu den Grundvoraussetzungen zählt, dass die Personen A und B, die dem jeweils anderen etwas Wichtiges mitzuteilen haben, sich zunächst jeweils ein Schlüsselpaar generieren.

Bei PGP kommen stets zwei Schlüssel zum Einsatz, weshalb das Verfahren in Fachkreise auch asymmetrisch heißt. Jeder Kommunikationsteilnehmer verfügt über ein Schlüsselpaar – den öffentlichen Schlüssel (public key) und den privaten Schlüssel (private key). Dieser Unterschied zwischen den beiden ist wichtig, denn jeder Schlüssel hat eine eigene Aufgabe.

Den öffentlichen Schlüssel des Schlüsselpaares stellt nun Person A jedem zu, der private Kommunikation mit ihm wünscht. Der öffentliche Schlüssel dient dazu, E-Mails an den Besitzer des privaten Schlüssels zu kodieren. Wenn nun also Person B seine Mail an Person A verschlüsseln will, so verwendet er dafür den public key von Person A. Er verschlüsselt die Nachricht an den Empfänger mit dessen öffentlichem Schlüssel.

Sobald Person A die Mail empfängt, kommt der private Schlüssel ins Spiel. Einen einmal verschlüsselten Text verwandelt nur der entsprechende private key, der zum öffentlichen Schlüssel passt, wieder in lesbaren Text. Der öffentliche Schlüssel erlaubt dies nicht. Den privaten Schlüssel darf daher ausschließlich der Eigentümer des Schlüsselpaares besitzen. Sonst wäre nicht mehr gewährleistet, dass ausschließlich der Empfänger die Daten entschlüsselt, die jemand mit dem öffentlichen Schlüssel chiffriert hat.

Stellen Sie sich das ganze vor wie einen Safe: Dort haben Sie einen Schlitz, für den jeder einen Schlüssel hat. Wenn Ihnen jemand eine mit PGP verschlüsselte Mail sendet, wirft er die Nachricht durch den Schlitz in den Schrank. Für die Tür, durch die Sie die Nachrichten entnehmen, haben nur Sie den Schlüssel.

Von PGP zu GnuPG

Heute kommt PGP so gut wie nicht mehr zum Einsatz. Der Gebrauch war zwar kostenlos, das Programm an sich war aber keine freie Software. An seine Stelle trat das freie GnuPG [2], das im Prinzip das Gleiche tut und zu PGP kompatibel ist. GnuPG – kurz GPG – funktioniert unter Linux tadellos, wie die folgenden Beispiele zeigen.

Aufgrund der hohen Bekanntheit des asymmetrischen Schlüsselprinzips nach PGP- und GPG-Standard enthält heute fast jede aktuelle Distribution bereits GnuPG. Erkundigen Sie sich notfalls beim Hersteller, wie das jeweilige Paket heißt. Meist hat es den Namensbestandteil gnupg. Installieren Sie es mit dem Paketverwaltungsprogramm Ihrer Distribution. Bei Debian geht das zum Beispiel mit apt-get install gnupg. Anschließend ist GnuPG bereit zum Einsatz.

Abbildung 1: Alternativ zu Kommadozeilen-Tools bieten manche Projekte auch grafische Oberflächen zum Schlüsselverwalten an. Diese weisen aber mitunter nicht alle Funktionen auf.

Abbildung 1: Alternativ zu Kommadozeilen-Tools bieten manche Projekte auch grafische Oberflächen zum Schlüsselverwalten an. Diese weisen aber mitunter nicht alle Funktionen auf.

Aller Anfang

Wie oben erwähnt setzt das asymmetrischen Verschlüsselungssystem von GPG ein Schlüsselpaar voraus. Deshalb fangen Sie auch mit dem Generieren eines persönlichen Paares an. Öffnen Sie eine Kommandozeile – also das Gnome-Terminal oder die Konsole von KDE – und geben Sie den Befehl gpg --gen-key ein. Drücken Sie [Eingabe], um für die erste Frage nach der Schlüsselart den Standardwert zu übernehmen.

Danach möchte GnuPG wissen, welche Verschlüsselungstiefe Sie für den GPG-Schlüssel wünschen. Davon hängt ab, wie schwer Sie es Lauschern machen wollen, Ihren Schlüssel zu knacken. Mit 1024 Bits sind Sie in der Regel gut beraten, mit 2048 Bits gehen Sie auf Nummer sicher.

Dann fragt die Software, ob Sie für den Schlüssel ein Ablaufdatum eintragen möchten. Tragen Sie ein solches ein, so gilt nach Ablauf des Termins Ihr öffentlicher Schlüssel als ungültig, und das Programm erkennt ihn nicht mehr als gültig an.

Mit Ihrem privaten Schlüssel könnten Sie den öffentlichen Schlüssel jedoch wieder aktualisieren. Das Problem der Ungültigkeit wäre dann gelöst. Aus diesem Grund erachten es viele GPG-Benutzer fast schon als zwecklos, ein Ablaufdatum einzutragen. Ob Sie das tun, bleibt daher Ihnen überlassen.

Identifikation

Nachdem Sie die Eingabe bestätigt haben, kommt der interessante Teil: Nunächst tragen Sie in die Eingabezeile den Namen ein, der im neuen GPG-Schlüsselpaar als Name des Eigentümers fungiert. Bestätigen Sie mit [Eingabe] und tragen Sie die E-Mail-Adresse in die nächste Eingabezeile ein. Das Feld Comment: ermöglicht, einen Spitznamen oder Kommentar in anzugeben, der später zwischen dem Namen und der Adresse in Klammern auftaucht. Seien Sie dabei jedoch vorsichtig: Der Spitzname taucht anschließend immer auf, wenn Sie den Schlüssel verwenden.

Quittieren Sie die nächste Frage mit [O]. Anschließend sehen Sie das Eingabefeld für das Passwort, das der privaten GPG-Schlüssel später enthält, und das diesen vor unbefugtem Zugriff schützt. Hier gelten die üblichen Ratschläge für Passworte: Benutzen Sie also möglichst nicht den Namen ihres Sohnes oder Ihr Geburtsdatum. Kleine und große Buchstaben gemischt mit Zahlen und Sonderzeichen eignen sich besser.

Wiederholen Sie ihr Passwort und bewegen Sie anschließend die Maus ein wenig, damit GnuPG zuverlässiger Zufallswerte beim Generieren des Schlüssels errechnet. Das Erstellen des GPG-Keys ist damit abgeschlossen. Notieren Sie sich die Key-ID und den Fingerprint, die GnuPG nun anzeigt: Beides benötigen Sie später noch.

Total praktisch

Sie haben nun die Grundlage für mehrere Vorgänge geschaffen: Zum einen ermöglicht es dieser Schritt Kommunikationspartnern, Ihnen E-Mails oder generell Dateien aller Art – eine E-Mail ist ja im Grunde nichts anderes als eine Textdatei – zu verschlüsseln, damit sie für niemand außer Ihnen lesbar sind.

Zugleich haben Sie sich selbst aber auch die Möglichkeit gegeben, E-Mails, die Sie an andere schicken, mit Ihrem GnuPG-Schlüssel digital zu unterschreiben. Das ist das zweite große Einsatzgebiet von GnuPG.

Neben der wichigen Tatsache, dass kein Dritter die Inhalte von Mails an Sie erkennt, räumt GPG im Dschungel des Internets Ihrem Gegenüber die Möglichkeit ein, die Herkunft von E-Mails zu verifizieren, die vorgeblich von Ihnen stammen. Ein Ändern des Absenderfeldes einer E-Mails stellt versierte Anwender vor keine großen Probleme. Kontrolliert der Empfänger einer Nachricht die Header-Angaben nicht sorgfältig, fällt er nur allzu leicht auf eine gefälschte Absenderadresse herein.

Wenn Sie einen Mail-Text vor dem Absenden mit Ihrem Schlüssel signieren – also quasi digital unterschreiben – ermöglichen Sie es jedermann, mit Ihrem öffentlichen Schlüssel die Herkunft des Textes zu verifizieren. Dafür überprüft der Empfänger einfach die Mail auf eine gültige Signatur. Findet GPG eine digitale Signatur in der Mail und passt diese Signatur zu Ihrem öffentlichen Schlüssel, gibt es eine positive Rückmeldung. Damit weiß der Empfänger, dass jemand die Mail abgeschickt hat, der im Besitz des privaten Schlüssels ist –vorzugsweise Sie.

Abbildung 2: Indem Sie den Schlüssel einer anderen Person in GPG signieren, bestätigen Sie, dass Sie dessen Identität geprüft haben.

Abbildung 2: Indem Sie den Schlüssel einer anderen Person in GPG signieren, bestätigen Sie, dass Sie dessen Identität geprüft haben.

Web of Trust

Gegen diese Methode ließe sich freilich berechtigterweise einwenden, dass der Empfänger der Mail nicht weiß, ob sich der Schlüssel mit Ihren Namen auch tatsächlich unter Ihrer Kontrolle befindet. Prinzipiell darf ja jeder einen Schlüssel erstellen und in das Namensfeld schreiben, was ihm gerade in den Sinn kommt. Um das zu verhindern, existiert das Web of Trust.

So, wie Sie mit ihrem GnuPG-Schlüssel E-Mails signieren, dürfen Sie mit ihm nämlich auch die Schlüssel anderer Benutzer unterschreiben. Praktisch funktioniert das so: Wollen zwei Benutzer untereinander ihre Identität bestätigen, setzt dies voraus, dass sie sich irgendwo treffen. Dann zeigen beide Personen sich jeweils ein amtliches Dokument (also Personalausweis oder Führerschein) zum Prüfen der Identität. Jetzt tauschen beide noch die so genannten Fingerabdrücke ihrer GPG-Schlüssel aus: eine Zahl mit 16 Ziffern, die unlöslich mit Ihrem GnuPG-Schlüssel zusammenhängt.

Nach dieser Prozedur signieren die beiden GPG-Benutzer noch gegenseitig ihre öffentlichen Schlüssel und bringen damit zum Ausdruck, dass sie jetzt die Identität des anderen kennen und Mails, die jeweils das Gegenüber unterschrieben hat, als gesichert anerkennen.

En Detail

Ein Beispiel macht es noch deutlicher: Sie haben bereits einen Bekannten mit GPG-Schlüssel und wollen nun seinen Schlüssel signieren und im Gegenzug Ihren Schlüssel signiert bekommen, um künftig sicher zu kommunizieren? Besorgen Sie sich dazu zunächst den öffentlichen Schlüssel des Bekannten. Wenn er diesen wie üblich auf einen der öffentlichen GPG-Server geladen hat, erledigen Sie das mit gpg --keyserver wwwkeys.eu.pgp.net --recv-keys Key-ID.

Ein andere Möglichkeit sieht vor, dass Ihr Bekannter den Schlüssel bei sich mit gpg --export --armor Key-ID in eine Text-Datei schreibt, welche er Ihnen dann per E-Mail, auf Diskette oder auf CD zusendet. Um die Datei danach in Ihren sogenannten Keyring zu importieren, verwenden Sie gpg --import Datei. Nochmal: Wie Sie an den öffentlichen Schlüssel des anderen gelangen, spielt im Grunde keine Rolle. Es zählt nur, dass Sie die Herkunft des GPG-Schlüssels später über das oben genannte Verfahren verifizieren.

Wenn Sie den Schlüssel haben, führen Sie die erwähnte Prozedur durch. Treffen Sie sich mit der Person und händigen Sie einander die GPG-Fingerabdrücke aus. Auf das Prüfen eines amtlichen Dokumentes dürfen Sie bei der Schwiegermutter unter Umständen verzichten. Wieder zu Hause angekommen, überprüfen Sie zunächst im Terminal mit gpg --fingerprint Key-ID des Schlüsselpartners, ob der Ihnen übergebene Fingerabdruck tatsächlich zum öffentlichen Key des GPG-Partners passt.

Trifft das zu, geht es mit gpg --edit Key-ID des GPG-Partners weiter. Geben Sie sign gefolgt von [Eingabe] ein und bestätigen Sie mit [Y]. Geben Sie das Passwort ihres GPG-Schlüssels ein, und nach ein paar Sekunden hat GnuPG den Schlüssel des Partners signiert (Abbildung 2). Laden Sie den Schlüssel dann entweder auf einen GPG-Server hoch (die Option für gpg lautet --send-keys) oder senden Sie dem Schlüsselinhaber den Key signiert zurück. Verwenden Sie dafür wie oben den Parameter --export mit der Schlüssel-ID des Partners als Argument.

Wenn dieser nun dasselbe mit Ihrem Schlüssel tut, schließt sich der Kreis: Sie beide verfügen künftig über einen Weg zum sicheren Feststellen der Authentizität einer Mail des jeweils anderen.

Nicht aufwändig

Natürlich wäre es viel zu umständlich, jede empfangene Mail zuerst als Textdatei auf der Platte zu speichern, um dann die Signatur mit GPG auf der Konsole zu überprüfen. Sinnvoll wäre es, wenn Ihr Mail-Programm schon eine entsprechende Routine mitbrächte, die den Umgang mit GnuPG leichter macht und ihn nach Möglichkeit für Sie auf die Eingabe des Passwortes für Ihren privaten Schlüssel reduziert [3].

Verwenden Sie Mozilla Thunderbird, haben Sie Glück: Das Programm arbeitet zwar von Haus aus nicht mit GPG zusammen. Jedoch erweitert das Enigmail-Paket das Mail-Programm um entsprechende Funktionen (Abbildung 3). Enigmail [4] liegt so wie GPG jeder aktuellen Linux-Distribution bei, bei Debian installieren Sie es zum Beispiel mit apt-get install mozilla-thunderbird-enigmail. Für detaillierte Anleitungen zu Ihrer Linux-Distribution konsultieren Sie die Dokumentation zum System.

Thunderbird verschlüsselt

Haben Sie Enigmail installiert, erkennt Thunderbird das Plugin automatisch. Sie sehen in der Menüleiste einen neuen Punkt namens OpenPGP. Hinter diesem verstecken sich alle GnuPG-Funktionen. Bevor Sie die erste Mail schreiben und mit GPG signieren, steht allerdings Konfigurationsarbeit auf dem Programm. Klicken Sie in Thunderbird auf Verfassen und im neuen Fenster auf OpenGPG.

Thunderbird verweigert sich zunächst mit der Nachricht, dass Sie den bestehenden E-Mail-Account nicht für einen GPG-Schlüssel eingerichtet haben. Bestätigen Sie dies mit OK, kommen Sie in den Dialog zur GPG-Konfiguration, der zur Zeit nur in englischer Sprache existiert.

Aktivieren Sie die Option Enable OpenPGP support … im Dialogfeld oben. Im Feld Message Composition Default Options sorgen Sie durch das Anwählen der ersten Option dafür, dass Thunderbird sämtliche E-Mails, die Sie versenden, automatisch mit Ihrem GPG-Schlüssel signiert. Das setzt zwar künftig bei jeder Mail das Passwort für Ihren privaten GPG-Schlüssel eingeben, andererseits sorgt es aber für ein Mindestmaß an Sicherheit. So weisen Sie später immer die Herkunft einer Mail von Ihnen nach.

Abbildung 3: Enigmail erlaubt das Einbinden von GPG in Thunderbird schnell und unkompliziert.

Abbildung 3: Enigmail erlaubt das Einbinden von GPG in Thunderbird schnell und unkompliziert.

Munter testen

Beenden Sie die Konfiguration mit OK und starten Sie einen Test. Schreiben Sie eine Mail, fragt die Software vor dem Absenden nach Ihrem GPG-Passwort und signiert nach der korrekten Eingabe desselbigen die E-Mail. Gleichzeitig zeigt Thunderbird Ihnen künftig an, wenn Mails mit GPG-Signatur in Ihrer Inbox liegen.

Haben Sie den Schlüssel des Versenders einer solchen Mail schon signiert, informiert Sie Mail-Programm darüber, wenn das Prüfen der Signatur und damit der Herkunft der Mail erfolgreich verlief. Kennt Ihr GPG den Schlüssel einer Person noch nicht, erscheint lediglich ein Warnhinweis, der Ihnen die ungesicherte Herkunft der Mail anzeigt.

Notbremse

Mit der Zeit mutiert Ihr GnuPG-Schlüssel schnell zu Ihrer digitalen Identität im Internet. Schicken Sie jemandem eine signierte Mail, nimmt der Empfänger in aller Regel an, dass Sie die Mail tatsächlich verfasst haben. Fatal wäre da, wenn ein Gauner an Ihren privaten GPG-Schlüssel kommt oder durch Zufall Ihr Passwort errät und danach mit Ihrem GPG-Key munter E-Mails versendet. Der absichernde Effekt wäre dahin, die falsche GPG-Signatur würde in einem solchen Falle sogar noch die Intention von GPG umkehren und für trügerische Sicherheit sorgen.

Sie schieben dem einen Riegel vor, indem Sie sich selbst eine Möglichkeit schaffen, Ihren GPG-Schlüssel irreversibel für ungültig zu erklären. Seit Beginn sieht das GPG-System dafür das Revocation Certificate vor. Diese spezielle Signatur für Ihren Schlüssel markiert beim Importieren über das oben genannte Kommando Ihren Key als ungültig. Machen Sie diese Tatsache bekannt, akzeptiert kein GPG ihn als gültigen Schlüssel.

Ein Revocation Certificate erstellen Sie mit gpg --gen-revoke Key-ID und der Eingabe des Passworts zum GPG-Schlüssel (Abbildung 4). Dann erscheint das komplette Zertifikat auf der Konsole – speichern Sie es in einer Textdatei und brennen Sie diese auf eine CD, die Sie idealerweise im einem Tresor oder an einem ähnlichen Ort aufbewahren. Drucken Sie es zudem aus und legen Sie den Ausdruck zur CD, um eine nicht-digitale Kopie des Zertifikats zu haben.

Um das Zertifikat später anzuwenden, kopieren Sie die Datei zurück auf die Festplatte und importieren Sie sie danach mit gpg --import Datei. Führen Sie diesen Schritt nicht zur Probe aus! Ihr Schlüssel ist danach unwiderruflich unbrauchbar.

Abbildung 4: Ein Revocation Certificate erlaubt es Ihnen jederzeit, Ihren GPG-Schlüssel als ungültig zu markieren.

Abbildung 4: Ein Revocation Certificate erlaubt es Ihnen jederzeit, Ihren GPG-Schlüssel als ungültig zu markieren.

Fazit

Das Verschlüsseln von E-Mails mit GnuPG bietet neue Perspektiven auf die Sicherheit bei der Kommunikation über das Internet. Ein funktionierendes Web of Trust setzt voraus, dass jeder Teilnehmer die Wichtigkeit der Integrität des Netzwerks erkennt und sich entsprechend verhält. Sorgloses Signieren von Schlüsseln anderer führt schnell zu Löchern in dieser Infrastruktur – ebenso wie das Versenden des eigenen privaten GnuPG-Schlüssels per Internet. Überlassen Sie also die Sicherheit Ihrer Kommunikation nicht dem Zufall.

Dass das Web of Trust funktioniert, beweist das Debian-Projekt übrigens seit Jahren beispielhaft: Um als Entwickler einzusteigen, benötigen Sie zunächst einen Key, den mindestens einem aktiver Debian-Entwickler signiert hat. Danach stellt Ihr GnuPG-Schlüssel den einzigen Zugang zum Archiv dar, denn nur mit ihm dürfen Sie Dateien auf den Debian-FTP-Server hochladen.

Der Autor

Martin Loschwitz aus Niederkrüchten drückt zur Zeit noch die Schulbank und hört in seiner Freizeit viel klassische Musik.

Infos

[1] PGP: http://www.pgp.com

[2] GnuPG: http://www.gnupg.org

[3] Frauke Oster: “Verbrieft und gesiegelt” – E-Mails verschlüsseln mit KMail, Thunderbird und Evolution, LinuxUser 01/2005, S. 35

[4] Enigmail: http://enigmail.thunderbird-mail.de

LinuxUser 03/2006 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben