Télécharger un fichier, c'est bien. Vérifier son intégrité, c'est mieux. Mais rares sont les outils proposant les deux, c'est le cas d'aria2, en une seule ligne de commande.
Lorsque vous téléchargez un fichier depuis un serveur, il y a deux questions à vous poser : puis-je avoir confiance en l'émetteur et les données récupérées sont-elles les bonnes ?
Pour le vérifier, deux solutions s'offrent à vous. Dans le premier cas, la signature utilisée. Créée via la clé privée de l'émetteur du fichier, elle permet de s'assurer de la provenance à travers sa clé publique. Pour l'intégrité des données, on utilise une empreinte ou somme de contrôle (hash, checksum) prenant la forme d'une suite de caractères.
- Chiffrement : notre antisèche pour l'expliquer à vos parents
- OpenPGP et GnuPG : 25 ans de chiffrement pour tous, ce qu'il faut savoir avant de s'y mettre
Mais si c'est à travers les navigateurs que l'on télécharge le plus souvent des fichiers, ils n'intègrent aucune mécanique de vérification de la provenance ou de l'intégrité des données une fois téléchargées. Seulement un chiffrement du canal de communication lorsque SSL/TLS est actif.
Le standard Metalink aurait pu favoriser un tel dispositif, mais il n'a jamais été intégré. Cinq mois après notre article sur le sujet et une intervention dans le bugtracker de Mozilla, son support par Firefox n'est toujours pas au programme. Il faut donc faire autrement, et utiliser de petits outils qui facilitent la procédure.
C'est le cas d'aria2, un outil de téléchargement en ligne de commande multiplateforme. Il vérifie l'empreinte d'un fichier créée via différents algorithmes (Adler32, MD5, SHA-1/224/256/512) après son téléchargement sans utiliser une mécanique en deux étapes comme les pipes.
La commande prend la forme suivante :
aria2c [nom du fichier] --checksum=[algorithme]=[empreinte]
Prenons l'exemple de la dernière ISO d'installation par le réseau de Fedora 30 Workstation 64 bits, proposée sur cette page. On trouve le fichier à cette adresse, les sommes de contrôle (SHA-256) dans ce fichier texte.
On arrive donc à la commande suivante :
aria2c https://download.fedoraproject.org/pub/fedora/linux/releases/test/30_Beta/Workstation/x86_64/iso/Fedora-Workstation-netinst-x86_64-30_Beta-1.8.iso --checksum=sha-256=9509becb586920a48f7c6518fba00c15707970b72aac15d2c29639738ecc4a11
Une fois la procédure terminée, le fichier sera vérifié et un message correspondant au résultat affiché. Une fonctionnalité intéressante, même si l'on aimerait qu'elle soit plus courante et directement intégrée aux navigateurs.
Surtout que dans le cas du protocole Metalink, plusieurs empreintes peuvent être déclarées, chacune correspondant à un morceau du fichier à récupérer. Ainsi, lorsqu'un élément n'est pas conforme, seule la partie défaillante peut être à nouveau téléchargée et remplacée, permettant un gain de temps.