einklich.net > PGP-Anleitung

19. Aug. 2013

PGP-Anleitung

Version

Geschrieben wurde diese Anleitung ursprünglich für PGP 6.5.8 unter Windows 95. Auch alle Bildschirmfotos stammen aus dieser Version.

Die gängigen Public-Key-Verfahren wie PGP oder GPG unterscheiden sich allerdings voneinander nicht besonders stark. Das Prinzip ist bei allen gleich, und auch die Bedien-Oberflächen sehen ähnlich aus. Wer sich an PGP 6 unter Windows gewöhnt hat, wird auch mit GPGShell oder WinPT klarkommen – oder auch mit KGPG auf einem Linux-System mit KDE (an so einem schreibe ich das hier). Die Menüpunkte mögen anders heißen, aber man wird sich zurechtfinden.

Inhaltsverzeichnis

„Präambel“ | Vorstellung | Einführung | Download | Schlüsselverwaltung | Anwendung | Der Haken | Web Of Trust | Weiteres

nächster Abschnitt

„Präambel“

Warum und für wen ich diese Anleitung geschrieben habe

Das Recht auf Privatsphäre steht eigentlich jedem zu. Nicht umsonst gibt es schließlich das Brief- oder das Fernmeldegeheimnis, deren Verletzung wir alle als Eingriff in persönliche Angelegenheiten empfinden.

Um so erstaunlicher finde ich es, wie sorglos viele Leute persönlichste Dinge per E-Mail schreiben – ohne sich darüber im klaren zu sein, daß eine E-Mail nichts anderes ist als eine völlig offene Textdatei, die auf allen Systemen, die für den Transport zuständig sind, nicht nur gelesen, sondern sogar problemlos automatisch kopiert und archiviert werden kann. Eine elektronische Postkarte sozusagen.

Das läßt sich nicht vermeiden, aber etwas anderes kannst du machen: den Text so verschlüsseln, daß er nur mit bestimmten Schlüsseln wieder zu öffnen ist, für alle anderen Leute aber nur sinnlosen Zeichensalat darstellt. Programme zur Verschlüsselung gibt es genug, PGP ist nur eines unter vielen.

„Verschlüsseln? Ich habe doch nichts zu verbergen!“

Nichts? Vor niemandem? Sorry, aber das glaube ich nicht. Du hättest also nichts dagegen, wenn dein Chef (oder ein ungeliebter Kollege) sämtliche privaten E-Mails, die Du letztes Jahr geschrieben hast, mitgelesen, ausgedruckt, in einem dicken Ordner abgeheftet und diesen bei E-Bay zum Verkauf angeboten hätte? Technisch ist das überhaupt kein Problem. Vielleicht geschieht es sogar ;-)

Groschen gefallen? Natürlich behandelst du keine Staatsgeheimnisse. Es geht hier auch nicht um dunkle Geschäfte. Es geht schlicht und einfach um deine Privatsphäre!

Das Recht auf Privatsphäre ist ein Menschenrecht!

Daher habe ich diese Anleitung bewußt so formuliert, daß auch in Computerdingen weniger Beschlagene halbwegs schlau daraus werden können. Denn nicht nur Cracks haben ein Recht auf Privatsphäre im Internet. Aber die brauchen diese Anleitung sowieso nicht – für die gibts geeignetere Seiten!

Nicht nur für Männer …

Noch was, liebe Kinderinnen und Kinder: auf die (angeblich) frauenfreundlichere „inklusive Form“ verzichte ich aus Gründen der sprachlichen Einfachheit und, nun ja, Eleganz … es heißt nicht, daß PGP nichts für Frauen wäre. Mit Worten wie „Inhaber“ darf sich also auch jede Inhaberin angesprochen fühlen.

nach oben | voriger Abschnitt | nächster Abschnitt

Vorstellung

Was du mit PGP so alles anfangen kannst

Der Sinn von PGP besteht, wie gesagt, darin, deine Privatsphäre zu schützen – deine elektronische Korrespondenz soll privat bleiben, und Texte bzw. Dateien sollen vor Manipulation geschützt werden. PGP bietet dir dafür im Wesentlichen zwei Funktionen:

nach oben | voriger Abschnitt | nächster Abschnitt

Einführung

Verschlüsselung hat Tradition!

Das früheste mir bekannte Verschlüsselungssystem ist das von Julius Cäsar. Um seine Botschaften vor neugierigen Augen zu schützen, verschob er darin alle Buchstaben um drei Alphabet-Stellen nach hinten. Statt A schrieb er D, statt B E und so weiter. Schwierig genug für damalige Verhältnisse – für heutige Dechiffrier-Systeme wäre es natürlich eine leichte Übung.

Aber an diesem einfachen Beispiel erkennen wir schon die wichtigsten Grundbegriffe der Kryptographie:

Begriff Bedeutung allgemein an Cäsars Beispiel
Klartext die Information, die verschlüsselt werden soll z.B. occultandum (dt: „das zu Verbergende“)
Algorithmus das zur Verschlüsselung grundsätzlich angewendete Verfahren alphabetische Rotation
Schlüssel die Vorschrift, nach der der Algorithmus im einzelnen vorgeht drei Zeichen vorwärts
Kryptogramm die fertig verschlüsselte Information rffxowdqgxp

(Vigenère hat später das Verfahren der alphabetischen Rotation weiterentwickelt – das relativ sichere Vigenère-Verfahren war 200 Jahre lang kryptographischer Standard.)

Diese Verfahren haben eine große Schwäche: Der Schlüssel, mit dem verschlüsselt wird, ist auch zum Entschlüsseln zu verwenden (das nennt man ein „symmetrisches Verfahren“) und muß daher peinlich geheim gehalten werden, denn sonst wären auf einen Schlag alle Botschaften lesbar. Zur Weitergabe des Schlüssels an seine Korrespondenzpartner mußte der große Imperator also zuverlässige Boten haben oder sich selbst hinbemühen.

Asymmetrische Verschlüsselung

Die Menschheit hat in den letzten 200 Jahren nicht nur komplexere Schlüssel entwickelt, sondern auch ein Verfahren, das einem den Geheimtransport von Schlüsseln erspart, weil ein solcher neuartiger Schlüssel immer aus zwei Teilen besteht: einem öffentlichen (public key), mit dem man nur verschlüsseln kann, und einem geheimen (private key), den man zum Entschlüsseln benötigt. Details zum Rechenverfahren …

