eMails verschlüsseln mit GPG

GPG ist ebenfalls ein Verschlüsselungssystem nach dem Public Key Verfahren. Es ist leider nicht zum S/MIME Verfahren kompatibel. Im Vergleich zu S/MIME gibt es auch keinerlei Zertifikatsstruktur und somit fehlt das "automatische" Vertrauenskonzept. Das Vertrauenskonzept "web of trust", welches hinter GPG steht ist leider nicht trivial und wird erst später erklärt.

GPG ist historisch gesehen die Open Source Version der, von Phil Zimmermann entwickelten Software "Pretty Good Privacy" (PGP). Diese Software dient ebenfalls der sicheren, verschlüsselten Kommunikation. Obwohl PGP als Open Source Software entwickelt und veröffentlicht wurde, ist sie mittlerweile jedoch ein proprietäres, kommererzielles Produkt, dessen Quellcode nicht mehr veröffentlicht wird. Basierend auf dem ursprünglichen Quellcode von Zimmermann gibt es mit dem "GNU Privacy Guard" (GPG) eine freie und quelloffene Version. Die Bezeichnungen GPG, GnuPG und OpenPGP werden synonym verwendet.

Der Einsatz von GPG ist gerade in der Open Source Welt sehr verbreitet. GPG wird hier zur Signatur des Quellcodes oder zur Authentifizierung von Paketquellen gegenüber dem Linux Betriebssystems genutzt. Man kann sogar beliebige Dateien mit GPG verschlüsseln. Unter Linux ist das GPG Paket bereits integriert und kann auf Kommandozeilenebene direkt genutzt werden.

Unter OS X muss das Paket GPG Suite installiert werden. Unter Windows benötigt man gpg4win.

Da GPG auch nach dem Public Key Verfahren arbeitet, benötigt auch hier der Anwender einen öffentlichen und einen privaten Schlüssel. Bei GPG generiert der Anwender sein Schlüsselpaar selber.

Nachdem Ihr die GPGSuite installiert habt, findet Ihr auf eurem Mac das Programm "GPG Schlüsselbund" (im Ordner "Programme").

Oben links gibt es den Button "Neu". GPG Schlüsselbund fragt Euch nun, ob es auf "Kontakte" zugreifen darf. Könnt ihr ruhig verweigern.

Gebt jetzt Euren Namen und die eMail Adresse an, mit der Ihr verschlüsselt kommunizieren wollt. "Upload key after generation" kann zunächst deaktiviert bleiben. Jetzt öffnet mit dem kleinen Dreieck die "Erweiterten Optionen" und entfernt den Haken bei "Schlüssel läuft ab"

Nach dem Klick auf "Schlüssel erzeugen" müsst Ihr das Passwort festlegen, mit dem Euer privater Schlüssel geschützt wird. Wählt ein möglichst sicheres Passwort.

Nach kurzer Wartezeit erscheint in der Liste ein neuer Eintrag vom Typ "sec/pub" mit Eurem Namen und Eurer eMail Adresse. Am Typ des Schlüssels erkennt Ihr, ob es sich um einen privaten ("sec") oder öffentlichen ("pub") Schlüssel handelt. Im Fall des neu generierten Schlüssel ist es ein Paar bestehend aus beiden Schlüsseln.

Der nächste Schritt ist jetzt das Widerrufszertifikat. Solltet Ihr den privaten Schlüssel verlieren, habt ihr keine Möglichkeit den dazugehörigen öffentlichen Schlüssel zu sperren. Dafür braucht ihr dann das Widerrufszertifikat. Ein Rechtsklick auf den neuen Schlüssel und der Eintrag "Generate Revoke Certificate" erzeugen das Zertifikat. Das Passwort des privaten Schlüssels wird benötigt und GPG Suite speichert das Widerrufszertifikat in einer Datei z.B. auf dem Desktop.

Zeit für ein Backup!

Auf einem sicheren Datenträger (externe Festplatten, USB Sticks, etc.) legt ihr nun das Widerrufszertifikat ab. Bei dieser Gelegenheit exportiert ihr auch gleich das Schlüsselpaar auf diesen Datenträger. Rechtsklick auf das Schlüsselpaar dann wählt ihr "Exportieren". Gebt der Datei einen Namen und wählt das Backuplaufwerk aus. Wichtig ist die Option "Geheime Schlüssel exportieren" zu aktivieren. Nun habt ihr auch ein Backup des Schlüsselpaares.

