Ein Gastbeitrag von Florian.

 

Wie stellst du dir Verschlüsselung vor? Vielleicht so: Alice und Bob treffen sich im geheimen und verinbaren eine geheime Methode, um ihren Text unleserlich zu machen. Wie zum Beispiel: „Wir fügen hinter jedem Buchstaben ein f ein“. Aus „Hallo Welt“ wird dann „Hfaflflfof Wfeflfdf“. Nun wollen Alice und Bob herausfinden, wie sicher dieses Verfahren ist. Sie können nun aber niemandem von ihrem Verfahren erzählen und diesen dann fragen, wie sicher das Verfahren ist. Denn jeder der das Verfahren kennt, kann die Nachricht entschlüsseln.

In der Wissenschaft der Verschlüsselung, der Kryptographie, möchte menschan daher Verschlüsselungverfahren finden, die nicht schon eindeutig bestimmt sind, sondern eine zusätzliche Information benötigen. Zum Beispiel „Wir ersetzten jeden Buchstaben durch den Buchstaben, der x Stellen weiter hinten im Alphabet ist“. Das „x“ heißt dann der „Schlüssel“. Alice und Bob einigen sich also im Geheimen auf einen Schlüssel. Zum Beispiel 2. Aus „Hallo Welt“ wird dann „Jcnnq Ygnv“. Nun können sie andere Expert*innen um Rat fragen, ob „Wir ersetzten jeden Buchstaben durch den Buchstaben, der x Stellen weiter hinten im Alphabet ist“ ein sicheres Verfahren ist, da sie nicht verraten, dass x=2 ist. Wie du dir vielleicht schon denken kannst, ist das kein sicheres Verfahren, aber es erkennt dieses wichtige Prinzip der Kryptographie an: „Die Sicherheit eines Verschlüsselungsverfahren sollte nur von der Geheimhaltung des Schlüssels und nicht von der Geheimhaltung des Verfahrens abhängen“.

Wir haben also diese Situaltion: Alice und Bob einigen sich auf ein öffentlich bekanntes Verschlüsselungsverfahren, das von vielen Expert*innen untersucht und für sicher befunden wurde. Dann einigen sie sich im Geheimen auf einen Schlüssel. Dieser Schlüssel wird dann sowohl zum Verschlüsseln, als auch zum Entschlüsseln verwendet. Dieses Szenario nennt menschan symmetrische Verschlüsselung.

Wenn jetzt Alice auch mit Carol verschlüsselt schreiben möchte, dann muss sie sich auch mit Carol im Geheimen treffen und auch mit ihr einen Schlüssel vereinbaren. Wenn n verschiedene Leute miteinander verschlüsselt schreiben wollen, dann muss es n² geheime Treffen geben, bei denen Schlüssel vereinbart werden. Solche geheimen Treffen sind nicht unbedingt praktikabel. Sich die Schlüssel zuzuschicken (zum Beispiel per Mail) ist aber keine Option. Denn entweder liest jemand mit, was geschickt wird, dann liest der*die aber auch den Schlüssel mit und kann die Nachrichten alle wieder entschlüsseln, oder niemand liest mit, dann braucht mMensch aber auch nicht zu verschlüsseln. Es führt kein Weg an geheimen Treffen vorbei.

Verschlüsselung-1

Außer dem Weg der asymmetrischen Verschlüsselung. Asymmetrische Verschlüsselung benutzt verschiedene Schlüssel zum Verschlüsseln und zum Entschlüsseln. Alice erzeugt also 2 Schlüssel. Den einen benutzt sie, um Nachrichten, die an sie gesendet sind, zu entschlüsseln. Den anderen gibt sie Bob. Dieser verschlüsselt damit die Nachrichten, die er Alice schickt.

Übertragen ist das ganze so, als würde Alice Bob ein Schnappschloss schicken, zu dem sie den Schlüssel hat. Bob tut dann seine Nachricht in einen Koffer und verschließt diesen mit dem Schloss. Nun kommt nur noch Alice an die Nachricht.