Auch PGP arbeitet nach diesem sicheren Verfahren.

Historische und heutige Kryptographie

Betrachten wir die einige kryptographische Verfahren mal an einem einfachen Beispiel:

1. Die zu verschlüsselnde Nachricht

Diese Mitteilung ist nicht fuer jedermanns Augen bestimmt.

Bitte vertraulich behandeln und nach dem Lesen sofort vernichten.

2. Verschlüsselt nach dem Cäsar-Verfahren

Glhvh Plwwhloxqj lvw qlfkw ixhu mhghupdqqv Dxjhq ehvwlppw.

Elwwh yhuwudxolfk ehkdqghoq xqg qdfk ghp Ohvhq vriruw yhuqlfkwhq.

Nachteil: Klartext- und Kryptobuchstaben sind einander fest zugeordnet – ein E ist immer ein H, ein M immer ein P und so weiter. Mit heutigen Methoden wäre das sehr leicht zu knacken.

3. Verschlüsselt nach dem Vigenère-Verfahren

Schlüssel: buschwindroeschen

Ecwul Uvwksmdwuk jml uekuw tywt nreyjohjvf Rikwp frtnaotp.

Favai wyjvywcyltv tgoeaeydp qvq eogz kiz Fwulj frwcvl cieocujaav.

Vorteil: Die Zuordnung der Buchstaben ist nicht mehr fest. Das „e“ im ersten Wort ist erst als „w“ und dann als „l“ verschlüsselt worden. Nachteil: Die Wortgrenzen sind immer noch erkennbar, der Inhalt läßt sich möglicherweise hier und da erraten.

4. Verschlüsselt mit PGP

mit meinem Schlüssel #5D75A61B

-----BEGIN PGP MESSAGE-----

hQQOA2LvdFB/YDlREA/9EBVggsHNtRI7QhQOEzAbGONtqKABxAkLUu5cn8lTsFfh
UjTCmRQFe2feKqLQBdYj0iCAeeDCVv7tI5TvEyLR30E5PxmOGSB32vZR0FVIvkw+
pAFlLTcmYfnomA1p2RAaUB3HeL5TW1uO2JJlbPKUq+H5NTNaMeoxYBDlTi+nQmc6
eAwG9Ltut9RcKSI04ozpMEFAogLIEmZX+DzvDTD2Ock0goKoTjAs6ylh6j9ad/3g
ahOaredGJvWC96H7fsboUmbxswrRhBF02DqUduCg5s9NsgsHbGyEupWL99oBPFx4
IfyPTNnbew4sO345dgrsDOFvRzWpmiPpU6P5M2BIROua+hmw089wSAJQZotAsazI
lWqe3JG2ZPfA/sVoKwbUDMWewN/S5/ycfvc3wcFjQJOx5X0DHksO+SmmcfX3SzEh
y4Nes+7VD2xHAGBn/BSZYUxZ1wuD6KGbLsfa7yrSSvhHa+46sqrqinIFxsQlu82f
uf5MjCU79cHAP5Uby9n+xbrDXXY1RzRegijeTW9/WsIV5MEqRvUF2aEWexD76kkK
qLg/5Q+u4w8R40QQKL2OY/lg3c2hna4scTQs/ete7SUjiCBXMpt9DwaoLwLA8f7Q
OGCYGdZIBIyqZXLSS+9pjCzgui7V3ydgZAcM4StE8Gmje7vKlB178nmFiQ1jsjAP
/0GIsvVB/N71Lq7MuBh0Adhcg6lnv9EL5NrP81ysbULFTpKNPzvmZVQbUwaaiWid
B+ivmA3qdoBXsNoo8bmRiz/HbDJPDH58pmi7rdtAp9efdkS6TyowVPeDmqYJ/eH2
H4beDhkFiMp14ZgicJ/IYQZ6trFRQFC2RS3gGXEstdPqRDOqPft2HmAyVLii7Zg5
JKhkMx0YwvUK45VbvIQzK7FBnoR4GiZDTyOl7kunJ/moxftpu4adk1f/TODxgXYP
QViZG+wmShQGVPG+FJfb6s2tiDce4D6nYYhuhn2uKiUZccjF8mkx6Y0oIYpkqK+7
QKqW68mtOua75ow+IV6t0eXSo68eHyVwj5iPFmM5/hY8+/fK0WdS4kRc9Nlp6qQ9
QkQihKrqKaV/xv5ESZ/52n5TS8F4yn+1q1z+/WaJd7ol1hrNUng4i53uXudHA6RU
5VZJyQZuzhOUpztEU0/HxNqPZAfYGSU10p9dTcHAUMH3VLKMBOKnUPPLIz+IS15b
gNaVO/Bixf/ppePtSc4LM2Denf72hmRK3D8PnEblP5ZVCbplgQTCqS6zQA3lB275
C4PfPUGcLRwsVdpmwCDCy1TFUfDg6DAaGYZRA53pd1NIpzWhqDPtgfCmgFbVapEf
PWFL7WMkzhuvKgIbvJ8421EU9XQBEfjUwQmFwXucPgXFyYodjpYPIuH7OL0QZSYL
j4cpkiI4J2nPaYmmzTY0JLeRr2fk6/GI0ejm0IYtFATlBmUKFDPHgapl2E3xHe8N
69a515/8ax01uMfMR6tBCnnyWlaFVzLwfglxgYYSWMpLX1PMEfuWlHYXw0pTg+DC
dxGL1aHjSHT75gZwREb+UrN+LvDXAnhlGIbTUII=
=7Wr6
-----END PGP MESSAGE-----

Du siehst: PGP liefert den „konfusesten“, aber auch den größten Output. Das hat technische Gründe – in dem Zeichensalat steckt nämlich nicht nur die Nachricht selbst drin, sondern auch ein kompletter weiterer Schlüssel.

Aber auf die technischen Details des Verfahrens will ich hier nicht weiter eingehen, Dich interessiert ja mehr die Anwendung. Gehen wir also gleich mal in die Praxis.

nach oben | voriger Abschnitt | nächster Abschnitt

Download

