Maison  >  Article  >  Quelles sont les méthodes de cryptage des mots de passe ?

Quelles sont les méthodes de cryptage des mots de passe ?

青灯夜游
青灯夜游original
2022-06-30 16:45:4335116parcourir

Les méthodes de cryptage du mot de passe incluent : 1. Utiliser des algorithmes de cryptage symétriques (tels que 3DES, AES) pour crypter. L'utilisation de cette méthode de cryptage peut restaurer le mot de passe d'origine par décryptage. Bien entendu, la condition préalable est d'obtenir la clé 2, d'utiliser. Algorithme de hachage unidirectionnel (tel que MD5, SHA1) pour le mot de passe, mais le mot de passe d'origine ne peut pas être restauré par calcul ; 3. Utilisez l'algorithme de hachage unidirectionnel spécial pour le mot de passe 4. Utilisez l'algorithme PBKDF2 pour le cryptage ; pour le chiffrement Chiffrement ; 6. Chiffrer à l'aide de l'algorithme SCrypt.

Quelles sont les méthodes de cryptage des mots de passe ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur DELL G3

En tant que développeur Web, nous devons souvent nous occuper du système de compte de l'utilisateur, et le plus grand défi est de savoir comment protéger le mot de passe de l'utilisateur. Le mot de passe est le bouclier le plus important d'un système de site Web. Si le système de site Web est comparé à un château, alors le mot de passe est la porte. Il y a toujours beaucoup de débats sur la manière de stocker en toute sécurité les mots de passe et quel algorithme utiliser : MD5, SHA1, SHA256, PBKDF2, Bcrypt, Scrypt, Argon2, texte brut ? ?

7 méthodes courantes de cryptage des mots de passe

  Quelles méthodes devrions-nous utiliser pour protéger les mots de passe des utilisateurs ? Les méthodes suivantes sont des moyens courants pour enregistrer des mots de passe :

Algorithme Caractéristiques Méthode de craquage efficace Difficulté de craquage Autres
Cryptage symétrique peut décrypter le texte brut Obtenez le Mot de passe Clé Moyenne Besoin de s'assurer que la clé n'est pas divulguée
HASH unidirectionnel ne peut pas être déchiffré Collision, table arc-en-ciel Moyenne
HASH spécial ne peut pas être déchiffré Collision, arc-en-ciel Dans le tableau doit s'assurer que le "sel" ne fuit pas
Pbkdf2 ne peut pas être déchiffré aucun difficile doit définir des paramètres raisonnables
BCrypt ne peut pas être déchiffré Aucun Difficile Besoin de définir des paramètres raisonnables
SCrypt Indéchiffrable Aucun Difficile Besoin de définir paramètres raisonnables
Argon2 Indéchiffrable Aucun Difficile+

1. Utilisez un algorithme de cryptage symétrique pour enregistrer

Utilisation : ★★☆☆☆

 Des algorithmes tels que 3DES, AES, etc., utilisant cette méthode de cryptage peuvent restaurer le mot de passe d'origine par décryptage, bien entendu, le prérequis est d’obtenir la clé. Cependant, étant donné qu'une grande quantité d'informations utilisateur a été divulguée, la clé est susceptible de l'être également. Bien entendu, les données générales et les clés peuvent être stockées et gérées séparément, mais il est également très compliqué de protéger complètement les clés. ce n'est pas dans le bon sens.

Cryptage symétrique                                                                                                                                                                       

Cryptotexte

Symétrique décryptage        

texte chiffré

texte brut

2. Utilisez des algorithmes de HASH unidirectionnels tels que MD5 et SHA1 pour protéger les mots de passe

Utilisation : ★★★☆☆

Après avoir utilisé ces algorithmes, le mot de passe d'origine ne peut pas être restauré par calcul, et le la mise en œuvre est relativement simple.Par conséquent, de nombreuses sociétés Internet utilisent cette méthode pour enregistrer les mots de passe des utilisateurs. Cette méthode était auparavant relativement sûre, mais avec l'essor de la technologie des tables arc-en-ciel, cette méthode peut désormais être établie pour la recherche et le craquage des tables. très dangereux. Algorithme hash

                                                                                                                                                                

Cryptotext

Impossible à restaurer        

texte chiffré

texte brut

3. Algorithme HASH unidirectionnel spécial

Utilisation : ★★★☆☆

Étant donné que l'algorithme HASH unidirectionnel n'est plus sûr pour protéger les mots de passe, certaines entreprises utilisent l'algorithme HASH unidirectionnel. Basé sur l'algorithme HASH unidirectionnel, des extensions telles que le salage et plusieurs HASH ont été réalisées. Ces méthodes peuvent augmenter la difficulté de craquage dans une certaine mesure. Pour l'algorithme HASH avec « sel fixe », le « sel » doit être utilisé. être protégé contre les fuites, ce qui entraînera une "protection du cryptage symétrique". Le même problème que "Clé", une fois le "sel" divulgué, la table arc-en-ciel peut être rétablie en fonction du "sel" à craquer pour plusieurs. HASH, cela ne fait qu'augmenter le temps de craquage, et il n'y a pas d'amélioration essentielle. Algorithme hash

                                                                                                                                                         

Cryptotexte

Impossible à restaurer        

texte chiffré

texte brut

4, PBKDF2

