Je sais que SHA-256 est préféré à MD5 pour la sécurité, etc., mais si je dois utiliser une méthode pour vérifier uniquement l'intégrité du fichier (c'est-à-dire, rien à voir avec le cryptage de mot de passe, etc.) en utilisant SHA-256?
Puisque MD5 est de 128 bits et SHA-256 de 256 bits (donc deux fois plus gros) ...
Le cryptage prend-il deux fois plus de temps?
Lorsque le temps ne vous manque pas, comme dans un programme de sauvegarde, et que l'intégrité du fichier est tout ce dont vous avez besoin, est-ce que quelqu'un pourrait s'opposer à MD5 pour un algorithme différent ou même suggérer une technique différente?
L'utilisation de MD5 génère-t-elle une somme de contrôle?
SHA256 et MDA5 sont tous deux des algorithmes de hachage. Ils prennent vos données d'entrée, dans ce cas votre fichier, et génèrent un nombre de 256/128 bits. Ce nombre est une somme de contrôle. Il n'y a pas de cryptage car un nombre infini d'entrées peut donner la même valeur de hachage, bien qu'en réalité les collisions soient rares.
SHA256 prend un peu plus de temps à calculer que MD5, selon cette réponse .
De prime abord, je dirais que le MD5 conviendrait probablement à vos besoins.
Pour 1): Oui, sur la plupart des processeurs, SHA-256 n’est que 40% plus rapide que MD5.
Pour 2): Je plaiderais pour un algorithme différent de MD5 dans un tel cas. Je préférerais définitivement un algorithme considéré comme sûr. Cependant, c'est plus un sentiment. Les cas où cela importerait seraient plutôt construits que réalistes, par exemple Si votre système de sauvegarde rencontre un exemple d'attaque sur un certificat basé sur MD5, vous aurez probablement deux fichiers dans un tel exemple avec des données différentes, mais des sommes de contrôle MD5 identiques. Peu importe le reste des cas, peu importe, car les sommes de contrôle MD5 ont une collision (= les mêmes sommes de contrôle pour des données différentes) pratiquement uniquement lorsqu'elles sont provoquées intentionnellement ... Je ne suis pas un expert en hachage (génération de sommes de contrôle) algorithmes, donc je ne peux pas suggérer un autre algorithme. Par conséquent, cette partie de la question est toujours ouverte… .. La lecture suggérée est la suivante: Fonction de hachage cryptographique - Identificateur de fichier ou de données sur Wikipedia. Également en bas de cette page se trouve une liste d’algorithmes de hachage cryptographiques.
Pour 3): MD5 est un algorithme permettant de calculer des sommes de contrôle. Une somme de contrôle calculée à l'aide de cet algorithme s'appelle alors une somme de contrôle MD5.
Chaque réponse semble suggérer que vous devez utiliser des hachages sécurisés pour faire le travail, mais ils sont tous trop lents pour forcer un attaquant brutal-force à disposer de beaucoup de puissance de calcul et selon vos besoins, cela peut ne pas être la meilleure solution.
Il existe des algorithmes spécialement conçus pour hacher les fichiers aussi rapidement que possible afin de vérifier l'intégrité et la comparaison (murmur
, XXhash
...). Évidemment, ils ne sont pas conçus pour la sécurité car ils ne répondent pas aux exigences d’un algorithme de hachage sécurisé (c’est-à-dire du caractère aléatoire), mais ont un faible taux de collision pour les gros messages. Cela les rend idéales si vous ne recherchez pas la sécurité mais la vitesse.
Des exemples de ces algorithmes et de la comparaison peuvent être trouvés dans cette excellente réponse: Quel algorithme de hachage est le meilleur pour l'unicité et la vitesse? .
Par exemple, sur notre site de questions-réponses, nous utilisons murmur3
pour hacher les images téléchargées par les utilisateurs. Nous ne les stockons donc qu'une seule fois, même si les utilisateurs téléchargent la même image dans plusieurs réponses.
Dans l'ensemble, je dirais que MD5, en plus du nom de fichier, est absolument sans danger. SHA-256 serait simplement plus lent et plus difficile à manipuler à cause de sa taille.
Vous pouvez également utiliser quelque chose de moins sécurisé que MD5 sans aucun problème. Si personne ne tente de pirater l’intégrité de votre fichier, cela ne présente aucun risque.
L'algorithme MD5 sous-jacent n'est plus considéré comme sécurisé. Par conséquent, bien que md5sum soit parfaitement adapté à l'identification de fichiers connus dans des situations non liées à la sécurité, il ne doit pas être utilisé s'il est possible que des fichiers aient été falsifiés de manière intentionnelle et malveillante. Dans ce dernier cas, l'utilisation d'un outil de hachage plus récent, tel que sha256sum, est fortement recommandée.
Donc, si vous cherchez simplement à vérifier la corruption ou les différences de fichiers, lorsque la source du fichier est approuvée, MD5 devrait suffire. Si vous souhaitez vérifier l'intégrité d'un fichier provenant d'une source non approuvée ou d'une source fiable sur une connexion non chiffrée, MD5 ne suffit pas.
Un autre intervenant a noté qu'Ubuntu et d'autres utilisent les sommes de contrôle MD5. Ubuntu a migré vers PGP et SHA256, en plus de MD5, mais la documentation des stratégies de vérification plus strictes est plus difficile à trouver. Voir la page HowToSHA256SUM pour plus de détails.
Il est techniquement admis que MD5 est plus rapide que SHA256. Il suffit donc de vérifier l’intégrité des fichiers pour qu’il soit suffisant et plus performant.
Vous pouvez accéder aux ressources suivantes:
Heureux hachage!