PGP ist gewissermaßen das „Original“, aber mittlerweile kommerzielle Software. Als freie Alternative gibt es GPG oder GnuPG. Die Systeme sind kompatibel.

https://www.datenschutzzentrum.de/selbstdatenschutz/internet/pgp/links.htm
Umfassende kommentierte Sammlung von PGP- und GPG-Software.
http://gnupg.org/download/index.de.html
Website von GnuPG
Enigmail
Wer Thunderbird als Mailprogramm nutzt, kann sich mit der Erweitung Enigmail viel Arbeit sparen. Damit klinkt sich die Verschlüsselung nahtlos in Thunderbird ein und macht das Arbeiten damit ziemlich komfortabel. PGP oder GPG müssen trotzdem installiert sein.

nach oben | voriger Abschnitt | nächster Abschnitt

Schlüsselverwaltung

Ich gehe im Folgenden einfach mal davon aus, daß du PGP heruntergeladen und installiert hast. Dabei hast du wahrscheinlich auch schon einen eigenen Schlüssel erzeugt. (Wenn nicht, kannst du dich hier schlau machen, wie die Schlüsselerstellung geht.) Was du damit genau anfangen kannst, erfährst du in den nächsten fünf Minuten.

„public key“ und „private key“

Überraschung: Dein Schlüssel ist eigentlich gar kein Schlüssel, sondern genaugenommen ein Schlüsselpaar, das aus einem „private key“ und einem „public key“ besteht:

Der public key ist für alle Aktionen zuständig, die jedermann machen darf:

Der private key (auch secret key genannt) ist für alle Aktionen zuständig, die nur du machen kannst:

Ich werde mich auch weiterhin an die englischen Begriffe halten, weil sie allgemein üblich sind.

Ein private key und sein public key bilden ein Paar wie Schlüssel und Schloß: Ein private key kann immer nur die Nachrichten entschlüsseln, die auch mit dem dazu gehörenden public key verschlüsselt wurden. Wenn ein private key verlorengeht, ist der dazugehörige public key nicht mehr zu gebrauchen. Und umgekehrt.

Wie sieht so ein Schlüssel aus?

Die Schlüssel sind eigentlich (riesengroße) Zahlen, werden aber als Textdateien dargestellt und können daher problemlos gespeichert oder verschickt werden, zur Not auch mal ausgedruckt und eingescannt.

Schlüssel erstellen, löschen, verwalten, exportieren, importieren

Für die Schlüsselverwaltung ist ein Programm namens PGPkeys zuständig.

Gleich merken: Alle PGP-Funktionen erreicht man am einfachsten über das Icon in der Taskleiste rechts unten, das ein Bügelschloß darstellt (orangefarbener Kreis im Bild unten). Wenn man draufklickt, klappt ein Menü auf. Ich werde es im Folgenden einfach das „Taskleistenmenü“ nennen.

TaskleistenmenüDas PGP-Symbol in der Taskleiste

PGPkeys anwählen, und das Schlüsselfenster erscheint:

PGPkeys-Fenster Die Schlüsselverwaltung PGPkeys

Bei einem frisch installierten PGP finden sich da schon eine ziemliche Menge Schlüssel diverser Mitarbeiter des Vertreibers. Die kann man getrost löschen, wenn man nicht zufällig mit denen im E-Mail-Kontakt steht. (Dazu einfach alle zu löschenden Schlüssel mit gehaltener Strg-Taste nacheinander anklicken und dann Entf drücken oder Edit → Delete wählen.)

Aber hier findest du auch deinen eigenen Schlüssel, der bei der Installation von PGP normalerweise gleich erstellt wird. Den solltest du natürlich drin lassen … ja, und wie verschickst du den jetzt an andere Leute?

Schlüssel exportieren

Da hast du verschiedene Möglichkeiten:

Und wie bekommst du nun umgekehrt fremde Schlüssel in dein Verzeichnis? (den „Schlüsselring“ – der heißt wirklich so!)

Schlüssel importieren

Der neue Schlüssel erscheint nun im Fenster von PGPkeys und ist sofort benutzbar. Ohne Anmeldefrist, ohne Grundgebühr. Wie das geht, erfährst du im nächsten Abschnitt.

nach oben | voriger Abschnitt | nächster Abschnitt

Anwendung

Manche E-Mail-Programme besitzen entweder ein eingebautes PGP oder ein Plug-In, das die Benutzung eines „externen“ PGP innerhalb des Mail-Programms ermöglicht. Dann mußt du dich in der Dokumentation deines E-Mail-Programms schlau machen, wie es funktioniert – das kann ich dir hier leider nicht erklären, weil es für jedes Programm anders ist.

Außerdem gibt es mehrere Möglichkeiten, eine Mail mit PGP zu verschlüsseln. Die heute zeitgemäße Methode nennt sich PGP/Mime und hat den Vorteil, daß nicht nur der Mailtext verschlüsselt wird, sondern automatisch auch angehängte Dateien. Auch aus anderen technischen Gründen ist es stabiler. Es funktioniert aber nur dann, wenn sowohl der Absender als auch der Empfänger Software benutzen, die dieses Verfahren beherrscht. Meine Empfehlung dafür ist im Zweifelsfall Thunderbird (das Mozilla-Mailprogramm) mit dem Plug-In Enigmail.

Ich werde jetzt jedoch die einfache Methode beschreiben, „zu Fuß“ mit dem älteren Standard PGP/Inline. Das geht in jedem Fall, auch mit E-Mail-Programmen, an die sich PGP nicht andocken kann. Und sogar dann, wenn man ganz ohne Mailsoftware arbeitet, zum Beispiel auf einer Web-Oberfläche wie etwa GMX. Und dank der genialen „Current-Window“-Funktion von PGP ist es auch gar nicht schwer.

Mails verschlüsseln

