Simon Szustkowski

Ein Blog über alles, was mir gerade so durch den Kopf geht

Jan 3, 2008

Encryption

Wie allgemein bekannt ist, gilt ab dem 1.1.2008 die Vorratsdatenspeicherung für eMails, Telefon und Handy. Das heißt, dass die Provider und entsprechend autorisierte Behörden bei Bedarf an sämtliches gespeichertes Kommunikationsmaterial der letzten 6 Monate dran kommen können. Dagegen ist für uns Bürger nichts mehr dran zu rütteln, jedoch können wir durch Verschlüsselung dafür sorgen, dass diese Stellen damit nichts mehr anfangen können. Durch kleine Plugins sind mittlerweile die gängigsten Programme in der Lage, Dokumente und Nachrichten so zu verschlüsseln, dass sogar angeblich die Codeknacker der NSA sie nicht mehr entschlüsseln können.

Zum generellen Verständnis des Verfahrens muss zunächst erklärt werden, wie das eingesetzte Verfahren, das sog. Public-Key-Verfahren funktioniert. Hierbei möchte ich auf die allseits gebräuchliche Szene mit Alice, Bob und Eve zurückgreifen. Alice möchte Bob eine Nachricht schicken, die Eve überhaupt nichts angeht. Natürlich setzt Eve alles daran, diese Nachricht dennoch in die Finger zu bekommen, und zu lesen. Durch die neu eingeführte Vorratsdatenspeicherung kann man quasi sagen, dass jeder Kurier, der die Nachrichten von Alice zu Bob bringt, diese Nachrichten kopiert, und Eve eine Kopie aushändigt. Damit sie die Nachricht dennoch nicht entziffern kann, benutzen Alice und Bob das weitverbreitete Public-Key-Verfahren. Dies schaut folgendermaßen aus:

Zuallererst erzeugt Alice ein passendes Paar von Schlüsseln. Das erledigt ein Programm für sie, und nimmt als Berechnungsgrundlage zufällige Daten, zB die Bewegungen, die Alice während der Berechnung mit der Maus macht.
Danach hat Alice zwei Schlüssel zur Hand. Einen Private Key, und einen Public Key.

Jeder dieser Schlüssel hat eine bestimmte Aufgabe. Zuallererst hat sie den Public Key. Diesen Schlüssel kann sie vervielfältigen, sooft sie möchte. Sie kann ihn veröffentlichen, ihn jedem erzählen und braucht darauf nicht groß acht zu geben. Sie tut sogar ganz gut daran, ihn zu verteilen, weil Bob und Bobs Freunde diesen Schlüssel brauchen, um die Nachrichten an Alice zu verschlüsseln.

Zum anderen hat sie den Private Key. Dieser Schlüssel ist, wie der Name schon sagt, privat. Wer diesen Schlüssel hat, kann alle verschlüsselten Nachrichten lesen, die mit Alices Public Key verschlüsselt worden sind. Sie tut also gut daran, diesen Key zu hüten, wie ihren Augapfel.

Man kann diesen gesamten Prozess quasi vergleichen mit unzähligen Vorhängeschlössern, die alle zu einem einzigen Schlüssel passen. Diese Vorhängeschlösser verteilt Alice nun an ihre Freunde, und diese können dann ihre Nachrichten damit abschließen, sodass nur Alice, die im Besitz des Schlüssels ist, sie wieder aufschließen kann. Eve, die nun zufällig eine Nachricht in die Hände bekommen sollte, wird durch das Schloss daran gehindert, diese zu lesen.

So, genug der Theorie. Ab jetzt wird’s praktischer. Die Frage die sich nun stellt, ist klar. Wie können wir dieses Public-Key-Verfahren bei uns einsetzen, um unseren Kommunikationsweg zu verschlüsseln. Können wir das überhaupt?
Man merkt sehr schnell, dass sowas zB bei einem Telefonat überhaupt nicht geht. Jedenfalls nicht bei einem herkömmlichen Telefonat. Es gibt jedoch Voice-over-IP-Programme, die so etwas können. Da der Kern dieses Artikels sich jedoch auf eMail und Instant Messaging beschränken soll, lasse ich Telefon und SMS außen vor. Es gibt jedoch gerade für neuere Handys Java-Programme, die zumindest eine rudimentäre Verschlüsselung bieten.

Bleiben wir zunächst beim Instant-Messaging. Für die Normalsterblichen unter euch: Das ist Kommunikation über ICQ, MSN, AIM oder GTalk. Für diese Protokolle gibt es natürlich eigene, sog. native Programme, aber glücklicherweise haben die Hersteller die Protokolle offen gelegt, sodass jeder, der Spaß an der Sache hat, seine eigenen Clients schreiben kann.

