✖

Passwortsicherheit

Ein Angreifer, der in eine durch ein Passwort gesicherte Anwendung (ein mit Passwort geschütztes RAR-Archiv, E-Mail …) gelangen will, hat mehrere Möglichkeiten, ohne Kenntnis des Passworts zum Ergebnis zu kommen. Manche davon erfordern ein gewisses Maß an Intelligenz, Scharfsinn und Wissen, andere dagegen etwas Glück und körperliche Vorbereitung. Fassen wir also zuerst zusammen, welche Möglichkeiten der Angreifer hat.

Wie man jemandes Passwort knackt

  • Denjenigen finden, der das Passwort kennt (zum Beispiel den Besitzer des E-Mail-Kontos), und das Passwort von ihm bekommen – ihn überreden, bestechen, verprügeln. Diese Methode werde ich im weiteren Artikel nicht beschreiben :-).
  • Versuchen, dem Besitzer das Passwort unauffällig zu entlocken, zum Beispiel mit einer gefälschten E-Mail, fachlich nennt man das Phishing. Die Methode besteht darin, dass du dem Kontobesitzer eine E-Mail schickst, in der du ihn aufforderst, dir Benutzername und Passwort zurückzuschicken. Es hängt nur von dir ab, wie vertrauenswürdig die Nachricht wirkt, die Bitte allein würde nämlich wahrscheinlich nicht genügen, man muss noch eine Geschichte dazu erfinden. Oft heißt es, die Datenbank sei ausgefallen, deshalb würden alle Benutzer aufgefordert, ihr Passwort und ihren Namen erneut einzugeben, sonst werde ihr Postfach gelöscht und Ähnliches. Wenn die Nachricht wirklich seriös aussieht, ist die Erfolgsquote oft nicht klein.
  • Wörterbuchangriff – wir laden uns aus dem Internet einige Pakete der häufigsten Passwörter herunter und probieren sie alle durch. Wenn wir Glück haben und der Besitzer ein häufigeres Passwort hat, bekommen wir es tatsächlich leicht heraus. Daraus folgt die grundlegende Lehre – nimm keine Passwörter, die einen Sinn ergeben. Nimm zum Beispiel das Passwort fussball, und ich garantiere dir, dass dir der erstbeste Anfänger-Hacker das in ein paar Sekunden knackt. Das ist wohl die wirksamste Methode; wenn du wirklich ein großes Passwortwörterbuch hast, kannst du das Passwort eines großen Teils der Nutzer ohne größere Mühe erraten.
  • Brute Force ist die dümmste Methode, die rohe Gewalt. Sie besteht darin, alle möglichen Variationen von Passwörtern auszuprobieren, die es auf der Welt überhaupt gibt. Das Programm setzt nach einem bestimmten Algorithmus nach und nach Buchstaben zusammen und probiert, ob es das gesuchte Passwort getroffen hat. Sobald es das findet, speichert es das Passwort und beendet sich. Diese Methode besprechen wir weiter.

Brute-Force-Angriff

Ein Programm, das diese Methode verwendet, bildet nur verschiedene Variationen von Wörtern und probiert, ob es zufällig das Passwort getroffen hat. Wir berechnen, wie lange so ein Ausprobieren dauern kann.

Nehmen wir an, wir haben ein Passwort mit fünf Zeichen, das nur aus Kleinbuchstaben des englischen Alphabets besteht (ohne ä, ö, ü und ß). Das englische Alphabet hat sechsundzwanzig Buchstaben. Jetzt können wir einfach berechnen, wie viele verschiedene Passwörter wir aus fünf solchen Buchstaben bilden können. Wir verwenden Variationen, weil es auf die Reihenfolge ankommt (das Passwort nacht ist nicht dasselbe wie tnach, obwohl es aus denselben Buchstaben besteht), und außerdem müssen wir Variationen mit Wiederholung verwenden, weil sich die Buchstaben in Passwörtern wiederholen können. Und los geht es mit der eigentlichen Rechnung. Die Formel für Variationen mit Wiederholung lautet V'(k; n) = nk. Für n setzen wir die Anzahl der Buchstaben ein, aus denen wir auswählen, also die Anzahl der Buchstaben des englischen Alphabets, und für k setzen wir die Anzahl der Buchstaben ein, aus denen das Passwort besteht, in unserem Fall fünf. Es ergibt sich 265, das sind ungefähr zwölf Millionen verschiedene Variationen. Ist das viel oder wenig?

Das hängt auch davon ab, welche Maschine uns zur Verfügung steht. Ein älterer Rechner schafft pro Sekunde wenige Vergleiche, supermoderne Computer schaffen zehntausendmal mehr. Ich werde in diesen Beispielen damit rechnen, dass der Computer zehn Millionen Vergleiche und Auswertungen pro Sekunde schafft. Wahrscheinlich ist jedem klar, dass ein solcher Computer ein fünfstelliges Passwort in weniger als zwei Sekunden herausfinden würde, was wirklich kein positives Ergebnis ist. Aber geben wir nicht auf.

Wir verstärken das Passwort