Nehmen wir mal an, du hast gerade eine Mail fertig geschrieben und willst sie jetzt verschlüsseln, bevor du sie abschickst bzw. in den Ausgangskorb legst. Dann geht das so:

  1. Das „Schreibfenster“ muß noch geöffnet sein, die Mail darf also noch nicht versandfertig im Ausgangskorb liegen, und der Cursor blinkt irgendwo im Text deiner Mail.

  2. Wähle im Taskleistenmenü den Punkt Current Window → Encrypt. PGP markiert jetzt den Text in deinem Schreibfenster, schneidet ihn aus und fragt dich dann, mit welchem Schlüssel das denn jetzt verschlüsselt werden soll:

    Key Selection-FensterSchlüssel zum Verschlüsseln auswählen (du kannst mehrere auswählen)

    Überleg dir, wer den Text hinterher wieder lesen können soll (du selbst und der Empfänger, normalerweise) und zieh die Schlüssel dieser Leute ins untere Teil-Fenster (unter „Recipients“).

  3. Klick auf OK. PGP rechnet kurz und baut dann das fertige Kryptogramm in dein Schreibfenster ein.

  4. Verschicke den Buchstabensalat als ganz normale Mail, aber ohne innerhalb des Kryptogramms noch etwas zu ändern! Schon ein neuer Zeilenumbruch macht das Kryptogramm komplett unbrauchbar.

Wenn du die Mail mit mehreren Schlüsseln verschlüsselst, bedeutet das, daß jeder einzelne der Empfänger sie entschlüsseln kann. Ein Tipp dazu …

Mails entschlüsseln

Nun gehen wir vom umgekehrten Fall aus: Du hast eine verschlüsselte Mail bekommen und möchtest sie lesen.

  1. Das Fenster, das das Kryptogramm enthält, muß das „aktive Fenster“ sein. Dazu einfach einmal hineinklicken.
  2. Wähle im Taskleistenmenü den Punkt Current Window → Decrypt & Verify (den kennst du ja schon vom Schlüssel-Importieren). PGP kopiert den Text aus dem Fenster, erkennt, daß es ein Kryptogramm ist, und zeigt dir, mit welchen Schlüsseln das verschlüsselt worden ist. Und wenn du einen passenden private key hast, fragt es dich nach der Passphrase.
  3. Gib die Passphrase ein. Achte dabei auch auf Groß-/Kleinschreibung und Leerzeichen – sie muß genau mit der übereinstimmen, die du bei der Herstellung deines Schlüssels eingegeben hast!
  4. Ein Fenster mit dem Klartext erscheint (bzw. eine Fehlermeldung, wenn du dich vertippt hast *g*). In diesem Fenster Copy to Clipboard anklicken – der Klartext ist jetzt in der Zwischenablage und kann überall eingefügt werden.

Nimm irgendeinen Text, meinetwegen diesen Absatz, und probiers ein paar Mal. Es ist wirklich nicht schwer!

nach oben | voriger Abschnitt | nächster Abschnitt

Der Haken

Es gibt tatsächlich einen Pferdefuß – in einem Punkt ist das PGP-System leicht angreifbar, aber auch leicht zu schützen, wenn man weiß, wie.

Dieser Abschnitt wird etwas länger, aber bitte lies ihn trotzdem durch. Du wirst verstehen, wieso dieser Schwachpunkt unvermeidbar ist und wie du dich dagegen absichern kannst.

Ich habe oben gesagt, daß der Vorteil des public-key-Verfahrens darin liegt, daß man seinen Verschlüsselungs-Schlüssel, also den, den die anderen bekommen, nicht geheimhalten muß. Der Nachteil ist die Kehrseite davon: Ein PGP-Schlüssel ist ganz einfach zu fälschen! Er ist ja nur an seiner Bezeichnung, seiner User-ID, erkennbar, die aus Name und E-Mail-Adresse des Schlüsselinhabers besteht. Und diese beiden Angaben werden bei der Schlüsselherstellung ganz normal eingetippt. Jeder kann daher Schlüssel unter einem beliebigen Namen erstellen. Daher kannst du dich zunächst einmal nicht darauf verlassen, daß ein Schlüssel wirklich echt ist – außer du warst bei der Erzeugung dabei und hast ihn selbst transportiert.

Das Problem: Schlüssel-Echtheit

So stellen sich Anja und Martin ihre sichere Kommunikation vor. Quadrat=private key; Kreis=public key; rot=Martins Schlüssel; grün=Anjas Schlüssel, Pfeile: „Laufrichtung“ der Mails.

Stellen wir uns zwei Leute vor, Anja und Martin. Die wollen sich PGP-verschlüsselte Mails schicken.

Anja erzeugt also einen Schlüssel, den wir mal Anja-1 nennen, und schickt ihn per Mail an Martin.

Martin erzeugt auch einen – Martin-1, den er per Mail an Anja schickt.

So weit die Theorie. Die Schlüssel wurden abgeschickt und liegen auf irgendeinem Mailserver im Netz. Und jetzt wirds spannend.

Der „Man-in-the-middle“-Angriff

Der Man-in-the-middle kann die Kommunikation unbemerkt auftrennen

Nehmen wir mal an, bei Martins E-Mail-Provider sitzt jemand, der alle Mails von und für Martin abfängt und speichert, um Informationen über Martins Privatleben zu sammeln. Der sieht jetzt Martins Mail mit dem Schlüssel drin und denkt sich: „Hoppla, der will seine Mails jetzt geheimhalten? Na warte!“

Weil dieser Mensch (in Wirklichkeit wird das natürlich ein automatisch arbeitendes Softwareprogramm sein, aber bleiben wir mal dabei) sehr raffiniert ist, blockiert er den Weitertransport der Mail (mit dem Schlüssel) an Anja, startet dann PGP auf seinem Computer und erzeugt einen neuen Schlüssel, wobei er als Benutzerkennung Martins Namen und Mailadresse eingibt (die kennt er ja aus Martins Schlüssel). Nennen wir dieses komplett neue Schlüsselpaar mal Martin-2. In Martins Mail an Anja ersetzt er den originalen Martin-1-Schlüssel durch den neuen Martin-2 und schickt diese geänderte Mail an Anja. Und Anja freut sich – sie hat wie verabredet von Martin eine Mail gekriegt, in der ein Schlüssel war, der Martins Name und Adresse trägt. Daß der Schlüssel, den sie bekommen hat, nicht der ist, den Martin erzeugt hat, ahnt sie nicht!

Dasselbe macht der Fälscher natürlich auch mit Anjas Schlüssel.

Und jetzt mach dir mal klar, wer welche Schlüssel hat. Der „Man-in-the-middle“ (so heißt dieser Fälscher im PGP-Jargon) hat nämlich jetzt schon die komplette Verschlüsselung ausgehebelt!

