Kennt Google mein Passwort? - Hashing und Verschlüsselung (Teil 1)

Die Grundsatzfrage

Wie funktioniert das eigentlich mit Passwörtern im Internet? Schließlich gibt man die überall ein und die meisten Leute haben nur ein Passwort für Alles. Kennt also Google mein Facebook-Passwort? Kann das jeder Hacker einfach klauen?




Kurzfassung für eilige Leser

Ein - korrekt programmierter - Dienst im Internet speichert nicht das Passwort selbst ab, sondern eine Art Prüfsumme, einen sog. Hash. Bei der Passworteingabe wird wiederum ein Hash gebildet. Wenn gespeicherter und eingegebener Wert identisch sind, war das Passwort korrekt. Ein Dienstbetreiber kennt also das Passwort nicht und kann es im Falle von Verlust auch nicht erneut zusenden.

Die asymmetrische Verschlüsselung der Übertragung sorgt zusätzlich dafür, dass das Passwort im Internet geschützt ist, d.h. nicht abhörbar. Die gleiche Technologie sichert sämtlichen sensiblen Datenaustausch im Internet ab, von der Kreditkarteneingabe bis zum Online-Banking.

Wichtiger Bestandteil der ganzen Verschlüsselungskette ist aber ein gutes Passwort. wenn das einfach erraten werden kann hilft auch die stärkste Verschlüsselung und der beste Hashing-Algorithmus nichts.

Langfassung für wirklich Interessierte

Bevor wir uns der Frage oben stellen, müssen wir über das Thema Verschlüsselung etwas ausholen. Schließlich nutzt das komplizierteste und am Besten geschützte Passwort nichts, wenn es jeder mitlesen kann, während es übertragen wird. Im 2. Teil dieses Artikels geht es dann direkt weiter mit dem Thema Passwörter


Verschlüsselung

Das Internet ist voller Verschlüsselung. Bei Bestellvorgängen (z.B. Amazon), aber auch bei Logins werden Daten i.d.R. verschlüsselt übertragen. Der Browser zeigt dann in der Adressleiste ein Symbol an.


Das bedeutet, dass man die Daten sicher überträgt. Ein Dritter (z.B. der Geheimdienst) kann diese Daten nicht abhören oder verändern. Diese Methode nennt man SSL, die Internet-Adressen ändern sich von "http" auf "https" ("s" wie "sicher").

Verschlüsselung wird aber nicht nur bei Kommunikation verwendet, sondern auch, um geheime Daten zu schützen. "Geheim" ist dabei alles, das Dritte nicht lesen sollen, vom Tagebuch bis zu Geschäftsgeheimnissen.

Verschlüsselungsmethoden sind vielfältig und existieren, seit der Mensch spricht - auch Geheimsprachen sind eine Form von Verschlüsselung. Geheimzeichen, unsichtbare Tinte und spezielle Textveränderungen... alles dient dazu, das Geheime zu verstecken und unlesbar zu machen. Verschlüsselung ist - anders als Hashing - immer umkehrbar, d.h. ein verschlüsselter Text kann immer entschlüsselt werden.

In Verschlüsselung steckt bereits "Schlüssel". Dieser Schlüssel, den man zum ver- und entschlüsseln braucht, ist oftmals ein Passwort. Wenn ich jemandem eine verschlüsselte Nachricht senden will, muss der Empfänger das Passwort kennen, um sie wieder entschlüsseln zu können.

In der Regel wird dabei das gleiche Passwort zum ver- und entschlüsseln benutzt. Das nennt man "symmetrische" Verschlüsselung und es gibt dazu durchaus Alternativen dazu (mehr später).

Die wichtigste Frage bei symmetrischer Verschlüsselung ist: wie kann ich das Passwort sicher an den Empfänger liefern? Man könnte anrufen und es durchsagen. Das könnte aber abgehört werden und der Lauscher könnte damit ebenfalls meine Datei entschlüsseln. Man müsste also auch das Passwort verschlüsselt schicken, aber dazu braucht es ja wieder ein Passwort...man merkt schon: wir drehen uns im Kreis.

Um das Problem zu umgehen, gibt es mehrere Möglichkeiten:

Schemas

Die simpelste Lösung besteht darin, sich vor der ersten Kommunikation ein Schema auszudenken. Man trifft sich, denkt sich etwas aus und solange ein Lauscher diese erste Begegnung nicht mitbekommt, ist man fein raus.

