Nehmen wir mal an, Sie gehören zu den wenigen Internetnutzern, die mustergültige Passwörter verwenden. Ihre Passwörter haben mehr als 10 zufällige Zeichen, darunter Groß- und Kleinbuchstaben, genauso wie Zahlen und Sonderzeichen. (Passwörter werden im Folgenden grundsätzlich als Kombinationen aus Buchstaben, Ziffern und Sonderzeichen verstanden und nicht im engen Sinne als sinnvolle Buchstabenfolgen.) Mit solchen Passwörtern ist Ihre digitale Identität im Internet sehr gut geschützt (siehe dazu auch unseren Artikel zu Passwort Management).
Haben Sie sich aber schon einmal gefragt, wie diese wertvollen Passwörter vor fremdem Zugriff geschützt werden können, obwohl sie ja irgendwo in den Nutzerdatenbanken der genutzten Webdienste gespeichert und damit zumindest den jeweiligen Systemadministratoren zugänglich sein sollten? Ist es womöglich so, dass ein Administrator von Google oder eBay einfach in der Datenbank nach Ihrem Nutzernamen suchen muss und schon hat er (oder Sie) Ihr Passwort vor Augen? Ist dadurch nicht die Sicherheit auch von guten Passwörtern kompromittiert?
Diese Sorge können wir Ihnen nehmen. So einfach ist es (für gewöhnlich) nicht. Ihr Passwort ist in aller Regel auch für Systemadministratoren nicht sichtbar. Wie das möglich ist und wie Sie Webseiten identifizieren, die mit Ihrem Passwort nicht sorgfältig umgehen, ist Inhalt dieses Artikels.
Passwörter als Hashwerte
Passwörter werden (normalerweise) nicht im Klartext in Nutzerdatenbanken gespeichert, d.h. so wie sie auf der Tastatur eingeben werden. Konkretes Beispiel: Wenn Ihr Passwort ‘7Az&cZ8U!A_E’ lautet, wird dieses eben nicht als diese Zeichenfolge gespeichert. Stattdessen werden Passwörter als sogenannte Hashwerte gespeichert. Hashwerte, oder Prüfsummen wie sie auch genannt werden, sind Zeichenfolgen fester Länge, die mit Hilfe von mathematischen Verfahren ermittelt werden.
Zwischen Hashwerten und Passwörtern gibt es eine 1:1-Beziehung. Ein und dieselbe Zeichenfolge hat ein und denselben Hashwert und ein Hashwert steht genau für eine Zeichenfolge, also ein Passwort. Vereinfacht ausgedrückt ist ein Hashwert also nichts anderes als die Codierung eines Passworts — einer Geheimsprache nicht unähnlich. Der Clou bei Hashwerten ist, dass Sie sich recht einfach, d.h. schnell, ‘errechnen’ lassen, dass sie sich aber nur mit sehr großem Rechenaufwand wieder in die ursprüngliche Zeichenfolge ‘zurückrechnen’ lassen. Zumindest gilt dies für aktuelle Hashverfahren. „Sehr großer Rechenaufwand“ soll bedeuten, dass es mit der Rechenleistung, die selbst größere Organisationen zur Verfügung haben, nahezu unmöglich ist. Aus einem erbeuteten Hashwert lässt sich somit nur mit größtem finanziellen und materiellen Aufwand wieder ein Passwort formen. Dies im großen Umfang zu tun, ist praktisch unmöglich.
Die mathematischen Verfahren zur Ermittlung eines Hashwerts laufen unter Namen wie MD5, SHA-1 oder RMD160. Deren Mathematischen Grundlagen sind alles andere als trivial und deren Beschreibung in diesem Artikel würde zu weit gehen, aber das folgende Beispiel wirft ein wenig Licht auf die grundsätzliche Methode und hilft, diese zu verstehen:
Stellen Sie sich vor, Sie sollen die zwei Zahlen 1.000 und 33 multiplizieren. Das Ergebnis lautet natürlich 33.000 – eine einfache Aufgabe. Wenn Ihnen jedoch die Frage gestellt wird, aus welchen beiden Zahlen dieses Ergebnis errechnet werden kann, werden Sie etwas länger benötigen. So sind unter anderem die Folgenden Kombinationen möglich: 33.000 x 1; 16.500 x 2; 3.000 x 11; 600 x 55 und viele weitere. Sie merken, dass dies selbst bei ‘nur’ fünfstelligen Zahlen wie 33.000 bereits ein aufwändiges Unterfangen ist. Wenn Sie nun vielstellige Zahlen verwenden, dann ist die Berechnung aller möglichen Kombinationen unglaublich aufwändig. Dies ist die Grundlage von Hashwerten. Wenn man die beiden Zahlen kennt, ist die Multiplikation einfach. Das Zurückrechnen des Ausgangswertes ist deutlich schwieriger.
Ist es nötig, diese Verfahren im Detail zu verstehen? Nicht wirklich! Denn wenn wir ehrlich sind, dann wissen wir vermutlich auch nicht, wie ein Elektromotor oder eine Flugzeugturbine im Detail funktioniert und dennoch nutzen und vertrauen wir der Technik. Das Wichtige ist also: Ja, die Verfahren funktionieren und wir können Ihnen vertrauen!
Passwortgesicherte Anmeldung bei einem Webservice
Bei der Anmeldung an einer Webseite passiert folgendes, um den Nutzer zu identifizieren: Zunächst wird das eingegebene Passwort mit dem gewählten Hashverfahren in einen Hashwert umgerechnet. Dieser wird dann mit dem in der Datenbank für den Nutzer notierten Hashwert verglichen. Ist der Hashwert identisch, dann hat sich der Nutzer authentifiziert und erhält Zugang zum passwortgeschützten Bereich.
Sollte ein Datendieb einen Hashwert erbeutet haben und versuchen mit diesem Zugang zu erhalten, so wird dieser scheitern. Warum ist das so? Bei der Anmeldung würde der Hashwert des eingegebenen Hashwerts errechnet werden und dieser ist eben nicht identisch mit der Zeichenfolge des ursprünglichen Hashwerts. Ergo, selbst mit der Kenntnis eines Hashwerts kann man sich nicht Zutritt zu einer geschützten Webseite verschaffen.
Die Achillesferse von Hashwerten
Die Idee hinter Hashwerten ist bestechend, aber sie hat eine Schwachstelle. Diese Schwachstelle liegt in der 1:1-Beziehung von Passwörtern und Hashwerten, die nach einem bestimmten Verfahren errechnet wurde. Es ist also möglich, Listen der üblichsten Passwörter und deren Hashwerten zu erstellen. Genau dies haben Kriminelle genauso wie Sicherheitsexperten gemacht, wenn auch aus völlig unterschiedlichen Motivationen. Diese sogenannten ‘rainbow tables’ darf man sich nicht als eine zweiseitige Tabelle vorstellen. Rainbow Tabellen haben Millionen und Abermillionen von Einträgen.
Sollte ein Datendieb also eine Liste mit Hashwerten erbeuten, dann würde er einfach den Hashwert in der Rainbow Tabelle suchen und wenn der Hashwert auftaucht, bingo, hat er das Passwort. Einfache Passwörter, wie sie noch viel zu häufig verwendet werden, werden damit im Nu dechiffriert. Zwar braucht auch der Abgleich von zwei Listen mit vielen Tausenden oder Millionen Einträgen eine gute Portion Rechenpower, aber der Abgleich erfordert nicht annähernd so viel Leistung wie die Rückrechnung von Hashwerten in Passwörter. Mit Rainbow Tabellen lässt sich folglich das geniale Prinzip von Hashwerten aushebeln.
Die Antwort auf die Schwachstelle
Nun wäre es falsch, Hashwerte zu früh abzuschreiben. Aus gutem Grund werden Sie heute noch zur sicheren Speicherung von Passwörtern verwendet. Die Antwort von Sicherheitsexperten und Kryptologen auf immer länger werdende rainbows Tabellen war ‘Salz’ oder vielmehr ‘salt’. Der Salt ist ein geheimer Zusatz, welcher jedem Passwort angefügt wird, bevor der Hashwert ermittelt wird. Aus ihrem Passwort ‘7Az&cZ8U!A_E’ wird also beispielsweise ‘7Az&cZ8U!A_E73I#93Tx”0Zyqk84ielC02wrxl)TT’. Solange der Salt ’73I#93Tx”0Zyqk84ielC02wrxl)TT’ geheim bleibt, sind Ihre Passwörter um ein Vielfaches sicherer, da die Hashwerte solcher Passwörter in keiner noch so langen rainbow table enthalten sind. Da jeder Anbieter den Zusatz selber wählen kann, kann man so recht einfach den Nutzen einer rainbow table untergraben. Sollten irgendwann mal solche Tabellen auftauchen, die die Hashwerte auch solcher Passwörter enthalten, dann lässt sich einfach die Länge des Salts vergrößern und schon ist die Sicherheitsfunktion von Hashwerten wieder hergestellt.
Passwort-Hashwerte kein uniformer Standard
Am Anfang dieses Artikels wurde festgestellt, dass Passwörter “normalerweise” als Hashwerte gespeichert werden. Das Wort normalerweise soll bedeuten, dass die Verwendung von Hashwerten keine Pflicht ist. Und leider gibt es immer noch einige Anbieter von Webservices, die Passwörter im Klartext in Ihren Datenbanken abspeichern.
Wie man solche Webseiten identifizieren kann? Wenn ein Anbieter ein Passwort im Klartext an den Nutzer zusenden kann, wenn dieser das Passwort vergessen hat, dann ist das ein untrügliches Zeichen dafür, dass Passwörter im Klartext gespeichert werden. Für die Systemadministratoren solcher Webseiten genauso wie für Datendiebe sind die Passwörter offen sichtbar. Dies ist besonders erwähnenswert, da dies für Nutzer mit nur einem Passwort für viele Webdienste keine zu unterschätzende Gefahr darstellt: Sollte das Passwort eines solchen Nutzers erbeutet werden, dann muss ein Internetkrimineller nur noch die vergleichsweise einfache Aufgabe erledigen, den Benutzernamen heraus zu finden, und schon hat er Zugang zum verschlüsselten Bereich . Unsere Empfehlung daher: Nutzer sollten sich von Webseiten fernhalten, die Passwörter im Klartext speichern.
Fazit
Die großen Dienstanbieter im Internet wie Google, Facebook, Amazon und tausende andere speichern Passwörter natürlich als Hashwerte. Die Implementierung der Hashverfahren stellt einen versierten Programmierer auch vor keine großen Herausforderungen. Umso skeptischer sollte man folglich gegenüber solchen Webseiten sein, die dieses Sicherheitsmerkmal nicht aufweisen.
Wenn Sie Fragen haben, dann rufen Sie uns doch einfach an: +49 (0)6131 327070. Wir beantworten gerne Ihr Fragen und beraten Sie.