Tag der Passwortsicherheit 2013: Weshalb sichere Passwörter wichtig sind – ein Blick unter die Motorhaube (Teil 1)

Vor kurzem sind bei einem deutschen Internetunternehmen Passworthashes „geklaut” worden. Wir haben im 1&1 Blog schon mehrfach über die richtige Wahl eines sicheren Passworts berichtet. Mit dem Tag der Passwortsicherheit erinnern IT-Unternehmen weltweit jährlich daran, wie wichtig sicher gewählte Passworte sind. Was es mit Passworthashes auf sich hat, wie diese zur Sicherheit beitragen und wo ihre Grenzen sind, erfahrt ihr in diesem Blogbeitrag zum Tag der Passwortsicherheit 2013.

Verschlüsselt oder gehashed?

Während es bei der Passwortverschlüsselung prinzipiell möglich (und auch gewollt) ist, den Klartext wiederherzustellen, hat Hashing die Eigenschaft, nur in eine Richtung zu verschlüsseln: ein Passworthash entspricht quasi einer komplex berechneten Prüfsumme, aus der sich das ursprüngliche Passwort nicht mehr berechnen oder ableiten lässt. Diese „Prüfsumme” ist nicht etwa nur eine einzige Zahl, sondern auch so triviale Passworte wie „password” werden dann zu etwas wie

5f4dcc3b5aa765d61d8327deb882cf995e884898da28047151d0e56f8dc6292773603d0d6aabbdd-
62a11ef721d1542d8$1$pFRi6TX3$Q8xoQIRmq09e1Sd8grC9f/

oder

$6$JHJwQGbVeVK6gFsx$xac0mq2uq.LoJDnfkaiig.P.4Yu8rgmIsLmBrX.MbmClKUdw9ND8me7X1rd-
X5wcIWD45CmqTva5ulmaZzQHQ7.

Ändert sich auch nur ein Zeichen, kommt dabei immer eine komplett andere Prüfsumme heraus.

Um einen Login mit gehashten Passworten zu prüfen, benötigt der Server keinen Schlüssel zur Entschlüsselung, sondern er berechnet das beim Login übermittelte Klartextpasswort nach dem gleichen Verfahren zu einer solchen Prüfsumme und vergleicht diese mit dem zuvor errechneten, gespeicherten Wert. Sind diese beiden Werte gleich, handelt es sich mit mathematisch hoher Wahrscheinlichkeit auch um das gleiche Passwort: der Zugang wird gewährt.

Daher sind gehashte Passwörter grundsätzlich Stand der Technik.

Geklaut und rohe Gewalt

Rein mathematisch ist das Hashing eine Einweg-Verschlüsselung: es gibt keinen Rückweg, mit dem man das ursprüngliche Passwort zurück-errechnen könnte. Von daher sollte ein Angreifer mit Passworthashes nichts anfangen können – soweit in der Theorie.

Gelangt ein Cracker an Passwort-Hashes, bleiben ihm trotzdem noch Ansatzpunkte, um aus den Daten Passworte zu ziehen.

Die meisten Passworte sind recht kurz – 6 bis 10 Zeichen. Probiert man etwa alle 8-stelligen Passworte durch, sind dies „nur” 218340105584896 Möglichkeiten (62^8). Auf den ersten Blick klingt das viel, in der Praxis können etwa auf heutigen Grafikkarten-Prozessoren mehrere Hundert Millionen Passworthashes pro Sekunde berechnet werden. Nach 1-2 Wochen wären einmal „alle möglichen” 8-stelligen Passworte durchgerechnet. Vergleicht man parallel die berechneten Werte mit den kopierten Passwort-Hashes, kommt man so zu einer Reihe gültiger Passworte. Speichert man die berechneten Informationen auch noch in einer Datenbank ab, kann man auf diese Daten immer wieder zugreifen und so auch zukünftige Passworte schnell auflösen. Was vor 10 Jahren noch unbezahlbare Speichermengen und Rechenzeit benötigte, rückt aber heute in greifbare Nähe.

Wörterbuchangriffe, Top-10-Passworte und das Salz

Wer als Angreifer noch schneller vorankommen möchte, lässt sich auch nur die Hashes von Wörterbucheinträgen vorberechnen: nach verschiedenen Untersuchungen sind viele Passworte immer noch einfache Worte und die „Top 10” besonders häufig verwendeter Passworte wie „password”, „qwertz” und „12345678” werden immer noch von vielen Internetnutzern verwendet. Die „Erfolgsaussichten” des Angreifers sind also gar nicht so schlecht: er hat dann zwar nur die Passworte dieses geringen Prozentsatz an Internetnutzern, bei derartig unsicher gewählten Passworten ist aber auch die Wahrscheinlichkeit hoch, dass die Anwender das gleiche Passwort bei anderen Diensten verwenden und der Angreifer damit umso mehr Schaden treiben kann.

