Quelle est ' la différence entre PBKDF et SHA et pourquoi les utiliser ensemble?

Jai récemment lu un peu plus sur le hachage et selon AgileBits , ils utilisent «  SHA512 dans PBKDF2  » dans leur nouveau fichier de coffre-fort.

Jai cherché dans Wikipedia les deux noms et je sais que PBKDF2 est une fonction de dérivation de clé et SHA est une fonction cryptographique fonction de hachage mais je ne peux pas vraiment comprendre la différence et pourquoi ils sont tous deux utilisés ensemble lun dans lautre.

Quelquun peut-il expliquer cela à une personne sans expérience en cryptographie?

(Vous pouvez supposer que je ne connais que les mathématiques, si nécessaire).

Commentaires

  • PBKDF2 est de par sa conception beaucoup plus lent que SHA, donc cest mieux convient pour hacher les mots de passe car il faut beaucoup plus de temps pour faire une attaque par dictionnaire ou par force brute.
  • @puzzlepalace donc ils font fondamentalement la même chose et ils utilisent la composition PBKDF2 (SHA (mot de passe)) donc cela prend plus de temps pour attaquants?
  • Dans la plupart des cas, PBKDF2 utilise une primitive appelée HMAC en tant que fonction psuedo-random, qui à son tour utilise une fonction de hachage cryptographique dans les éléments internes de ‘, en ce cas SHA512. Donc la composition ressemble vraiment plus à PBKDF2(HMAC_SHA512, password, ...).
  • PBKDF2 est la voiture, HMAC est le moteur, SHA512 est le piston
  • Ce dernier une partie de ma réponse à une question précédente aborde également ce problème.

Réponse

SHA-512 est un hachage cryptographiquement sécurisé , PBKDF2 est ce que nous appelons une fonction de dérivation de clé basée sur un mot de passe. Si le secret résultant nest pas utilisé comme clé mais comme valeur de hachage, il est également appelé hachage de mot de passe . Les hachages de mot de passe diffèrent des hachages sécurisés en ce sens quils contiennent un sel et un facteur de travail / nombre ditérations.

Les hachages cryptographiques et les hachages de mot de passe sont des fonctions à sens unique conçues pour créer une sortie courte et de taille fixe à partir dun entrée donnée. Dans le cas du hachage de mot de passe, lentrée serait le mot de passe et le sel. La taille du sel et le nombre ditérations sont généralement considérés comme des paramètres de configuration; les deux ont bien sûr une influence sur la sortie du hachage de mot de passe.

Les hachages de mot de passe sont généralement construits sur des fonctions pseudo aléatoires ou PRF. Une forme habituelle de PRF est un code dauthentification de message basé sur HMAC ou Hash, qui à son tour utilise un hachage en interne. Lorsque des PRF basés sur le hachage tels que HMAC sont utilisés, le type / la taille du hachage utilisé est souvent configurable. Cependant, les hachages de mot de passe nont pas besoin dêtre construits à laide de hachages. Tout autre PRF, comme ceux basés sur des chiffrements symétriques, peut faire laffaire. bcrypt par exemple est construit sur Blowfish, un chiffrement par blocs.

Les hachages de mot de passe ont besoin dun sel pour que des mots de passe identiques ne correspondent pas au même hachage. Ils empêchent donc également les tables arc-en-ciel (contenant des mots de passe précalculés / paires de hachage) dêtre utiles. De plus, ils contiennent un nombre de facteurs de travail / ditérations de sorte quun attaquant doit effectuer plus de travail pour calculer le hachage de chaque mot de passe possible. Ceci est nécessaire car la plupart des mots de passe ne sont pas assez aléatoires. Sans le facteur de travail, le lattaquant pourrait tester de vastes quantités de mots de passe possibles en utilisant la force brute ou une attaque par dictionnaire.

Commentaires

  • beaucoup plus dinformations ici … ne tient pas ‘ dans lespace de réponse.

Répondez

Pour paraphraser ma réponse à une question précédente , PBKDF2 est un algorithme générique de haut niveau qui appelle en interne une fonction pseudo-aléatoire (PRF) pour traiter son entrée. La spécification PBKDF2 nimpose aucun PRF particulier, les implémenteurs sont donc libres de choisir le PRF de leur choix (tant quil répond à la définition dun PRF sécurisé, et peut accepter lentrée que PBKDF2 lui donne).

