Vor Jahren waren zufällige achtstellige Passwörter, die aus Groß- und Kleinbuchstaben, Symbolen und Zahlen bestanden, wirklich schwer zu knacken. In manchen Fällen dauerte es Jahre, ein solches Passwort zu knacken.
Dank der heutigen sich ändernden Technologie und Mietgeräten konnte diese Zeit auf Stunden reduziert werden. Doch wie werden diese Passwörter überhaupt gespeichert? Verifizieren Passwörter gehören der Vergangenheit an: Warum sie dieses Jahr abgeschafft werden.

Schnelle Links
Wie werden Passwörter online gespeichert?
Systeme speichern Benutzerkennwörter nicht direkt in Dateien oder Datenbanken, da ein Angreifer die Datenbank kontrollieren kann, in der die Systeme Kennwörter speichern. Stattdessen verschlüsseln die Systeme die Benutzerdaten, sodass der Angreifer mit einer verschlüsselten Version jedes Passworts konfrontiert wird.
Es gibt einige fortschrittliche Algorithmen, die Systeme zum Verschlüsseln von Passwörtern verwenden. Einer dieser Algorithmen ist der symmetrische Verschlüsselungsalgorithmus. Hierbei handelt es sich um eine Art der Verschlüsselung, bei der Sie denselben Schlüssel sowohl für die Verschlüsselung als auch für die Entschlüsselung verwenden können. Die Sicherheit symmetrischer Verschlüsselungsalgorithmen birgt einige Risiken, da es nur einen Schlüssel für die Entschlüsselung gibt. Aus diesem Grund verwenden Systeme in der Regel keine symmetrischen Verschlüsselungsalgorithmen.
Im Allgemeinen verwenden Systeme zur Verschlüsselung Hashing-Algorithmen. Dies dient der Überprüfung der Datenintegrität und -darstellung und nicht der Datenverschlüsselung. Hashing-Algorithmen wandeln Daten in einen Hash fester Größe um. Stellt normalerweise einen eindeutigen Daten-Hash dar. Die Aufgabe der Hash-Funktion besteht darin, Daten fester Länge und einer beliebigen Datengröße als Karte zu erstellen.
Wenn ein Angreifer dank des Hashing-Algorithmus die Datenbank mit dem Passwort übernimmt, kann er von hier aus nicht rückwärts auf das Passwort zugreifen. Hier ist eine sehr wichtige Nuance zu beachten. Theoretisch kann ein Angreifer, der ein System kompromittiert, das für alle Passwortkombinationen denselben Hashing-Algorithmus verwendet, die erhaltenen Ergebnisse vergleichen. Erhält der Angreifer als Ergebnis dieser Vergleiche den gleichen Wert, hat er die offene Version des Passworts entdeckt. Bei dieser Methode dreht sich alles um Versuch und Irrtum, und diese Art von Angriff wird allgemein als Brute-Force-Angriff bezeichnet.
In den frühen 8er Jahren würde es Hunderte von Jahren dauern, alle 123456-stelligen Passwortkombinationen auszuprobieren, die mit gängigen Hashing-Algorithmen verschlüsselt wurden. Sehr einfache Kombinationen wie „XNUMX“ oder „mein Passwort“ gehören natürlich nicht zu dieser Gruppe. Mit der Entwicklung der heutigen Software- und Hardwaretechnologien hat sich auch die Art und Weise, wie Passwörter geknackt werden, stark verändert. Verifizieren Können Sie der Sicherheit von Passwort-Managern vertrauen?
Der Einfluss des Aussehens von Grafikkarten

Die parallelen Datenverarbeitungsfähigkeiten von Grafikprozessoren (GPUs) haben sich im Laufe der Zeit verbessert. Grafikkarten sind nicht in der Lage, vielseitige Aufgaben wie Allzweck-CPUs auszuführen. Obwohl also viele Kerne und parallele Rechenleistung vorhanden sind, macht es keinen Sinn, sie wie einen Prozessor für fast jedes Problem einzusetzen.
Einige für Passwörter verwendete Hashing-Algorithmen können jedoch sehr effizient auf einer GPU implementiert werden. Die Anzahl der Hashes pro Sekunde, die Sie mit herkömmlichen CPUs erreichen können, ist mit neuen Grafikkarten dramatisch gestiegen.
Um eine Vorstellung zu bekommen, untersuchen Sie in der folgenden Tabelle die Anzahl der Hashes pro Sekunde (der Begriff Hash-Rate bezieht sich auf die Geschwindigkeit, mit der ein Computer Hash-Berechnungen durchführen kann) für Hash-Algorithmen wie NTLM, MD5 und SHA1. Zunächst reicht es zu wissen, dass es sich bei diesen Algorithmen lediglich um Hashing-Algorithmen handelt. Um diese Tabelle zu erstellen, habe ich einen Cluster von 25 AMD Radeon GPUs verwendet.
| Algorithmus | Anzahl der Hashes pro Sekunde |
| NTLM | 350.000.000.000 |
| MD5 | 180.000.000.000 |
| SHA1 | 63.000.000.000 |
| SHA512Crypt | 364.000 |
| Bcrypt | 71.000 |
| Scrypt | 33.000 |
Wie Sie sehen, können Sie mit einem solchen System 350 Milliarden Mal pro Sekunde einen NTLM-Hash generieren. Das bedeutet, dass Sie alle 8-stelligen Passwortkombinationen in weniger als 6 Stunden ausprobieren können. Darüber hinaus ist die Hardware in diesem Beispiel Jahre alt. Stellen Sie sich die Macht des Passwort-Knackens heute vor.
Was sollten Softwareentwickler tun?

