Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !

Comment télécharger un fichier en vérifiant son empreinte via aria2

En attendant que les navigateurs se bougent
Comment télécharger un fichier en vérifiant son empreinte via aria2
Crédits : jurgenfr/iStock/Thinkstock

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.

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.

aria2c  empreinte checksumaria2c  empreinte checksum

25 commentaires
Avatar de Freedantha INpactien
Avatar de FreedanthaFreedantha- 24/04/19 à 09:06:50
Édité par Vincent_H le 24/04/2019 à 09:19
Avatar de millman42 Abonné
Avatar de millman42millman42- 24/04/19 à 09:07:50

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.

Avatar de Bhou Abonné
Avatar de BhouBhou- 24/04/19 à 09:19:19

@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...

Édité par Bhou le 24/04/2019 à 09:19
Avatar de Arnaud Minable Abonné
Avatar de Arnaud MinableArnaud Minable- 24/04/19 à 09:25:39

@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.

Avatar de Constance INpactien
Avatar de ConstanceConstance- 24/04/19 à 09:28:13

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?

Avatar de CryoGen Abonné
Avatar de CryoGenCryoGen- 24/04/19 à 09:36:55

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".

Avatar de Jeanb Abonné
Avatar de JeanbJeanb- 24/04/19 à 09:48:13

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

Avatar de Malkomitch INpactien
Avatar de MalkomitchMalkomitch- 24/04/19 à 10:01:35

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

Avatar de David_L Équipe
Avatar de David_LDavid_L- 24/04/19 à 10:04:19

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 ? :D)

PS : on a déjà rédigé un papier où on détaille ce que fait aria2, loin d'être inutile ;)

Édité par David_L le 24/04/2019 à 10:05
Avatar de Oby-Moine Abonné
Avatar de Oby-MoineOby-Moine- 24/04/19 à 11:14:54

Je trouve ça dommage de devoir préciser le hash utilisé, une petite regex pourrait facilement reconnaître le type de hash automatiquement 🙁

Il n'est plus possible de commenter cette actualité.
Page 1 / 3