En fait, le choix de loin le plus courant de PRF pour PBKDF2 est HMAC , qui est une autre construction de haut niveau qui utilise en interne une fonction de hachage cryptographique . Encore une fois, la spécification HMAC nimpose aucune fonction de hachage particulière *, les implémenteurs sont donc libres de choisir le hachage de leur choix. Le choix le plus courant aujourdhui est probablement celui de la famille de hachages SHA-2 , qui comprend SHA-256 et SHA-512.

Donc « SHA512 dans PBKDF2 » signifie presque certainement quils « utilisent PBKDF2 avec HMAC comme PRF, et avec SHA-512 comme hachage dans HMAC. **

Ce qui peut prêter à confusion, cest que, à un coup doeil, ce PBKDF2-avec-HMAC-avec-SHA512 peut ressembler à quelque chose de très similaire à SHA-512: tous deux prennent un mot de passe arbitraire comme entrée et le transforment en une chaîne de bits pseudo-aléatoire à partir de laquelle le mot de passe dorigine ne peut pas être facilement reconstruit.Cependant, il existe en fait plusieurs différences, les plus importantes étant que:

  • SHA-512 est rapide. Très vite. PBKDF2 est délibérément lent à calculer, et sa lenteur peut être contrôlée en ajustant le paramètre de nombre ditérations.

  • En conséquence directe de sa vitesse, SHA -512 seul est vulnérable aux attaques par force brute de devinettes de mots de passe à laide de logiciels comme hashcat , qui génèrent simplement beaucoup de mots de passe et les hachent jusquà ce quils en trouvent un qui produit un hachage correspondant . Un seul processeur moderne peut facilement hacher des millions de mots de passe par seconde, et les GPU sont encore plus rapides.

En outre, il existe quelques autres différences mineures à noter:


*) La définition HMAC originale et les preuves de sécurité supposent effectivement que la fonction de hachage utilisée est dune type connu sous le nom de fonction de hachage Merkle – Damgård . En fait, toutes les fonctions de hachage cryptographiques les plus populaires au cours des dernières décennies, y compris la famille SHA-2, étaient de ce type, cette limitation na donc pas été un grand problème dans la pratique. Cela peut changer progressivement avec la standardisation de SHA-3 (alias Keccak), qui nest pas un hachage Merkle – Damgård, mais est fourni avec sa propre revendication de sécurité pour HMAC-SHA3 .

**) Cest une amende et le choix traditionnel, dans la mesure où il disparaît. Il « nest pas aussi résistant aux attaques GPU et autres attaques parallèles que les KDF plus modernes comme scrypt ou Argon2 serait, mais cest toujours beaucoup mieux que le simple hachage non itéré. Cela dit, pour bien évaluer sa sécurité, nous aurions également besoin de connaître le nombre ditérations utilisé pour PBKDF2. Malheureusement, de nombreuses implémentations PBKDF2 ont tendance à utiliser lancien « minimum recommandé » de 1000 itérations, ce qui nest guère plus quun ralentisseur de nos jours. Personnellement, sur un processeur moderne, Je préfère quelque chose de plus proche de 1 000 000 ou 1 000 000 000 ditérations .

Commentaires

  • Question: PBKDF2 est-il utilisé uniquement pour ralentir le nombre de suppositions (si bruteforce)? Ou y a-t-il dautres spécificités à garder à lesprit?
  • @NaveenNiraula : En plus de ralentir la détermination de la force brute, PBKDF2 a pour objectif secondaire de convertir des mots de passe de longueur et de format arbitraires en chaînes binaires uniformément pseudo-aléatoires. Mais un simple hachage pourrait également accomplir cela. De plus, le paramètre salt permet de dériver plusieurs clés distinctes de la même mot de passe et empêche certaines attaques à laide de dictionnaires précalculés tels que  » rainbow tables « . Mais encore une fois, si vous ne lavez pas fait ‘ t besoin de la protection contre les devinettes par force brute de PBKDF2, vous pouvez simplement utiliser HMAC simple pour cela, ou même simplement concaténer le sel avec le mot de passe avant le hachage il.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *