Comment vérifier l’intégrité de nos fichiers avec le hachage
Comment savoir facilement si le fichier que je reçois est légitime ? Est-il possible de savoir s’il a été corrompu lors de son téléchargement depuis Internet ? Oui, c’est possible en le hachant . Il fonctionne comme un code d’identification des données avec lesquelles nous travaillons. Si une certaine donnée source est modifiée, ce code de sortie alphanumérique est complètement modifié. Ensuite, nous vous montrons tout ce que vous devez savoir et quels outils nous recommandons pour générer des hachages lorsque vous en avez besoin.
N’oubliez pas que le hachage est le résultat d’une fonction chargée de convertir une valeur en une autre. L’un des principaux objectifs de cette fonction de hachage est de pouvoir vérifier si un fichier a été modifié ou non. L’empreinte de hachage de chaque fichier est unique, le hachage génère une sorte de code qui sert d’identification des données en question. De plus, avec le hachage d’un certain fichier, le fichier d’origine ne peut pas être récupéré, pour cette raison, une bonne pratique de sécurité consiste à stocker les hachages de mot de passe dans les bases de données, afin que personne ne puisse obtenir les informations en texte brut. Cependant, pour casser ce «hachage», vous devez essayer des milliers de combinaisons et comparer si les hachages sont les mêmes.
Le hachage est généralement plus petit que les données d’origine. En effet, le hachage génère simplement un code d’une certaine longueur fixe, bien qu’il existe des fonctions de hachage dont la sortie est variable.
Algorithmes SHA
SHA signifie Secure Hash Algorithm . Il a été développé par le NIST, qui est le National Institute for Standards and Technology . C’est l’un des algorithmes standardisés les plus populaires aujourd’hui. L’un des avantages est qu’au moindre changement dans l’intégrité des données, le hachage varie complètement. SHA2-256, par exemple, est une norme qui est utilisée à l’échelle nationale aux États-Unis et est actuellement considérée comme sûre. Ceci est appelé tel quel puisque le hachage qu’il génère fait 256 bits de long.
Vous pouvez non seulement compter sur les hachages SHA2-256 et d’autres normes pour vérifier l’intégrité des fichiers. Celui que nous avons mentionné a également une application dans les protocoles d’authentification et de cryptage courants : SSL, TLS, IPSec, SSH et PGP. Sous Linux et d’autres systèmes d’exploitation, ainsi que dans les applications qui stockent les mots de passe dans une base de données, cet algorithme est utilisé pour hacher les mots de passe et pour stocker le hachage et non le mot de passe en texte clair. La crypto-monnaie populaire Bitcoin utilise cet algorithme pour vérifier chacune des transactions qui ont lieu sur son réseau.
Outils pour générer des hachages en ligne
Maintenant que nous avons une idée plus claire de ce qu’est un hachage et à quoi il sert, vous pouvez maintenant essayer certains des outils qui génèrent des hachages. C’est la chose principale pour vérifier l’intégrité des données que vous souhaitez. Ainsi, vous pouvez facilement vérifier l’intégrité des données avec lesquelles vous travaillez.
- File Checksum : C’est un outil web simple qui permet la génération de hachages. Il suffit de faire glisser le fichier de l’emplacement où il se trouve vers le site Web. Ou, vous pouvez cliquer sur la case où il est écrit «Drop File Here» et télécharger le fichier. Vous pouvez non seulement générer des hachages dans SHA2-256, mais également avec d’autres fonctions de hachage existantes. Plus précisément, 29 algorithmes de hachage pour les hachages de fichiers et de texte brut. Un avantage important est que vous n’avez pas besoin de vous inscrire à l’avance, accédez simplement au Web et vous pourrez l’utiliser.
- Calculatrice en ligne de hachage de fichier HTML5 : Il s’agit d’un autre site Web qui ne nécessite pas d’enregistrement préalable pour générer des hachages de fichier. Les algorithmes pris en charge sont MD5, SHA-1, SHA-256, SHA-384 et SHA-512. Il dispose également d’un algorithme décrit comme l’implémentation la plus rapide des algorithmes SHA (WebCryptoAPI), qui est appliqué pour les fichiers de moins de 512 Go.
- Defuse Online Text & File Checksum Calculator : Un autre outil que vous pouvez trouver sur Internet pour générer des hachages. Il est compatible avec les textes de type ASCII ou UNICODE et en termes de fichiers, il n’a pas de limitations en termes de format, mais de taille (5 Mo) . Un de ses avantages est que ni les données ni les hachages générés ne sont stockés sur le serveur du site.
Programmes pour générer des hachages (gratuits)
Il existe non seulement des solutions Web à cet effet, mais également des programmes exécutables qui ont tendance à être très faciles à utiliser. Outre le fait que le téléchargement et l’installation sont gratuits :
- HashMyFiles : C’est un programme portable qui permet la génération de hachages en masse. C’est-à-dire que vous pouvez sélectionner plusieurs fichiers à la fois afin qu’il puisse générer les hachages pour chacun. Il supporte les algorithmes SHA (toutes ses variantes) et CRC32. Il est possible de créer un accès à HashMyFiles dans le menu contextuel afin qu’à chaque fois que vous sélectionnez des fichiers ou même des dossiers, vous puissiez compter sur ce programme pour pouvoir les importer dedans et créer les hachages. Il est compatible avec Windows à partir de la version 2000.
- QuickHash : C’est un programme open source multiplateforme (disponible pour Windows, Mac et Linux) et se caractérise par être l’une des solutions les plus complètes. Bien qu’il ne prenne en charge que les algorithmes populaires tels que MD5 et SHA2-256, il présente des particularités telles que le hachage d’un dossier entier, ainsi que la comparaison de deux fichiers, répertoires et même d’un disque de stockage entier. Dans le cas où vous avez besoin de hacher tout le contenu d’un document, ligne par ligne, cette application peut le faire.
- MultiHasher : Il s’agit d’un autre outil super compact et facile à utiliser. Il se spécialise dans la génération de hachages massivement, par dossiers et sous-dossiers et même, en indiquant le chemin de ce que nous voulons générer. Prend en charge tous les algorithmes connus.
Comparer les hachages
En effet, la tâche de comparer les hachages est généralement laissée à l’utilisateur. Grâce à ces outils susmentionnés, nous pouvons générer rapidement les hachages et les comparer avec ceux qui ont été fournis. Cependant, il existe des solutions qui permettent de faciliter un peu les comparaisons pour éviter de faire cet examen « à l’œil nu ». La plupart des algorithmes de hachage permettent au hachage de changer complètement avec la moindre altération des données . Cela signifie que vous pouvez voir la différence entre un code et un autre sans faire trop de révisions.
Ci-dessous, nous voyons une capture d’écran du site officiel de Kali Linux . Si vous regardez la section des téléchargements, toutes les versions disponibles au téléchargement ont un hachage SHA2-256. Ainsi, une fois que nous avons téléchargé Kali (ou le fichier qui a déjà un hachage généré précédemment), nous pouvons accéder à l’un des outils que nous avons recommandés et régénérer le hachage. Il devrait en être de même, s’il n’y avait aucune modification dans le fichier.
Un point important à considérer est qu’une fois qu’un hachage a été généré, il ne peut pas être inversé . En effet, deux messages (toujours dans le contexte des données) peuvent avoir la même valeur de hachage (collision). Cependant, avec les algorithmes disponibles aujourd’hui, les chances que cela se produise sont de plus en plus faibles, et si cela se produit, cet algorithme comme MD5 ou SHA-1 n’est plus sûr car des collisions ont été trouvées.
Un autre point est que les fonctions de hachage telles que SHA2-256 ne sont pas les meilleures à utiliser pour stocker des mots de passe dans une base de données, c’est parce qu’elles peuvent être générées rapidement, et donc, en peu de temps, elles pourraient «craquer» ladite clé. Cependant, il existe des algorithmes de hachage spécialement conçus pour stocker les mots de passe, tels que bcrypt ou Argon2 entre autres.