Verschlüsselung mit PGP



Grundlagen E-Mail

Wenn Du ein E-Mail versendest (beispielsweise an mich), dann sendest Du das E-Mail nicht direkt an mich, sondern erst mal über das Internet an Deinen E-Mail-Provider (Gmail, Gmx, ...). Die Verbindung ("Protokoll") heißt SMTP und ist meist verschlüsselt. Der E-Mail-Provider leitet Deine Mail dann über das Internet weiter zu meinem E-Mail-Provider. Dieser gibt das empfangene E-Mail verschlüsselt über die "Protokolle" SMTP oder POP verschlüsselt an meinen PC oder mein Handy weiter, wo es nun gelesen werden kann.

Da einige E-Mail Provider noch keine oder nur veraltete Verschlüsselung für die Verbindung zwischen den Servern anbieten, besteht die Gefahr, dass E-Mails hier unverschlüsselt oder nur schlecht verschlüsselt übertragen werden. Kriminelle und Geheimdienste haben hier leichtes Spiel und können die Verbindungen (E-Mails) mitlesen. Nun ist allerdings nicht nur die Verbindung zwischen den E-Mail Providern recht leicht lesbar, sondern auf den Servern der E-Mail Provider liegt die E-Mail ebenfalls im Klartext (unverschlüsselt) vor. Das wird beispielsweise genutzt, um auszuwerten, auf welche Werbung Du besonders ansprichst, damit Dein E-Mail-Provider mit Dir Geld verdienen kann. Außerdem kam im Rahmen der Veröffentlichung der Snowden-Leaks heraus, dass die NSA Zugriff auf die Datencenter von Google und Yahoo hat und daher alle Deine Mails lesen kann.

Ein zweiter wichtiger Punkt ist, dass die Absender von E-Mails ziemlich einfach gefälscht werden können. Im Prinzip kann jeder ein Mail mit einer beliebigen Absenderadresse* versenden. Das macht es Kriminellen sehr leicht - Einem Link in einer E-Mail eines guten Freundes wird man ja nicht misstrauen! Mit Viren verseuchte Seiten können Deinen Computer infizieren!



Grundlagen PGP

Die Lösung dazu ist PGP (Pretty Good Privacy, auch GPG, GnuPG, GNU Privacy Guard genannt). Bei PGP besitzt jeder zwei Schlüsseln, einen öffentlichen (Public Key) und einen privaten (Private Key). Der öffentliche Schlüssel wird verbreitet, indem er auf sogenannte Schlüsselserver hochgeladen, auf die eigene Webseite gestellt oder an E-Mail angehängt wird. Der Private Key muss geheim gehalten werden und verbleibt am eigenen Rechner.

Mit dem Private Key können Nachrichten unterschrieben werden. Das heißt, dass jeder, der den dazupassenden Public Key besitzt zweifelsfrei die Echtheit einer Nachricht feststellen kann. Auch eine Veränderung des Nachrichtentextes ist leicht feststellbar! Außerdem können mit Hilfe des Public Keys verschlüsselte Nachrichten entschlüsselt werden.

Mit dem Public Key können Nachrichten verschlüsselt werden, jedoch nicht mehr entschlüsselt. Zudem können Unterschriften damit überprüft werden.

Dieses Verfahren nennt man eine asymetrische Verschlüsselung - Ein Teil des Schlüsselpaares wird verwendet zum verschlüsseln, das andere zum entschlüsseln. "Verschlüsselt" man mit dem privaten Schlüssel, nennt man das eine Unterschrift, die mit dem öffentlichen Schlüssel "entschlüsselt", also überprüft werden kann. Ein verschlüsseltes E-Mail kann immer noch von jedem erstellt werden (Jeder kann einen Text mit dem Public Key verschlüsseln und per Mail versenden). Daher ist es für eine sichere Kommunikation notwendig, dass E-Mails sowohl verschlüsselt als auch signiert werden.

Trotzdem sind noch Metadaten (Also wann das E-Mail gesendet wurde, von wem es an wen gesendet wurde, die IP-Adresse des Absenders und damit von wo der Absender das Mail gesendet hat, den Betreff der Nachricht etc.) einfach lesbar. Weitere Informationen dazu gibt es hier.

Wie garantiert man die Echtheit eines öffentlichen Schlüssels?
(Der könnte ja auch gefälscht worden sein!)

Es ist nicht immer einfach möglich, den Empfänger einer E-Mail direkt zu treffen, um so seinen Schlüssel zu erhalten. Meist lädt man die Schlüsseln des Empfängers von einem sogenannten Key-Server herunter. Die Echtheit der Schlüsseln wird durch ein "Web of Trust", also ein "Vertrauensnetz" überprüft.
Das funktioniert so: Mit dem privaten Schlüssel können nicht nur E-Mails, sondern auch andere Daten signiert (unterschrieben) werden. Nun unterschreibt man die Schlüssel seiner Bekannten, die unterschreiben wieder die privaten Schlüssel ihrer Bekannten und so weiter. Nun entsteht ein Netz an Unterschriften, mit durch das man auch die Echtheit der von Servern heruntergelandenen Schlüsseln wildfremder Menschen feststellen kann. Das wird dann "Chain of Trust" genannt.
Natürlich kann man die Echtheit der Schlüsseln wildfremder Menschen nicht ganz zweifelsfrei bestimmen, aber wenn ein oder zwei recht kurze Ketten an Unterschriften existieren, dann kann sich zumindest halbwegs sicher sein.

(Mehr Info dazu, wie verbunden wir sind: Veritasium: The Science of Six Degrees of Separation (YouTube) und 2Veritasium: How Connected Are We? (YouTube))

Um Schlüssel zu signieren gibt es auch sogenannte Key Signing Parties.

Für Windows-User geht es hier weiter, Linux-User sparen sich den Schritt der PGP-Installation da die Software in der Regel bereits mit der Distribution ausgeliefert wird. Für Linux-User geht es hier weiter.



Weitere Info zum Thema:

PGP umfangreich und detailliert erklärt. Erst kürzlich entdeckt und schon davon begeistert
Youtube: Mailbox.org erklärt PGP
Free Software Foundation: Einrichtung unter verschiedenen Betriebssystemen
Youtube: Sempervideo erklärt PGP



* Das gilt auch für Faxe und bedingt für Telefonanrufe und SMS.