
Qu’est-ce que le hachage ?
Le hachage est une technique fondamentale pour la sécurité des données. Découvrez son fonctionnement et son rôle dans la protection des informations sensibles.

Le hachage est un concept fondamental en cryptographie et en sécurité de l’information. Notre guide en présente les principes, explique le fonctionnement des fonctions de hachage cryptographiques et leur importance pour protéger les données sensibles.
Découvrez les différents types de fonctions de hachage, leurs propriétés et leurs applications courantes, comme le stockage des mots de passe, la vérification de l’intégrité des données et les signatures numériques. Apprenez à choisir la fonction adaptée à votre cas d’usage et à appliquer des pratiques de hachage sécurisées dans votre organisation.

Qu’est-ce qu’un algorithme de hachage ?
Les valeurs de hachage sont produites par des algorithmes comme MD5 (Message Digest 5) ou SHA (Secure Hash Algorithm). Ces algorithmes visent à produire une chaîne unique de longueur fixe – la valeur de hachage, ou “condensat de message” – pour toute donnée ou tout “message”. Chaque fichier d’un ordinateur n’est, en définitive, qu’un ensemble de données représentables sous forme binaire. Un algorithme de hachage peut donc soumettre ces données à un calcul complexe et produire une chaîne de longueur fixe. Le résultat est la valeur de hachage ou le condensat de message du fichier.
Pour calculer le hash d’un fichier sous Windows 10, utilisez la cmdlet Get-FileHash intégrée à PowerShell en lui indiquant le chemin du fichier. Par défaut, elle utilise l’algorithme SHA-2 256 :

Vous pouvez choisir un autre algorithme en l’indiquant après le chemin du fichier avec l’option -Algorithm. En transmettant le résultat à Format-List, vous obtenez aussi une sortie plus lisible :

Sur Mac et Linux, les outils en ligne de commande shasum et md5 remplissent le même rôle. Comme nous le verrons, le hash d’un fichier sera identique sous Windows, Mac et Linux si vous utilisez le même algorithme de hachage.
Comment les hash identifient les fichiers
Le hachage est irréversible : connaître le hash d’un fichier ne suffit pas pour reconstituer son contenu. En revanche, il permet de déterminer si deux fichiers sont identiques sans rien savoir de leur contenu.
L’unicité du résultat est donc fondamentale. Si deux fichiers différents produisent la même empreinte, il y a « collision » : le hash ne peut plus identifier le fichier de manière fiable.
Les collisions sont rares, mais elles existent. C’est pourquoi des algorithmes plus sûrs, comme SHA-2, ont remplacé SHA-1 et MD5. Par exemple, les contenus des deux fichiers suivants, ship.jpg et plane.jpg sont clairement différents à l’œil nu. Ils devraient donc produire des empreintes différentes.

Pourtant, le calcul avec MD5 produit une collision et indique à tort que les fichiers sont identiques. La sortie ci-dessous provient de la ligne de commande macOS dans Terminal.app. Vous pouvez constater que le hash de ship.jpg est identique à celui obtenu précédemment avec PowerShell :

Calculons maintenant les hash avec SHA-2 256. Le résultat est plus exact : il confirme que les fichiers sont différents, comme prévu.

À quoi sert le hachage ?
L’identifiant unique d’un fichier peut servir à plusieurs fins. Certaines anciennes solutions antivirus s’appuient exclusivement sur les hash pour déterminer si un fichier est malveillant, sans examiner son contenu ni son comportement. Elles conservent pour cela une base de données de hash associés à des malwares connus. Lorsqu’il analyse un système, le moteur antivirus calcule le hash de chaque fichier exécutable sur la machine de l’utilisateur et cherche une correspondance dans sa base de données.
Cette approche devait sembler ingénieuse aux débuts de la cybersécurité. Avec le recul, les limites d’une dépendance aux hash sont pourtant évidentes.
Tout d’abord, face à l’explosion du nombre d’échantillons de malware, maintenir une base de signatures à jour ne passe tout simplement pas à l’échelle. On estime que plus de 500 000 échantillons uniques de malware apparaissent chaque jour. Cela tient très probablement en grande partie au fait que les auteurs de malware ont compris qu’il est facile de tromper les moteurs AV qui s’appuient sur les hash pour qu’ils ne reconnaissent pas un échantillon. Il suffit à l’attaquant d’ajouter un octet à la fin d’un fichier pour générer un hash différent.

