Utilisation de SHA-1 pour vérifier la conformité d’un fichier

Si je me suis intéressé à SHA-1 ce soir, c’est parce que j’ai voulu téléchargé NOOBS, la distribution pour débuter sur Raspberry PI et proposé par le site de la fondation. Comme souvent avec ce genre de gros fichiers, on nous fournit un checksum, qu’il soit MD5 ou SHA-1. Je savais que ça servait à vérifier la conformité du fichier téléchargé mais je ne m’y étais jamais intéressé.

SHA-1 est une fonction de hachage utilisée en cryptographie. Pour des détails sur son fonctionnement, vous pouvez lire l’article Wikipédia qui lui est consacrée. Le résultat de la fonction SHA-1 appliquée sur le message constitué par les bytes de l’archive téléchargée donne une signature unique au fichier. Si lors de son téléchargement, il y a eu une erreur, alors le résultat ne sera pas concordant avec celui donné sur le site de Raspberry Pi et je n’aurai plus qu’à télécharger à nouveau mon fichier. SHA-1 accepte un message d’une taille pouvant allé jusqu’à 2^64 bits. Ça laisse de la marge quant à la taille du fichier.

Le site d’Apple m’a donné une technique simple pour le calculer, avec la commande openssl. Voici ce que ça donne sur l’archive téléchargée avec Vuze :

$ openssl sha1 NOOBS_v1_2_1.zip
SHA1(NOOBS_v1_2_1.zip)= bdb61930b077dcefd22b36caaa9698bdf76b290d

Le résultat contient 40 caractères hexadécimaux, ce qui correspond bien aux 160 bits que rend la fonction. Je compare ce long numéro à celui fourni sur le site Raspberry Pi (par exemple, avec un petit copier-coller et la fonction de recherche dans la page de mon navigateur) et hop ! Correspondante parfaite ! Mon fichier va bien !

PS : notez qu’il est possible de remplacer sha1 par md5 dans la commande fournie au cas où on vous donnerait un checksum md5 et non SHA-1 😉

Publicités

2 Réponses

  1. Pingback: NOOBS avec mon Raspberry Pi | Pierre Gradot

  2. Pingback: Une carte SD avec Raspbian | Pierre Gradot

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s