Der Weg, den Programmierer gehen sollten, ist ganz einfach: Sie sollten bei der Verschlüsselung von Passwörtern Algorithmen bevorzugen, die länger für die Berechnung von Hash-Werten benötigen. Entwickler müssen nicht nur wissen, wie sich der von ihnen verwendete Algorithmus auf der CPU verhält, sondern auch, wie widerstandsfähig er gegenüber der Welt der Grafikkarten ist.
Wenn Entwickler mit einem Software-Framework arbeiten, das auch die Passwortverschlüsselung übernimmt, wie Django, Ruby on Rails und Spring Security, sollten sie prüfen, ob im Framework hinsichtlich der Sicherheit die richtigen Entscheidungen getroffen wurden.
Zum Beispiel verwenden Sie Ersinnen , eine der am häufigsten verwendeten Bibliotheken für Benutzeroperationen in Ruby on Rails, verwendet Bcrypt als Standard-Hashing-Algorithmus. Es ermöglicht Ihnen auch, eine andere Methode als Hashing-Algorithmus zu verwenden. Der Bcrypt-Algorithmus ist zuverlässig, da es immer noch lange dauert, bis die Grafikkarte den richtigen Punkt erreicht.
Kurz gesagt: Je länger die Berechnung des Hashwerts dauert, desto sicherer sind Sie.
Wie viele Zeichen sollte Ihr Passwort enthalten?
Jedes zusätzliche Zeichen, das Sie verwenden, erhöht geometrisch die Anzahl der Versuche und Irrtümer, die zum Knacken des Passworts erforderlich sind, und macht es sicherer.
Betrachten wir diese Situation anhand zweier verschiedener Szenarien. Betrachten Sie die Werte in der obigen Tabelle für den NTLM-Hashing-Algorithmus und stellen Sie sich vor, Sie würden versuchen, das Passwort zu knacken. Stellen Sie sich vor, Sie zielen auf Passwörter ab, die acht oder mehr Zeichen lang sind.
| Anzahl von Charakteren | Groß-/Kleinbuchstaben und Zahlen | Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen |
| 8 | Weniger als eine Minute | Zwei Minuten |
| 9 | Zwei Minuten | Zwei Stunden |
| 10 | Zwei Stunden | Eine Woche |
| 11 | XNUMX Tage | سنتين |
| 12 | ein Jahr | 200 سنة |
| 13 | Mehr als 100 Jahre | Mehr als 1000 Jahre |
Wenn Sie sich die Tabelle ansehen, können Sie erkennen, dass die Verwendung eines Passworts mit mindestens 12 Zeichen sicher ist, wenn alle Kombinationen aus Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen verwendet werden. Wenn Sie keine Sonderzeichen verwenden, müssen Sie 13 Zeichen verwenden, um die Länge eines sicheren Passworts zu erreichen. Wenn Sie auf diesem System die Bcrypt-Hash-Methode anstelle des NTLM-Hashs verwenden, reichen 8 Zeichen aus. Sie haben jedoch nicht die Möglichkeit, die Hashing-Methode zu erfahren, die das System verwendet, auf das Sie über das Internet zugreifen und das 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. Heutzutage kann man mit Sicherheit sagen, dass die Nutzungsrate eines Passworts dieser Länge gering ist. Daher wird es je nach Nutzungsszenario des entwickelten Systems notwendig sein, einen für Benutzer akzeptablen Kompromiss zu finden, um ihre Passwortsicherheit zu verbessern.
Ein letzter Vorschlag für Entwickler besteht darin, nicht nur die Mindestlänge, sondern auch die maximale Länge der Eingaben zu überprüfen, die über die Formulare eingehen, die Sie dem Benutzer bereitgestellt haben. Insbesondere wenn Sie aus Sicherheitsgründen die Verwendung eines Hash-Algorithmus mit langsamer Berechnung wie Bcrypt aktivieren, besteht möglicherweise ein gewisses Risiko, wenn Sie die maximale Länge des vom Benutzer eingegebenen Kennworts nicht kontrollieren. Angreifer können beispielsweise Angriffe durchführen, indem sie mit einigen speziell gestalteten Anfragen Dutzende von Passwörtern mit 100 Zeichen gleichzeitig ausprobieren. In einer solchen Situation ist es sehr wahrscheinlich, dass Ihr System nicht mehr auf andere Benutzer reagiert. Verifizieren So erkennen Sie, ob Ihre Passwörter online verkauft werden.
Ratschläge für den Endbenutzer
Halten Sie Ihr Passwort mindestens 12 Zeichen lang und achten Sie darauf, dass es Groß- und Kleinbuchstabenkombinationen, Zahlen und Sonderzeichen enthält. Vergessen Sie nie, dass Systeme, die Ihr Passwort speichern, gehackt werden können und Ihre Daten missbraucht werden können. Sie können nicht wissen, welche Algorithmen das System zum Verschlüsseln des Passworts verwendet. Daher liegt es ganz bei Ihnen, Vorsichtsmaßnahmen zu treffen und sichere Passwörter zu erstellen. Sie können es jetzt ansehen So generieren Sie sichere Online-Passwörter, die schwer zu knacken sind.