Wie dieser Angriff funktioniert

Machen wir es uns an einem Beispiel klar: Anja schickt eine (wahrscheinlich sehr persönliche) Mail an Martin, die sie natürlich mit dem Schlüssel Martin-2 verschlüsselt – einen anderen Schlüssel hat sie ja nicht. Der Fälscher fängt die Mail ab, entschlüsselt sie (das kann er ja – er hat den private key zu Martin-2), archiviert den Klartext, verschlüsselt ihn wieder mit Martin-1 (er tut also Martin gegenüber so, als wäre er Anja) und schickt das an Martin weiter. Der kann das entschlüsseln, und alles scheint in Ordnung zu sein – keiner der beiden merkt, daß noch ein Entschlüsselungs-Verschlüsselungs-Vorgang dazwischen liegt!

Weil das natürlich auch andersherum geht (mit Anjas Schlüsseln), ist die gewollte Geheimhaltung komplett im Eimer.

Schlüssel-Integrität ist der Dreh- und Angelpunkt!

Schlüssel prüfen Wenn Martin und Anja ihre Schlüssel überprüfen, merken sie sofort, daß die Schlüssel unterwegs gefälscht wurden – der public key in Anjas Schlüsselpaar stimmt nicht mit dem überein, den Martin bekommen hat, und umgekehrt!

Ich hoffe, du bist gedanklich einigermaßen mitgekommen. Fazit: Es kommt alles darauf an, daß die beiden zuallererst überprüfen, ob der Schlüssel, den sie vom anderen erhalten haben, auch wirklich der ist, den der andere erzeugt hat.

Daß man diese Prüfung nicht per Mail, sondern auf einem anderen Kommunikationskanal vornimmt, sollte klar, sein, oder? Sonst kann der Man-in-the-middle ja wieder dazwischenfunken …

Das müssen sie natürlich nicht jedes Mal machen; es genügt, einen per Mail empfangenen Schlüssel einmalig auf seine Echtheit zu prüfen. Denn daß der Man-in-the-middle direkt auf Anjas Rechner einen bereits überprüften Schlüssel austauschen kann, ist sehr unwahrscheinlich.

Wie oft ein Man-in-the-middle-Angriff vorkommt, weiß ich nicht. Aber darauf kommt es überhaupt nicht an – dieser Angriff ist die bei weitem leichteste und billigste Methode, ein public-key-Verfahren auszuhebeln. Es ist systembedingt der größte Schwachpunkt von PGP, doch wenn du das Thema ernst nimmst, dann hast du dieses Loch schon gestopft. PGP ist sicher, wenn man richtig damit umgeht.

Die Echtheit von Schlüsseln spielt bei PGP also eine (genauer: die) entscheidende Rolle. Gewöhn dir an, niemals einen Schlüssel zu benutzen, von dessen Echtheit du nicht überzeugt bist!

Davon überzeugt sein kannst du auf verschiedenen Wegen, der beste ist die persönliche Überprüfung. Ein anderer ist das Web of Trust; dazu kommen wir gleich.

Und jetzt willst du bestimmt wissen, wie man das machen kann.

Echtheit von Schlüsseln überprüfen

Das Beste wäre natürlich: die beiden besuchen sich, erzeugen ihre Schlüssel gemeinsam und nehmen sie (auf einem Datenträger, den sie währenddessen nie aus den Augen lassen) mit nach Hause. Eine weitere Möglichkeit wäre: die beiden schicken sich die Schlüssel zwar per Mail, rufen sich aber dann sofort an und buchstabieren sich gegenseitig die Textversionen ihrer Schlüssel vor. Viel Spaß auch dabei! „Groß Q klein L klein A Vier Klein Ypsilon Zwei Fünf Klein X Klein f …“

Dein Schlüssel hat einen Fingerabdruck!

Bißchen mühsam, meinst du? Stimmt, und deshalb hat man sich bei PGP was Feines ausgedacht: den Fingerprint. Das ist eine Art Quersumme, die aus dem Schlüssel errechnet wird und ziemlich garantiert weltweit nur auf deinen Schlüssel paßt (theoretisch können zwar zwei unterschiedliche Schlüssel mit demselben Fingerprint existieren, aber es ist praktisch unmöglich, gezielt einen funktionierenden Schlüssel mit einem bestimmten Fingerprint zu erstellen). Diesen Fingerprint kann du du dir anzeigen lassen, indem du in PGPkeys einen Schlüssel markierst und dann im Keys-Menü den Punkt Key properties auswählst:

Key Properties-FensterSchlüssel-Eigenschaften – da siehst du den „Fingerabdruck“ eines Schlüssels

Einklich ist der Fingerprint eine Folge von Hexadezimalzahlen, aber es gibt seit PGP 6.5 eine Erleichterung: Damit man sich nicht diese kryptische Zeichenfolge durchlesen muß (auch das ist ja mißverständlich – hat er jetzt „B“ oder „D“ gesagt?), ersetzt PGP auf Wunsch diese Zahlen durch englische Wörter (man hat einfach jeder zweistelligen Zahl willkürlich ein Wort zugeordnet), die mündlich natürlich viel leichter zu vergleichen sind. Umschalten kannst du das mit dem Ankreuzkästchen „Hexadecimal“

Probier es mal aus: Den Hexzahlen-Fingerprint meines DH/DSS-Schlüssels findest du hier. Die dazugehörigen Wörter siehst du oben. Stimmts noch?

Achtung: Die Angabe meiner Fingerprints auf dieser Website hier ist keine 100%-ige Sicherheit, da die Site natürlich theoretisch von meinem Webhoster manipuliert worden sein kann!

Geh auf Nummer Sicher! Und zwar immer!

Also, wenn Martin jetzt Anja anruft und ihr den Fingerprint seines Martin-1-Schlüssels und die Schlüssellänge vorliest, wird Anja feststellen, daß sie einen komplett anderen Fingerprint vor sich hat – nämlich den von Martin-2! Und damit fliegt der Schwindel sofort auf – die beiden wissen, daß die Schlüssel, die sie erhalten haben, nicht echt sind. Und um diese Sicherung zu umgehen, müßte der Fälscher schon die Telefonleitung anzapfen und einen ziemlich guten Stimmenimitator anstellen. (Deswegen ist es auch üblich, daß der Empfänger des public key den Inhaber des private key anruft und sich von diesem den Fingerprint vorlesen läßt. So ist am besten gesichert, daß man auch den Richtigen an der Strippe hat!)

