Die Rechnung ist eigentlich ganz simpel:
Für das Passwort werden 52 Groß und Kleinbuchstaben, 6 Umlaute, 1 ß, 10 Ziffern und 30 Sonderzeichen (°!“§$%&/(){}[]=?+*~#‘<>|,;.:-_), also 99 mögliche Zeichen verwendet. Bei einem zehnstelligen Passwort ergeben sich daraus 90.438.207.500.880.449.001 Kombinationen (ZeichenraumgrößePasswortlänge). Das klingt nach viel, die Zahl schrumpft aber im Angesicht von 348 Milliarden Schlüsseln, die pro Sekunde berechnet werden können, auf eine sehr beschauliche Zahl:
99^10/348.000.000.000/60/60/24/365 = ca. 8 Jahre
Der Blogeintrag mit diesen Daten ist vom Dezember 2012, also sollten die Herren in spätestens 7 Jahren mein potenziell sicheres Passwort geknackt haben. Alternativ könnte man auch mit einem größeren Budget noch mehr Passwörter in kürzerer Zeit berechnen.
Passwörter werden in der Regel nicht als Klartext abgespeichert, da dies technisch nicht notwendig ist und somit das Passwort zu keiner Zeit eingesehen werden kann. Stattdessen wird ein Hash-Wert eines Passworts, also das Ergebnis einer kryptografischen Berechnung gespeichert. Hier können unterschiedliche Algorithmen zum Einsatz kommen, zum Beispiel das NTLM-Protokoll, das noch heute von Windows eingesetzt wird. Die obige Berechnung hat sich zum Beispiel auf diesen Algorithmus bezogen.
Die Komplexität des Algorithmuses hat starken Einfluss auf die Sicherheit eines Passworts, da der Passwort-Cracker den gleichen Algorithmus verwendet und das Ergebnis seiner Berechnung mit dem vorliegenden Passwort-Hash vergleicht. Zu Windows XP-Zeiten wurden die Passwörter mit dem Vorgängerprotokoll LM geschützt. Da dieser Algorithmus relativ einfach implementiert ist, könnte die vorgestellte Hardware ein 14 Zeichen langes XP-Passwort in knapp sechs Minuten knacken.
Und plötzlich erscheint uns der Hinweis von Truecrypt, eine bekannte Software zum sicheren Verschlüsseln von Dateien und ganzen Festplatten, gar nicht mehr so absurd:
“We strongly recommend choosing a password consisting of more than 20 characters (the longer, the better). Short passwords are easy to crack using brute-force techniques.”
Aber wie soll man sich ein 20-stelliges Passwort den merken? Eine gute Möglichkeit ist die Verwendung einer Eselbrücke. Man überlegt sich einen einprägsamen Satz, der aus möglichst vielen Wörtern besteht. Nun nimmt man jeweils den ersten Buchstaben der Wörter und ersetzt schließlich vereinzelt Buchstaben durch Umlaute, Ziffern und Sonderzeichen. Konkret könnte das wie folgt aussehen:
Bei dem Satz lautet die Devise, je kreativer der Satz, desto leichter tut mach sich, beim Lernen:
Meine Mutter kommt aus Bayern und vermisst das Weißwurstfrühstück vor 12 Uhr
Wenn wir nun noch ein paar Silben trennen kommen wir in diesem Beispiel auf 16 Zeichen, fehlen also noch 4. Zeit für ein paar wahllos verstreute Umlaute und Sonderzeichen:
MMükaB&vmÄdWwöfv1_2U
Das klingt jetzt ungefähr so (einmal in Gedanken bewusst so lesen):
Meine Mütter kommt aus Bayern und vermisstÄ das Weißwörschtfrühstück vor 12 Uhr.
Da noch immer die Anzahl der Buchstaben stark überwiegt, fügen wir weitere Zahlen und Sonderzeichen ein. Hier sollte man sich eine weitere Eselbrücken bauen, wie zum Beispiel ein 3 sieht aus wie ein gedrehtes M, ein k ist eine geschweifte Klammer, usw.
M3ü{aB&vmÄdW#öfv1_2U
Warum nur die Anfangbuchstaben des Satzes nehmen? Solange keine maximale Passwortlänge vorgegeben ist (ich kenne dies nur von Microsofts Live–Diensten, wo maximal 16 Zeichen möglich sind), sorgt dies insbesondere bei Verwendung von kryptischen Bestandteilen (Exotische Namen, absichtliche seltene Tippfehler etc.) für deutlich stärkere Passwörter.
Folgender Comic bei xkcd stellt dies auch grafisch dar:
https://xkcd.com/936/
Eine Analyse des Comics bzgl. seiner kryptographischen Korrektheit:
https://xato.net/passwords/analyzing-the-xkcd-comic/