Sicheres Mailen (auch mit Windows, Mozilla und GnuPG)

Kein Scherz: Die Infrastruktur zur flächendeckenden, verdachtsunabhängigen Überwachung von E-Mails wird in Deutschland seit Jahren Stück für Stuck auf- und ausgebaut. Und wenn die Infrastruktur mal da ist, dann wird sie erfahrungsgemäß auch früher oder später genutzt. Macht aber nix, kann man ja verschlüsseln.

Sichere Mail-Kommunikation dient dabei nicht nur dem Zweck, Inhalte vor ungebetenen Gästen zu sichern, sondern schafft auch mehr Vertrauen:

Mit Linux ist die Infrastruktur auch in der Regel vorhanden, MacOS-X und Windows-Benutzer müssen noch etwas Hand anlegen (Sicheres Internet mit Windows ist halt etwas schwerer). Das geht trotzdem recht einfach, zumindest wenn man den Mozilla oder Thunderbird verwendet. Der Einfachheit beschränke ich mich hier auf Thunderbird 3.0 und passendes EnigMail 1.0 auf Windows.

GnuPG installieren

Enigmail installieren

Konfiguration

Benutzen

Den öffentlichen Schlüssel sollte man natürlich bekannt geben. Als Keyserver in Deutschland kommt z.B. hkp://random.sks.keyserver.penguin.de in Frage. Dieser Keyserver ist bei EnigMail schon vorkonfiguriert. Dorthin sollte man seinen Schlüssel schicken. Die Schlüssel anderer Leute kann man dann ebenfalls über diesen Keyserver bekommen (so sie ihren Schlüssel hochgestellt haben). Viele Keyserver sind miteinander verbunden, und tauschen ihre Schlüssel aus - über kurz oder lang tauchen also auch woanders hochgestellte Keys auf.

So ein Schlüssel hat eine 32-Bit-ID, und einen Fingerprint (30 Byte). Natürlich kann man auch über Name und E-Mail nach einem Key suchen - wenn man nach einem Michael Maier oder Meier sucht, kein aussichtsreiches Verfahren.

Wenn man die Schlüssel beisammen hat, kann man endlich loslegen, und verschlüsselte/signierte E-Mails verschicken und empfangen.

Technischer Hintergrund

Das Verfahren, was PGP und GnuPG verwenden, ist ein sogenanntes "Public Key"-Verfahren. Eine solche Verschlüsselung ist "asymmetrisch", man braucht also zwei unterschiedliche Schlüssel. Das bekannteste Verfahren ist das RSA-Verfahren, nach den Erfindern Rivest, Shamir und Adleman benannt.

Dabei wählt Alice (die allgegenwärtige Person "A" in der Kryptographie) zwei lange, etwa gleich große Prinzahlen p und q. Diese beiden Primzahlen geben als Produkt N den Zahlenraum an, in dem gerechnet wird (immer mod N). Die Operation, die man zum Ver- und Entschlüsseln verwendet, ist die Potenz. Man kennt die Anzahl teilerfremder Zahlen von N, es ist phi(N)=(p-1)*(q-1). Diese Zahl ist zunächt mal nur eine nützliche Hilfszahl zur Berechnung der eigentlichen Schlüssel. Nun wählt man eine beliebige teilerfremde Zahl e zu phi(N). Den anderen Schlüssel bestimmt man durch Lösen der Gleichung e*d mod phi(N) = 1. N und e kann Alice jetzt an Bob (die Person "B") weitergeben, sie stellen den öffentlichen Schlüssel dar. d behält Alice für sich, es ist ihr geheimer Schlüssel.

Wenn Bob also eine geheime Botschaft an Alice schicken will, dann potenziert er seine Botschaft K zu C=K^e mod N. Alice berechnet C^d mod N, berechnet also K^e*d mod N (und wie der höhere Mathematiker unschwer erkennen kann, ist das dasselbe wie K^1 mod N, also wieder K).

