Zum Tag der Passwortsicherheit 2013 hatten wir bereits einen ersten Blick "unter die Motorhaube" aktueller Passwortsicherheit gegeben. In Teil 2 folgt nun ein Blick auf die Herausforderungen und die technischen Antworten darauf.

Für Schnellleser: Teil 1 in Kürze

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 können so schnell bestimmt werden.

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.

Trotz Salting ist das "Durchrechnen" von Wörterbuchpassworten oder "Top-10-Passworten" so schnell, dass diese Passworte nur sehr geringen Schutz bieten. Daher sollten Sie sichere Passworte wählen.

Zahn der Zeit

Jedes Hashverfahren hat einen gewissen Rechenaufwand, der letztlich die Sicherheit liefert. Da die Rechenleistung aber im Laufe der Zeit zunimmt, sinkt die Dauer zu Berechnung eines Passworthashes: man kann "immer mehr" Passworthashes in kurzer Zeit durchrechnen. "Alte" Hashverfahren sind so im Laufe der Zeit immer weniger sicher.

Avatar
Anders Henke
Alle Beiträge

In den Hashverfahren MD5 und SHA1 entdeckten Forscher auch Details, durch die man Hashkollisionen produzieren kann. Bei einer Hashkollision hat man zwar nicht das Passwort, aber einen Text, der den gleichen Hashwert ergibt: Zufälligerweise könnte es das Passwort sein, es reicht aber auf jeden Fall für einen Login aus. Vorhersagen kann man Hashkollisionen nicht und auch mit den bekannten Details ist der Aufwand zum Erzeugen so einer Hashkollisionen hoch, aber doch um einige Faktoren geringer als das komplette "Durchrechnen" aller möglichen Hashes. Auch das reduziert die Sicherheit. Passworte sind in der Praxis von dieser Lücke noch nicht betroffen, denn man müsste z.B. ein 12-Zeichen-Textpasswort durch eine 200-Zeichen-Binärdatei ersetzen. Dennoch sind diese Verfahren angezählt und müssen langfristig ersetzt werden.

Verfahrenswechsel

Beim Wechsel von einem Hashverfahren auf ein anderes steht man vor einem Problem: das Klartext-Passwort wird benötigt, um den neuen Hash zu berechnen. Genau das ist aber ja nicht mehr gespeichert. Die einfachste und gründlichste Lösung ist, dass man seine Passworte neu setzt oder ändert.

Eine andere Möglichkeit ist es, die Serversoftware entsprechend zu erweitern: beim Login liefert der Client ja das Klartextpasswort und wenn der Hash dieses Passworts mit dem gespeicherten Hash identisch ist, sollte es "das richtige" Klartextpasswort sein. An dieser Stelle könnte die Serversoftware das Klartextpasswort im neuen Hashverfahren speichern lassen.

In der Praxis funktioniert diese Strategie gut für aktiv genutzte Zugänge. Bei angelegten, aber seit Jahren nicht mehr verwendeten Zugängen "veralten" die Passworte aber zusehends im alten Hashverfahren. Würde der Dienstanbieter "gehackt" und kämen diese Passworthashes abhanden, wären diese Passworte nicht optimal gesichert und vermutlich schnell bekannt.

Neue Verfahren, verbesserte Konzepte

Das bcrypt-Verfahren erlaubt beliebig viele Rechenrunden: im Hash wird mit gespeichert, wie viele Runden zu absolvieren sind. Auf Serverseite konfiguriert man eine Rundenzahl, durch die das Hashing eines Passworts ca. eine Viertelsekunde Rechenzeit dauert. Sobald neue Prozessorgenerationen das Verfahren beschleunigen, konfiguriert man diesen Rundenfaktor einfach entsprechend höher - so dass die Passworthash-Berechnung wieder eine Viertelsekunde Zeit kostet.

Bereits gespeicherte Passworthashes lässt man anschließend nachträglich "weiterrechnen": Ein Passworthash, der "nur" 5000mal im Kreis gerechnet wurde, darf dann eben noch einmal 5000 Extrarunden absolvieren, bis er auf dem Soll-Stand von 10.000 Runden angekommen und dann wieder genauso hoch gesichert ist, wie ein frisch gesetzter, mit 10.000 Runden berechneter Passworthash.