Alice kann aber den Schlüssel, den sie Bob schickt, auch Carol schicken. U und noch beliebig vielen weiteren Menschen. Die Sicherheit der Verschlüsselung wird dadurch nicht beeinträchtigt. Den Schlüssel, den Alice Bob schickt, nennt menschan daher auch öffentlichen Schlüssel oder auf englisch „public kKey“. Den Schlüssel, den Alice zum Entschlüsseln ihrer Nachrichten verwendet, nennt menschan privaten Schlüssel oder auf Englisch „private kKey“.

Genauso, wie menschan mit dem richtigen Können und Werkzeug zu einem Schloss den Schlüssel nachbauen kann, ist es theoretisch möglich, aus dem öffentlichen Schlüssel den Privaten zu berechnen. Wenn dies tatsächlich gelingen sollte, wäre das natürlich ein großes Problem. Dann könnte jeder die Nachtrichten entschlüsseln und das ganze Verfahren wäre nichts wert. Es gibt aber asymmetrische Verschlüsselungsverfahren, bei denen das so schwer ist, dass es praktisch unmöglich ist.

Verschlüsselung-2
Eines dieser Verfahren ist RSA (benannt nach den Erfindern Rivest, Shamir und Adleman). Dass dieses Verfahren so sicher ist, dass auch die NSA es nicht knacken kann, belegen auch die Dokumente von Edward Snowden. RSA wird auch eingesetzt bei dem Mail-Verschlüsselungsprogramm GPG eingesetzt. Eine sehr gute Anleitung, wie du dieses verwenden kannst, hat Sebastian geschrieben: http://krass.gruene-jugend-nrw.de/wehrt-euch-so-verschluesselt-ihr-eure-e-mails/
Asymmetrische Verschlüsselung hat einen weiteren Vorteil: Es ist möglich, zu beweisen, dass eine Nachricht tatsächlich von einem selbst kommt. Wenn Alice mit ihrem privaten Schlüssel eine Nachricht „verschlüsselt“, kann jede*r die Nachricht mit dem öffentlichen Schlüssel wieder entschlüsseln. Dabei kann sich aber jede*r sicher sein, dass die Nachricht von Alice kommt, denn nur sie hat den privaten Schlüssel und nur mit diesem ist es möglich, eine Nachricht so zu „verschlüsseln“, dass diese durch entschlüsseln mit dem öffentlichen Schlüssel wieder zu einem sinnvollen Text wird. Menschan sagt dazu auch, Alice „signiert“ oder „unterscchreibt“ ihre Nachricht. Es ist auch möglich, eine Nachricht sowohl zu verschlüsseln, als auch zu unterschreiben.

Also alles Friede, Freude, Eierkuchen? Nicht ganz. Es gibt eine Möglichkeit, wie RSA ausgetrickst werden kann. Der Trick nennt sich Man-in-the-Middle-Attack und funktioniert so:

Wir erinnern uns an das Beispiel mit dem Schnappschloss und dem Schlüssel. Alice schickt Bob ein Schnappschloss, zu dem nur sie den Schlüssel hat. Sagen wir, sie bittet Oskar, das Schloss für sie zu Bob zu bringen. Der Grund warum sie das überhaupt tut, ist ja, dass sie Angst hat, Oskar könnte die Nachrichten lesen, die Bob ihr schreibt. Nun kann Oskar aber das Schloss heimlich durch ein eigenes austauschen, zu dem er den Schlüssel hat. Nun tut also Bob seine Nachricht in einen Koffer und schließt ab, mit dem Schloss, das vermeintlich von Alice kommt. Nun kommt aber Oskar an die Nachricht, indem er mit seinem Schlüssel aufschließt. Er liest also die Nachricht. Um keinen Verdacht zu erregen, schließt danach den Koffer wieder ab. Diesmal mit deam Schloss, das tatsächlich von Alice ist, und gibt diesen an Alice weiter.