Klingt vielleicht paranoid sofort ein Backup des Schlüsselpaares zu erstellen. Wenn Ihr den Schlüssel benutzt und verschlüsselte Mails oder Dateien habt sind diese bei Verlust des privaten Schlüssels ebenfalls verloren. Es gibt kein Sicherheitsnetz bei GPG und auch kein "Masterpasswort" ;-)

Unter Windows muss zunächst gpg4win installiert werden. Jetzt startet Ihr das Programm "Kleopatra".

Unter "Datei" > "Neues Zertifikat" wählt ihr "Persönliches OpenPGP Schlüsselpaar erzeugen". Jetzt gebt Ihr Euren Namen und die eMail Adresse ein, mit der Ihr verschlüsselt kommunizieren wollt. Die erweiterten Einstellungen können wir zunächst ignorieren. Im nächsten Schritt überprüft ihr nochmal die Angaben und bestätigt diese. Jetzt legt ihr das Passwort für Euren privaten Schlüssel fest. Wählt ein möglichst sicheres Passwort.

Zeit für ein Backup! Wählt jetzt "Sicherheitskopie Ihres Schlüsselpaares erstellen", gebt einen Dateinamen ein und wählt einen sicheren Speicherplatz (z.B. externe Festplatten, USB Sticks, etc.). Wichtig ist, dass Ihr im "Speichern unter" Fenster die Option "Dateien mit geheimem Schlüssel" zu wählen. Dann wird das vollständige Schlüsselpaar gesichert. Mit einem Klick auf "Fertigstellen" wird der Assistent zur Schlüsselerzeugung beendet.

Vielleicht findet Ihr es merkwürdig, dass ich sofort ein Backup des Schlüsselpaares erstelle. Eine verschlüsselte Mail oder Datei kann nur mit dem privaten Schlüssel geöffnet werden. Es gibt bei PGP kein Sicherungsnetz oder ein "Masterpasswort". Wenn der private Schlüssel weg ist, sind auch die Dateien und Mails verloren.

Zum Schlüsselpaar gehört eigentlich auch noch ein Widerrufszertifikat. Mit diesem kann man bei Verlust des privaten Schlüssels, den öffentlichen Schlüssel sperren. Wie man dieses Zertifikat unter Windows erstellt, habe ich noch nicht herausgefunden. 

Nachdem das Schlüsselpaar nun erstellt ist, müsst Ihr den öffentlichen Schlüssel unters Volk bringen. Dazu gibt es mehrere Möglichkeiten. Ihr könnt den öffentlichen Schlüssel, und NUR den öffentlichen Schlüssel exportieren und diese Datei per Mail versenden, zum Download anbieten etc. Dazu geht ihr wie folgt vor:

Mac OS X:

  • GPG Schlüsselbund öffnen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "Exportieren" auswählen
  • auf "sichern" klicken

Windows:

  • Kleopatra öffen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "Zertifikate Exportieren" auswählen

Jetzt wird eine .asc Datei geschrieben. Dies ist der öffentliche Schlüssel.

Eine weitere Möglichkeit sind die Keyserver. Innerhalb des GPG Projektes werden spezielle Server betrieben, die den öffentlichen Schlüssel der Nutzer speichern und anderen Nutzern zugänglich machen. Einen solchen Server kann im Prinzip jeder betreiben, der Lust dazu hat. Alle Keyserver synchronisieren ihre Daten untereinander um diese aktuell zu halten. Es ist also völlig egal, welchen Keyserver ihr zur Veröffentlichung wählt, Euer Schlüssel wird automatisch auf alle anderen Server kopiert. Wenn Euch nun jemand eine verschlüsselte eMail senden möchte, er aber Euren öffentlichen Schlüssel nicht hat, kann er mit Eurem Namen oder der eMailadresse auf einem Keyserver nach dem öffentlichen Schlüssel suchen, diesen runterladen und direkt benutzen.

