Photo by Matthew Brodeur on Unsplash
Wenn ich dich erwischt habe, lies bitte weiter. Eine gewisse „Grund-Paranoia“ hinsichtlich Sicherheit hat noch nie geschadet. Ich versuche „kurz und knapp“ zu erläutern, warum auch du einen Passwort-Manager benutzen solltest.
Am Ende des Beitrags findest du ein paar Tipps für gute Passwörter, eine Zusammenfassung mit Vorteilen, „Nachteilen“ und einer ersten Liste von Passwort-Manager Anbietern sowie Videos rund um das Thema (die ich sehr empfehlen kann).
Zuvor beschriebe ich aber erst mal die verschiedenen Angriffs-Verfahren und gebe ein paar Beispiele, wie schnell verschiedene Arten von Passwörtern geknackt werden können.
Auch wenn du vielleicht nicht alles im Video verstehst, es wird doch sehr gut veranschaulicht (Spoiler-Alarm: es ist eine Live-Demo und man sieht die Passwörter wirklich „herauspurzeln“).
Außerdem gibt es noch je ein Video zum Thema „Sicheres Passwort wählen“ und wie Passwort-Manager funktionieren und ob man ihnen trauen kann.
Passwörter prüfen
Bei dir sollten die Alarmglocken läuten, wenn einer oder sogar mehrere Punkte für dich zutreffen:
- Passwort mehrfach verwendet (1:1)
- Passwort mehrfach verwendet (abgeändert, z. B. 3 statt e, 1 statt i etc.)
- Passwort nur aus Klein- oder Großbuchstaben und weniger als 10 Zeichen
- Passwort aus Wörtern zusammengesetzt
- … alles wobei du denkst: „Ja ich weiß, das ist eigentlich nicht sicher.“
Wenn ich dich erwischt habe: BITTE LIES WEITER! Und ja, es gibt eine relativ entspannte Lösung für das Problem.
„Wie machen die das?“
Gemäß dem Motto „Kenne deinen Feind“ und der Annahme, dass man nie zu 100% sicher sein kann, lohnt ein Blick auf die andere Seite.
Ein wichtiges Kriterium ist die Komponente „Zeit“. Selten wir sich jemand hinsetzen und genau dein Passwort für diesen einen Dienst versuchen raus zu bekommen. Das läuft alles meist automatisch ab.
Da werden tausende, Millionen oder gar Milliarden Passwörter pro Sekunde durchprobiert (je nach verfügbarem Rechner des „Hackers“).
Außerdem ist „Kreativität“ wichtig, denn bekannte Passwörter lassen sich weitaus einfacher cracken.
Hash, Salz und Regenbogen
Bidde was?
In den Videos wird darüber (Hashing) viel erzählt, daher ein kleiner Background. Wenn dich die Technik nicht interessiert, klicke hier. Ansonsten lies gerne weiter, unten kommen noch ein paar weiterführende Links zum Thema.
Grundidee
Man sollte keine Passwörter einfach so als Text speichern. Falls jemand den gespeicherten Text findet, sagt er/sie „Danke“ und hat direkt das Passwort. So einfach muss man es den bösen Menschen ja nicht machen.
Dafür haben sich schlaue Menschen sogenannte „Hashing-Algorithmen“ überlegt. Das sind quasi mathematische Funktionen nach dem bekannten Prinzip f(x) = y
. Also ich „gebe ein x hinein“ und „bekomme ein y zurück“.
Einfaches Beispiel für Hashing
Wenn du dich bei einer Website registrierst, dann wird dein eingegebenes Passwort x = "meinPassw0rt"
durch eine solche Funktion gejagt und es kommt sowas raus wie y = "f75515625a98786bc105777556e354b6"
.
Das ist „der Hash-Wert“ für „den Text“: meinPassw0rt. Der Hash wird in der Datenbank der Website gespeichert. Da man den Hash nicht zurückrechnen kann, ist das erstmal sicher(er als das Passwort als Text zu speichern).
Wenn du dich dann irgendwann wieder einloggst, wird dein eingegebener Wert wieder durch die gleiche Hash-Funktion gejagt und ganz kurz zwischengespeichert. Es wird wieder "f75515625a98786bc105777556e354b6"
herauskommen (wenn du "meinPassw0rt"
eingegeben hast). Diesen Hash vergleicht die Website mit dem bei Registrierung gespeicherten Hash. Wenn sie gleich sind, weiß die Website, dass du das richtige Passwort eingegeben hast. Ohne zu wissen, was das Passwort ist*.
Das ist sehr einfach formuliert aber prinzipiell der grundlegende Weg. Ich habe den nachfolgenden Artikel und die Kommentare nur überflogen aber er wirkte ziemlich fundiert und gibt eine ausführlichere Erklärung zum Thema „Sicheres Passwort Hashing mit Salts*“. Hier noch ein paar Beispiele für größere Hacks: LinkedIn (117 Millionen Hashes) oder Adobe (38 Millionen Hashes)
Die Bedeutung von Hashing, Salts und Hacks aus der Vergangenheit
Wenn man eine Datenbank/Liste mit Passwörtern hackt, bekommt man meist eine Liste mit Hashes. Man weiß aber noch nicht aus welchem Text/Passwort dieser Hash erzeugt wurde.
Es kursieren dafür riesige Dateien im Internet von verschiedenen Hacks. Oder jemand hat sich die Mühe gemacht, „einfach mal“ alles mögliche an Zeichenkombinationen zu berechnen/hashen, zu speichern und zu veröffentlichen.
Diese Listen enthalten dann ganz viele Daten, immer mit Pärchen aus „Hash“:“Text“ (auch genannt „Lookup Table“). Man weiß also, „Okay, dieser Hash wurde aus diesem Text erzeugt.“
Nun kann man die Hashes aus seiner Datenbank in den Listen der anderen suchen und wenn man einen Treffer hat, kennt man auch den Wert zu dem Passwort in seiner Datenbank.
Oder man probiert immer alle möglichen Passwörter durch, berechnet sich den Hash und vergleicht diesen dann wieder mit seiner Liste. Wenn es einen Treffer gib weiß man, dass „dieser Nutzer“ das zuvor ausprobierte Passwort hat („Reverse Lookup Table“).
Das ist auch wieder relativ simpel formuliert, die passenden Schlagworte zum Nachschlagen dafür sind „Lookup Table“, „Reverse Lookup Table“ und „Rainbow Table“.
* Um zu verhindern, dass jemand über einen gespeicherten Hash durch eine der „Lookup Tables“ an das Passwort gelangt, nutzt man das „Salting“-Verfahren. Das ist auch dem verlinkten Artikel oder bei YouTube noch mal genauer erklärt. (Außerdem kann man dadurch das gleiche Passwort mehrfach, aber mit verschiedenen Hashes, speichern. Denn bei einem guten Hashing-Algorithmus ist jeder berechnete Hash einzigartig.)
Angriffs-Verfahren
Zurück zum eigentlichen Thema: Die gängigen Methoden sind „Brute Force“, also das systematische Ausprobieren aller möglichen Kombinationen, und „Dictonary Attack“, das Ausprobieren gängiger (Pass)wörter in verschiedenen Varianten. Alles passiert natürlich automatisiert und mit dem oben erwähnten Hashing-Gedöns.
Der gute Mann in den Videos hat einen Rechner mit 4 guten Grafikkarten, also ganz gut Rechenpower und der ist „ca. 8-10x so schnell wie meiner Zuhause“. Er kommt dabei auf ungefähr folgende Kennzahlen mit seinen automatischen Durchläufen:
- 40 Milliarden Hashes werden pro Sekunde berechnet** und mit einer vorhandenen Liste verglichen
- ** mit einem mittlerweile schlechten Algorithmus (MD5), der nicht so komplex ist und daher schnell berechnet werden kann
- daher sollten neuere, komplexere und entsprechende „langsamere“ Algorithmen benutzt werden, sodass statt Milliarden „nur noch“ ca. ein paar Millionen oder ein paar Tausend Hashes pro Sekunde berechnet werden können
Die im Video benutzte Liste hat ca. 6000 Hashes, die er versucht zu knacken (also irgendwie an den ursprünglichen Text/das Passwort zu gelangen). Jetzt aber erst mal die Verfahren um ein Gefühl zu bekommen. Die Ergebnisse guck dir bitte im Video an, ich habe schon mal zum Start der Live-Demo vorgespult.
Brute Force – „dummes Ausbrüten mit Gewalt“
Man versucht dabei mit festen Parametern eine Liste von Passwörtern zu cracken. Die Parameter könnten sein
- nur Kleinbuchstaben mit
- 8 Stellen,
- 9 Stellen,
- 10 Stellen oder
- nur Klein- & Großbuchstaben mit
- 8 Stellen,
- 9 Stellen,
- 10 Stellen oder
- Klein- & Großbuchstaben und Zahlen 0-9 mit
- 8 Stellen,
- 9 Stellen,
- 10 Stellen oder
- Klein- & Großbuchstaben, Zahlen 0-9 und 5 Sonderzeichen (!_$%&) mit
- 8 Stellen,
- 9 Stellen,
- 10 Stellen oder
- Klein- & Großbuchstaben, Zahlen 0-9 und 10 Sonderzeichen (!“§$%&/()=?)
- 8 Stellen,
- 12 Stellen,
- 16 Stellen oder
- …
Ein Programm probiert dann alle möglichen Kombinationen aus. Also z. B.: aaaaaaaa, aaaaaaab, aaaaaaac, …. (nicht vergessen: 40 Milliarden pro Sekunde)
Um an die Anzahl verschiedener möglichen Kombinationen zu gelangen, genüg folgende eine (Potenz)-Rechnung:
Anzahl möglicher Zeichen Anzahl von Stellen
Daraus ergeben sich entsprechend viele Kombinationen (Alphabet 26 Zeichen, Zahlen 0-9 10 Zeichen):
Stellen | Zeichen | Rechnung | verschiedene Kombinationen | in Worten |
---|---|---|---|---|
8 | 26 | 26^8 | 208.827.064.576 | 200 Milliarden |
9 | 26 | 26^9 | 5.429.503.678.976 | 5 Billionen |
10 | 26 | 26^10 | 141.167.095.653.376 | 141 Billionen |
8 | 52 | 52^8 | 53.459.728.531.456 | 53 Billionen |
9 | 52 | 52^9 | 2.779.905.883.635.712 | 2 Billiarden |
10 | 52 | 52^10 | 144.555.105.949.057.024 | 144 Billiarden |
8 | 62 | 62^8 | 218.340.105.584.896 | 218 Billionen |
9 | 62 | 62^9 | 13.537.086.546.263.552 | 13 Billiarden |
10 | 62 | 62^10 | 839.299.365.868.340.224 | 839 Billiarden |
8 | 67 | 67^8 | 406.067.677.556.641 | 406 Billionen |
9 | 67 | 67^9 | 27.206.534.396.294.947 | 27 Billiarden |
10 | 67 | 67^10 | 1.822.837.804.551.761.449 | 1 Trillionen |
8 | 72 | 72^8 | 722.204.136.308.736556.641 | 722 Trillionen |
12 | 72 | 72^12 | 19.408.409.961.765.342.806.016 | 19 Trilliarden |
16 | 72 | 72^16 | 521.578.814.501.447.328.359.509.917.696 | 521 Quadrilliarde |
Mal so als Hausnummer: die Erde existiert seit ca. 4,6 Milliarden Jahren, das sind ungefähr 145 Quadrillionen Sekunden. Das ist die „Form“ vor Quadrilliarde …
Das sind astronomische Zahlen, die man sich einfach nicht mehr vorstellen kann.
Zwischenfazit
Wie du siehst, hat es schon einen ganz guten Einfluss, wenn man mehr Stellen benutzt. Außerdem kann man bei gleicher Länge von Stellen aber mit zusätzlichen Zeichen auch schon gut etwas bewirken. Einfach noch ein paar Großbuchstaben aufnehmen und es gibt ca. 200 so viele Möglichkeiten.
„Und wie lange dauert das Knacken wirklich?“
Ich habe mal das Beispiel mit den „40 Milliarden Hashes pro Sekunde berechnen“ und ein paar Einträgen aus der Tabelle von oben in Beziehung gesetzt:
- 16 Stellen mit 72 möglichen verschiedenen Zeichen
- ca. 400.000.000.000 Jahre (400 Milliarden, zur Erinnerung: die Erde gibt es seit ca. 4,6 Milliarden Jahren …)
- 10 Stellen mit 67 möglichen verschiedenen Zeichen (Klein- & Großbuchstaben, Zahlen und fünf Sonderzeichen)
- ca. 1,5 Jahre
- 10 Stellen mit 52 möglichen verschiedenen Zeichen (nur Klein- & Großbuchstaben)
- ca. 42 Tage
- 8 Stellen mit 52 möglichen verschiedenen Zeichen (nur Klein- & Großbuchstaben)
- ca. 22 Minuten
- 8 Stellen mit 26 möglichen verschiedenen Zeichen:
- ca. 5 Sekunden
Die Idee könnte jetzt sein, sich ein paar Wörter zu nehmen, aneinander zu hängen und für „extra Sicherheit“ noch ein paar Zeichen auszutauschen. Genau um solche Passwörter zu knacken zielt das zweite Verfahren ab.
Dictonary Attack – „schlauer Angriff mit Wörterbuch“
Anstatt jede mögliche Kombination ausprobieren, versucht man das Passwort systematisch zu erraten. Dabei helfen Listen aus gängigen Wörtern oder sogar Passwortlisten (aus gehackten Datenbanken, siehe Mini-Info zu Hashing). Diese sind natürlich schon gehashed, sodass man nicht alles selbst berechnen muss.
„Nagut, dann ändere ich mein Standardpasswort etwas ab“, keine so blöde Idee aber die bösen Menschen sind ja leider auch nicht blöd. Dafür gibt es auch wieder Automatismen und vorgefertigte Listen/Muster, die man sich einfach herunterladen kann.
Es wir also für jedes Passwort nicht nur jedes Wort aus dem eigenen „Wörterbuch des Hackers (oder anderer)“ ausprobiert. Jedes Wort wird auch in zig verschiedenen Kombinationen ausprobiert und so kommt man dann an viele sicher geglaubte Passwörter.
Besonders mit geleakten Listen von Hacks ist das Verfahren sehr effektiv, da es Passwörter sind, die von Leuten wirklich benutzt wurden (und werden …). Und durch die Anpassungen/Muster lassen sich eben auch Abwandlungen von bekannten Passwörtern testen.
Tipps für gute Passwörter
Aus den ganzen genannten Gründen solltest du für dein Passwort sicherstellen, dass es:
- genügend Stellen hat, 16-20 Zeichen oder mehr
- verschiedene Zeichen benutzt:
- Kleinbuchstaben
- Großbuchstaben
- Zahlen
- Sonderzeichen
- einmalig ist, also nirgends sonst benutzt wird
- möglichst unsinnig ist und keinem Muster folgt
- (keine persönlichen Informationen enthält um „Social Hacking“ vorzubeugen, also wenn du wirklich wichtig und interessant bist ;-))
Darum geht es im zweiten Video.
Passwort-Manager mit Vor- und Nachteilen
Im letzten Video wird die Funktionsweise verschiedener Passwort-Manager näher beschrieben. Vorweg ein Hinweis, der aber eigentlich immer gilt: Bequemlichkeit kommt oft mit einem (leichten) Einbußen („Trade-Offs“) hinsichtlich Sicherheit. Du musst selbst abwägen was du benutzen möchtest und inwiefern du etwas riskieren möchtest.
Aber oft sind kleinere Trade-Offs besser als gar nichts zu machen (also meiner Meinung nach lieber „ein Passwort-Manager in der Cloud“ als „überall das gleiche unsichere Passwort benutzen“).
Vorteile
- Für jeden Login ein anderes Passwort, das die oben genanten Kriterien erfüllt.
- Das ist sehr gut und wichtig. Falls jemand doch mal dein Passwort bekommt ist „nur“ dieser Dienst betroffen.
- Eine zentrale Stelle, um alle Passwörter sicher und verschlüsselt zu speichern und zu verwalten.
- Du hast nur ein (wirklich sicheres!) Masterpasswort, um den Passwort-Manager zu öffnen (manche nennen ihn auch „Tresor“ bzw. „Vault“).
- Wenn du das Passwort vergisst, kommst du aber (im Idealfall) nicht mehr an deine Daten (aus Sicherheitsgründen).
- Bequemlichkeit und Schutz vor dir selbst
- Viele Passwort-Manager bieten an, URLs zu speichern, zu denen ein Konto und Passwort gehört. Dadurch werden dir immer nur die passenden Einträge vorgeschlagen (und du musst nicht erst suchen). Außerdem wirst du etwas vor „Phishing“ geschützt, wie dieses Beispiel zeigt.
Manche Passwort-Manager laufen über eine Cloud und bieten Erweiterungen für den Browser und Apps für Smartphones und Tablets an, sodass man seine Passwörter immer und überall zur Hand hat. Die Entsperrung kann in der App oft auch mit TouchID von Apple statt dem Masterpasswort erfolgen.
Andere werden direkt auf deinem Computer o.ä. installiert und speichern die Daten direkt auf dem Gerät. Das gibt dann meist etwas mehr Sicherheit und Vertrauen im Gegenzug für etwas Bequemlichkeit.
„Nachteile“
Ich hatte es ja oben schon angerissen:
- „Wenn Masterpasswort gehackt, dann alles gehackt!“ (Es macht wenig Sinn nur manche Sachen im Passwort-Manager zu speichern.)
- „Wenn weg, dann weg.“ (Solange du noch Zugriff auf deine E-Mailadresse(n) hast, kannst du ggf. die „Passwort vergessen“-Funktion der Website benutzen, dessen Passwörter du im Passwort-Manager gespeichert hast.)
- Du brauchst Vertrauen in ein Unternehmen/einen Dienst/ein Programm, siehe nächster Abschnitt.
Passwort-Manager-Liste
Ein paar davon habe ich schon benutzt, von anderen habe ich gehört, dass sie gut sein sollen. Die Sortierung erfolgt alphabetisch:
Hierzu kurz ein paar Infos, wie versucht wird das Vertrauen aufzubauen:
- Die Unternehmen bieten meist „Bounty Programme“ an und bezahlen Leute, die doch einen Bug finden.
- Manche Cloud-Anbieter haben den Quellcode veröffentlicht (Open Source), sodass andere Experten ihn kritisch bewerten und ggf. sogar mitarbeiten können.
- Wenn der Quellcode offen ist, kann man ihn z. B. auch auf einem eigenen Server/also in seiner eigenen Cloud installieren und selbst betreiben.
- Manche Dienste laufen komplett offline und ohne Cloud, da büßt man dann vielleicht etwas Bequemlichkeit ein, gewinnt dafür aber etwas an Sicherheit.
Videos mit Live-Demo und Erklärung
Ein wirklich großartiger YouTube-Kanal, den ich allen empfehlen kann, die sich mit Technik rund um Computer und Informatik auseinandersetzen. Ich gestehe, man braucht schon etwas Fachwissen, um wirkliche allem folgen zu können. Aber mit den Erklärungen und Beispielen kann man es dann doch relativ gut verstehen.
(Wenn Du einen Ad-Blocker, ScriptSafe o.ä. nutzt musst Du das Video ggf. freigeben.)
Einstieg Passwort-Cracking
Passwort-Auswahl
Funktionsweise verschiedener Passwort-Manager
Disclaimer/Haftungsausschluss
Auch wenn das lächerlich klingen mag und ggf. das Vertrauen etwas nimmt aber ich übernehme für nichts eine Haftung oder dergleichen.
Außerdem hat dieser Beitrag keinen wissenschaftlichen oder fachlichen Anspruch auf 100% Korrektheit (auch wenn ich das natürlich anstrebe). Er soll vielmehr einen relativ einfachen Einstieg mit technischem Hintergrund geben. Ich möchte ein Bewusstsein für die Problematik in der Masse und nicht nur bei Technik-interessierten schaffen.