Dans un article récent sur comment vérifier si vous avez été affecté par l'incident de piratage de Gawker Comment savoir si votre adresse électronique a été fauchée dans la base de données Gawker Comment savoir si votre adresse électronique a été fauchée dans la base de données de Gawker adresse e-mail dans un hachage MD5.
Nous avons eu quelques questions de lecteurs demandant exactement ce qui se passait, et pourquoi ce processus était nécessaire. Ce n'est pas notre style de vous laisser poser des questions, alors voici une version complète de MD5, un hachage et un petit aperçu des ordinateurs et de la cryptographie.
Hashing cryptographique
MD5 est l'abréviation de M essage D igest algorithme 5, inventé par le célèbre cryptographe américain Ronald Rivest en 1991 pour remplacer l'ancien standard MD4. MD5 est simplement le nom d'un type de fonction de hachage cryptographique que Ron a inventé en 1991.
L'idée derrière le hachage cryptographique est de prendre un bloc arbitraire de données et de retourner une valeur de "hachage" de taille fixe. Il peut s'agir de n'importe quelle donnée, de n'importe quelle taille mais la valeur de hachage sera toujours fixée. Essayez-le par vous-même ici.
Le hachage cryptographique a un certain nombre d'utilisations, et il existe un grand nombre d'algorithmes (autres que MD5) conçus pour faire un travail similaire. L'une des principales utilisations du hachage cryptographique consiste à vérifier le contenu d'un message ou d'un fichier après le transfert.
Si vous avez déjà téléchargé un fichier particulièrement volumineux (distributions Linux, ce genre de chose), vous aurez probablement remarqué la valeur de hachage qui l'accompagne. Une fois ce fichier téléchargé, vous pouvez utiliser le hash pour vérifier que le fichier que vous avez téléchargé n'est pas différent du fichier annoncé.
La même méthode fonctionne pour les messages, le hachage vérifiant que le message reçu correspond au message envoyé. À un niveau très basique, si vous et un ami avez chacun un gros fichier et que vous souhaitez vérifier qu'ils sont exactement les mêmes sans le transfert lourd, le code de hachage le fera pour vous.
Les algorithmes de hachage jouent également un rôle dans l'identification des données ou des fichiers. Les réseaux de partage de fichiers peer to peer, tels que eDonkey2000, en sont un bon exemple. Le système a utilisé une variante de l'algorithme MD4 ( ci-dessous ) qui a également combiné la taille du fichier dans un hachage pour pointer rapidement vers des fichiers sur le réseau.
Un exemple de signature de ceci est dans la capacité de trouver rapidement des données dans des tables de hachage, une méthode couramment utilisée par les moteurs de recherche.
Une autre utilisation pour les hachages est dans le stockage des mots de passe. Stocker des mots de passe en tant que texte clair est une mauvaise idée, pour des raisons évidentes, à la place ils sont convertis en valeurs de hachage. Lorsqu'un utilisateur entre un mot de passe, il est converti en valeur de hachage et vérifié par rapport au hachage stocké connu. Comme le hachage est un processus unidirectionnel, à condition que l'algorithme soit sain, il y a théoriquement peu de chances que le mot de passe original soit déchiffré à partir du hachage.
Le hachage cryptographique est également souvent utilisé dans la génération de mots de passe et de mots de passe dérivés à partir d'une seule phrase.
Message Digest algorithme 5
La fonction MD5 fournit un nombre hexadécimal à 32 chiffres. Si nous devions transformer 'makeuseof.com' en valeur de hachage MD5, cela ressemblerait à: 64399513b7d734ca90181b27a62134dc . Il a été construit sur une méthode appelée "Merkle" Damgård structure ( ci-dessous ), qui est utilisée pour construire ce que l'on appelle des fonctions de hachage "anticollision".
Cependant, aucune sécurité n'est à toute épreuve, et en 1996, des failles potentielles ont été trouvées dans l'algorithme de hachage MD5. À l'époque, ils n'étaient pas considérés comme mortels et MD5 continuait à être utilisé. En 2004, un problème beaucoup plus sérieux a été découvert après qu'un groupe de chercheurs a décrit comment faire que deux fichiers séparés partagent la même valeur de hachage MD5. C'était la première instance d'une attaque par collision utilisée contre l'algorithme de hachage MD5. Une attaque par collision tente de trouver deux sorties arbritaires qui produisent la même valeur de hachage - d'où une collision (deux fichiers existant avec la même valeur).
Au cours des années suivantes, des tentatives de trouver d'autres problèmes de sécurité au sein du MD5 ont eu lieu et, en 2008, un autre groupe de recherche a réussi à utiliser la méthode des attaques par collision pour simuler la validité du certificat SSL. Cela pourrait tromper les utilisateurs en leur faisant croire qu'ils naviguent en toute sécurité, alors qu'ils ne le sont pas. Le département américain de la sécurité intérieure a annoncé que: "les utilisateurs devraient éviter d'utiliser l'algorithme MD5 à quelque titre que ce soit. Comme la recherche précédente l'a démontré, il devrait être considéré cryptographiquement brisé et impropre à une utilisation ultérieure ".
Malgré l'avertissement du gouvernement, de nombreux services utilisent encore le MD5 et, en tant que tels, sont techniquement à risque. Il est cependant possible de «saler» les mots de passe, afin d'empêcher les attaquants potentiels d'utiliser les attaques par dictionnaire (en testant des mots connus) contre le système. Si un pirate a une liste de mots de passe aléatoires souvent utilisés et votre base de données de compte utilisateur, ils peuvent vérifier les hachages de la base de données par rapport à ceux de la liste. Salt est une chaîne aléatoire, liée aux hachages de mots de passe existants, puis hachée à nouveau. La valeur du sel et le hachage qui en résulte sont ensuite stockés dans la base de données.
Si un pirate voulait trouver les mots de passe de ses utilisateurs, il devrait d'abord déchiffrer les hachages de sel, ce qui rend une attaque par dictionnaire plutôt inutile. Salt n'affecte pas le mot de passe lui-même, vous devez donc toujours choisir un mot de passe difficile à deviner.
Conclusion
MD5 est l'une des nombreuses méthodes différentes d'identification, de sécurisation et de vérification des données. Le hachage cryptographique est un chapitre vital de l'histoire de la sécurité et cache des choses. Comme pour beaucoup de choses conçues en pensant à la sécurité, quelqu'un est parti et l'a brisé.
Vous n'aurez probablement pas trop à vous soucier du hachage et des sommes de contrôle MD5 dans vos habitudes de navigation quotidiennes, mais au moins maintenant vous savez ce qu'ils font et comment ils le font.
Avez-vous déjà eu besoin de quelque chose? Vérifiez-vous les fichiers que vous téléchargez? Connaissez-vous de bonnes applications Web MD5? Faites le nous savoir dans les commentaires!
Image d'intro: Shutterstock