Für größere Datenmengen ist das RSA-Verfahren zu aufwendig. Schließlich sind d, e und N ziemlich große Zahlen. Auch die Tricks mit dem Zerlegen von d und e in Summen kleiner Zahlen und kleine Faktoren hilft nur begrenzt weiter. Deshalb wird tatsächlich nur ein kurzer Schlüssel für ein effizientes symmetrisches Verfahren wie AES verschlüsselt. Dieser Schlüssel wird nur einmal benutzt, kann aber gleich mehrmals (mit mehreren Schlüsseln) verschlüsselt in derselben Mail untergebracht werden. Damit wächst die Datenmenge dann auch für mehrere Empfänger nicht wesentlich an.

Dieses asymmetrische Verfahren kann Alice auch verwenden, um Bob zu zeigen, dass die Antwort auf seine Mail wirklich von ihr kommt. Alice verschlüsselt dazu ihre Botschaft K mit ihrem geheimen Schlüssel, berechnet also C=K^d mod N. Diese Botschaft kann jeder (auch Bob) mit dem öffentlichen Schlüssel entschlüsseln, indem er C^e mod N berechnet (auch hier wieder K^d*e mod N = K^1 mod N). Eine sinnvolle Botschaft kann sich also nur ergeben, wenn es tatsächlich der geheime Schlüssel von Alice war. Bei dieser Signatur wird allerdings normal nicht die Nachricht selbst verschlüsselt, sondern nur ein sicherer Hash, etwa mit dem SHA-Algorithmus berechnet.

Linux

Unter Linux empfehle ich den KMail, der hat die nötigen Plug-Ins schon eingebaut. Der kgpg verwaltet Schlüssel auch sehr komfortabel. In die .xsession muss man ggf. noch den Aufruf für den gpg-agent einbauen. Bei mir sieht das so aus:

eval $(gpg-agent --daemon --keep-display --default-cache-ttl 1800 --allow-mark-trusted)

Das mit der ttl ist Geschmackssache - länger ist zwar komfortabler, aber eben auch unsicher.

MacOS-X

von Ulli Hoffmann

Für [html]Apple-Mail gibt's auch ein Plugin namens [html]GPGMail. So wird's installiert:

  1. GPGMail erwartet ein bereits installiertes [html]gpg. Das muss zuerst installiert werden. Also:

    • Lade die aktuelle Version des [html]GNU Privacy Guards für Deine Mac OS X Version.
    • Aktiviere das GnuPG Mac OS X Festplatten-Image und lass den .mpkg Installer laufen.
  2. GPGMail hat keine eigene Schlüsselverwaltung. Um also die Schlüssel nicht direkt per gpg auf der Kommandozeile verwalten zu müssen, bietet es sich an, [html]GPGKeys zu installieren:

    • Lade die aktuelle Version von [html]GPGKeys.
    • Expandiere die .tar.gz Datei und ziehe die GPGKeys-Datei in Deinen Applikations-Ordner.
    • Zum Generieren Deines neuen Schlüssels starte GPGKeys. Aus dem "Schlüssel"-Menü, wähle "Erstellen...". Es öffnet sich ein Terminal-Fenster. Dort solltest Du die Voreinstellungen belassen, es sei denn Du weist genau, was Du tust. Wenn Du gefragt wirst, gibst Du Deinen echten Namen, Deine Email-Adresse und einen Kommentar (Kurznamen) an. Wenn der Schlüssel generiert wurde, kannst Du das Terminalfenster schließen.
  3. Jetzt kommt endlich GPGMail dran:

    • Lade das [html]GPGMail plug-in von Sen:te für Apple-Mail.
    • Aktiviere das Festplatten-Image und starte das "Install GPGMail" Skript.
  4. Starte Mail neu. Alles sollte jetzt funktionieren. Wenn Du eine neue Nachricht erstellst, siehst Du eine Check-Box, die Dich Deinen Schlüssel wählen läßt und Dir erlaubt die Nachricht digital zu unterschreiben bzw. zu verschlüsseln. Wenn Du eine signierte Nachricht erhälst, bist Du in der Lage sie zu verifizieren. Für Dich verschlüsselte Nachrichten kannst Du entschlüsseln.


Created 30dec2004. Last modified: 10aug2011 by MailBernd PaysanPGP key