====== Checksum & Hash (Somme de contrôle) ====== Il s'agit d'une suite courte de caractères qui est calculée à partir des données d'un fichier. Ainsi, si les données du fichier comportent la moindre variation par rapport à leur original, le checksum n'aura plus du tout la même valeur. Comparer le checksum permet ainsi de vérifier si 2 fichiers sont identiques. On parle parfois de "hash" (anglais) ou de "condensé" (voire de "condensat") pour désigner cette suite de caractères. Il s'agit d'un procédé couramment utilisé lors des transferts de données, à différents niveaux (couche physique, TCP/IP, bittorrent...). Lorsque ce calcul n'est pas fait de façon automatique et que l'intégrité du fichier téléchargé a une importance, ce calcul peut aussi être effectué manuellement à l'aide d'outils tels que md5sum ou sha1sum. Exemple: pour vérifier que le gros fichier ISO qu'on a téléchargé sur un site web ne contient pas d'erreur et est identique à l'original avant de le graver sur CD/DVD. Bien que l'algorithme utilisé pour ce calcul soit choisi de façon à ce qu'il soit peu probable que 2 fichiers différents aient le même hash, certains algorithmes (md5) garantissent moins bien cela que d'autres (sha512). Il est donc plus ou moins facile et possible pour une personne qui le souhaiterait de forger un fichier ayant le même hash qu'un autre, tout en ayant un contenu différent. Puisque les hashs sont censés identifier des fichiers, ce principe technique est utilisé comme base de certains P2P pour identifier les oeuvres. On peut faire correspondre un hash à une oeuvre. Les réseaux P2P qui en tirent partie sont eMule (de façon moindre) et BitTorrent (de façon intensive). Sur eMule, les sommes de contrôle sont essentiellement utilisées comme parade aux [[def>fake|faux fichiers (fakes)]]. Or, les hashs peuvent être couteux en puissance de calcul, ce qui est problématique quand on doit vérifier de grandes quantités de données. C'est pourquoi eMule ne calcule les hashs que sur une partie du fichier (et non sa totalité). Avec BitTorrent, les hashs sont calculés sur l'intégralité des fichiers à échanger. Ils sont enregistrés au sein du fichier .torrent, ou bien ils peuvent être directement transmis à l'internaute sous la forme d'un lien magnet://.. Informations complémentaires ici : [[:p2p/bittorrent_reseau/structure-fichier-torrent]] ===== Exemples ===== Ici, on calcule la valeur du hash d'un fichier ISO récupéré sur le site de Debian. Comme son nom l'indique, la commande sha512sum utilise l'algorithme SHA 512 pour effectuer ce calcul. $ sha512sum debian-9.4.0-amd64-netinst.iso 345c4e674dc10476e8c4f1571fbcdba4ce9788aa5584c5e2590ab3e89e7bb9acb370536f41a3ac740eb92b6aebe3cb8eb9734874dd1658c68875981b8351bc38 debian-9.4.0-amd64-netinst.iso On peut ensuite vérifier que notre hash calculé correspond à celui publié sur le site de Debian. ===== Voir aussi ===== * Wikipédia (fr): [[wpfr>Somme_de_contrôle]], [[wpfr>md5sum]] * md5sum.exe pour Windows: http://etree.org/md5com.html * [[wp>Comparison_of_file_verification_software]]