Um es dem Angreifer nicht mehr so leicht zu machen, „salzt” man als Dienstanbieter daher die Passwort-Hashes: bevor man das Passwort zur Prüfsumme verrechnet, ergänzt man das Passwort um einen für jedes Passwort zufälligen, aber im Klartext zu merkenden Anteil, den „Salt”.

Statt etwa der Prüfsumme für „passwort” wird dann die Prüfsumme für „G8FFQtjVXgPmoVFxpasswort” berechnet und „G8FFQtjVXgPmoVFx” als „Salz” dieser Prüfsumme im Klartext gespeichert. Bei einem Loginversuch wird dieser im Klartext bekannte Salt wieder vor das übertragene Passwort gestellt und wie gewohnt die Prüfsumme gebildet – passt es, ist auch das gehashte Passwort korrekt. Für jeden Passwort-Hash wird dabei ein zufälliger Salt-Wert bestimmt und verwendet; es reicht also nicht aus, dass ein Angreifer „alle Passworte” für einen bestimmten Salt-Wert berechnet.

Durch dieses „Salting” wird der in der Prüfsumme verrechnete „Passworttext” deutlich länger, damit steigt auch die Menge theoretisch zu berechnender Passworte und der Aufwand (CPU-Zeit, Speicherplatz, etc.) für den Angreifer. Verwendet man etwa 16 Zeichen „Salt” und erlaubt Buchstaben und Zahlen, sind das für ein einziges Klartextpasswort 62^16=47672401706823533450263330816 mögliche Varianten von Passworthashes, die ein Angreifer vorab berechnet haben müsste, um es schnell wiederfinden zu können.

Dieser erhöhte Aufwand macht sich bemerkbar: vor einigen Monaten wurden bei Evernote ca. 50 Millionen gesalzene, gehashte Passworte entwendet, aber bislang nur wenige Passworte errechnet. Zum Vergleich: die 6,5 Millionen ungesalzenen, gehashten Passworte vom Einbruch bei Linkedin im letzten Jahr konnten innerhalb weniger Tage fast vollständig geknackt werden.

Ziel: Zeit gewinnen.

Alle diese Passwort-Sicherungsmassnahmen treiben letztlich nur den Aufwand in die Höhe, den ein Angreifer benötigt, um an Klartextpassworte zu gelangen. Diese Passwortsicherungsmassnahmen sind letztlich eine reine Notfallvorsorge und nicht etwa die einzige Sicherheitsmassnahme. Als Diensteanbieter gewinnt man mit diesen Passwort-Sicherungsmassnahmen einige Wochen, Monate oder Jahre an Zeit, in denen man passend zur jeweiligen Sicherheitslücke die Sicherungsmassnahmen verbessert, betroffene Kunden informiert werden und diese Kunden ihre Passworte ändern können.

