“Ihr Paßwort läuft in 14 Tagen ab”

Okay, neulich bin ich beim Streifen durch das Netz auf das Blog Coding Horror von Jeff Atwood gestoßen. Es gibt dort eine Vielzahl von Artikeln zu Themen wie Programmierung, Internet und ähnlichem. Und viele Artikel sind auch wirklich lesenswert.

Besonders interessant fand ich den Artikel Why Do Login Dialogs Have a “User” Field?

Für alle, die nicht den ganzen Artikel lesen möchten (oder nicht gut genug Englisch können) fasse ich das mal kurz zusammen. Ich rate aber dazu, den ganzen Originalartikel zu lesen und insbesondere auch die Kommentare, da hier tatsächlich eine fruchtbare Diskussion stattfindet – was ja in Blog-Kommentaren eher ungewöhnlich ist.

Also, worum geht es? Atwood schlägt vor, den Benutzernamen abzuschaffen. Man loggt sich also nur mit seinem Paßwort ein. Das führt dazu, daß ein Paßwort einzigartig sein muß – wie soll das System sonst wissen, wer sich da gerade angemeldet hat. Und dies wiederum führt ganz automatisch zu deutlich sichereren Paßwörtern. Atwood propagiert sowieso Paßphrasen anstelle von Paßwörtern. Diese haben den Vorteil, daß sie deutlich länger als Paßwörter und trotzdem einfach zu merken sind. Man vergleiche zum Beispiel:

Ich wohne in der Kaiserstraße Nr. 14.
vs.
“1-&z!Q3%”

Die Phrase hat über 30 Zeichen, enthält Sonderzeichen und Zahlen und ist durch einen Brute-Force-Angriff unmöglich zu knacken. Das Paßwort ist zwar auch sehr sicher, aber beinahe unmöglich zu merken. Das führt dazu, daß Leute mit einem solchen Paßwort sich dieses irgendwo notieren – womöglich sogar in einer txt-Datei auf dem Computer. Und schwupps ist es vorbei mit der schönen Sicherheit.

Das Weglassen des Benutzernamens hat ein offensichtliches Problem, das in dem verlinkten Artikel auch intensiv in den Kommentaren diskutiert wurde: Es kann der Fall eintreten, daß ich mein Paßwort ändere und das System dieses zurückweist, weil es schon existiert. Dann kenne ich nun das Paßwort eines anderen Nutzers und könnte mich unter seinem Account anmelden. Für diesen Fall muß man eine Sicherung einbauen und Patrick McElhaney hat in einem Kommentar (leider kein Direktlink möglich. Auf der Seite nach “October 13, 2005 08:03 AM” suchen, um den Kommentar zu finden) eine einfache und doch effiziente Methode skizziert.

Wenn eine solche Situation eintritt, also wenn mein neues Paßwort schon das Paßwort eines anderen Nutzers, nennen wir ihn Bob, ist, wird eine Warnung eingeblendet (etwa: “Wir wissen wer Du bist, kreetrapper. Mach keine Dummheiten!”). Außerdem muß Bob, sobald er sich das nächste Mal anmeldet, seine Identität verifizieren, z.B. indem er seine E-Mail-Adresse eingibt, und ein neues Paßwort vergeben. Wenn ich jetzt trotzdem versuche, mich mit dem Paßwort von Bob anzumelden, muß ich zuerst einmal raten, wem das Paßwort gehört. Gebe ich stattdessen Annas Adresse ein, gehen die Warnglocken an und ich bin ertappt. Wenn ich tatsächlich Bobs Adresse eingebe, komme ich erst einmal rein, muß aber das Paßwort ändern. Das heißt, das Bob bei seinem nächsten Einlogversuch nicht mehr in das System kommt. Er wendet sich verzweifelt an den Administrator und schon bin ich wieder ertappt.

Wie ich sagte: einfach aber effizient.

Das Weglassen der Benutzernamen hat also vor allem den Vorteil, den Nutzern stärker klar zu machen, wie wichtig ein gutes, starkes Paßwort ist. Und je mehr Nutzer mit einzigartigen Paßwörtern auf so einem System unterwegs sind, desto sicherer werden zwangsläufig die Paßwörter. Um vor echten Hackern sicher zu sein, sollte man sich allerdings noch etwas einfallen lassen, damit möglichst keine trivialen Paßphrasen/-wörter im Umlauf sind, die ein Hacker leicht raten kann. Denn da er nun keinen Nutzernamen mehr eingeben muß, sind ja alle im Umlauf befindlichen Paßwörter Treffer für ihn.