Im Internet ist die ROT13 Verschlüsselung - eine Variante der Cäsar-Verschlüsselung - berühmt geworden. Bei diesem Schema wird einfach jeder Buchstabe im Alphabet um 13 Stellen weiter im Alphabet geschoben. Aus "GEHEIM" wird damit "TRURVZ". Wenn man sich auf ein solches Schema einigt, muss man gar kein Passwort mehr übertragen.

Etwas komplexer: man vereinbart vor der ersten Kommunikation, dass die Rechnung Zahl1+Zahl2-Zahl3*Zahl4*Zahl5 das Passwort ergibt, mit dem anschließend verschlüsselt wird. Solange ein Angreifer die Rechenzeichen nicht kennt, werden ihm die am Telefon durchgesagten einzelnen Zahlen nicht weiterhelfen. Natürlich könnte er alle Möglichkeiten durchprobieren, aber das dauert.

Muster fallen ebenso in die Kategorie "Schema". Jeder, der sein Smartphone mit einem Muster entsperrt, weiß, dass dieses Muster den Zugriff auf die Daten darauf sichert, z.B. Adressbücher, Mails, etc. Dieses Beispiel ist nicht wirklich Verschlüsselung, sondern eine andere Form von Zugangskontrolle.

Ernsthaft verschlüsseln kann und sollte man mit Schemas nicht, dazu sind sie zu einfach zu knacken.

One-Time Pad (OTP)

Diese Methode kennen sicherlich viele Leute, da sie lange Zeit für das Online-Banking benutzt wurde (oder sogar noch wird). OTP ist nichts anderes als eine gemeinsame Passwort-Liste.

Das funktioniert so: man denkt sich eine Liste von Passwörtern aus (beim Banking TANs) und numeriert sie durch. Diese Liste muss dem Sender und dem Empfänger vorliegen. Damit reicht es, am Telefon zu sagen "Passwort Nummer 23" und schon weiß der Empfänger, wo er nachsehen muss, um das eigentliche Passwort zu finden. Ein Lauscher hat die Liste aber nicht, er kann mit der Information "23" nichts anfangen.

Wird OTP korrekt benutzt ist die Methode unknackbar. Einzig möglicher Angriffspunkt ist der Diebstahl der Liste, wobei das unbemerkt passieren muss, sonst wird die Liste ja einfach ausgetauscht. Auch sollten die Passwörter der Liste explizit keinem Schema folgen sondern zufällig sein, damit man sie nicht erraten kann.

Ein großer Nachteil ist natürlich die Masse: für jede Verschlüsselung benötigt man ein neues Passwort, d.h. die Liste muss für intensive Kommunikation sehr umfangreich sein.

Ein Sonderfall von OTP sind Tokens, der Eine oder Andere kennt sie vielleicht aus dem beruflichen Alltag. Sieht aus wie ein USB-Stick und zeigt jede Minute eine neue Zahl an. So eine Methode ist im Prinzip ein elektronisches OTP, dem allerdings ein Schema zugrunde liegt und deshalb nicht ganz so sicher ist.

Der Name kommt übrigens daher, dass man einmal benutzte Passwörter wegwirft, also nur einmal ("one time") verwendet. Zur einfachen Handhabung wurde das früher mit abreissbaren Zetteln (engl. "pads") gemacht.

Asymmetrische Verschlüsselung

Stellen wir uns Folgendes vor: zwei Personen wollen sicher komminuzieren, aber sie können sich nicht treffen, um eine OTP-Liste auszutauschen. Schlimmer noch: sie können sich beim Senden der verschlüsselten Nachricht nicht einmal sagen, welche Passwort der Liste verwendet werden soll.

Zunächst sieht es wie ein unlösbares Problem aus, denn ohne gemeinsames Passwort kann der Empfänger eine Nachricht oder Datei nicht entschlüsseln.

Um die Lösung zu erklären, stellen wir uns Folgendes vor:

Alice und Bob leben getrennt und wollen geheime Botschaften austauschen. Die beiden können sich aber nicht treffen und nicht miteinander reden. Sie haben aber einen gemeinsamen Ort, an dem sie etwas hinterlassen können. Da dieser Ort aber öffentlich ist, könnte jeder dort veröffentlichte Botschaften lesen oder Gegenstände wie eine OTP-Liste stehlen. Was tun?

Doppelschloss-Technik