Und da wären wir schon beim ersten Problem von GPG. An keiner Stelle wurde bisher überprüft, ob die eMailadresse, die Ihr bei der Schlüsselerzeugung angegeben habt, auch wirklich Euch gehört. Jeder kann für jede beliebige eMailadresse ein Schlüsselpaar generieren. Um dieses Schlüsselpaar zu nutzen, muss der Angreifer auch Euren eMail Account kapern. Sollte er das nicht schaffen oder gar nicht planen, so sorgen diese Fake-Schlüssel nur für Ärger und Verwirrung. Ihr werdet mit verschlüsselten Mails angeschrieben, könnt diese aber nicht öffnen, weil Euch der passende private Schlüssel fehlt.

Die Schlüssel führen jedoch einen digitalen Fingerabdruck. Der Fingerabdruck meines GPG Schlüssels lautet: 68B9 ADAD 698C 8043 2ADC CDB3 A8C5 F36C 6981 7341 Diese Kennung ist eindeutig. Anhand dieser Zeichenfolge kann man den Schlüssel mir zuordnen. Es gibt auch noch die Key ID, die nur aus den letzten acht Zeichen des Fingerabdrucks besteht (also bei mir 6981 7341). Die Key ID ist nicht eindeutig, hilft aber bei der Suche nach dem richtigen Schlüssel auf dem Keyserver. Wenn man also bei der Abfrage des Keyservers nicht nach dem Namen oder der eMailadresse sucht, sondern nach der Key ID bekommt man im Normalfall eine einzige (richtige) Antwort. Eure Key ID und den Fingerabdruck Eures Schlüssels solltet Ihr also auf Eurer Website, in sozialen Netzwerken, in eMailsignaturen sogar auf Euren Visitenkarten veröffentlichen. Damit hat jeder die Möglichkeit zu prüfen ob der öffentliche Schlüssel wirklich Eurer ist.

Wozu sollte man jetzt den Aufwand mit den Keyservern betreiben, wenn doch die anderen Möglichkeiten so viel stressfreier sind? Manchmal muss man seinen Schlüssel bearbeiten. Der private Schlüssel geht verloren, es kommen Unterschlüssel dazu oder andere Nutzer signieren Euren Schlüssel (Unterschlüssel und Signatur der Schlüssel sind fortgeschrittene Techniken und werden vielleicht später erläutert). In diesem Fall muss der öffentliche Schlüssel aktualisiert werden. Wenn Ihr Euren Schlüssel auf einem Keyserver habt, werden diese Aktualisierungen bei allen Kommunikationspartnern automatisch vollzogen. Wenn Ihr ohne Keyserver, Euren öffentlichen Schlüssel "manuell" verwaltet, müsst Ihr bei jeder Aktualisierung Euer Umfeld auf die neue Version hinweisen und diese müssen die Schlüssel dann ebenfalls manuell ersetzen. Eine Signatur der Schlüssel durch andere Nutzer (fortgeschrittene Technik) ist ohne Keyserver auch gar nicht möglich.

Um Euren Schlüssel auf einen Keyserver zu laden müsst Ihr nur folgende Schitte ausführen:

Mac OS X:

  • GPG Schlüsselbund öffnen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "öffentlichen Schlüssel an Schlüsselserver senden"

Windows:

  • Kleopatra öffnen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "Zertifikate zu einem Server exportieren" auswählen
  • Den Warndialog bestätigen und im nächsten Fenster auf OK klicken

Eure Key ID und den Fingerabdruck findet Ihr wie folgt:

Mac OS X:

  • GPG Schlüsslebund öffnen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "Informationen" auswählen. 

Windows:

  • Kleopatra öffnen
  • Euren Schlüssel anwählen
  • rechte Maustaste
  • "Zertifikatdetails" auswählen

Im sich öffnenden Fenster findet Ihr den Fingerabdruck. Die Key ID sind die letzten acht Zeichen des Fingerabdrucks bzw. diese seht Ihr sofort in GPG Schlüsselbund/Kleopatra in der Spalte Key ID bzw. Schlüssel Kennung.

Und zum guten Schluss suchen wir noch nach einem Schlüssel auf einem Keyserver.

