Hash

De WikiOpenTruc
Aller à : navigation, rechercher

à propos des fonctions de hachage.


Mots de passe

Le hachage permet de ne pas stocker les mot de passe en clair.

Comment ?

Simplement, les mots de passe sont hachés, puis seul le hash est stocké en B.D. Pour la validation d'un mot de passe, la comparaison s'effectue entre hash, et pas entre chaînes en clair.


Génération de clés privées

C'est une astuce à employer avec précaution. mais, puisque l'output de sha256() est une empreinte de 256 bits, on peut utiliser sha256() pour pondre une clé privée de 256 bits.

>>> sha256('coucou')
'110812f67fa1e1f0117f6f3d70241c1a42a7b07711a93c2477cc516d9042f9db'

évidemment, on passe d'un espace de taille 2²⁵⁶ à un espace de taille éventuellement bien plus réduite ... donc extrêmement vulnérable. Donc c'est à utiliser sur une entrée longue et variée comme il faut.


Génération de clés publiques

Toutes les opérations employant la crypto asymétrique utilisent une paire de clés : une clé publique + une clé privée.

La clé publique est généré à partir de la clé privée ... via un hash.


Salage

Le hachage n'est pas du tout une technique invulnérable, principalement à cause de son usage souvent trop simplifié. En effet, plein de gens vont utiliser un mot du dictionnaire comme mot de passe. Même pour un dictionnaire de 100.000 mots ou 1.000.000 de chaînes, il n'est de nos jours pas difficile à un attaquant de calculer d'avance les hashs de l'ensemble du dictionnaire, puis de regarder si un mot de passe haché ne figure pas dans ce dictionnaire haché. Si c'est le cas, c'est terminé, l'attaquant connaît le mot de passe.

Une idée simple, pour compliquer la vie de l'attaquant, est de rajouter une chaîne de caractères supplémentaires, dite "sel" ou "grain de sel", au mot de passe. Le sel n'est pas du tout secret. Par contre, employé comme il faut, il est propre à chaque utilisateur. Ce qui fait que, pour chaque utilisateur, l'attaquant devra pondre un dictionnaire haché spécifique. ça peut valoir le coup pour un attaquant qui cible une personne unique en particulier, mais comme en général les attaques visent des centaines, milliers ou plus d'utilisateurs, et bien cela demanderait de générer d'innombrables dictionnaires hachés.


Attaques

Noter que, pour eg une attaque de login, l'attaque ne se fait normalement pas en allant tester successivement des logins. C'est trop laborieux et normalement bloqué (pour un certain temps) au bout de N échecs successifs.

L'attaque efficace consiste à se procurer le fichier des hashs des mots de passe, et à comparer ce fichier à des dictionnaires précalculés (en commençant par des dictionnaires les plus simples). Dans ce cas, l'obtention du mot de passe peut être très rapide. Surtout si le mot de passe est de piètre qualité (court, trop simple, etc).


Pages connexes


Liens