Internet est partout dans notre quotidien. Mais parfois, on bute sur des actions qui devraient pourtant être très simples. L'une d'elles est le fait de partager des fichiers avec des tiers. Au sein de ce dossier, nous allons étudier différentes solutions, en commençant par BitTorrent.
Comment partager des fichiers en ligne ? Une question simple, qui peut avoir de nombreuses réponses puisqu'il existe une multitude de solutions techniques pour y parvenir, du simple email à des solutions bien plus complexes.
Il y a une vingtaine d'années, cela consistait à se connecter à un serveur via le protocole FTP pour y déposer les données. On fournissait ensuite l'accès à des tiers via l'URL des fichiers. Un modèle simple et complexe à la fois puisqu'il faut avoir un serveur à sa disposition, y installer les logiciels nécessaires, d'un client FTP pour l'upload, etc.
Surtout, il montre rapidement ses limites, tant en termes de charge que de bande passante. Pour partager un fichier avec quelques amis, c'est suffisant, mais sinon... Dans ce dossier, nous allons donc explorer plusieurs solutions de partage de fichiers en nous attardant sur des problématiques assez différentes : trouver les solutions les plus simples, les plus sécurisées, pour toucher le monde entier sans effort, gratuites ou non, open source ou non.
De quoi nous faire naviguer dans différents protocoles. Mais de ces derniers, il ne sera que très brièvement question ici. Ils feront en effet l'objet d'un dossier dédié se focalisant sur leur évolution ces dernières années. D'ici là et sans plus attendre, regardons comment effectuer un partage simple via BitTorrent.
Un nom qui désigne à la fois une entreprise, un logiciel et un protocole pair-à-pair (P2P) souvent jugé complexe alors qu'il peut être utilisé en quelques clics par n'importe qui, tant pour récupérer des fichiers que pour les diffuser en ligne. Régulièrement associé au piratage, il est au contraire une solution permettant de profiter d'Internet comme il a été conçu au départ, pour recevoir et diffuser du contenu, contrairement à ce bon vieux Minitel.
BitTorrent donne accès à une solution de distribution mondiale, très résiliente, à laquelle on peut avoir accès à moindres frais. C'est d'ailleurs pour cela qu'il est massivement utilisé par de nombreuses distributions Linux.
Notre dossier sur le partage de fichiers :
- Comment partager des fichiers en ligne ? L'exemple de BitTorrent et des liens Magnet
- OnionShare : partager des fichiers ou publier un site via Tor
BitTorrent pour les nuls
Nous ne reviendrons pas ici en détails sur le fonctionnement de ce protocole. Sachez seulement qu'il permet à chacun de télécharger des fichiers avec une application spécifique, un client BitTorrent. Celle-ci ne va pas se connecter à un serveur unique, mais à une multitudes d'autres machines partageant des fichiers dans leur intégralité (seed) ou non (peers). Chaque fichier est ainsi morcelé puis distribué au sein du réseau.
Une procédure qui se fait de manière « intelligente » en distribuant en priorité à chacun des morceaux que les autres n'ont pas déjà. Ainsi, si la source originale venait à disparaître, il serait possible de reconstituer le fichier, d'autres finissant par devenir seed (diffuseur) à sa place. Cette force peut aussi être vue comme un défaut : il est presque impossible de faire disparaître un fichier tant que quelqu'un le partage.
Chaque peer va ensuite récupérer les morceaux qui lui manquent chez d'autres clients, jusqu'à ce qu'ils soient présents de manière croissante chez chacun et que tous deviennent seed. C'est ce maillage qui permet un téléchargement rapide. Car chacun met sa connexion à disposition des autres, la charge étant répartie sur l'ensemble du réseau. Cela évite qu'un serveur unique ne « tombe » comme c'est le cas dans un afflux de téléchargements rapides. On a pu en avoir un exemple récent avec l'attestation de sortie nécessaire pendant le confinement que nous avons mise en ligne via BitTorrent.
Bien entendu, l'humain étant ce qu'il est, certains ne jouent pas le jeu. Ils ont parfois tendance à être de simple leechers, c'est à dire être des peers au sein du réseau en partageant des parties pendant leur phase de téléchargement. Puis une fois qu'ils l'ont récupéré en intégralité, à ne plus rien mettre à disposition des autres.
Une attitude qui casse tout l'intérêt du P2P. Une mécanique contre laquelle le réseau essaie de lutter, mais qui ne trouve des solutions qu'avec des créations récentes, comme le fameux projet Atlas et BitTorrent Speed. Ils visent (pour faire simple) à récompenser le partage, permettant en contrepartie de télécharger plus rapidement.
Simple comme une Transmission (entre autres)
Dans l'imaginaire collectif, BitTorrent, c'est compliqué. Et il faut dire qu'à ses débuts, c'était le cas. Il fallait ouvrir certains ports dans la configuration du routeur, télécharger des fichiers .torrent pour récupérer ensuite ceux que l'on voulait, une bonne partie du système (notamment la mise en ligne) reposait sur des serveurs assurant la bonne communication au sein du réseau (les trackers), les clients n'étaient pas toujours très simples d'utilisation, etc.
Désormais, tout ça fait partie du passé. Si ces mécaniques existent encore, elles ne sont plus nécessaires ou sont devenues presque invisibles à l'utilisateur. Ainsi, les trackers ont été rendus presque inutiles par la popularisation de la DHT (Distributed Hash Table) et les fichiers .torrent peu à peu remplacés par les liens « Magnet ».
Pour s'en convaincre, il suffit de télécharger un client pour récupérer un premier fichier. Le plus simple est d'opter pour Transmission, qui a l'avantage d'être open source et mutiplateforme. Une fois installé il suffit de le lancer, puis de cliquer sur Fichier > Ouvrir une URL (CTRL+U sous Windows).
Puis d'y coller le lien de la dernière version d'Ubuntu par exemple :
magnet:?xt=urn:btih:e2467cbf021192c241367b892230dc1e05c0580e&dn=ubuntu-19.10-desktop-amd64.iso
Celui-ci se compose d'un identifiant unique, propre à la ressource, l'URN. Et du nom du fichier, qui n'est pas forcément nécessaire. Ce simple élément suffit à ce que le client identifie la ressource sur le réseau, récupère les données la concernant, sache sur quelles autres machines la trouver et commence son téléchargement.
Une procédure un peu plus longue qu'avec un .torrent et un tracker, mais bien plus résiliente puisqu'elle ne repose sur aucun serveur central, même pour la découverte des peers/seed.
Comment partager un fichier avec le monde entier en quelques clics
Si la simplicité est de mise pour le téléchargement, il en est de même pour la mise en ligne. Là aussi, les évolutions de ces dernières années ont grandement favorisé les choses. Voyons comment faire là aussi avec Transmission.
Il faut se rendre dans le menu Fichier > Nouveau (CTRL+N sous Windows). Une fenêtre apparaît, vous demandant de sélectionner le fichier ou le dossier source. Une fois que c'est fait, cliquez simplement sur OK, puis Ouvrir une fois la phase de morcellement finalisée. L'élément créé apparaîtra alors dans l'interface de l'application.
Pour le partager avec un tiers, il suffit d'effectuer un clic droit puis Copier le lien Magnet vers le presse-papiers. Publiez ce lien, donnez-le à un ami, il pourra alors télécharger les données chez vous puis les mettre à son tour à disposition d'autres utilisateurs, faire de même et ainsi de suite. Idéal pour un partage massif de gros fichiers.
Toute la force de ce dispositif réside dans une conséquence simple de son mode de fonctionnement basé sur les URN plutôt que des URL désignant un endroit où trouver une ressource plutôt que la ressource elle-même : si deux personnes partagent le même fichier sans le savoir, elles pourront servir de source à une troisième.
Le partage via BitTorrent n'est par contre pas très adapté pour un envoi très ciblé, sur des données n'ayant pas vocation à être publiques. Puisque par défaut, n'importe qui peut les télécharger du moment où elles sont sur le réseau (même si le mode privé permet de limiter les choses, notamment d'interdire la diffusion au sein de la DHT).
Attention d'ailleurs à quelques points : le partage sur un réseau P2P comme BitTorrent diffuse certaines informations sur le client utilisé et votre adresse IP. C'est notamment ce qui permet aux prestataires des ayants droit de savoir qui pirate quoi et de faire envoyer des lettres Hadopi, incitant certains à utiliser des VPN payants.
Notez enfin qu'il existe une multitude de clients BitTorrent. Outre Transmission, on mentionnera les clients officiels BitTorrent Classic/Web et µTorrent au modèle payant, Deluge, d'autres très légers et gratuits comme PicoTorrent qui ne propose pas la mise en ligne de fichier par exemple. Des applications de téléchargement comme Aria2 gèrent les liens Magnet, le navigateur Brave dispose d'un client WebTorrent intégré, etc.
Les solutions sont donc nombreuses. N'hésitez donc pas à les utiliser... légalement bien sûr !