Mac OS X:

  • GPG Schlüsselbund öffnen
  • Wenn Ihr die Key ID habt, geht jetzt auf "Schlüssel" > "von Schlüsselserver abfragen". Wenn Ihr nach Namen oder eMailAdresse sucht, geht auf "Schlüssel" > "nach Schlüssel suchen"

Windows:

  • Kleopatra öffnen
  • "Datei" > "Zertifikate auf Server suchen"
  • Jetzt könnt Ihr nach Namen, eMailadressen oder Key IDs suchen. Wenn Ihr eine Key ID benutzt dann schreibt vor die ID immer ein "0x" (ohne die Anführungszeichen). Daran erkennt Kleopatra, dass Ihr eine ID eingegeben habt.

Im folgenden Fenster könnt Ihr nun den richtigen Schlüssel auswählen und importieren.

Der Begriff "Signatur" wird bei einer eMail normalerweise verwendet, wenn es darum geht einen Standardtext z.B. Kontaktinformationen unter eine eMail zu hängen.

GPG meint mit Signatur jedoch eine digitale Unterschrift. Aus dem Text Eurer eMail wird ein sogenannter "Hash-Wert" ermittelt. Ein Hash-Wert wird durch eine komplexe mathematische Operation berechnet. Es geht darum aus jedem Text eine eindeutige und vor allem einzigartige Zeichenfolge zu berechnen. Wird auch nur ein Zeichen im Text verändert, führt die Berechnung zu einem vollkommen anderen Hash-Wert. Der Hash-Wert Eurer eMail wird mit Eurem privaten Schlüssel verschlüsselt.

Das eMailprogramm des Empfängers entschlüsselt mit Eurem öffentlichen Schlüssel den Hash-Wert, berechnet aus der Mail ebenfalls den Hash-Wert und vergleicht die beiden Ergebnisse miteinander. Sind beide Werte identisch wurde die eMail auf dem Übertragungsweg nicht verändert.

Es gibt zwei Möglichkeiten, wie die Signatur mit der eMail verknüpft wird. Entweder sie wird als Text unter die eMail geschrieben, oder als Dateianhang mitgeschickt. Die Textversion heißt "Clearsign" oder auch "InlinePGP" und die Dateianhangvariante nennt man "PGP/MIME".

Der Unterschied ist ganz einfach ersichtlich. Wenn der Empfänger auf seinem Computer GPG nicht installiert hat sieht meine InlinePGP signierte eMail so aus:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Dies ist ein Test mit InlinePGP.
-----BEGIN PGP SIGNATURE-----
Version: APG v1.1.1

iIQEAREKACwFAlUUetMlHFJlaW5oYXJkIERpeCA8bWFpbEByZWluaGFyZC1kaXgu
bmV0PgAKCRCoxfNsaYFzQe2SAQCxKP9Rfom1PvpnCtAoidrZa8cwdslDbcx/lWmA
wrgXSQD+PbnjC8KyFFspMVFu+ESC0g4EwMBZb7BkK3fWxmQgEm0=
=3+3Q
-----END PGP SIGNATURE-----

Die Information für den Empfänger steht irgendwo mitten im Zeichensalat. Ich finde es verständlich, dass hiervon jeder genervt ist, der sich nicht für Verschlüsselung interessiert.

Bei einer Signatur mit PGP/MIME sieht eine signierte eMail aus wie immer. Thunderbird verschweigt die PGP/MIME Signatur, Outlook zeigt ein Siegel auf dem Briefumschlag. Der Empfänger wird jedoch nicht mit merkwürdigen Zeichenketten verwirrt. Daher bevorzuge ich die PGP/MIME Variante.

Bei der Installation der GPG Suite wird unter Apple Mail das Plugin GPGMail installiert. Dieses Plugin sorgt für die Ver- und Entschlüsselung von eMails.