Le procédé est si simple que les auteurs de malwares peuvent l’automatiser : une même URL peut ainsi distribuer le même malware aux victimes avec un hash différent toutes les quelques secondes.
Ensuite, les antivirus traditionnels ont toujours eu la même faiblesse : ils doivent connaître une menace pour la détecter. Une solution antimalware fondée sur une base de hash connus a donc, par conception, toujours un temps de retard sur la prochaine attaque.
La réponse est bien sûr une solution de sécurité qui utilise l’IA comportementale et adopte une approche de défense en profondeur.
Cela ne signifie pas pour autant que les hash sont inutiles. Au contraire, l’identification unique d’un fichier reste précieuse. Les hash figurent dans les signatures et certificats numériques, notamment pour la signature de code et SSL. Ils contribuent à établir l’authenticité d’un fichier, d’un site web ou d’un téléchargement.

Les hash sont aussi très utiles aux chercheurs en sécurité, aux équipes SOC, aux spécialistes de la chasse aux malwares et aux spécialistes de la rétro-ingénierie. Dans de nombreux rapports techniques publiés sur SentinelOne et ailleurs, les hash servent couramment à partager des indicateurs de compromission. Ils permettent aux chercheurs de référencer des échantillons de malwares et de les partager via des dépôts comme VirusTotal, VirusBay, Malpedia et MalShare.

Les atouts des hash pour la chasse aux menaces
La chasse aux menaces est également facilitée par les empreintes numériques. Voyons comment un administrateur IT peut rechercher des menaces sur l’ensemble de son parc à l’aide de ces empreintes dans la console de gestion SentinelOne.
Les empreintes numériques sont particulièrement utiles lorsque vous détectez une menace sur une machine et souhaitez vérifier si le fichier est présent sur l’ensemble de votre réseau. Cliquez sur l’icône Visibility dans la console de gestion SentinelOne et lancez une nouvelle requête. Ici, nous utiliserons uniquement l’empreinte SHA1 du fichier pour rechercher sa présence au cours des 3 derniers mois.

Nous repérons quelques occurrences, mais ce n’est pas tout. La recherche par empreinte nous a conduits au TrueContext ID, qui nous permet d’approfondir l’analyse et de voir exactement ce que ce fichier a fait : les processus qu’il a créés, les fichiers qu’il a modifiés, les URL qu’il a contactées, et ainsi de suite. En quelques clics à partir de l’empreinte du fichier, nous pouvons reconstituer tout le déroulement de l’attaque.