Schlüssel unterschreiben

Wenn du dir (hundertprozentig!) sicher bist, daß ein Schlüssel echt ist, solltest du ihn elektronisch unterschreiben. Was hat es mit dieser Unterschrift auf sich?

SchlüsselunterschriftenUnterschriften unter einem Schlüssel

Eine Unterschrift ist, bei PGP wie im wirklichen Leben, die Bestätigung der Echtheit – mehr dazu erfährst du im nächsten Kapitel. Im Bild oben siehst du Sebastians Schlüssel und zwei Unterschriften darunter – eine von ihm selbst, eine von mir. Die Selbstunterschrift wird übrigens bei der Schlüsselerstellung vorgenommen.

Solange ein Schlüssel aber nur mit sich selbst unterschrieben wurde, ist er noch nicht glaubwürdig (das ist so, als würdest du bei der Paßkontrolle keinen Paß vorlegen, sondern einen von dir selbst unterschriebenen Zettel, auf dem steht, daß du wirklich so heißt). PGPkeys setzt deshalb erst einmal einen grauen Punkt in die „Validity“- (Gültigkeit-) Spalte – der Schlüssel gilt noch als fragwürdig.

Echtheit muß immer von einem glaubwürdigen Dritten bestätigt werden – und niemand ist für dich (anders als für den Zollbeamten) glaubwürdiger als du selbst! Unterschreib daher den fremden Schlüssel jetzt noch mal mit deinem eigenen private key:

  1. Markiere den Schlüssel, den du unterschreiben willst
  2. Wähle Keys → Sign
  3. Wähle deinen Schlüssel aus (mit dem willst du ja unterschreiben)
  4. Gib deine Passphrase ein
  5. Fertig

Jetzt akzeptiert PGP den fremden Schlüssel als glaubwürdig (grüner Punkt). Das System prüft nämlich deine Unterschrift unter dem fremden Schlüssel an Hand deines public key und stellt fest, ob die Unterschrift gilt oder nicht.

Und weil Unterschriften mit dem public key geprüft werden, kann das auch jeder andere, der deinen public key hat. Und dadurch wird eine tolle Sache möglich: das Web of Trust. Ich möchte dir mal kurz erzählen, was das ist und wie es funktioniert. Wenn dir schon der Kopf raucht, kannst du das überspringen und hier weiterlesen.

nach oben | voriger Abschnitt | nächster Abschnitt

Das Web of Trust (Exkurs)

Auf fremde Unterschriften vertrauen

Mit der Unterschrift bestätigst du die Echtheit des Schlüssels nicht nur dir selbst, sondern du kannst sie auch anderen bestätigen. Oder dir die Echtheit anderer Schlüssel von anderen bestätigen lassen.

Guck dir noch mal das Schlüssel-Unterschreiben an: Wenn du im Unterschreiben-Fenster einen Haken bei „Allow signature to be exported“ machst, wird deine Unterschrift immer mitgeschickt, wenn du den Schlüssel an jemanden weiterleitest. Dieser kann, wenn er deinen public key besitzt, die Echtheit deiner Unterschrift zweifelsfrei feststellen und weiß damit, daß du den Schlüssel geprüft hast – er braucht ihn nicht noch einmal zu überprüfen. Diese Konstruktion gegenseitigen Vertrauens bei der Schlüsselunterzeichnung nennt man im PGP-Jargon „Web of Trust“ (auf deutsch: „Vertrauensnetz“). Man verläßt sich auf die Unterschriften anderer, sofern man sie mit dem dazugehörigen public key prüfen kann.

Hier hast du ein kleines Beispiel:

Arthur Birthe Christoph Doris Erkan
erzeugt seinen Schlüssel und schickt ihn an Birthe prüft Arthurs Schlüssel, schickt Arthurs Schlüssel unterschrieben weiter schickt Arthurs Schlüssel unterschrieben weiter; dessen Echtheit ist von Birthe glaubhaft bestätigt schickt Arthurs Schlüssel unterschrieben weiter; dessen Echtheit ist von Christoph bestätigt, der sich auf Birthes Unterschrift verlassen hat Arthurs Schlüssel ist von Doris bestätigt, die sich auf Christophs Unterschrift verlassen hat, der sich auf Birthes Unterschrift verlassen hat
  erzeugt ihren Schlüssel und schickt ihn an Christoph prüft Birthes Schlüssel, vertraut auf Birthes Unterschrift    
    erzeugt seinen Schlüssel und schickt ihn an Doris prüft Christophs Schlüssel, vertraut auf Christophs Unterschrift  
      erzeugt ihren Schlüssel und schickt ihn an Erkan prüft Doris’ Schlüssel, vertraut auf Doris’ Unterschrift

Arthur hat nur mit Birthe einen Fingerprint-Vergleich gemacht, dennoch ist sein Schlüssel auch bei Erkan garantiert echt, weil alle anderen sich aufeinander verlassen und die Schlüssel ihres jeweiligen Vorgängers überprüft haben. Beispiel: Doris muß mit Christoph einen Fingerprint-Vergleich machen, bevor sie weiß, daß Christophs Unterschrift unter Arthurs Schlüssel echt ist.

Wenn Arthur jetzt einen Schlüssel von Simon erhält und ihn unterschrieben an Erkan schickt, muß Erkan mit Simon keine Fingerprint-Kontrolle machen, wenn er Arthurs Unterschrift vertraut. Arthurs echten Schlüssel hat er ja.

Das ist nur ein winzig kleines Beispiel, aber unter den Zigtausenden PGP-Benutzern funktioniert es genauso.

Wie sehr du den Unterschriften eines bestimmten Benutzers vertraust, kannst du in den Eigenschaften seines Schlüssels in deinem Schlüsselring einstellen. Der Trusted-Schieber ist dafür da.