Kategorie: Developer
6 Kommentare6
  1. 26. Juni 2013 um 17:58 |

    Wenn ich Passwort höre, dann fallen mir die aktuellen Spähprogramme ein, und hierzu sind die derzeitigen Sicherheitsvorkehrungen doch eher unzureichend – oder?

  2. 26. Juni 2013 um 19:52 |

    Sehr interessanter Artikel. Bitte mehr davon statt ständiger Eigenwerbung im Blog.

    Allerdings lässt mich der Artikel als Anwender dann doch ein wenig ratlos zurück. Zwar habe ich gelernt, dass die 62^8 Kombinationsmöglichkeiten eines achtstelligen Passwortes innerhalb von wenigen Wochen errechnet sind. Schön.

    1.) Wie kommt ihr auf 62 Zeichen? Es gibt 10 Zahlen, 26 Großbuchstaben, 26 Kleinbuchstaben. Das macht 62 Zeichen. OK. Aber es gibt noch jede Menge Sonderzeichen. Gehen wir mal von den 10 gängigsten aus, dann sind wir schon bei 72^8 oder 722.204.136.308.736 Möglichkeiten. OK, nicht wirklich sehr viel mehr.

    2.) Aber noch wichtiger: Was bedeutet dies nun für mich als Anwender? Warum zieht der Artikel dahingehend keine Schlussfolgerungen und gibt Tipps? Im Grunde kann dies ja nur heißen, Passwörter mit deutlich mehr als acht Stellen zu verwenden. So kommt ein Passwort, welches sich leicht aus einem Satz bilden läßt und mit Sonderzeichen abgerundet wird, schnell auf 14 Stellen. Das läßt sich noch immer leicht merken.

    Nur hat dieses Passwort dann 72^14 oder 100.613.197.241.791.537.106.386.944 Kombinationsmöglichkeiten. Das ist dann auch mit modernen GPU-Prozessoren nicht mehr in annehmbarer Zeit zu errechnen. Das sind über 100 Quadrillionen Möglichkeiten!

    Leider vermisse ich diesen simplen wie wirkungsvollen Tipp in eurem Artikel! Und es gibt sicherlich noch sehr viel mehr Tipps. Ich könnte jedenfalls noch etliche aufzählen.

    Also bitte dringend diesen Artikel fortsetzen.

    1. 28. Juni 2013 um 14:59 |

      Hallo Herr Berger,

      vielen Dank für Ihr Feedback! Erstmal vorneweg: Ja, dieser Artikel ist als erster Teil anzusehen und ein Teil der Schlussfolgerungen wird tatsächlich in einem kommenden Text gezogen. Bitte haben Sie noch etwas Geduld.

      Ich habe nochmal mit Herrn Henke gesprochen und fasse Ihnen seine Antworten zu den von Ihnen angesprochenen Punkten hier zusammen.

      Zu ihrem Punkt 1.):
      Sonderzeichen sind je nach Speicher- und Übertragungsverfahren verschieden problematisch, daher hat er sie für Minimalschätzungen nicht mit gerechnet.

      Bei HTTP-Basic-Auth werden Benutzername und Passwort Base64-kodiert in einer Zeichenkette übertragen, aber durch einen Doppelpunkt
      getrennt: „username:passwort”

      Um einen Doppelpunkt als Passwortteil zu erlauben, gilt dabei einfach die Regel, dass im Username kein Doppelpunkt vorkommen darf. Kommt in der Zeichenkette also mehr als ein Doppelpunkt vor, muss alles hinter dem ersten Doppelpunkt zum Passwort gehören.

      Ebenso gibt es die Ausnahme, dass die Base64-kodierten Daten nicht nach 76 Zeichen einen Zeilenumbruch auslösen sollen. Das ist „nur” bei langen Benutzernamen und Passworten ein Problem, kann aber auch vorkommen. Mit diesen beiden (spezifizierten) Ausnahmen hat in der Praxis leider viele Software Probleme und es kommt in der Praxis gelegentlich zu unvorhersehbaren Login-
      Problemen.

      Ähnlich verhält es sich auch mit Umlauten: In vielen Transportprotokollen wie POP3, IMAP oder SMTP werden die Passworte im Rahmen von „Kommandos”
      mit übertragen, für die Kommandoeingaben ist aber nur 7-Bit-US-ASCII spezifiziert. Gibt man also Umlaute ein, ist das Ergebnis nicht unbedingt vorhersehbar.

      Zu Ihrem Punkt 2.):
      Folgende Punkte sollten Sie aus dem ersten Teil mitnehmen. Weitere folgen wie erwähnt demnächst.

      • -Stand der Technik zur Speicherung von Passworten auf Anbieterseite sind Einweg-Verschlüsselungsverfahren. Sollten diese Passworthashes „geklaut”
        werden, kann man mathematisch daraus keine Ursprungspassworte mehr errechnen, sondern müsste „alle möglichen” Kombinationen durchprobieren.
      • -Aber: mit moderner Technik können sehr viele Passworthashes in kurzer Zeit durchgerechnet werden. Kurze Passworte und Wörterbuch-Passworte können daher sehr schnell bestimmt werden. Daher sollten Sie sichere Passworte wählen.
      • -Salting beim Dienstanbieter „verlängert” die Passworte und erhöht den Aufwand beim „Durchrechnen”. Dieser erhöhte Aufwand bringt einen Zeitgewinn, damit der Anbieter nach einem erfolgten Passworthash-Diebstahl seine Kunden informieren und diese ihre Passworte ändern können.
      • -Bei einfachen Wörterbuch-Passworten ist trotz Salting das „Durchrechnen” so schnell, dass diese Passworte nur sehr geringen Schutz bieten. Daher sollten Sie sichere Passworte wählen.

      Schöne Grüße
      Alexander Thieme, 1&1

      1. 29. Juni 2013 um 07:03 |

        Vielen Dank für diese erstklassige, sachkundige und ausführliche Antwort! Es freut mich, dass sie diesen Beitrag noch fortsetzen wollen. Passwortsicherheit ist ein immer und ständig aktuelles Thema.

Die Kommentare sind geschlossen.