Comment télécharger un fichier en vérifiant son empreinte via aria2
En attendant que les navigateurs se bougent
Le 24 avril 2019 à 07h41
3 min
Logiciel
Logiciel
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.
Le 24 avril 2019 à 07h41
Commentaires (25)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 24/04/2019 à 09h07
#1
Est vraiment utile de vérifier un fichier s’il a été téléchargé en HTTPS. TCP devrait être suffisant pour garantir l’intégrité et l’authenticité est garanti par TLS.
Le 24/04/2019 à 09h19
#2
@millman42: HTTPS garantit l’échange de données, pas les données. Si le site où tu télécharges a été corrompu ou hacké, tu télécharges un malware de façon sécurisé via HTTPS…
Le 24/04/2019 à 09h25
#3
@millman42 Et surtout as tu vérifié au préalable que, malgré le protocole https et sûrement le joli cadenas dans ton navigateur, que le certificat émis était le bon ? Qu’il était attribué au bon nom de domaine ? Que tu ne passait pas à travers un p%*$^de proxy d’entreprise qui pète le chiffrement de bout en bout ? etc, etc, etc.
Le 24/04/2019 à 09h28
#4
Certes, mais si le site a été hacké, qu’est-ce qui empêche le hackeur, qui aura donc été capable de remplacer le fichier, de modifier aussi le hash indiqué sur la page?
Le 24/04/2019 à 09h36
#5
Si le fichier a été modifier dans un dépôt, le hacker n’a pas forcément l’accès au site de “présentation”.
Le 24/04/2019 à 09h48
#6
Je vois pas l’intéret de l’outil quand PowerShell propose depuis la version 4.0 la fonction Get-FileHash. C’est aussi rapide et ça évite de télécharger un programme inutile
Le 24/04/2019 à 10h01
#7
bah c’est simple: plein de gens n’utilisent pas powershell, parait-il même qu’il y a des gens qui n’utilisent pas windows du tout
Le 24/04/2019 à 10h04
#8
N’importe quel OS fait du calcul d’empreinte depuis un bail, là l’idée c’est de permettre de tout faire en une étape. Je n’ai pas souvenir que ce soit possible sous PS avec une ligne de commande simple à retenir, pas plus que Get-File-Hash ne permet de télécharger un fichier (heureusement maintenant il y a curl, à quand wget ? " />)
PS : on a déjà rédigé un papier où on détaille ce que fait aria2, loin d’être inutile ;)
Le 24/04/2019 à 11h14
#9
Je trouve ça dommage de devoir préciser le hash utilisé, une petite regex pourrait facilement reconnaître le type de hash automatiquement 🙁
Le 24/04/2019 à 12h09
#10
On est bien d’accord que si la source n’a pas publié l’empreinte source de son fichier, cette manip ne sert à rien ?
Le 24/04/2019 à 12h13
#11
Oui, le but étant de vérifier l’empreinte par rapport à ce que la source annonce. On peut par exemple s’étonner de ne pas voir de grand constructeur signer ou publier les empreintes de ses pilotes diffusés en ligne par exemple, ça montre bien le niveau ambiant de jmenfoutisme sur le sujet.
Le 24/04/2019 à 12h35
#12
C’est bien ce qui me semblait. La seule fois où j’ai vu des signatures fournies par la source, c’était sur les images Linux et quelques sites de warez…
Le 24/04/2019 à 12h41
#13
Le 24/04/2019 à 13h10
#14
Tu l’as pour pas mal d’applications tout de même, mais plus courant pour les ISO en général oui. Et comme les sites de téléchargement se préoccupent plus de leurs pages vues que de la sécurité ou du service aux utilisateurs… " />
Le 24/04/2019 à 16h21
#15
Juste pour info, j’ai également remonté la demande de Metalink dans Vivaldi. Sans action jusqu’à présent.
Le 24/04/2019 à 17h36
#16
Ils attendent peut être que ça arrive dans Chromium " />
Le 24/04/2019 à 21h57
#17
C’est la manière la plus simple d’avoir de nouvelles fonctionnalités dans Vivaldi, en effet " />
Le 25/04/2019 à 06h55
#18
Malheureusement, dès que “en ligne de commande” est précisé, c’est déjà quelque chose qui ne percera pas chez le grand public …
Perso je me suis fait un petit script en applescript pour faciliter la vérification, clic droit > vérifier le somme MD5/SHA > coller la somme > résultat
Par contre il serait très possible de faire une extension de navigateur qui pop au moment du clic sur un lien de téléchargement et qui proposerait de faire la vérification en utilisant cet outil, non ?
Le 25/04/2019 à 11h02
#19
ça doit être jouable, après comme dit, l’idéal ce serait que Metalink soit utisé parce qu’ils permet de récupérer un fichier et ses infos complémentaire pour une utilisation dans un outil compatible (ce que pourrait être un navigateur) : empreinte, signature, différentes sources HTTP/Bittorent, etc.
Le 25/04/2019 à 22h42
#20
Le 27/04/2019 à 10h39
#21