Cybersécurité alimentée par l'IA
Améliorez votre posture de sécurité grâce à la détection en temps réel, à une réponse à la vitesse de la machine et à une visibilité totale de l'ensemble de votre environnement numérique.
Conclusion
Les empreintes numériques sont un outil fondamental en sécurité informatique : elles indiquent de manière fiable si deux fichiers sont identiques, à condition d’utiliser des algorithmes de hachage sûrs qui évitent les collisions. Toutefois, comme nous l’avons vu, deux fichiers peuvent avoir le même comportement et les mêmes fonctions sans nécessairement avoir la même empreinte. Fonder la détection antivirus sur l’identité des empreintes est donc une approche imparfaite.
Les empreintes restent néanmoins utiles aux analystes de sécurité, notamment pour partager des IOC et mener des opérations de chasse aux menaces. Si vous travaillez dans la sécurité informatique ou réseau, vous en rencontrerez sans aucun doute chaque jour.
Cet article vous a plu ? Suivez-nous sur LinkedIn, Twitter, YouTube ou Facebook pour découvrir nos publications.
En savoir plus sur la cybersécurité
- L’ennemi de l’intérieur – Les 7 violations de données les plus inquiétantes de 2018
- 5 façons pour un CISO de faire face dès maintenant à la pénurie de compétences en cybersécurité
- Comment un malware peut facilement contourner la sécurité de macOS d’Apple
- Qu’est-ce que Windows PowerShell (et peut-il être malveillant) ?
FAQ sur le hachage
Le hachage est une technique de chiffrement à sens unique qui transforme des données en une chaîne de caractères de longueur fixe. Il est impossible d’inverser ce processus pour retrouver les données d’origine. Il fonctionne comme une empreinte numérique : une même entrée produit toujours la même empreinte, tandis que des entrées différentes produisent des résultats complètement différents. Le hachage protège les mots de passe, vérifie l’intégrité des fichiers et garantit que les données n’ont pas été altérées. Il est essentiel à la blockchain et aux signatures numériques.
Un exemple courant consiste à appliquer SHA-256 au mot “hello” pour obtenir “2cf24dba4f21d4288094c30e2ede82c380cac19544bb5c4ab02f5b2db38500d3”. Si vous remplacez une seule lettre pour écrire “Hello”, vous obtenez une empreinte complètement différente. Les systèmes de mots de passe utilisent le hachage : lorsque vous créez un mot de passe, son empreinte est calculée et stockée. Lors de la connexion, l’empreinte du mot de passe saisi est calculée puis comparée à celle qui est stockée. La vérification de l’intégrité des fichiers utilise également le hachage pour détecter les modifications.
Le hachage garantit l’intégrité des données en détectant toute modification non autorisée. Il protège les mots de passe en les rendant illisibles, même en cas de compromission des bases de données. Vous pouvez vérifier que les fichiers téléchargés n’ont pas été corrompus ou infectés par un malware. Le hachage rend possibles les signatures numériques et les protocoles de communication sécurisés. Il est fondamental pour la blockchain et la sécurité des cryptomonnaies. Sans lui, impossible de garantir que les données restent inchangées pendant leur transmission ou leur stockage.
Les principales familles d’algorithmes de hachage sont MD (Message Digest), SHA (Secure Hash Algorithm) et RIPEMD. MD5 produit des empreintes de 128 bits, mais il est aujourd’hui considéré comme non sûr. SHA-256 est actuellement le plus utilisé et produit des empreintes de 256 bits. SHA-3 est la norme la plus récente, conçue pour remplacer les anciens algorithmes. Chaque type diffère par son niveau de sécurité, la longueur de ses empreintes et ses besoins en puissance de calcul. Les systèmes modernes privilégient SHA-256 ou SHA-3 pour les applications où la sécurité est essentielle.
Le hachage fonctionne à sens unique et est irréversible, tandis que le chiffrement fonctionne dans les deux sens et est réversible. Le hachage produit toujours un résultat de longueur fixe, quelle que soit la taille des données en entrée. La longueur du résultat du chiffrement varie selon les données en entrée. Le hachage vérifie l’intégrité des données, tandis que le chiffrement protège leur confidentialité. Vous pouvez déchiffrer des données chiffrées avec la bonne clé, mais vous ne pouvez pas inverser une empreinte pour retrouver les données. Les deux répondent à des besoins de sécurité différents et sont souvent utilisés ensemble.
Le hachage protège les données en rendant impossible la reconstitution des informations d’origine. Même si des attaquants volent des mots de passe hachés, ils ne peuvent pas facilement retrouver les mots de passe réels. Toute modification des données d’origine produit une empreinte totalement différente, ce qui rend les altérations détectables. Le hachage ne nécessite aucune clé de chiffrement : aucune clé ne peut donc être compromise. Il permet de vérifier l’intégrité des données sans révéler leur contenu. Il est donc idéal pour stocker les mots de passe et vérifier les fichiers.
Le hachage accélère la recherche et la vérification des données. Il garantit leur intégrité sans exposer leur contenu d’origine. Des techniques de hachage adaptées renforcent considérablement la sécurité des mots de passe. La vérification de l’intégrité des fichiers devient simple et fiable. Le hachage est à la base de la technologie blockchain et des transactions sécurisées. Il exige peu de ressources de calcul et ne nécessite aucune gestion des clés. Les signatures numériques et les systèmes d’authentification reposent sur le hachage pour garantir leur sécurité. La déduplication des données et la gestion efficace du stockage bénéficient également du hachage.