Ein fünfstelliges Passwort ist wirklich nicht im Geringsten sicher, manche vernünftigeren Systeme erlauben es nicht einmal, ein so kurzes Passwort zu wählen. Man sagt, ein Passwort sollte nicht kürzer als acht Zeichen sein. Berechnen wir jetzt, wie viele Variationen es für ein achtstelliges Passwort gibt. Wie im vorigen Fall betrachten wir nur Kleinbuchstaben des englischen Alphabets. Wir setzen in die Formel ein und erhalten 268, das sind ungefähr zweihundert Milliarden Variationen. Das ist schon eine schönere Zahl. Der Computer würde alle Variationen in knapp sechs Stunden auswerten. Das ist besser als vorher, aber schauen wir, wie stark das Passwort würde, wenn du auch Großbuchstaben, Ziffern und Sonderzeichen wie Unterstriche, Bindestriche usw. verwenden würdest.

Kleinbuchstaben gibt es 26, Großbuchstaben ebenfalls 26, das ergibt zusammen 52 Zeichen. Dazu müssen wir noch 10 Ziffern und einige Sonderzeichen addieren. Nicht überall sind alle Sonderzeichen erlaubt, deshalb rechne ich der Einfachheit halber nur mit acht Sonderzeichen, damit sich die Zeichenanzahl auf schöne 70 rundet. Die Länge des Passworts ist wieder acht. Nach dem Einsetzen ergibt sich diese Zahl: 708, das sind zur besseren Vorstellung ungefähr 5,8 · 1014, in Worten fast sechshundert Billionen Variationen. Das ist schon eine ziemlich beeindruckende Zahl. Unser Computer würde alle Variationen in sechzehntausend Stunden überprüfen! Das sind knapp zwei Jahre. Der Angreifer müsste sehr viel Glück haben, um das Passwort in realistischer Zeit zu entdecken. Außerdem müsste er die Länge deines Passworts kennen, denn wenn er die Länge nicht kennt, müsste er noch die Variationen mit weniger Buchstaben überprüfen.

Manche Leute haben so viel Angst um ihre Daten, dass sie Zahlenpasswörter verwenden. Diese Passwörter sind gegen Wörterbuchangriffe sehr widerstandsfähig, denn in irgendeinem Wörterbuch häufig verwendeter Passwörter steht wohl kaum ausgerechnet 41.274.390.553. Leider sind solche Passwörter zwar gegen Wörterbuchangriffe widerstandsfähig, aber weniger widerstandsfähig gegen Brute Force. Ziffern gibt es nämlich nur zehn, das heißt, die Anzahl der Variationen ist immer 10k. Die Stärke des Passworts bestimmt nur seine Länge. Unser vorheriges achtstelliges Passwort mit allen Arten von Zeichen hatte ungefähr 5,8 · 1014 Variationen. Um wenigstens dasselbe bei einem Zahlenpasswort zu erreichen, müsste es fünfzehn Ziffern haben, fast doppelt so viele Zeichen. Man sieht deutlich, dass es effektiver ist, ein kürzeres Passwort mit mehr Zeichenarten zu wählen.

Unterschätze den Angreifer nicht

Der Angreifer kann clever sein. Nach dem Lesen der vorherigen Zeilen hast du dich zum Beispiel entschieden, dein aktuelles Passwort „limonade“ wenigstens in „Limonade“ umzuschreiben, wodurch sich die Anzahl der möglichen Variationen um ein Vielfaches erhöht, weil der Angreifer jetzt auch Großbuchstaben in den Algorithmus einbeziehen muss. Der Angreifer kann aber annehmen, dass der Großbuchstabe nur an erster Stelle steht, weil man sich das besser merkt und es nicht üblich ist, dass mitten im Wort ein Großbuchstabe steht. Also schreibt er sich einen Algorithmus, der alle Variationen von Wörtern mit Kleinbuchstaben und gegebenenfalls mit einem Großbuchstaben gleich am Anfang überprüft.

Dein ursprüngliches Passwort hatte die Komplexität (ich meine damit, wie viele Variationen es insgesamt geben konnte, wenn wir dieselbe Form des Passworts einhalten – acht Kleinbuchstaben) 268. Wenn der Angreifer nicht nachdenken würde, hätte das neue Passwort die Komplexität 528, aber wenn er den oben skizzierten Algorithmus verwendet, hätte das Passwort die Komplexität 52 · 267. An der ersten Stelle des Passworts können sich Klein- und Großbuchstaben abwechseln, davon gibt es zusammen 52, und an den weiteren sieben Stellen können sich nur noch Kleinbuchstaben abwechseln, was schon eine gewöhnliche Variation mit Wiederholung ist.

Weiter kann der Angreifer zum Beispiel wissen, dass dein Passwort aus vier Buchstaben und vier Ziffern besteht, nicht durcheinander, immer die Ziffern hintereinander und die Buchstaben hintereinander. Die Komplexität eines solchen Passworts würden wir so berechnen: Die erste Vierergruppe aus Buchstaben hat insgesamt 264 Variationen, die zweite Vierergruppe aus Ziffern hat 104 Variationen. Diese beiden Ergebnisse multiplizieren wir anschließend: 264 · 104. Wenn der Angreifer nicht wüsste, ob zuerst die Ziffern oder die Buchstaben kommen, müssten wir das vorherige Ergebnis noch mit zwei multiplizieren.