Unter "Mail" > "Einstellungen" findet Ihr den Reiter "GPGMail". Dort könnt Ihr zum Einen prüfen, ob GPG korrekt installiert ist. Außerdem könnt Ihr die Signatur und die Verschlüsselung für neue Mails grundsätzlich aktivieren. Besonders wichtig finde ich den Haken bei "Entwürfe wahlweise verschlüsseln/signieren". Ich rufe meine eMail per IMAPS ab. Damit meine eMails auf allen Geräten synchron sind, gleiche ich auch Entwürfe mit dem IMAP Server ab. Wenn ich nun eine verschlüsselte Mail schreibe, die jedoch zwischendurch im Klartext auf dem Server landet, hebele ich selbst die Verschlüsselung auf. Dieser Haken ist meiner Meinung nach unbedingt zu setzen.

Schreibt Ihr nun eine neue eMail von einem Account für den Ihr ein Schlüsselpaar generiert habt, erscheint im "Verfassen" Fenster oben rechts ein grünes "OpenPGP" Feld. Unter der Betreffzeile sind jetzt auch noch die beiden Buttons für Verschlüsselung (das Schloss) und Signatur (der Haken). Hier sind die Buttons in allen drei Zuständen (deaktiviert, nur signiert, verschlüsselt und signiert):

 

 

Wenn Ihr in den Plugin Einstellungen "Neue eMails verschlüsseln" und "Neue eMails signieren" aktiviert habt, so müsst Ihr Euch ab jetzt um nicht mehr viel kümmern. Wenn GPGMail für den Addressaten der Mail in Eurem Schlüsselbund einen öffentlichen Schlüssel findet, dann aktiviert sich automatisch die Verschlüsselung. Nach dem Klick auf "Senden" müsst Ihr nur noch Euer Passwort für den privaten Schlüssel eingeben und die Mail wird verschlüsselt und dann gesendet.

Sonderfall "Entwürfe verschlüsseln/signieren": Wenn Ihr auch die Entwürfe verschlüsselt, werdet Ihr während des Schreibens der Mail schon aufgefordert das Passwort Eures privaten Schlüssels einzugeben. Dies hat einen einfachen Grund. Apple Mail möchte Eure Mail gerne als Entwurf auf dem Server speichern und muss sie dehalb jetzt schon verschlüsseln. Zu Beginn hat mich dieses Pop Up Fenster etwas genervt. Mittlerweile hab ich mich aber daran gewöhnt.

Damit Thunderbird mit GPG Mails ver- und entschlüsselt muss das AddOn Enigmail installiert werden. Unter Enigmail gibt es einen Einrichtungsassistenten, der Euch dabei hilft Euer Schlüsselpaar mit dem eMailaccount zu verknüpfen.

Nachdem der Einrichtungsassistent fertig ist, solltet Ihr Euch dennoch durch die Einstellungen klicken. Unter "Einstellungen" > "Konten-Einstellungen" gibt es jetzt für jeden Account den Punkt "OpenPGP Sicherheit".

Zunächst muss natürlich OpenPGP für diesen Account aktiviert werden.

Ich habe die Key ID meines Schlüsselpaares manuell eingegeben, damit Enigmail immer meinen korrekten Schlüssel verwendet.

Im nächsten Block habe ich mich entschieden die Nachrichten standardmäßig zu unterschreiben und ich verwende PGP/MIME. Die standardmäßige Verschlüsselung habe ich deaktiviert. Diese führt nämlich dazu, dass Thunderbird von diesem Account keine unverschlüsselten Mails mehr sendet. Ohne einen öffentlichen Schlüssel des Kommunikationspartners geht nichts mehr. Nun ja, die meisten Mails sind nun mal (leider) unverschlüsselt.

Was PGP/MIME ist bzw. den Unterschied zu InlinePGP erkläre ich hier.

Die letzten drei Optionen (unverschlüsselte und verschlüsselte Nachrichten unterschreiben und Entwürfe verschlüsselt speichern) habe ich aktiviert. Ich sende einfach immer meine GPG Signatur mit um neue Kommunikationspartner darauf hinzuweisen, dass ich eine Verschlüsselung anbiete. Da ich meine eMails per IMAPS abrufe und mit allen Geräten synchron halte, speichere ich auch meine Entwürfe auf meinem IMAP Server. Wenn ich nun eine verschlüsselte Nachricht schreibe und diese zwischendurch im Klartext auf dem Server landet, hebele ich selber die Verschlüsselung aus. Deswegen lasse ich auch meine Entwürfe verschlüsseln.