Wenn du diesen Schieber auf „Trusted“ stellst und dann von irgendwoher einen Schlüssel erhältst, der mit diesem bei dir „getrusteten“ Schlüssel unterschrieben wurde, dann wird der neue Schlüssel auch ohne deine Unterschrift auf „valid“ gesetzt – es gibt ja eine glaubwürdige Bestätigung der Echtheit, nämlich die Unterschrift mit dem Schlüssel, dem du vertraust!

Wenn du einen Schlüssel genau geprüft und dann exportierbar unterschrieben hast, garantierst du dessen Echtheit. Auch anderen gegenüber, daher sei hier bitte doppelt vorsichtig. Ebenso, wie du mit dem Trusted-Schieber vorsichtig sein solltest. Vertrau nur den Unterschriften von Leuten, von denen du weißt, daß sie das Web of Trust ernst nehmen.

Eine gute Idee ist es, einen Schlüssel mit deiner Unterschrift dem Besitzer zurückzuschicken. Der kann dann deine Unterschrift importieren – viele Leute sammeln Unterschriften unter ihre Schlüssel.

nach oben | voriger Abschnitt

Was PGP sonst noch kann

Texte unterschreiben

Wenn du eine Nachricht im Klartext schreibst, damit sie jeder lesen kann, aber sicherstellen willst, daß keiner sie ändert bzw. jeder Empfänger prüfen kann, ob die Nachricht wirklich von dir stammt, kannst du sie mit deinem private key unterschreiben (wie beim Verschlüsseln, nur jetzt Sign statt Encrypt wählen) – das erzeugt lesbaren Klartext mit einer digitalen Signatur darunter, die wie ein kleines Kryptogramm aussieht. Jeder, der deinen public key hat, kann die Unterschrift prüfen (das geht genauso wie Entschlüsseln – Decrypt & Verify). Probieren wir es doch mal aus:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dieser Text hier wurde mit meinem DH/DSS-Schlüssel unterschrieben.

Du kannst daher, wenn du meinen public key in deinem Schlüsselring
hast, die Unterschrift prüfen und damit die Echtheit des Textes
feststellen - also, dass dies wirklich der Text ist, den ich
geschrieben habe.

Leider geht das nicht im Netscape Navigator, weil er beim Kopieren
Leerzeichen an die Zeilenanfänge baut - aber mit dem Internet
Explorer geht's hervorragend.

Markiere den kompletten Textblock, kopiere ihn in die Zwischenablage
und wähle im Taskleistenmenü "Clipboard - Decrypt & Verify".

Dann erscheint ein Fenster, das den verifizierten Text enthält
und dir mitteilt, wann der Text von welchem Schlüssel
unterschrieben ist und ob die Signatur in Ordnung ist
("PGP Signature Status: good").
- --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkottIAACgkQXL7B/111phuNhwCg327mKdJs+BKCZY/aqAWR3lCo
/t8An1p+2M3M8tQVh1QPsDt10hims6P5
=Yi1l
-----END PGP SIGNATURE-----

Die Unterschrift wird aus deinem private key (deshalb mußt du, wenn du etwas unterschreibst, auch immer deine Passphrase eingeben) und dem Text selbst erzeugt. Jede nachträgliche Änderung des Textes, auch nur ein zusätzlicher Leerschritt, zerstört sofort die Übereinstimmung mit der Unterschrift. PGP meldet „Signature Status: bad“ (Unterschrift ungültig).

Signatur gültig So nett meldet mir KGpg eine gültige Unterschrift

Dateien verschlüsseln/unterschreiben

Du kannst auch beliebige ganze Dateien verschlüsseln oder unterschreiben, Word-Dokumente, Bilder, was du willst. Du brauchst die Datei nur im Windows-Explorer mit der rechten Maustaste anzuklicken und PGP → Encrypt zu wählen. Das übliche Schlüsselauswahlfenster erscheint, und dann wird eine gleichnamige Datei mit dem zusätzlichen Namens-Anhängsel .pgp erzeugt, die sich wieder nur mit dem passenden private key lesbar machen läßt.

Das Datei-Unterschreiben ist noch raffinierter: Wenn du nämlich das selbe mit dem Untermenüpunkt Sign machst und in dem Fenster, das dich nach der Passphrase fragt, die Option „Detached Signature“ ankreuzt, wird die Originaldatei nicht angetastet – es wird nur noch eine Unterschriftsdatei erzeugt, die den gleichen Namen wie die unterschriebene Datei und die zusätzliche Extension .sig trägt. Du verschickst dann beide Dateien zusammen, und der Empfänger kann durch einen Doppelklick auf diese .sig-Datei die Unterschrift überprüfen, wenn er deinen public key hat.

Verschlüsselte Datei als „Text“ ausgeben

Empfehlenswert für verschlüsselte Dateien, die du als E-Mail-Anhang verschicken willst, ist die Option „Text Output“, die du ankreuzen kannst. Dann lautet die zusätzliche extension .asc statt .pgp und das Ganze ist eine reine ASCII-Textdatei. Da passiert dann garantiert nichts beim E-Mail-Transport – bei Binärdateien als Mailanhang weiß man das nie. („Binärdatei“ heißt im Computerdeutsch alles, was kein reiner Text ist. Irgendein amerikanischer Server gewisser Provider [nein, ich will jetzt keinen User vergrAOLen] fühlt sich mit Sicherheit berufen, vermeintliche Umlaute im vermeintlichen Text automatisch durch was anderes zu ersetzen – und schon ist nichts mehr lesbar …) .asc-Dateien sind aber etwas größer als .pgp-Dateien.

A propos: Du wirst feststellen, daß die verschlüsselten Dateien im Allgemeinen kleiner sind als die Originale. Das liegt daran, daß PGP alles, was es verschlüsselt, zunächst einmal komprimiert.

Schlüssel für die Welt: Das Keyserver-Netz

Falls du einmal Schlüssel von irgendwelchen Leuten suchst: dafür gibt es ein weltweites Netz von Key-Servern im Internet. Zum Beispiel http://pgp.mit.edu/. Wenn du deinen asc-Schlüsselextrakt da hinschickst, kann ihn morgen jeder in Neuseeland abrufen … und das geht noch weiter, man kann Schlüssel, die man nicht mehr benutzt, widerrufen, so daß sie bei jedem PGP, das am Netz hängt, wieder gelöscht/updatet werden.