Ein sehr beliebter Client dafür ist das Programm Pidgin, vormals auch als Gaim bekannt. Es läuft auf Windows, Linux, und mit ein wenig Bastelei auch auf Mac OS. Es ist natürlich kostenlos. Die einzigen Nachteile sind, dass man mit Pidgin noch keine Videochats machen kann (was aber bis Ende 2008 behoben sein soll), dass es im gegensatz zum flackerbunten ICQ etwas trist aussieht, und dass man damit keine ICQ-Xtraz spielen kann. Wenn man das aber verschmerzen kann, bekommt man ein stabiles, solides Programm, dass durch seine Pluginschnittstelle quasi unendlich erweiterbar ist.

Dies ist auch der Hauptgrund, warum wir es benutzen werden. Klicken wir in der Kontaktliste auf “Extras -> Plugins”, so finden wir in der Liste das “Off-The-Record-Messaging-Plugin”. Mit dem Setzen eines Häkchens aktivieren wir es. Dieses OTR-Verfahren ist quasi der Public-Key-Standard für Instant Messaging. Im Optionen-Fenster finden wir nun einen neuen Eintrag, wo wir unser Schlüsselpaar erzeugen können, und einige weitere Optionen. Am besten lassen wir den Haken bei der Option “Verschlüsselung benutzen, wo möglich”.

So, das wars. Mehr braucht ihr nicht zu tun. Sobald ihr jetzt eine Unterhaltung anfangt, prüft Pidgin, ob euer Gegenüber ebenfalls das OTR-Plugin aktiviert hat. Ist dem nicht so, bleibt die Verschlüsselung abgeschaltet, und alles bleibt wie vorher. Sollte euer Gegenüber allerdings ebenfalls auf Verschlüsselung setzen, so schauen beide Pidgins nach, ob sie bereits den zu dieser ICQ-Nummer passenden “Fingerprint” (d.h. Public-Key) haben. Wenn das nicht so ist, bekommt ihr eine Meldung, dass ein neuer Fingerprint ausgetauscht wurde. Ihr könnt nun mit dem Gegenüber zB in einem Gespräch unter 4 Augen die Schlüssel abgleichen, und sicherstellen, dass sie korrekt übertragen wurden.
Sobald beide Seite die Schlüssel akzeptiert haben, erscheint in eurer Nachrichtenbox ein abgeschlossenes Vorhängeschloss, was zeigt, dass die Unterhaltung sicher ist.

Sollte sich dann durch irgendwelche Umstände der Schlüssel einmal ändern, so werdet ihr davon in Kenntnis gesetzt. Nun heißt es nachhaken. Falls der Partner das Programm neu installiert hat, oder ein neues Schlüsselpaar generiert hat, so ist alles in Ordnung. Das damit ein neuer Schlüssel ausgetauscht wird, ist völlig normal. Falls er aber nichts verändert hat, und der neu übertragene Schlüssel von seinem normalen Schlüssel abweicht, kann es durchaus sein, dass jemand versucht hat, seinen Account zu hacken.

Jedenfalls könnt ihr euch hier schon sicher sein, dass die Verbindungs-Logs, die nun gevorratsdatenspeichert werden, nur noch wirre Buchstaben-Zahlen-Kombinationen enthalten, die für diejenigen, die nicht im Besitz eures Private Keys sind, absolut wertlos sind. Also auch für die Vorratsdatenspeicherer und die autorisierten Behörden.

Achja: Für Mac OS gibt es das Instant Messaging Programm Adium, das auch eine OTR-Funktion bietet, die unter “Optionen->Erweitert->Verschlüsselung” noch aktiviert werden muss.

Für Emails ist die ganze Sache etwas schwieriger. Es gibt dort mehrere Programme, die dieses Verfahren unterstützen. Ganz zu Anfang muss jedoch gesagt werden, dass ihr mit eurem normalen Outlook damit nicht weiterkommt. Am besten eignet sich dafür Mozilla Thunderbird mit dem EnigMail-Plugin, bzw. Apple Mail mit dem GPGMail-Plugin.

Damit habt ihr jetzt quasi die Oberfläche geschaffen, mit der ihr auf die Verschlüsselungsengine zugreifen könnt, jedoch fehlt diese Engine noch auf euren Rechnern.
Quasi der Marktführer unter den Verschlüsselungen nach dem Public-Key-Verfahren ist das Programm PGP. Das steht für Pretty Good Privacy. Leider kostet dieses Programm für Privatpersonen eine nicht unerhebliche Summe Geld, sodass sich mit der Zeit eine freie Version, die aber zu 100% kompatibel ist, herausgebildet hat. Sie heißt GPG. Diese Abkürzung hat keine Bedeutung, bis auf das erste G, eine Abkürzung für GNU, was in etwa dem Lizenztyp der Software entspricht. Der Rest kam zustande, weil die Programmierer es für lustig gehalten haben, in PGP die Buchstaben umzudrehen.

Leider kann ich jetzt nicht detailliert auf die Installation der verschiedenen Programme eingehen, weil ich nicht auf jedes Betriebssystem Zugriff habe, aber die Anleitungen sind meist relativ einfach geschrieben, und bei Rückfragen kann man sich dennoch gerne an mich wenden.