Mit unserer asymmetrischen Verschlüsselung sieht das ganze nun so aus: Alice schickt ihren öffentlichen Schlüssel an Bob. Oskar fängt diesen ab und ersetzt ihn durch seinen eigenen öffentlichen Schlüssel. Bob verschlüsselt nun die Nachricht an Alice mit Oskars öffentlichem Schlüssel. Oskar fängt auch diese Nachricht ab. Er entschlüsselt die Nachricht mit seinem geheimen Schlüssel. Danach verschlüsselt er sie wieder mit Alice öffentlichem Schlüssel. Alice bekommt nun diese Nachricht. Wenn sie die mit ihrem privaten Schlüssel entschlüsselt, fällt ihr nicht auf, dass Oskar die Nachricht auch lesen konnte.

Um diese Man-in-the-middle-Attack zu verhindern, muss sich Bob sicher sein, dass er tatsächlich den öffentlichen Schlüssel von Alice hat. Dazu muss Alice Bob ihren Schlüssel sagen, am Telefon oder persönlich, aber so, dass Bob ihre Stimme erkennen kann. Hier ist nun eine Anleitung, wie ihr in Enigmail überprüfen könnt, dass ihr den richtigen Schlüssel habt:

Wählt im Menü von Thunderbird „Enigmail“ und „Schlüssel verwallten“. Wählt nun den zu verifizierenden Schlüssel mit einem Rechtsklick aus und klickt in dem Menü „unterschreiben…“. Stellt nun sicher, dass hinter Fingerabdruck bei euch beiden das selbe steht. Am besten lest ihr euch dazu abwechselnd einen Block mit 4 Zeichen vor. Nun könnt ihr noch auswählen, wie genau ihr die Identität geprüft habt. Überlegt euch am besten Regeln, wann ihr was auswählt. Meine Regeln sind zum Bespiel: Ich habe es sehr genau geprüft, wenn ich die Person persönlich kenne und einen Ausweis von ihr gesehen habe. Wenn nur eins dieser Kriterien erfüllt ist, habe ich es nur einfach geprüft. Zum Schluss bestätigt ihr mit ok.

Um zu vermeiden, dass nun auch Carol Alice Schlüssel überprüfen muss, kann Bob bezeugen, dass der Schlüssel wirklich von Alice ist. Er unterschreibt dazu Alice Schlüssel mit seinem privaten Schlüssel. Angenommen, Carol hat nun den öffentlichen Schlüssel von Bob bereits überprüft. Außerdem vertraut sie Bob, dass dieser korrekt Schlüssel überprüft. Sie sieht nun also den von Bob unterschriebenen Schlüssel von Alice und weiß daher, dass dies tatsächlich der öffentliche Schlüssel von Alice ist.

Wenn ihr also für andere deutlich machen wollt, dass ihr den Schlüssel überprüft habt, dann könnt ihr das tun, indem ihr auf den unterschriebenen Schlüssel rechtsklickt und „auf Schlüsselserver hochladen“ wählt. Wählt einen beliebigen Schlüsselserver aus und bestätigt mit ok. Wichtig ist dabei, dass nun für alle Menschen sichttabar ist, dass ihr den Schlüssel unterschrieben habt. Je nachdem, was eure Regeln, wie ihr überprüft sind, sagt das aus, dass ihr euch kennt oder zumindest, dass ihr kommunisziert habt. Fragt also vorher nach, ob der*die Besitzer*in damit einverstanden ist, dass dies öffentlich wird. Wenn ihr nicht möchtet, dass dies öffentlich wird, wählt am besten bereits beim unterschreiben „lokal unterschreiben“. Um nun anderen Leuten zu vertrauen, dass diese Schlüssel korrekt überprüfen, könnt ihr deren Schlüssel rechtsklicken und und „Besitzervertrauen festlegen“ auswählen. Ihr könnt danach auswählen, wie sehr ihr der*dem Besitzer*in des Schlüssels vertrauen wollt. Absolutes Vertrauen solltet ihr dabei nur bei euren eigenen Schlüsseln auswählen.
Moment mal. Ich dachte, asymetrische Verschlüsselung sorgt dafür, dass wir uns nicht treffen müssen, um einen Schlüssel zu vereinbaren, und jetzt müssen wir uns doch treffen, um unsere Schlüssel zu überprüfen. Wo bleibt denn da der Vorteil?

