Alertes de sécurité en cours Discussion Discussion
Faire un lien Lien
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée

Hashcode (Fonction de hachage)

Dernière mise à jour : 2017-04-28T00:00 - 28.04.2017
16.11.2013 - 00h00 - Paris - (Assiste - Pierre Pinard) - Mise à jour

Hashcode (" Fonction de hachage " ou " Somme de contrôle " ou " Empreinte " ou " Hash " ou " Résumé de message " ou " Condensé " ou " Condensat ").

Hashcode (Fonction de hachage)Hashcode (Fonction de hachage)Hashcode (Fonction de hachage)

Action rapide

Installez HashTab

Explorateur Windows > Clic droit sur le fichier dont on veut le condensat > Propriétés > Onglet Hachage > Paramètres > Dans la majorité des cas, cochez uniquement MD5, SHA-1, SHA-256.

Un " Hashcode " est une valeur obtenue par application d'un algorithme de calcul sur un objet (fichier).

Finalité d'un condensat et réputation d'un algorithme de calcul de condensats

La réputation de l'algorithme de calcul d'un hashcode (calcul d'un condensat - fonction de hachage) est de ne jamais produire deux hashcodes identiques si les objets (fichiers) contiennent la moindre différence. La fonction de hachage doit donc produire une clé unique d'identification d'une donnée unique (calcul homogène).

Un algorithme de hachage est un algorithme qui génère la valeur de hachage d'une donnée, par exemple un message ou une clé de session. Avec un bon algorithme de hachage, les modifications des données d'entrée peuvent entraîner la modification de chaque bit de la valeur de hachage résultante. Pour cette raison, les hachages sont utiles dans la détection des modifications apportées à un objet de données, notamment un message. En outre, un bon algorithme de hachage rend impossible la construction, par calculs, de deux entrées indépendantes qui possèdent le même hachage. Les algorithmes de hachage par défaut sont MD5, SHA-1 et SHA-256.

Depuis 2004 pour MD5 et 2012 pour SHA-1, ces deux algorithmes commençent à être en retrait (des collisions commencent à pouvoir être calculées à volonté pour MD5, dès 2004).

Si on applique le même algorithme à une collection de données, deux clés différentes signifient que les deux données sont différentes. Par contre, si deux clés sont identiques, il y a un risque, de fort à infime selon l'algorithme, que les deux données soient différentes malgré tout.

Les anciens algorithmes de hachage comme CRC16 ou CRC32 donnent des clés beaucoup trop courtes pour être uniques et produisent très souvent des clés identiques pour des données différentes. Ce cas de figure est nommé " Collision ". On sait modifier une donnée pour qu'elle produise un Hashcode CRC16 ou CRC32 identique à une autre donnée. Ce fut d'ailleurs la base du travail du chercheur Guillermito lorsqu'il écrivit son fameux article descendant en flamme l'antivirus sans base de signature " Viguard " : " Comment baiser Viguard ". L'algorithme MD5 aussi n'est pas assez fort pour ne pas permettre de produire des collisions à la demande. SHA-1 est encore solide mais l'usage de SHA-256 s'impose lentement en remplacement.

Exemples d'usages :

  • Envoi d'un fichier dont on veut s'assurer la bonne transmission
    L'émetteur calcul le Hashcode du fichier > Envoie du fichier et communication du Hashcode par un moyen quelconque (dans un second fichier,
    affiché sur une page Web, etc. ...) > le récepteur recalcul le Hashcode avec le même algorithme et compare les deux Hashcodes. S'ils sont identiques, le fichier reçu est strictement identique à celui d'origine.
  • Ne pas télécharger, dans un sens ou dans l'autre, un fichier déjà disponible de part et d'autre
    Si le Hashcode d'un fichier détenu est le même que le Hashcode d'un fichier distant, il est inutile d'occuper la bande passante et de perdre du temps à le transmettre. Le temps de calcul de l'empreinte est négligeable par rapport au temps de transit de la donnée elle-même. Typiquement, le service VirusTotal permet de rechercher une analyse précédente par le Hashcode (MD-5, SHA1 ou SHA256) d'un fichier. Il est probablement inutile de télécharger le fichier et de lancer 45 antivirus l'analyser s'il a déjà été uploadé par quelqu'un d'autre et que ses dernières analyses sont très récentes.
Un des usages de la Cryptographie est de partir d'une donnée et d'en calculer un "chiffre clé" unique (un Hashcode ou Condensat).