Nur eines kann man nicht: Einmal veröffentlichte Schlüssel lassen sich nie wieder vom Server löschen. Stattdessen kannst du ein Widerrufszertifikat ausstellen (revocation certificate), indem du in der Schlüsselverwaltung Keys → Revoke anwählst und den widerrufenen Schlüssel dann neu auf den Server lädst.

Zum Widerrufen brauchst du natürlich deinen private key, sonst könnte ja jeder deine Schlüssel widerrufen. Solltest du also dummerweise einen Schlüssel auf den Server geladen und dann bei dir gelöscht haben, hast du keine Chance mehr; er wird als gültiger Schlüssel bis zum Ende der Tage des PGP-Schlüsselnetzes darin liegen bleiben.

Das Widerrufen-statt-Löschen hat natürlich einen guten Grund: Dann merkt nämlich jeder andere Benutzer bei der nächsten Schlüssel-Aktualisierung, daß dein alter Schlüssel widerrufen wurde. Könntest du deinen Schlüssel einfach vom Server löschen, könnte er nichts merken (Schlüssel werden nicht auf Vorhandensein geprüft!).

PGPkeys kann sich sogar direkt mit diesem Server unterhalten, ohne Umweg über das WWW. Auf der Seite ist beschrieben, wie du das einstellst.

Luxus

Seit PGP Version 6.x bestehen noch weitere Möglichkeiten. Zum Beispiel kann man einen private key splitten, und bei jeder Entschlüsselung müssen sämtliche Teile (die z.B. unterschiedlichen Personen gehören) vorliegen. Man kann in einen Schlüssel sein Paßbild einbauen, das mit exportiert und bei den Schlüsseleigenschaften angezeigt wird; das kann einem Schlüsselfälscher die Arbeit etwas erschweren. Aber das geht jetzt langsam zu weit in die Einzelheiten – wir wollten ja eigentlich nur eine E-Mail verschlüsseln …

nach oben

Fußnoten

Rechenverfahren:
Weil die zwei Schlüssel völlig unterschiedlich sind, nennt man ein solches Verschlüsselungs-Verfahren „asymmetrisch“
Das Verfahren der Schlüsselherstellung sowie der Ver- und Entschlüsselung ist zwar allgemein bekannt, aber es ist sehr aufwändig, aus einem Schlüssel den anderen zu errechnen. Die beiden Schlüssel werden getrennt voneinander aus zwei sehr großen Primzahlen errechnet (sehr groß bedeutet dabei: im Bereich von 21000 – das ist in dezimaler Schreibweise eine Zahl mit über 300 Stellen). Ein Teil des public key ist dabei das Produkt dieser beiden Primzahlen. Um diese Rechnung aus dem public key zurückzuverfolgen, muß man das Produkt in seine Faktoren zerlegen. Und jetzt weißt du auch, warum man dafür sehr große Primzahlen nimmt – dann gibt es keine kleinen Faktoren, die Faktorisierung ist so schwierig wie möglich. Auch mit heutigen Großrechnern würde das viele Jahre dauern!
Und der Rechenvorgang der Verschlüsselung selbst ist nicht umkehrbar, weil es neben der einen richtigen noch sehr viele andere mögliche Lösungen gibt, die alle ein falsches Ergebnis liefern. Nur der private key wendet auf Anhieb die richtige Methode an.
Passphrase
Technisch kannst du dir das ungefähr so vorstellen: Der private key wird von PGP verschlüsselt gespeichert, und die Passphrase ist der Schlüssel dazu.
Die Passphrase (unter PGP-Freaks auch Mantra genannt) sollte so unerratbar wie nur möglich sein, denn wer deinen private key bekommt, hat (im Gegensatz zur ec-Geheimzahl) beliebig viele Versuche, die Passphrase herauszubekommen – Geburtstag, Telefonnummer oder Name der Freundin sind also wenig ratsam. Deswegen auch der Name Passphrase und nicht einfach Passwort, weil es wirklich mehr als ein Wort sein sollte, am besten ein ganzer Satz, und am allerbesten einer, den du dir selber ausgedacht hast. „IchXx s76ehe wAS WaSS du nich8t s7iieest“ ist zwar noch nicht end-sicher bezüglich starker Kryptologie, wird für den Hausgebrauch aber reichen. „d(62[76ebedfleASsbh)jer%%dlu8e(me/rfd#=rUZDds2“ ist sogar noch sicherer, weils kein bekannter Spruch ist. Aber das ist eben auch ein wenig schwierig zu merken und umständlich einzugeben jedesmal, du darfst ja keinen Fehler machen …
Tipps für gute Passphrases sowie viele technische Infos findest du in der Mantra-FAQ bei Kai Raven.
Falls dir deine Passphrase, die du ausgedacht hast, jetzt zu einfach vorkommt (wahrscheinlich tut sie das, wenn du die Mantra-FAQ gelesen hast!), kannst du sie noch einmal ändern (in den „key properties“ den Punkt „Change Passphrase …“ anwählen). PGP an sich ist, wie gesagt, nur sehr schwer und mit großem Rechenaufwand zu knacken – die Passphrase ist bei den meisten Schlüsseln der schwächste Punkt, und die solltest du daher so sicher wie möglich machen. Allerdings kann ein Angriff auf deine Passphrase natürlich erst dann erfolgen, wenn jemand anders deinen private key bekommen hat, und schon das solltest du nach Möglichkeit verhindern.
Tipp zum Verschlüsseln:
Ich empfehle dir, jede verschickte Mail grundsätzlich auch mit deinem eigenen Schlüssel zu verschlüsseln. Sonst kannst du verschickte Mails nämlich selbst nicht mehr lesen.
Dazu kannst du deinen eigenen Schlüssel zum „default key“ befördern, und zwar folgendermaßen: Markiere ihn in PGPkeys und wähle im Keys-Menü den Punkt Set as default. Jetzt wähle noch im Edit-Menü den Punkt Options …, und im Optionen-Fenster machst du ein Häkchen vor „Always encrypt to default key“. Jetzt wird dein default key grundsätzlich in den unteren Teil des Schlüsselauswahlfensters eingetragen, ohne daß du dran denken mußt.

(© V. Gringmuth 1999–2009 <vgringmuth@gmx.net> Original liegt auf http://einklich.net/anleitung/pgp2.htm)