Bei symmetrischer Verschlüsselung muss der Schlüssel über eine vertrauliche Verbindung vereinbart werden. Es darf also niemand mithören können. Bei asymmetrischer Verschlüsselung muss die Überprüfung der Schlüssel lediglich über eine authentische Verbindung stattfinden. Es ist also egal, ob jemand mithört, solange niemand in der Lage ist, die Nachrichten unterwegs zu verändern. Praktisch können Telefone als authentische aber nicht vertrauliche Verbindungen angesehen werden.

Ein weiterer Vorteil ist, dass weniger verschiedene Schlüssel benötigt werden. Symmetrische Verschlüsselung benötigt wie bereits erwähnt n² verschiedene Schlüssel, wenn bei n Menschen, jede*r mit jeder*m verschlüsselt schreiben wiollen. SSymmetrische Vverschlüsselung benötigt bei n Teilnehmendenrn lediglich 2n Schlüssel.
Zum Schluss ist es vielleicht sinnvoll noch einmal, die Begriffe RSA, PGP, GPG und Enigmail zu erklären. Wenn es um Mail-Verschlüsselung geht, werden die Begriffe häufig synnonym verwendet. Trotzdem hier hier einmal die Unterschiede:

Im Allgemeinen kann menschan sagen, dass in der eben aufgezählten Reihenfolge immer jemand gekommen ist und gesagt hat „Ja, das ist eine gute Idee, aber ich würde sie noch etwas genauer beschreiben.“ RSA ist also die mathematische Methode, wie die Daten verschlüsselt werden. RSA geht dabei erst einmal davon aus, dass die Nachricht und Schlüssel Zahlen sind. PGP steht für „Pretty Good Privacy“ und der Standard openPGP beschreibt, wie menschan Text in Zahlen übersetzt und wie menschan kennzeichnet, was eine verschlüsselte Nachricht und was ein Schlüssel ist. Häufig sagt menschan fälschlicherweise PGP, wenn menschan eigentlich openPGP meint. PGP ist außerdem der Name von dem ersten Programm, das diese Verschlüsselung und Kennzeichnung umgesetzt hat. Da es allerdings Probleme mit der Lizenz dieses Programms gab und dadurch nicht zu 100% klar war, wie sicher dieses Programm ist, wurde der selbe Standard, also openPGP, in einem neuen Programm namens GPG (das steht für „Gnu Privacy Guard“) unter freier Lizenz umgesetzt (Frei wie in Freiheit, siehe gnu.org). Da sowohl PGP, als auch GPG den Standard openPGP umsetzen, sind beide kompatibel und es ist möglich, Nachrichten mit PGP zu entschlüsseln, die mit GPG verschlüsselt wurden, und andersherum. GPG ist erst einmal ein Programm, welches durch das eingeben von Befehlen benutzt wird. Um die Benutzung einfacher und angenehmer zu machen, wurde Enigmail entwickelt. Enigmail ist ein Addon für Thunderbird (das Emailprogramm von Mozilla, die auch Firefox machen). In der Analogie zu physikalischen Schlössern ist quasi, RSA eine Anleitung, wie mensch Schnappschlösser baut. OpenPGP ist eine Regel, die sagt wie breit der Bügel des Schlosses und das entsprechende Loch im Verschluss des Koffers sein muss, damit jedes Schloss auch zu jedem Koffer passt. PGP ist außerdem ein*e Hersteller*in von Schlössern und Koffern. Die*der Hersteller*in, der*m ihr vertrauen solltet, ist aber GPG. Enigmail ist nun wie ein praktisches Werkzeug, das euch hilft, Schloss und Schlüssel einfacher zu benutzen.