Sobald ihr also alles installiert habt, und euer Schlüsselpaar erzeugt habt, was eine ganze Weile dauern kann, je nach Schlüssellänge. Hier gilt, je länger, desto sicherer, aber desto länger dauert auch die Ver- und Entschlüsselung. In der Praxis hat sich ein Schlüssel mit der Länge von 4096 Byte als ein guter Kompromiss aus Verschlüsselungsdauer und -sicherheit herausgestellt.

Nachdem ihr eure Schlüssel habt, könnt ihr nun euren Public Key auf einen sogenannten Keyserver kopieren. Das solltet ihr sogar tun, denn die Mailprogramme tauschen die Schlüssel nicht automatisch aus, und das Nachsehen auf dem Keyserver ist die Standardvariante, um herauszufinden, ob der Gesprächspartner Verschlüsselung unterstützt. Wenn ihr das alles erledigt habt, kanns losgehen.

Wie immer auch hier: Sendet ihr eine Mail an jemanden, der keine Verschlüsselung hat, oder dessen Public Key ihr nicht kennt, so werden Mails wie gehabt unverschlüsselt versendet. Da ihr aber vor jedem Versenden der Mails auf dem Keyserver nachseht, ob der Empfänger seinen Public-Key dort hinterlegt hat (die meisten Mailprogramme machen das automatisch und informieren euch entsprechend), kommt ihr irgendwann auch in den Genuss, Mails verschlüsselt zu verschicken. Eine entsprechende Option könnt ihr nun entweder jedesmal vorm Versenden aktivieren, oder ein Default Behaviour definieren.

Sobald der Partner die Mail bekommt, hat er erstmal nur Buchstabensalat vor sich. Allerdings steht am Anfang und am Ende der Mail, dass sie verschlüsselt wurde. Er kann sie nun zusammen mit seinem Private Key durch den Entschlüssler schicken, und erhält die ursprüngliche Mail im Klartext.

Eine weitere Funktion, die euch das PGP/GPG Verfahren bietet, ist die elektronische Signatur, mit der ihr verifizieren könnt, dass diese Email wirklich von euch stammt. Wenn ihr diese Funktion benutzt, erzeugt GPG aus eurem Private-Key eine Prüfsumme und hängt sie an die Email dran. Natürlich kann man nicht von der Prüfsumme zurück auf den Key schließen.

Wenn die Mail jetzt jemand bekommt, der im Besitz eures Public Keys ist (etwa, weil ihr ihn schön brav auf dem Keyserver verteilt habt), so bildet sein GPG aus eurem Public Key ebenfalls eine Prüfsumme. Da beide Keys ganz zu Anfang aus den gleichen Grundparametern, zB Mausbewegungen, errechnet wurden, müssen nun beide Prüfsummen gleich sein. Wenn dem so ist, ist erwiesen, dass der Absender wirklich im Besitz eures Private Keys ist. Und da ihr die einzigen Personen seid, dir euren Private Key haben, ist erwiesen, dass ihr der Absender ebenjener Email wart.

Eine solche elektronische Signatur wird zB in manchen Fällen von Banken, etc. eingefordert.

Abschließend kann ich noch zur Sicherheit dieses Verfahrens sagen, dass der Erfinder von PGP von der NSA angeklagt wurde, wegen Verstoß gegen das Waffengesetz. Da die NSA diese Codes mit ihren Supercomputern angeblich nicht knacken konnte, hat der Erfinder irgendwelchen Terrorzellen damit quasi die Möglichkeit der geheimen Planung ihrer Aktionen gegeben. Allerdings darf man grad bei solchen Behauptungen nicht allzu leichtgläubig sein. Kritische Stimmen behaupten, die NSA hätte das alles nur angezettelt, um ihre Gegner in Sicherheit zu wiegen, und sich hinter ihrem Rücken ins Fäustchen zu lachen, weil sie nun alle Nachrichten mit Sicherheit lesen kann.

Daher muss man sagen: Wir planen eh keinen Terrorangriff. Unsere Mails werden die Welt in keinster Weise verändern. Man kann die Verschlüsselung eh irgendwann knacken (auch wenn Supercomputer bei einem 400 Byte langen Schlüssel 30 Jahre gebraucht haben, wir die 10-fache Schlüssellänge benutzen, und die Zeitdauer logarithmisch ansteigt). Wichtig ist aber: Es geht ums Prinzip.

Wie gesagt, ich hoffe, euch einen kleinen Einblick gegeben zu haben, und bin bei detaillierten Nachfragen gerne bereit, zu helfen. Soweit erstmal.

Da mag der Wolfgang S. noch so tolle Sachen geplant haben, wir leben im Jahr 2008 und nicht 22 Jahre früher. In dem Sinne:

Ein frohes neues Jahr 2008. :-)