Heim > häufiges Problem > Welche Methoden zur Passwortverschlüsselung gibt es?

Welche Methoden zur Passwortverschlüsselung gibt es?

青灯夜游
Freigeben: 2022-06-30 16:45:43
Original
35172 Leute haben es durchsucht

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.

Welche Methoden zur Passwortverschlüsselung gibt es?

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? ?

7 gängige Passwortverschlüsselungsmethoden

  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.

Symmetrische Verschlüsselung                                                                                                                                                          

Kryptotext

.

Symmetrisch Entschlüsselung                  

2. Verwenden Sie Einweg-HASH-Algorithmen wie MD5 und SHA1, um Passwörter zu schützen

Verwendung: ★★★☆☆

Nach Verwendung dieser Algorithmen kann das ursprüngliche Passwort nicht durch Berechnung wiederhergestellt werden Die Implementierung ist relativ einfach. Daher verwenden viele Internetunternehmen diese Methode, um Benutzerkennwörter zu speichern. Mit dem Aufkommen der Rainbow-Table-Technologie können nun Rainbow-Tabellen zum Suchen und Knacken von Tabellen erstellt werden sehr unsicher.

HASH-Algorithmus                                                                                                                                                          

Kryptotext

.

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 ​ ​

...

kann nicht wiederhergestellt werden         Kryptotext

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.

7, Argon2 Lücke zwischen dem System und dem System des Angreifers,

  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.

  Wenn Sie sich Sorgen über Seitenkanalangriffe machen (z. B. bösartiges Laden des Datencaches/Spectre-Schwachstelle, die das Lesen privater Speicherdaten anderer laufender Prozesse auf derselben Hardware über einen Cache-basierten Seitenkanal ermöglicht), sollten Sie Argon2i verwenden , andernfalls verwenden Sie Argon2d. Wenn Sie sich nicht sicher sind oder mit einem hybriden Ansatz zufrieden sind, können Sie mit Argon2id das Beste aus beiden Welten herausholen.

 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

:

 Nach 2019 haben einschlägige Experten empfohlen, PBKDF2 oder BCrypt nicht zu verwenden, und empfehlen dringend die Verwendung von Argon2 (vorzugsweise Argon2id) für die neuesten Systeme. Scrypt ist die beste Wahl, wenn Argon2 nicht verfügbar ist, aber bedenken Sie, dass es die gleichen Probleme mit Seitenkanallecks gibt.

Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ
    “!

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage