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.
C:\Programme\gnupg\gpg.exe
sein (oder wo man das gnupg halt
hininstalliert hat).
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.
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ächst 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.
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.
von Ulli Hoffmann
Für Apple-Mail gibt's auch ein Plugin namens GPGMail. So wird's installiert:
GPGMail erwartet ein bereits installiertes gpg. Das muss zuerst installiert werden. Also:
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, GPGKeys zu installieren:
.tar.gz
Datei und ziehe die GPGKeys-Datei in Deinen
Applikations-Ordner.
Jetzt kommt endlich GPGMail dran:
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.