Zu den Passwortverschlüsselungsmethoden gehören: 1. Verwenden Sie zum Verschlüsseln symmetrische Verschlüsselungsalgorithmen (wie 3DES, AES), um das ursprüngliche Passwort durch Entschlüsselung wiederherzustellen Einweg-HASH-Algorithmus (wie MD5, SHA1) für das Passwort, aber das ursprüngliche Passwort kann nicht durch Berechnung wiederhergestellt werden. 3. Verwenden Sie einen speziellen Einweg-HASH-Algorithmus für das Passwort. 5. Verwenden Sie den BCrypt-Algorithmus zur Verschlüsselung; 6. Verschlüsseln mit dem SCrypt-Algorithmus.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, DELL G3-Computer
Als Webentwickler müssen wir uns oft mit dem Kontosystem des Benutzers befassen, und die größte Herausforderung besteht darin, das Passwort des Benutzers zu schützen. Das Passwort ist der wichtigste Schutzschild eines Website-Systems. Vergleicht man das Website-System mit einer Burg, dann ist das Passwort das Tor. Es gibt immer viele Debatten darüber, wie Passwörter sicher gespeichert werden und welcher Algorithmus verwendet werden soll: MD5, SHA1, SHA256, PBKDF2, Bcrypt, Scrypt, Argon2, Klartext? ?
Welche Methoden sollten wir verwenden, um die Passwörter der Benutzer zu schützen? Die folgenden Methoden sind gängige Methoden zum Speichern von Passwörtern:
Algorithmus | Funktionen | Effektive Cracking-Methode | Cracking-Schwierigkeit | Andere |
---|---|---|---|---|
Symmetrische Verschlüsselung | can. de Verschlüsseln Sie den Klartext | Holen Sie sich das Passwort Schlüssel | Mittel | Es muss sichergestellt werden, dass der Schlüssel nicht verloren geht |
Einweg-HASH | kann nicht entschlüsselt werden | Kollision, Regenbogentabelle | Mittel | |
Speziell. HASH | kann nicht entschlüsselt werden | Kollision, Regenbogen In der Tabelle | muss sichergestellt werden, dass das „Salz“ nicht ausläuft | |
Pbkdf2 | kann nicht entschlüsselt werden | keine | schwierig | muss angemessen eingestellt werden Parameter |
BCrypt | kann nicht entschlüsselt werden | Keine | Schwierig | Vernünftige Parameter müssen festgelegt werden |
SCrypt | Nicht entschlüsselbar | Keine | Schwierig | Ne Es ist erforderlich, angemessene Parameter festzulegen |
Argon2 | Undecryptable | Keine | Schwierig+ | |
1. Verwenden Sie zum Speichern einen symmetrischen Verschlüsselungsalgorithmus. Voraussetzung ist natürlich der Erhalt des Schlüssels. Da jedoch eine große Menge an Benutzerinformationen durchgesickert ist, ist es wahrscheinlich, dass auch der Schlüssel durchgesickert ist. Natürlich können allgemeine Daten und Schlüssel getrennt gespeichert und verwaltet werden, aber es ist auch sehr kompliziert, die Schlüssel vollständig zu schützen Das ist nicht im positiven Sinne.
Nicht möglich zum Wiederherstellen
3. Spezieller Einweg-HASH-Algorithmus Verwendung: ★★★☆☆ Da der Einweg-HASH-Algorithmus beim Schutz von Passwörtern nicht mehr sicher ist, verwenden einige Unternehmen den Einweg-HASH-Algorithmus Basierend auf dem Einweg-HASH-Algorithmus wurden Erweiterungen wie Salting und Multiple HASH durchgeführt, die die Schwierigkeit des Crackens bis zu einem gewissen Grad erhöhen können. Für den HASH-Algorithmus ist dies erforderlich vor Lecks geschützt werden, was zum „Schutz der symmetrischen Verschlüsselung“ führt. Sobald das „Salz“ durchgesickert ist, kann die Regenbogentabelle basierend auf dem „Salz“ wiederhergestellt werden, um mehrere zu knacken HASH verlängert nur die Crackzeit und es gibt keine wesentliche Verbesserung. HASH-Algorithmus
Salz+Klartext Kryptotext Nicht möglich zum Wiederherstellen
4, PBKDF2 Verwendung: ★★★★☆ Das Prinzip dieses Algorithmus entspricht in etwa dem Hinzufügen von Zufallssalz basierend auf dem HASH-Algorithmus und der Durchführung mehrerer HASH-Operationen. Das Zufallssalz erzeugt den Regenbogen Tabelle Die Schwierigkeit, Tabellen zu erstellen, hat erheblich zugenommen, und mehrere HASHs haben auch die Schwierigkeit, Tabellen zu erstellen und zu knacken, erheblich erhöht. Bei Verwendung des PBKDF2-Algorithmus verwendet der HASH-Algorithmus im Allgemeinen sha1 oder sha256. Die Länge des Zufallssalzes sollte im Allgemeinen nicht weniger als 8 Bytes betragen und die Anzahl der HASH-Zeiten muss mindestens 1.000 betragen, damit die Sicherheit hoch genug ist. Ein Passwortverifizierungsprozess führt 1000 HASH-Operationen aus, die für den Server möglicherweise nur 1 ms dauern, aber die Berechnungskosten erhöhen sich für den Cracker um das 1000-fache, und es werden mindestens 8 Bytes zufälliger Salt benötigt, was die Schwierigkeit beim Erstellen einer Tabelle um N erhöht Größenordnung, die das Knacken von Passwörtern in großem Umfang nahezu unmöglich macht. Dieser Algorithmus wird auch vom National Institute of Standards and Technology empfohlen. PBKDF2 gibt es schon seit langer Zeit, und wie im vorherigen Artikel besprochen, ist es etwas veraltet: Es ist einfach, Parallelität auf Multi-Core-Systemen (GPU) zu erreichen, was für benutzerdefinierte Systeme (FPGA/ASIC) trivial ist ). multiple Hash -Algorithmus
Klartext 5, BCrypt Verwendung: ★★★★☆ BCrypt wurde 1999 erstellt. und ist im Kampf gegen GPU/ASIC besser als PBKDF2, aber ich empfehle Ihnen dennoch nicht, es in neuen Systemen zu verwenden, da es bei der Bedrohungsmodellanalyse von Offline-Cracking keine gute Leistung erbringt. Obwohl es einige Kryptowährungen gibt, die darauf basieren (z. B. NUD), erfreut es sich nicht großer Beliebtheit und daher besteht in der FPGA/ASIC-Community nicht genügend Interesse, eine Hardware-Implementierung davon zu entwickeln. Allerdings haben Solar Designer (OpenWall), Malvoni und Knezovic (Universität Zagreb) 2014 einen Artikel geschrieben, der ein monolithisches System beschreibt, das einen hybriden ARM/FPGA verwendet, um diesen Algorithmus anzugreifen. 6, SCrypt . Andererseits wird es auch in vielen Kryptowährungen verwendet und wir verfügen über einige Hardware (einschließlich FPGAs und ASICs), die es implementieren kann. Obwohl sie speziell für den Bergbau verwendet werden, können sie auch zum Cracken verwendet werden. Argon2 hat drei Hauptversionen: Argon2i ist die sicherste Option gegen Seitenkanalangriffe, Argon2i verwendet datenagnostischen Speicherzugriff, der die erste Wahl für die Passwort-Hashing-Methode ist, Argon2i führt mehr Durchgänge über den Speicher durch, um das Auftreten von Kompromissangriffen zu verhindern. Argon2d ist die sicherste Option gegen GPU-Cracking-Angriffe und Argon2 gewann im Juli 2015 den Passwort-Hashing-Wettbewerb. Argon2d nutzt datenabhängigen Speicherzugriff und eignet sich daher gut für Kryptowährungen und Proof-of-Work-Anwendungen, ohne dass die Gefahr von Seitenkanal-Timing-Angriffen besteht. Argon2id fungiert für die erste Hälfte der ersten Speicheriteration als Argon2i und für den Rest als Argon2d. Basierend auf dem Gleichgewicht von Zeit und Raum bietet es daher nicht nur Schutz vor Seitenkanalangriffen, sondern spart auch Brute-Force-Overhead. Der Quellcode ist auf Github verfügbar, in C89-kompatiblem C geschrieben, unter einer Creative Commons-Lizenz lizenziert und lässt sich auf den meisten ARM-, x86- und x64-Architektur-Hardware kompilieren. … Warme Erinnerung“!
Das obige ist der detaillierte Inhalt vonWelche Methoden zur Passwortverschlüsselung gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!