Bevor wir in die eigentliche Anwendung von Verschlüsselung einsteigen können, müssen leider wie so häufig ein paar theoretische Grundlagen angesprochen werden. Ganz ohne die geht’s leider nicht, aber ich werde versuchen, diese möglichst anschaulich und nicht zu technisch zu erläutern.
Verschlüsselung oder „Kryptografie“ bezeichnet das systematische Unkenntlichmachen von Textinformationen. Nur wer weiß oder das entsprechende Mittel hat, die Verschlüsselung umzukehren, ist in der Lage, diese Informationen zu lesen.
Verschlüsselung gibt es schon seit Urzeiten. Es gab immer Informationen, die nur für einen bestimmten Personenkreis zugänglich sein sollten. Dieser Personenkreis einigte sich also auf ein System, mit dem Text umgeschrieben, sprich verschlüsselt, werden musste, damit nur die Eingeweihten ihn auch wieder entschlüsseln konnten. Im einfachsten Fall ist eine Verschlüsselung von Text eine Ersetzung von Zeichen durch andere, in anderen Fällen das Codieren von Zeichen durch Zahlen o. ä. Da jedem Eingeweihten jederzeit der Schlüssel bekannt sein musste, um Informationen zu ver- oder entschlüsseln, handelt es sich um eine sogenannte symmetrische Verschlüsselung. Derselbe Schlüssel wird verwendet, um Informationen zu codieren oder zu decodieren.
Dies war bis in die 1970er Jahre die einzig bekannte Verschlüsselungsform. Erst mit der Entwicklung von Conputersystemen und der Steigerung von deren Leistungsfähigkeit war es dann möglich, ein weiteres Verfahren zu entwickeln, das asymmetrische Verschlüsselungsverfahren. Dieses basiert auf einem Schlüsselpaar. Der eine Teil dieses Paares ist öffentlich. Der andere jedoch steht nur der Person zur Verfügung, die das Schlüsselpaar erzeugt hat.
Man kann sich das ungefähr so vorstellen: Der öffentliche Schlüssel dient dazu, die zu übertragende Information vor Beginn des Transports übers Internet unkenntlich zu machen. Dabei weiß dieser Schlüssel nur, wie man die Information verklausuliert, aber nicht, wie man diese Verklausulierung wieder rückgängig macht. Das wiederum weiß nur der private Schlüssel, also der Schlüssel, der sich nur im Besitz des Empfängers befindet. Dieser private Schlüssel ist zusätzlich mit einem Kennwort geschützt, so dass er sich auch tatsächlich drehen lässt, wenn er einmal im imaginären Schloss steckt und die Information wieder lesbar machen soll.
Um das ganze jetzt mal auf Software zu übertragen, denn um die soll es ja letztendlich gehen, ist der öffentliche Schlüssel eine Datei, die z. B. auf einem Webserver wie dieser Webseite hinterlegt und für jeden abrufbar ist. Jeder kann ihn benutzen, um z. B. mir verschlüsselte Informationen zukommen zu lassen. Aber nur ich kann diese Informationen wieder lesbar machen, indem ich einen weiteren Schlüssel verwende, der sich nur in meinem Besitz befindet und den ich möglichst nirgends hochladen oder gar irgendwo auf einem USB-Stick in einer Kneipe vergessen sollte. OK, um tatsächlich Informationen zu entschlüsseln, braucht es auch noch das Passwort (oder im Jargon der Kryptologen die Pass Phrase), aber man kann mit dem privaten Schlüssel auch so genug Missbrauch treiben, dass er nie in fremde Hände geraten sollte.
Antworte ich jetzt jemandem, der mir eine verschlüsselte Nachricht geschickt hat, gehört es zum guten Ton, dies auch verschlüsselt zu tun. Ich brauche dafür also seinen oder ihren öffentlichen Schlüssel, denn nur damit kann ich ja eine Nachricht so verschlüsseln, dass deren privater Schlüssel diese auch wieder entschlüsseln kann.
So, und da ja kein Schreiben ohne anständige Unterschrift vollkommen ist, gibt es auch hierfür eine Methode. Mit meinem privaten Schlüssel kann ich nämlich nicht nur an mich gerichtete Nachrichten entschlüsseln, sondern auch eigene Nachrichten damit unterschreiben. Diese Unterschrift kann der Empfänger dann mit meinem öffentlichen Schlüssel, den er/sie ja bereits hat, auswerten und so feststellen, dass die Nachricht tatsächlich von mir stammt.
Also nochmal: Ich verschlüssele mit dem öffentlichen Schlüssel des Empfängers, unterschreibe aber mit meinem privaten Schlüssel. Der Empfänger entschlüsselt mit seinem privaten Schlüssel und prüft die Gültigkeit der Unterschrift (oder verifiziert meine Signatur)) mit meinem öffentlichen Schlüssel.
Würde jetzt also z. B. jemand unter meiner E-Mail-Adresse eine Mail verschlüsseln, die Signatur aber nicht stimmen, weil der Schummler ja meinen privaten Schlüssel nicht hat, wüsste der Empfänger bei Erhalt der Nachricht sofort, dass sie nicht von mir stammt und daher eine Fälschung sein muss.
Um die Sicherheit zu gewährleisten, dass Informationen auch tatsächlich geheim bleiben, sind die mathematischen Verfahren so entwickelt, dass eine Berechnung in einer Richtung schnell geht, in der anderen aber im Grunde gar nicht oder nur mit jahre- oder jahrzehntelangem Aufwand mit massivem Computereinsatz dauern würde. Der wichtigste Aspekt dabei: Besitzt man den öffentlichen Schlüssel, muss es quasi unmöglich sein, den privaten Schlüssel daraus abzuleiten. Denn in dem Moment, wo der private Schlüssel aus dem öffentlichen abgeleitet werden könnte, wäre die gesamte Verschlüsselung nichts mehr wert.
Die häufigste Anwendung zur Übermittlung verschlüsselter Informationen ist, wie vielleicht bereits vermutet, die E-Mail. Zwei gängige Vertreter von E-Mail-Verschlüsselung sind OpenPGP und S/MIME. Beide Verfahren nutzen die asymmetrische Verschlüsselung. PGP steht für Pretty Good Privacy, also „ziemlich guter Datenschutz“, und wurde Anfang der 1990er Jahre von Phil Zimmerman in den USA für die dortige Regierung entwickelt. Da der Export aber einen Bruch der Sicherheit dargestellt hätte, der ursprüngliche Autor das Verfahren aber einer weltweiten Öffentlichkeit zugänglich machen wollte, entschied er sich, den Programmcode in Buchform zu veröffentlichen. Dadurch fiel er unter den Schutz der freien Meinungsäußerung und konnte nicht mehr belangt werden. OpenPGP ist der offizielle, nicht kommerzielle und in Dokumentation und Programmcode für jedermann einsehbare („quelloffene“) Standard. Es gab auch eine kommerzielle Variante, die aber von Anfang an unter dem Verdacht stand, eine Möglichkeit für Regierungsorganisationen zu enthalten, jede Verschlüsselung per „Generalschlüssel“ auszuhebeln. So etwas nennt man eine Hintertür.
Es gibt auch ein verbreitetes Verfahren zur Verschlüsselung von Chats oder Sofortnachrichten über verschiedene Dienste wie Jabber/XMPP, AIM usw., diese nutzen jedoch in der Regel symmetrische Verfahren und sind daher für den Anwender in der Handhabung etwas einfacher. Das gängigste Verfahren heißt Off The Record, was übersetzt soviel heißt wie „informell“ oder „nicht für die Akten“.
OpenPGP und Off The Record (OTR) sind vollständig quelloffene Standards und Protokolle. Der entscheidende Vorteil quelloffener Systeme gegenüber Systemen, deren Programmcode nur unter der Kontrolle einzelner Firmen steht („geschlossenen Systemen“), ist, dass jeder sich den Quellcode anschauen kann. Der Versuch, durch Regierungsorganisationen Hintertüren in Software einzubauen ist unmöglich, ohne dass die an der Programmierung beteiligten Leute, die „Entwicklergemeinde“, dies mitbekämen. Im Gegensatz dazu garantiert einem niemand, dass in zwar verschlüsselten, aber nicht im Quellcode offen liegenden Systemen wie Skype keine Hintertüren enthalten sind. Im Gegenteil: Im Falle von Skype ist bekannt, dass die NSA und der britische GCHQ genau solche Hintertüren besitzen und seit Ende 2011 im Grunde jede beliebige Skype-Chat-Unterhaltung, die sie abgefangen haben, entschlüsseln und somit lesen können.
Im Verlauf der weiteren Serie wird es also vornehmlich um quelloffene Systeme gehen. Laut der neuesten vom Spiegel veröffentlichten Dokumente des NSA-Whistleblowers Edward Snowden sind sowohl OpenPGP als auch OTR von der NSA und ihren Partnern bisher nicht knackbar und Kommunikation, die mit diesen Verfahren verschlüsselt wurde, somit nicht für deren Mitarbeiter lesbar. Es garantiert natürlich niemand, dass dieses sich nicht irgendwann ändert, aber zumindest hat man bei Quelloffenen Systemen eben die Kontrolle darüber, was der Code tut und was nicht.
Dies soll es erst einmal zur Theorie gewesen sein. Wer tiefer in die Materie einsteigen möchte, wird z. B. bei den Wikipedia-Artikeln zu symmetrischen und asymmetrischen Verschlüsselungsverfahren sowie zu OpenPGP und Off-The-Record Messaging fündig.
Und wer dies alles schon kennt und mir in Zukunft verschlüsselt schreiben möchte, findet unter diesem Link meinen öffentlichen OpenPGP-Schlüssel (öffnet in neuem Tab).
Im nächsten Teil der Serie steigen wir dann ein in die spezifischen Grundlagen von OpenPGP und lernen einige Software kennen, die uns die Handhabung hiermit ermöglicht und in einigen Fällen sogar sehr leicht macht.