Das Schreiben einer eMail ist jetzt genau so einfach wie vor der Installation von GPG und Enigmail. Wenn Enigmail für den Empfänger einen öffentlichen Schlüssel findet, wird die Nachricht automatisch verschlüsselt. Ansonsten wird sie nur signiert. Nach dem Klick auf den "Senden" Button muss nur noch das Passwort des privaten Schlüssels eingegeben werden. Fertig.

Ob die Nachricht verschlüsselt oder unterschrieben wird erkennt man wunderbar in der Statusleiste von Enigmail.

 

Die Einrichtung von Thunderbird unter Mac OS X ist fast identisch zur Einrichtung unter Windows. Zunächst müsst Ihr unter Thunderbird das AddOn Enigmail installieren. Unter Enigmail gibt es einen Einrichtungsassistenten, der Euch dabei hilft Euer Schlüsselpaar mit dem eMailaccount zu verknüpfen.

Bei mir gab es dabei ein Problem. Enigmail konnte die Installation der GPGSuite nicht finden und verweigerte die Zusammenarbeit. In diesem Fall brecht den Einrichtungsassistenten einfach ab. Geht dann auf "Enigmail" > "Einstellungen". Im Reiter "Allgemein" gebt Ihr unter "anderer Pfad" folgendes ein "/usr/local/MacGPG2/bin/gpg2" (ohne die Anführungszeichen). Danach könnt Ihr unter "Enigmail" > "Einrichtungsassistent" den Assistenten erneut starten.

Nachdem der Einrichtungsassistent fertig ist, solltet Ihr Euch dennoch durch die Einstellungen klicken. Unter "Extras" > "Konten-Einstellungen" gibt es jetzt für jeden Account den Punkt "OpenPGP Sicherheit".

Zunächst muss natürlich OpenPGP für diesen Account aktiviert werden.

Ich habe die Key ID meines Schlüsselpaares manuell eingegeben, damit Enigmail immer meinen korrekten Schlüssel verwendet.

Im nächsten Block habe ich mich entschieden die Nachrichten standardmäßig zu unterschreiben und ich verwende PGP/MIME. Die standardmäßige Verschlüsselung habe ich deaktiviert. Diese führt nämlich dazu, dass Thunderbird von diesem Account keine unverschlüsselten Mails mehr sendet. Ohne einen öffentlichen Schlüssel des Kommunikationspartners geht nichts mehr. Nun ja, die meisten Mails sind nun mal (leider) unverschlüsselt.

Was PGP/MIME ist bzw. den Unterschied zu InlinePGP erkläre ich hier.

Die letzten drei Optionen (unverschlüsselte und verschlüsselte Nachrichten unterschreiben und Entwürfe verschlüsselt speichern) habe ich aktiviert. Ich sende einfach immer meine GPG Signatur mit um neue Kommunikationspartner darauf hinzuweisen, dass ich eine Verschlüsselung anbiete. Da ich meine eMails per IMAPS abrufe und mit allen Geräten synchron halte, speichere ich auch meine Entwürfe auf meinem IMAP Server. Wenn ich nun eine verschlüsselte Nachricht schreibe und diese zwischendurch im Klartext auf dem Server landet, hebele ich selber die Verschlüsselung aus. Deswegen lasse ich auch meine Entwürfe verschlüsseln.

Das Schreiben einer eMail ist jetzt genau so einfach wie vor der Installation von GPG und Enigmail. Wenn Enigmail für den Empfänger einen öffentlichen Schlüssel findet, wird die Nachricht automatisch verschlüsselt. Ansonsten wird sie nur signiert. Nach dem Klick auf den "Senden" Button muss nur noch das Passwort des privaten Schlüssels eingegeben werden. Fertig.

Ob die Nachricht verschlüsselt oder unterschrieben wird erkennt man wunderbar in der Statusleiste von Enigmail.

Beim Empfang einer verschlüsselten eMail wird diese vom eMail Programm nicht geöffnet, bis Ihr nicht das Passwort für Euren privaten Schlüssel eingegeben habt. Danach ist die eMail lesbar. 

 

Unterkategorien