Utilisation : ★★★★☆

  Le principe de cet algorithme est à peu près équivalent à l'ajout de sel aléatoire basé sur l'algorithme HASH et à l'exécution de plusieurs opérations de HASH. Le sel aléatoire crée l'arc-en-ciel. table La difficulté de créer des tables a considérablement augmenté, et plusieurs HASH ont également considérablement augmenté la difficulté de créer des tables et de les déchiffrer. Lors de l'utilisation de l'algorithme PBKDF2, l'algorithme HASH utilise généralement sha1 ou sha256. La longueur du sel aléatoire ne doit généralement pas être inférieure à 8 octets et le nombre de fois HASH doit être d'au moins 1 000, afin que la sécurité soit suffisamment élevée. Un processus de vérification de mot de passe effectue 1000 opérations de HASH, ce qui peut prendre seulement 1 ms pour le serveur, mais le coût de calcul augmente de 1000 fois pour le cracker, et au moins 8 octets de sel aléatoire, ce qui augmente la difficulté de créer une table de N Ordre de grandeur rendant presque impossible le piratage de mots de passe à grande échelle. Cet algorithme est également recommandé par le National Institute of Standards and Technology.

 PBKDF2 existe depuis longtemps, et comme évoqué dans l'article précédent, il est un peu dépassé : une parallélisation facile sur les systèmes multicœurs (GPU), ce qui est trivial pour les systèmes personnalisés (FPGA/ASIC).

Algorithme de HASH multiple ​ ​

Sel aléatoire + texte en clair

ne peut pas être restauré                

Cryptotexte

Texte clair

5, BCrypt

Utilisation : ★★★★☆

 BCrypt a été créé en 1999, et est meilleur que PBKDF2 dans la lutte contre les GPU/ASIC, mais je ne vous recommande toujours pas de l'utiliser dans de nouveaux systèmes car il ne fonctionne pas bien dans l'analyse du modèle de menace du craquage hors ligne. Bien que certaines crypto-monnaies en dépendent (par exemple NUD), elle n'a pas gagné en popularité et, par conséquent, la communauté FPGA/ASIC n'a pas suscité suffisamment d'intérêt pour en construire une implémentation matérielle. Cela dit, Solar Designer (OpenWall), Malvoni et Knezovic (Université de Zagreb) ont écrit un article en 2014 décrivant un système monolithique utilisant un hybride ARM/FPGA pour attaquer cet algorithme.

6, SCrypt

Utilisation : ★★★★☆

SCrypt est un meilleur choix de nos jours : mieux conçu que BCrypt (notamment concernant la mémoire) et déjà utilisé là-bas Travaille dans le domaine depuis 10 ans . D’un autre côté, il est également utilisé dans de nombreuses crypto-monnaies, et nous disposons de certains matériels (notamment des FPGA et des ASIC) capables de l’implémenter. Bien qu’ils soient utilisés spécifiquement pour l’exploitation minière, ils peuvent également être réutilisés pour le craquage.

7, Argon2

Utilisation : ★★★★★

  Argon2 est implémenté sur la base d'AES Modern x64 et les processeurs ARM l'ont implémenté dans l'extension du jeu d'instructions, réduisant ainsi considérablement les performances communes. entre le système et le système de l'attaquant,

  Argon2 a trois versions principales :

  • Argon2i est l'option la plus sécurisée contre les attaques par canal secondaire, Argon2i utilise un accès mémoire indépendant des données, qui est le premier choix pour la méthode de hachage de mot de passe, Argon2i effectue davantage de transferts de mémoire pour empêcher les attaques de compromis de se produire.
  • Argon2d est l'option la plus sécurisée contre les attaques de piratage du GPU, et Argon2 a remporté le concours de hachage de mot de passe en juillet 2015. Argon2d utilise un accès mémoire dépendant des données, ce qui le rend bien adapté aux crypto-monnaies et aux applications de preuve de travail sans menace d'attaques de synchronisation par canal secondaire.
  • Argon2id agit comme Argon2i pour la première moitié de la première itération de mémoire et Argon2d pour le reste. Par conséquent, en fonction de l'équilibre entre le temps et l'espace, il offre non seulement une protection contre les attaques par canal secondaire, mais permet également d'économiser la surcharge de force brute.

  Si vous vous inquiétez des attaques par canal secondaire (par exemple : vulnérabilité de chargement/spectre de cache de données malveillantes, qui permet de lire les données de mémoire privée d'autres processus en cours d'exécution sur le même matériel via un canal latéral basé sur le cache), vous devez utiliser Argon2i. , sinon utilisez Argon2d. Si vous n'êtes pas sûr ou si vous êtes à l'aise avec une approche hybride, vous pouvez utiliser Argon2id pour tirer le meilleur parti des deux mondes.

 Le code source est disponible sur Github, écrit en C compatible C89, sous licence Creative Commons et se compile sur la plupart des matériels d'architecture ARM, x86 et x64.

Rappel chaleureux :

 Après 2019, les experts concernés ont suggéré de ne pas utiliser PBKDF2 ou BCrypt et recommandent fortement d'utiliser Argon2 (de préférence Argon2id) pour les systèmes les plus récents. Scrypt est le meilleur choix lorsque Argon2 n'est pas disponible, mais gardez à l'esprit qu'il présente les mêmes problèmes de fuite des canaux latéraux.

Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que sont les logiciels edaArticle suivant:Que sont les logiciels eda