Das Ziel ist es, im Laufe der Jahre die Zeit zur Berechnung eines Passwort-Hashes hoch zu halten. Statt in einigen Jahren auf moderner Hardware Millionen von Passworthashes pro Sekunde durchzurechnen, kann der Angreifer dann immer noch nur etwa vier Passworthashes pro Sekunde berechnen. Das Verfahren bcrypt wird in der Linux-Softwarewelt aber bislang noch nicht überall unterstützt.

Was bedeutet das für mich nun? Warum starke Passworte verwenden? Warum das Passwort regelmäßig ändern?

Mit Hashverfahren kann man auf Anbieterseite Passworte so ablegen, dass der Anbieter selbst kein Klartextpasswort mehr kennt: Er kann es weder missbräuchlich verwenden noch kann "das Passwort" gestohlen werden. Sollte der Anbieter "gehackt" werden, sind die gestohlenen Passworthashes nicht sofort "unsicher", sondern es verbleibt etwas Zeit, um die Kunden zu informieren.

Es gibt allerdings Techniken, die mit Rechenaufwand wahrscheinliche Passworte bestimmen können. Diese kann auch ein Einbrecher nutzen. Bei "Top-10-Passworten", kurzen Worten oder natürlichen Namen könnte ein Angreifer auch bei aufwändigen Hashverfahren die Passworte sehr schnell bestimmen.

Egal, wie sicher das Hashverfahren sein mag, gegen diese konkrete Gefahr helfen letztlich nur sicher gewählte, individuelle Passworte.

  • Ein individuelles Passwort je Dienst sorgt dafür, dass nach einem "Hack" des Anbieters nur dieser eine Login gefährdet ist. Passwortmanager-Software unterstützt dabei, eine "Passwortflut" zu verwalten.
  • Speichert der Anbieter Passworte nur gesalzen und gehashed, sind nach einem "Hack" des Anbieters starke Passworte auch nicht innerhalb weniger Minuten kompromitiert.
  • Ein "starkes" Passwort sorgt dafür, dass dieses nicht "erraten" werden kann.
  • Etwa alle 10 Jahre wird ein "aktuelles" Hashverfahren gebrochen und was bislang als "sichere Passwortspeicherung" galt, ist dann nicht mehr (ganz) so sicher. Auch, als "Passwort-Wechsel-Muffel" sollte man daher alle paar Jahre seine Passworte wechseln, damit der Anbieter eine Chance hat, die Passworte nach Stand der aktuellen Technik zu sichern.

Wie sind die Passworte heute bei 1&1 gesichert?

Die Loginpassworte des 1&1 Control-Centers werden heute über bcrypt abgesichert. Neben dem Login fürs Control-Center richtet man als Hosting-Kunde viele weitere Logins ein - E-Mail-Postfächer, FTP-Zugänge, MySQL-Datenbanken oder der Verzeichnisschutz im Webspace, bei Servern kommen auch Benutzeroberflächen wie Plesk dazu. Dahinter stehen jeweils verschiedene technische Systeme mit verschiedenen Möglichkeiten und Abhängigkeiten: "ein" Verfahren zur Absicherung gibt es dementsprechend nicht.

Unser Ziel ist es, Passworte grundsätzlich als zufällig gesalzenen Hash in einem möglichst hochwertigen Verfahren zu speichern: Für die "normalen" Hostingprodukte sind dies je nach System die Hashverfahren bcrypt, SHA2-Crypt, SHA1-Crypt oder MD5-Crypt. Einzelne Produkte (z.B. MySQL) verwenden auch eigene Varianten dieser Hashverfahren.

Wo Passworthashing nicht möglich ist, werden Passworte stark verschlüsselt, getrennt vom Entschlüsselungssystem aufbewahrt und die Entschlüsselungsrechte restriktiv überwacht. Rekonstruierbare Passworte können nötig sein, wenn z.B. Dritt-Softwares konfiguriert werden sollen, an die das Passwort nur im Klartext übergeben werden kann. In der Praxis sind davon vor allem die Server-Produkte betroffen.

Je nach Stand der Technik haben wir in 25 Jahren 1&1 auch schon mehrfach die Passwort-Hashverfahren gewechselt und werden das auch in Zukunft tun. Da wir das Klartextpasswort gehashter Passworte nicht kennen und viele angelegte Logins nicht regelmäßig verwendet werden, können wir aber nicht ohne Mithilfe des Kunden alte Passworthashes "upgraden". Der einfachste Weg für dieses "Upgrade": Man ändert regelmäßig sein Passwort im 1&1 Control-Center, denn dadurch wird es einfach neu gesetzt.

0