Alice bestellt eine Kiste und ein Vorhängeschloss (samt Schlüssel natürlich). Sie packt die geheime Botschaft in die Kiste und schließt mit dem Schloss ab, den Schlüssel behält sie. Sie stellt die Kiste auf den gemeinsamen Ort und geht. Bob kommt, hängt wiederum sein Vorhängeschloss an die Kiste und geht. Es hängen nun also zwei Schlösser an der Kiste, keiner von beiden kann sie öffnen. Nun kommt wiederum Alice, macht aber diesmal ihr Schloss ab und lässt die Kiste mit nur noch Bobs Vorhängeschloss stehen. Bob kann nun die Kiste mitnehmen und daheim entsperren. Mission erfolgreich.

Ein Dieb (die eifersüchtige Eve) könnte zwischendrin zwar die Kiste klauen, mangels Schlüssel aber nicht aufsperren.

Mit dieser Art kann man verschlüsseln, ohne ein gemeinsames Passwort / Schlüssel zu haben. Aber man sieht schon: das hin und her ist aufwendig. Zudem besteht die Gefahr, dass Eve so tut, als wäre sie Bob. Alice hat keine Möglichkeit herauszufinden, ob sie wirklich an Bob schickt oder an Eve, denn theoretisch könnte auch Eve ein Schloss dranhängen!

Es gibt aber eine noch elegantere Möglichkeit, die weniger aufwändig ist.

Öffentliche Schlösser

Dabei bestellt Alice ganz viele Schlösser und lässt ihren Namen darauf eingravieren, damit jeder weiß, dass es ihre sind. Diese ganzen Schlösser legt sie nun (geöffnet!) an den gemeinsamen Ort, jeder Andere (z.B. Bob) könnte das gleiche machen. Wichtig ist nur, dass man weiß, von wem welches Schloss ist.

Wenn nun Bob an Alice etwas schicken will, so kann er die Kiste direkt mit einem von Alice offen herumliegenden Schlössern verschließen. Dieses kann nur Alice - aber nicht Eve - mit dem Schlüssel aufsperren. Die Sache ist einfacher und schneller geworden, ohne an Sicherheit zu verlieren. Im Gegenteil: der Vorgang ist nun noch sicherer geworden, da das Verschlüsseln zugleich festlegt, wer der Empfänger ist.

Realität im Internet

Im Internet passiert genau dieser Vorgang überall und ständig. Jedes Mal, wenn man eine HTTPS-Verbindung aufbaut, passiert im Kern das Gleiche. Dabei gibt es nun zwei Schlüssel: einen öffentlichen, mit dem verschlüsselt wird, und einen geheimen, mit dem entschlüsselt wird. Der öffentliche wird, wie der Name schon sagt, öffentlich bereitgestellt, der geheime bleibt beim Empfänger. Dieses Prinzip wird "asymmetrische Verschlüsselung" genannt.

Ein Problem hat die asymmetrische Verschlüsselung aber: sie ist aufwändig. Computer brauchen sehr viel Rechenleistung (= Strom = Geld), selbst für kurze Texte wäre das nicht wirtschaftlich wenn man das tausende Male pro Sekunde machen muss (für einen Server ist das ganz normal).

Deshalb benutzt man einen Trick: man verwendet diese Methode nur, um sicher ein gemeinsames Passwort auszutauschen. Man erzeugt also quasi ein One-Time-Pad Passwort und steigt damit auf die - sehr viel sparsamere - symmetrische Verschlüsselung um, die wesentlich weniger aufwändig ist.

Mit dieser Methode können wir nun also endlich eine sichere und schnelle Übertragung von Daten im Internet ermöglichen. Praktischerweise muss sich der Anwender hier um nichts kümmern, es funktioniert "von allein" im Hintergrund zwischen Browser und Server.

Zum Schluss von Teil 1 noch ein kleiner Hinweis zum selbst weiterlesen: parallel zur asymmetrischen Verschlüsselung gibt es die Public-Private-Key Infrastruktur (PKI). Diese sorgt für mehr gegenseitiges Vertrauen durch Absicherung der Identität eines öffentlichen Schlüssels, schließlich könnte auch Eve Schlösser hinlegen, auf denen "Alice" steht. Zudem kann man mit PKI auch Dokumente elektronisch unterschreiben und so sogar vor nachträglicher Veränderung schützen.


Wer noch mehr zum Thema Verschlüsselung wissen will:
Simon Singh: Geheime Botschaften (Amazon Link): Ein geniales Buch zum Thema Verschlüsselung ink. einem spannenden Streifzug durch die Verschlüsselungstechniken von der Antike bis Heute.



Weiter zum 2. Teil "Passwörter".

Keine Kommentare:

Kommentar veröffentlichen