Exemple :
Un "chiffre clé" est une valeur calculée par un algorithme de hachage (les plus universellement utilisés sont CRC16, CRC32, NTLM, MD5, SHA-1, SHA-2, SHA-256) appliqué à une donnée (contenu d'un fichier, chaîne de caractères comme un "mot de passe" etc. ...), uniquement la donnée et toute la donnée. Peu importe le nom du contenant (s'il y en a un - nom du fichier...), ses attributs, ses dates prétendues de création ou de dernière modification etc. ... qui sont toutes des données externes à la donnée elle-même (elles forment l'enveloppe dont on ne doit pas tenir compte - on ne tient compte que du contenu).

Finalité d'un condensat et réputation d'un algorithme de calcul de condensats

La réputation de l'algorithme de calcul d'un hashcode (calcul d'un condensat - fonction de hachage) est de ne jamais produire deux hashcodes identiques si les objets (fichiers) contiennent la moindre différence. La fonction de hachage doit donc produire une clé unique d'identification d'une donnée unique (calcul homogène).


Exemples d'algorithmes de hachage
CRC16 Produit un hashcode (condensat) de 16 bits (4 caractères hexadécimaux)
CRC32 Produit un hashcode (condensat) de 32 bits (8 caractères hexadécimaux)
MD5 Produit un hashcode (condensat) de 128 bits (32 caractères hexadécimaux)
SHA-1 Produit un hashcode (condensat) de 160 bits (40 caractères hexadécimaux)
SHA-256 Produit un hashcode (condensat) de 256 bits (64 caractères hexadécimaux)
SHA-512 Produit un hashcode (condensat) de 512 bits (128 caractères hexadécimaux)
Etc. ... ...

Exemples de stockages chiffrés (cryptés) d'un même mot de passe selon divers algorithmes de hachage :
Mot de passe Secret 1
Bytes 53:65:63:72:65:74:20:31 (longueur=8)
Adler32 0d5002b8
CRC32 f12d6570
Haval 45d48542b5ee305a769ad2a772a2f240
MD2 4934bfbb60dacd24004f3f9eba0dae5b
MD4 681960160ad1ee6aba6574beae65299e
MD5 3827558347b988089547698445ea8dc4
RipeMD128 1e7a09422c54864d1ff83c9d61bcf409
RipeMD160 a4cf327f6bb9ff9903a64fd5e9f409d7f36dd5ef
SHA-1 7136a0430119d37b00f9723177bc14eb4e5a3a84
SHA-256 (SHA-2)
5a1c45473a963981e0a182815a9431caa6ba32c7c464f9aa8e24e9b9c14f5df7
SHA-384 (SHA-2)
70e52c8258950198be14b23167b5ef78ec4f73d46f3e4263c3ef7fae539d9f25413a2804cd08454ed259f79db0b06316
SHA-512 (SHA-2)
22ffbc4c4f0c243d8dff78aac024c7699db6dffba5e25032353eceab3237ee7b02c72c24a3ce8928a84f171363065bec3b3031b47c18e16b8fd98f98d6504b66
Tiger 7ef5afbb8327bd37166ab63cb27cd64752284f237d8da6d6
Whirlpool baac0f62f8a9fb13a9b6d797380b4a335f915332c791487aa9214c883caf2d1aa9676fc03819500c25eafd0c9aea69b87efe3b5000e26fff4aa7f9ee7484a46b


L'intérêt des "chiffres clé" est triple :
  1. Intégrité des données
    Il est impossible de modifier la donnée (injection d'un parasite, tel un virus, modification d'un seul bit ou, tout simplement, nouvelle version de la donnée...) en lui conservant un même résultat de calcul de "chiffre clé". Par exemple : un fichier est proposé en téléchargement et son "chiffre clé" MD5 ou SHA-1 est affiché sur le site proposant ce fichier (c'est le cas de Assiste.com - regardez la zone de téléchargements du site). Une fois le fichier réceptionné, vous utilisez SummerProperties pour recalculer ce "chiffre clé" avec le même algorithme MD5 ou SHA-1. Si les deux "chiffres clé" sont identiques, le fichier réceptionné est strictement le même que celui d'origine. C'est le principe du "Contrôle d'intégrité des données" (qui ne doit pas être confondu avec l'innocuité des données - vous pouvez seulement vous assurer que le téléchargement s'est bien passé, rien d'autre - si le fichier téléchargé est un virus, vous vérifiez ainsi que vous avez reçu un virus en parfait état ! Faites-le analyser gratuitement et immédiatement par plus de 40 antivirus simultanés avant de l'exécuter (avant de l'ouvrir) !

  2. Calcul à sens unique (théoriquement)
    Il n'est, théoriquement, pas possible de faire le calcul inverse : de remonter d'un "chiffre clé" (Hashcode) à la chaîne de caractères d'origine (il n'est pas possible (théoriquement) de retrouver le mot de passe à partir de son chiffre clé). Nous verrons, dans les techniques d'attaques des mots de passe, que ce vœu pieux est battu en brèche.

  3. Unicité du chiffre clé
    De purs travaux de laboratoire ont permis la création de "chiffres clé" identiques (appelés "Collisions") à partir de données différentes. Ce risque est total avec les algorithmes antédiluviens et abandonnés comme CRC16 et CRC32. Ce risque existe avec les algorithmes MD5 avec lesquels il est désormais possible de créer des "Collisions". Pour prendre un peu d'avance sur les futurs développements matériels et logiciels des cybercriminels, même SHA-1 est en voie d'abandon et on commence le calcul des condensats avec SHA-256.
Application aux "mots de passe" :
Lorsque vous créez un "mot de passe" pour protéger l'accès à une ressource (votre ordinateur, un fichier, un compte sur un site ou un forum, un panneau de gestion d'un compte en banque d'entreprise ou de particulier, un document secret d'un chercheur, d'un journaliste, d'un avocat..., les correspondances d'un diplomate ou d'un homme politique etc. ...), le "mot de passe" n'est pas (normalement) stocké en clair. Le "site de confiance" le crypte, sous forme d'un "chiffre clé" ("hashcode"), le plus souvent avec l'algorithme MD5 ou SHA-1, et stocke uniquement votre identifiant et le "chiffre clé", mais ne stocke pas en clair le mot de passe lui-même.

Lorsque vous revenez vous identifier pour utiliser cette ressource protégée, vous saisissez (composez) à nouveau votre identifiant (login) et votre "mot de passe". Le site refait un calcul de "chiffre clé" avec le même algorithme.

Le site compare alors le "chiffre clé" du mot de passe de référence à celui qui vient d'être calculé. Si les deux sont identiques, c'est que les deux "mots de passe" sont identiques. L'autorité vous donne alors accès à la ressource, sinon elle vous en interdit l'accès.
  • Note 1
    D'où l'intérêt des logiciels en "Open Source" où l'on peut voir comment sont traités les données sensibles tandis qu'on ne peut qu'avoir des soupçons de malveillances avec les logiciels "propriétaire" et les sites pour lesquels aucune confiance ne peut être accordée (comme tous les réseaux sociaux, les éditeurs de logiciels proches de leurs gouvernements, les nébuleuses du "Cloud Computing" etc. ...)

  • Note 2
    C'est la raison pour laquelle, lorsque vous perdez votre "mot de passe", il n'est pas possible de le retrouver car, s'il est possible de calculer un MD5 ou un SHA-1 à partir d'un "mot de passe", il n'est théoriquement pas possible de retrouver (recalculer) le "mot de passe" d'origine à partir de son MD5 ou de son SHA-1.

  • Note 3
    Il serait préférable que, lors de la saisie de votre mot de passe, la communication entre votre ordinateur et celui du site distant se fasse dans un protocole de communication sécurisé (HTTPS), sinon une attaque par "sniffer" lira vos mots de passe en clair, avant qu'ils ne soient cryptés. Regardez en bas à droite de votre navigateur si un cadenas fermé apparaît. Mais le protocole HTTPS ne sera mis en œuvre que par des sites professionnels. Ce ne sera pas le cas des millions de forums, blogs etc. ... sur lesquels il faut également s'identifier (d'où l'intérêt d'utiliser des mots de passe différents).

  • Note 4
    Certains sites Internet usurpent l'apparence de sites ayant pignon sur rue est utilisent des URL trompeuses. Sur de tels sites de "phishing", vers lesquels vous êtes souvent dirigés depuis un e-mail trompeur, vos identifiant et mot de passe sont stockés en clair et exploités immédiatement par des cybercriminels. Et absolument rien ne permet d'être certain de ce que font les très grands sites à la solde des gouvernements, comme Microsoft (Microsoft vous espionne) ou Google (Google vous espionne).

Programmes de calcul de fonctions de hashcodesProgrammes de calcul de fonctions de hashcodesProgrammes de calcul de fonctions de hashcodes

Les plus simples, et de très loin, sont ceux qui s'installent en tant que " propriété " additionnelle dans l'explorateur de Windows.
  1. SummerProperties ajoute un onglet " CheckSums " aux propriétés d'un fichier et affiche 4 Hashcodes du fichier : CRC16, CRC32, MD5 et SHA-1. Ce produit, gratuit, bien qu'encore fonctionnel, n'est plus suffisant, CRC16 et CRC32 n'ayant plus aucun intérêt et des collisions MD5 pouvant être forgées, il faut s'intéresser, au minimum, à SHA-1 et le consensus implicite se fait, depuis 2010, autour de SHA-256.

  2. HashTab ajoute un onglet " Hachages " aux propriétés d'un fichier et affiche 22 Hashcodes du fichier : Adler32, Btih, CRC32, ED2K, Gost, MD2, MD4, MD5, Ripemd-128, Ripemd-256, Ripemd-320, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512, TTH, Tiger, Whirlpool. Ce produit est gratuit.
SHA-256 tendant à remplacer SHA-1, on utilisera HashTab.

RessourcesRessourcesRessources

Fonction de Hachage
SHA-1
SHA-2 (SHA-256 & SHA-512)
SHA-3
Calculateur SHA-1 en ligne
Calculateur SHA-256 en ligne

Requêtes similairesRequêtes similairesRequêtes similaires