Vor Jahren waren zufällige Passwörter mit acht Zeichen, bestehend aus Groß- und Kleinbuchstaben, Symbolen und Zahlen, wirklich schwer zu knacken. In einigen Fällen dauerte es Jahre, ein solches Passwort zu knacken.
Dank der heutigen sich ändernden Technologie und mietbaren Maschinen konnte diese Zeit auf Stunden reduziert werden. Doch wie werden diese Passwörter überhaupt gespeichert?
MAKEUSEOF-VIDEO DES TAGES Scrollen Sie, um mit dem Inhalt fortzufahren
Wie Passwörter online gespeichert werden
Systeme speichern Benutzerkennwörter nicht direkt in Dateien oder Datenbanken, da Angreifer die Datenbank übernehmen können, in der die Systeme die Kennwörter aufbewahren. Stattdessen verschlüsseln Systeme Benutzerkennwörter und Angreifer stoßen auf eine verschlüsselte Version jedes Kennworts.
Es gibt einige Algorithmen, die Systeme zum Verschlüsseln von Passwörtern verwenden. Einer dieser Algorithmen ist der symmetrische Algorithmus. Der symmetrische Algorithmus ist eine Art Verschlüsselung Dabei können Sie denselben Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung verwenden. Der Schlüssel, den Sie zum Verschlüsseln der Daten verwenden, ist sowohl für die Verschlüsselung als auch für die Entschlüsselung derselbe. Die Sicherheit symmetrischer Algorithmen birgt einige Risiken, da es nur einen Schlüssel zur Entschlüsselung gibt. Aus diesem Grund verwenden Systeme in der Regel keine symmetrischen Algorithmen zur Passwortverschlüsselung.
Im Allgemeinen verwenden Systeme zur Verschlüsselung Hash-Algorithmen. Hash-Algorithmen dienen der Überprüfung und Darstellung der Integrität von Daten und nicht der Verschlüsselung von Daten. Hash-Algorithmen konvertieren Daten in einen Hash fester Größe. Diese Hashes stellen normalerweise einen eindeutigen Daten-Hash dar.
Dank des Hash-Algorithmus kann ein Angreifer, wenn er die Passwortdatenbank übernommen hat, von hier aus nicht rückwärts auf das Passwort zugreifen. Es gibt eine sehr wichtige Nuance, auf die Sie hier achten sollten. Theoretisch kann ein Angreifer, der ein System kompromittiert, das für alle Passwortkombinationen denselben Hash-Algorithmus verwendet, die erhaltenen Ergebnisse vergleichen. Ergibt der Angreifer als Ergebnis dieser Vergleiche den gleichen Wert, hat er herausgefunden, wie die offene Version des Passworts lautet. Bei dieser Methode dreht sich alles um Versuch und Irrtum, und diese Form des Angriffs ist es auch wird im Allgemeinen als Brute-Force-Angriff bezeichnet .
Zu Beginn der 2000er Jahre konnte es Hunderte von Jahren dauern, alle Kombinationen für 8-stellige Passwörter auszuprobieren, die mit gängigen Hashing-Algorithmen verschlüsselt wurden. Sehr einfache Kombinationen wie „123456“ oder „mein Passwort“ sind in diesem Set natürlich nicht enthalten. Mit der Entwicklung der heutigen Software- und Hardwaretechnologien hat sich auch die Methode zum Knacken von Passwörtern stark verändert.
Die Auswirkungen neuer GPUs
Die parallelen Datenverarbeitungsfunktionen von Grafikprozessoren (GPUs) haben sich im Laufe der Zeit verbessert. GPUs sind nicht in der Lage, vielseitige Vorgänge wie Allzweck-CPUs auszuführen. Obwohl es also so viele Kerne und parallele Rechenleistung gibt, macht es keinen Sinn, sie für fast jedes Problem wie CPU zu verwenden.
Dennoch ist es möglich, einige für Passwörter verwendete Hash-Algorithmen recht effizient auf der GPU auszuführen. Die berechenbaren Hashes pro Sekunde, die Sie mit herkömmlichen CPUs erreichen können, sind mit neuen GPU-Plattformen enorm gestiegen.
Unerwartete Kernelmodus-Trap Windows 10 Fix
Um eine Vorstellung zu bekommen, untersuchen Sie die Hashing-Zahlen pro Sekunde von Hash-Algorithmen wie NTLM, MD5 und SHA1 in der folgenden Tabelle. Zunächst reicht es zu wissen, dass es sich bei diesen Algorithmen lediglich um Hash-Algorithmen handelt. Um diese Tabelle zu erstellen, habe ich ein Clustersystem bestehend aus 25 AMD Radeon GPUs verwendet.
Algorithmus | Hashings pro Sekunde |
NTLM | 350.000.000.000 |
MD5 | 180.000.000.000 |
SHA1 | 63.000.000.000 |
SHA512Crypt | 364.000 |
Bcrypt | 71.000 |
Skript | 33.000 |
Wie Sie sehen, können Sie mit einem solchen System 350 Milliarden Mal pro Sekunde NTLM-Hashes generieren. Das bedeutet, dass Sie alle Kombinationen eines 8-stelligen Passworts in weniger als 6 Stunden ausprobieren können. Darüber hinaus ist die Hardware in diesem Beispiel Jahre alt. Stellen Sie sich die heutigen Fähigkeiten zum Knacken von Passwörtern vor.
Was sollten Softwareentwickler tun?
Der Weg, den Programmierer gehen sollten, ist ganz einfach: Sie sollten Algorithmen bevorzugen, die bei der Verschlüsselung von Passwörtern länger für die Berechnung von Hash-Werten benötigen. Entwickler müssen nicht nur mehr über die Leistung des Algorithmus erfahren, den sie auf der CPU verwenden, sondern auch darüber, wie widerstandsfähig er gegenüber der GPU-Welt ist.
Wenn Entwickler mit einem Software-Framework arbeiten, das auch Passwort-Verschlüsselungsverfahren wie Django, Ruby on Rails und Spring Security adressiert, sollten sie prüfen, ob innerhalb des Frameworks hinsichtlich der Sicherheit die richtigen Entscheidungen getroffen wurden.
Zum Beispiel, Entwickeln , eine der am häufigsten verwendeten Bibliotheken für Benutzeroperationen in Ruby on Rails, verwendet Bcrypt als Standard-Hash-Algorithmus. Sie können damit auch eine andere Methode als Hash-Algorithmus verwenden. Der Bcrypt-Algorithmus ist zuverlässig, da es immer noch sehr lange dauert, bis die GPU kaputt geht.
Zusammenfassend gilt: Je länger die Berechnung des Hashwerts dauert, desto sicherer sind Sie.
Wie viele Zeichen sollte Ihr Passwort haben?
Jedes zusätzliche Zeichen, das Sie verwenden, erhöht geometrisch die Anzahl der Versuche und Irrtümer, die zum Knacken Ihres Passworts erforderlich sind, und macht Ihr Passwort sicherer.
Edelstahl vs. Aluminium Apple Watch
Betrachten wir diese Situation anhand zweier verschiedener Szenarien. Betrachten Sie die Werte in der obigen Tabelle für den NTLM-Hash-Algorithmus und stellen Sie sich vor, Sie würden versuchen, das Passwort zu knacken. Stellen Sie sich vor, Sie zielen auf Passwörter mit acht oder mehr Zeichen ab.
Anzahl von Charakteren | Groß-/Kleinbuchstaben und Zahlen | Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen |
8 | weniger als 1 Minute | 2 Minuten |
9 | 2 Minuten | 2 Stunden Wie erstelle ich eine digitale Antenne für das Fernsehen? |
10 | 2 Stunden | 1 Woche |
elf | 6 Tage | 2 Jahre |
12 | 1 Jahr | 200 Jahre |
13 | mehr als 100 Jahre | mehr als 1000 Jahre |
Wenn Sie die Tabelle untersuchen, können Sie erkennen, dass die Verwendung eines mindestens 12-stelligen Passworts sicher ist, wenn Sie alle Kombinationen aus Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen verwenden. Wenn Sie keine Sonderzeichen verwenden, müssen Sie als sicheres Passwort eine Länge von 13 Zeichen verwenden. Wenn Sie in diesem System die Bcrypt-Hash-Methode anstelle des NTLM-Hashs verwenden würden, wären 8 Zeichen ausreichend. Sie haben jedoch nicht die Möglichkeit zu erfahren, mit welcher Hash-Methode ein System, auf das Sie über das Internet zugreifen, Ihr Passwort speichert. Deshalb sollten Sie alle Möglichkeiten in Betracht ziehen.
Das Hauptproblem für Softwareentwickler besteht darin, dass es nahezu unmöglich ist, Benutzer davon zu überzeugen, ein Passwort mit mindestens 12 Zeichen zu haben. Man kann heute davon ausgehen, dass die Nutzungsrate von Passwörtern dieser Länge gering ist. Daher muss je nach Nutzungsszenario des entwickelten Systems ein Mittelweg gefunden werden, der von den Benutzern akzeptiert wird um ihre Passwortsicherheit zu verbessern .
Ein letzter Vorschlag für Entwickler besteht darin, nicht nur die Mindestlänge, sondern auch die Maximallänge der Eingaben zu überprüfen, die über die Formulare eingehen, die Sie dem Benutzer präsentiert haben. Insbesondere wenn Sie aus Sicherheitsgründen die Verwendung eines langsam zu berechnenden Hash-Algorithmus wie Bcrypt aktivieren, können einige Risiken auftreten, wenn Sie die maximale Länge des vom Benutzer eingegebenen Passworts nicht kontrollieren. Angreifer können beispielsweise Angriffe durchführen, indem sie mit einigen speziell vorbereiteten Anfragen Dutzende Passwörter mit 100.000 Zeichen gleichzeitig ausprobieren. In einem solchen Fall ist es sehr wahrscheinlich, dass Ihr System nicht mehr auf andere Benutzer reagiert.
Hinweise für Endbenutzer
Stellen Sie sicher, dass Ihr Passwort mindestens 12 Zeichen lang ist und dass es Groß- und Kleinbuchstabenkombinationen, Zahlen und Symbole enthält. Vergessen Sie nie, dass die Systeme, in denen Ihr Passwort gespeichert ist, gehackt werden können und Ihre Daten missbraucht werden können. Sie können nicht wissen, welche Algorithmen ein System zum Verschlüsseln Ihres Passworts verwendet. Daher liegt es ganz bei Ihnen, Vorsichtsmaßnahmen zu treffen und sichere Passwörter zu erstellen.