Comment partager des fichiers en ligne ? L'exemple de BitTorrent et des liens Magnet

Comment partager des fichiers en ligne ? L’exemple de BitTorrent et des liens Magnet

Hashing Party

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

27/03/2020 8 minutes
43

Comment partager des fichiers en ligne ? L'exemple de BitTorrent et des liens Magnet

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 :

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.

Transmission Ajout BitTorrent

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. 

Transmission BitTorrentTransmission BitTorrent

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 !

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

BitTorrent pour les nuls

Simple comme une Transmission (entre autres)

Comment partager un fichier avec le monde entier en quelques clics

Fermer

Commentaires (43)


Article intéressant !

Cependant, vous avancez le fait que l’on se débarrasse d’un serveur centralisé d’annuaire car on peut utiliser des liens magnet plutôt que le fichier .torrent.

Oui et non. Il faut bien un point où est stocker ce lien magnet. Il faudrait imaginer une sorte de moteur de recherche sur le réseau. Mais on voit tout de suite les limites…


Le tracker est surtout là pour assurer la communication et la découverte des peers/seed dans le protocole, avant “l’amendement” introduisant la DHT. Le lien Magnet se transmet simplement, c’est du texte. Ce n’était pas le cas des fichiers torrents qui devaient donc être hébergés. 



Après si on veut une liste de liens Magnet elle doit être hébergée, mais elle pourrait très bien être distribuée au format papier sous la forme de QR-Code, ce n’était pas le cas avant leur introduction ;) C’est une forme de résilience supplémentaire, hors du simple cas des trackers face à la DHT qui a rendu les Magnet possibles. 


Il y a aussi qBittorent qui est très bien, avec serveur WEB intégré etc.


Oui, liste non exhaustive (sinon on termine à 400 liens) <img data-src=" />&nbsp;








David_L a écrit :



Oui, liste non exhaustive (sinon on termine à 400 liens) <img data-src=" />&nbsp;





Pas faux&nbsp;<img data-src=" />









David_L a écrit :



Oui, liste non exhaustive (sinon on termine à 400 liens) <img data-src=" />







Une telle liste existe déjà :https://fr.wikipedia.org/wiki/Liste_de_clients_BitTorrent



Fake news, y’en a pas 400 <img data-src=" />


J’allais dire la même chose, après des années sur Azureus (puis Vuze puis biglyBT), j’ai cherché un peu et je suis passé à qBittorent et j’en suis très très content <img data-src=" />.



Et, pour revenir sur le sujet principal de la news, des liens magnets aussi <img data-src=" />.


Si je partage un fichier, puis que je le modifie : est-ce que l’URN change ? Il faut le repartager comme s’il était totalement nouveau ?



&nbsp;

Attention&nbsp;d’ailleurs à quelques points&nbsp;: le partage sur un réseau pair-à-pair comme BitTorrent diffuse certaines informations sur le client utilisé et votre adresse IP.





Est-ce qu’il y a un moyen de remonter au premier partageur du fichier ? Ou bien il est lui-même considéré comme un parmi d’autres ? C’est cette URN qui est pistée par Hadopi (pour faire court) ?


Deluge très sympa.

Avant sur uTorrent mais est devenu plus lourd et progressivement avec de la pub quand je l’ai abandonné.



Je m’attendais pas à ce genre de dossier, mais ça fait toujours de la lecture sympa pour le confinement <img data-src=" />


L’URN est une sorte de hash’du fichier donc oui. Pour le seed, original ou non ça ne change rien


Perso, j’utilise le seul UWP qui existe (mais payant) : Torrex pro.


Si seulement MS proposait un client natif même basique… :(&nbsp;


MS en utilise un dans son système pour télécharger et diffuser ses MàJ.


Il a raison, c’est vrai et faux.

Il y’a bien un serveur au départ pour ce connecter au “réseau” DHT. Le client ne sort pas les IPs et liste des peers/seeds de son chapeau. Pratiquement tout les clients BitTorrent ont une ou plusieurs IPs pour “kickstart” le bousin.



Transmission utilise dht.transmissionbt.com:6881 normalement. Cependant, c’est pour le début car le client va mettre en cache les “peer/seed” et la liste des fichiers après un moment.

Et une fois ça en cache, effectivement, il n’y a plus besoin de serveur effectivement car chacun va mettre à jour et transmettre les mises à jour au reste du réseau.








Soriatane a écrit :



MS en utilise un dans son système pour télécharger et diffuser ses MàJ.





Ils utilisent en partie du pair à pair mais je doute que ce soit du BT. Et je parlais d’un client auquel l’utilisateur aurait accès&nbsp;

&nbsp;





Kazer2.0 a écrit :



Il a raison, c’est vrai et faux.

Il y’a bien un serveur au départ pour ce connecter au “réseau” DHT. Le client ne sort pas les IPs et liste des peers/seeds de son chapeau. Pratiquement tout les clients BitTorrent ont une ou plusieurs IPs pour “kickstart” le bousin.



Transmission utilise dht.transmissionbt.com:6881 normalement. Cependant, c’est pour le début car le client va mettre en cache les “peer/seed” et la liste des fichiers après un moment.

Et une fois ça en cache, effectivement, il n’y a plus besoin de serveur effectivement car chacun va mettre à jour et transmettre les mises à jour au reste du réseau.





Tu as une ressource qui documente ça ? Je revérifierai dans les détails du fonctionnement de la DHT dans BT <img data-src=" />



C’est les BootStrap DHT Node (utilisé dans d’autre domaine d’ailleurs).

https://en.wikipedia.org/wiki/Bootstrapping_node



En gros le client, la première fois, doit bien se connecter à “quelqu’un” qu’il connait et sait qu’il dispose de la table pour la télécharger et les IPs actuelles des seeds/peers qui fournissent fichier et bout de la table.



Un autre moyen de “démarrer” et d’avoir un lien magnet:// avec un ou plusieurs trackers dedans, ça permet de se connecter la première fois. C’est uniquement la première fois, une fois que c’est fait, les clients torrents mettent en cache la liste et le serveur de “démarrage” n’est plus nécessaire.



C’est hardcodé dans transmission par exemple https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-dht.c#L248) :

bootstrap_from_name( “dht.transmissionbt.com”, 6881, bootstrap_af(session) );



Deluge utilise différent node, hardcodé aussi https://git.deluge-torrent.org/deluge/tree/deluge/core/preferencesmanager.py#n26… :




     dht\_bootstraps = set(   

lt\_bootstraps.split(',')

+ [

'router.bittorrent.com:6881',

'router.utorrent.com:6881',

'router.bitcomet.com:6881',

'dht.transmissionbt.com:6881',

'dht.aelitis.com:6881',

]

Quelques précisions:



DHT est un réseau distribué, dans lequel tous les noeuds (participants au réseau) ont le même rôle : stocker une partie de la liste des seeds de torrent en temps réel pour tous les magnets existants, avec redondance.



Le but du réseau DHT est donc de remplacer les trackers qui stockent non pas les fichiers torrents mais la liste de seeds (peers) en temps réel.



Les noeuds DHT s’échangent donc des listes de peers mais aussi des morceaux de leur propre table de routage interne (table de noeuds DHTs). Cette table combiné à l’algo de lookup du DHT permet de trouver celui qui a la liste de peers pour notre magnet en log(N)/8 requêtes en moyenne (N est le nombre total de noeuds).



Mais pour se connecter au réseau DHT il faut bien connaître au moins un noeud DHT existant, d’ou la notion de “bootstrap” qui&nbsp; n’est rien de plus que l’adresse d’un noeud DHT connu à l’adresse IP stable. Ce noeud bootstrap ne dispose probablement pas de l’info que nous recherchons mais va nous router dans la “bonne direction” sur le réseau DHT. Comme expliqué par Kazer, après une première connexion au DHT le client garde les IPs d’autres noeuds en cache.



La force du réseau DHT est donc d’avoir remplacé un service centralisé vulnérable (le tracker) par un système distribué très difficile à faire tomber.








wagaf a écrit :



Quelques précisions:




  DHT est un réseau distribué, dans lequel tous les noeuds (participants au réseau) ont le même rôle : stocker une partie de la liste des seeds de torrent en temps réel pour tous les magnets existants, avec redondance.        






  Le but du réseau DHT est donc de remplacer les trackers qui stockent non pas les fichiers torrents mais la liste de seeds (peers) en temps réel.&nbsp;








Merci de la précision, mais... tu ne fais que répéter ce que je dis dans l'article. J'y précise que DHT permet de se passer des trackers, et que les torrents sont, eux, remplacés par les magnets (en ce sens qu'ils servent à diffuser l'infohash et autres éléments annexes (optionnels).&nbsp;     





Pour les bootstrap on est d’accord, il s’agit d’avoir un node d’entrée dans le réseau DHT qui est inscrit en général en dur dans le client (mais pas toujours de mémoire, en tous cas c’est un choix à faire côté soft et pas impliqué par le protocole), mais en aucun cas ce n’est un point de centralisation puisque même si le noeud du client venait à ne pas être disponible, d’autres pourraient être utilisés de la même manière.&nbsp;



Ce que je veux dire, c’est que tu as quand même besoin d’un serveur (ou plusieurs) qui centralise, même si c’est une seule et unique fois. Tu utilises un tracker une seule fois, mais tu l’utilises quand même (sauf si tu connais l’ip d’un client qui a accès, là oui).



C’est un détail, mais un détail qu’il faut quand même noter car imaginons que tu viens à l’instant d’installer ton client, mais celui-ci n’a aucune IP d’un client ou serveur bootstrap et que ton magnet:// et “propre” (sans tracker dans l’url) et bien ton téléchargement ne démarrera jamais.



C’est pourquoi la majorité des clients ont un ou plusieurs serveurs pour le “premier” magnet, le temps que le cache se construise.



(je préfère préciser ce “détail”, car c’est un problème que j’ai eu sur ma seedbox et j’ai mis du temps à comprendre que ça venait du cumul : absence de serveur bootstrap / cache non créé et client non connu / magnet sans tracker. J’ai pris un magnet avec des trackers et l’ensemble a démarré d’un coup).



Donc le DHT permet de se passer des trackers par la suite, mais pas au début (encore une fois, à moins que tu connais l’ip d’un client par cœur)


Le défaut de Transmission c’est son développement erratique. Dernière mise à jour il y a deux ans et le site web compromis avec une version avec ransomware… Vous avez des nouvelles vous?


DHT méritait son lien francophone :https://fr.wikipedia.org/wiki/Table_de_hachage_distribu%C3%A9e



Merci pour l’article, même s’il faut attendre la fin pour comprendre que non, c’est pas idéal pour passer un fichier à quelqu’un puisque ça le publie en quelque sorte. C’est une bonne question, est-ce qu’un partage bittorrent est considéré public (avec les problèmes de légalité que ça pose) même si le magnet n’est échangé qu’en privé ?


Il y a une option dans Tansmission pour la découverte des pairs sur le réseau local, je suppose que cela est limité à ton masque réseau ou bien revouvrirait-il un réseau plus large comme celui des abonnés d’un FAI??



Dans ton expérience, es-ce que ta seedbox aurait pu trouver des seeders si on lui avait laissé du temps (2-3 jours)??


Attention, le lien vers le fichier se retrouvant dans la DHT, il suffit de parser la DHT pour le récupérer. Donc chiffrez vos documents avant de les mettre sur la DHT.



Pour info, chaque noeud Bitorrent (donc vous, ou quelqu’un d’autre) peut se voir confier une partie de la DHT par le réseau (et chaque partie de la DHT est bien sur confiée à plusieurs noeuds pour éviter de perdre l’info quand on se déconnecte)



Par exemple, certains sites se contentent de faire un annuaire de la DHT…



&nbsp;


Le mode “torrent privé” fonctionne sans DHT et donc uniquement avec envoi du .torrent sur un tracker.

Cela veut dire qu’il faut mettre en place un tracker privé pour assurer l’échange d’IPs entre clients.

Pas pratique…



Dans le doute, chiffrez vos données confidentielles avant partage.


Il faudrait que l’autre pair sur ton réseau local ai été connecté au moins une fois au réseau DHT pour que tu récupères les infos.



Ma seedbox n’aurait jamais trouvé des seeders dans mon cas (fichier magnet sans tracker, pas de serveur bootstrap et pas connaissance du réseau). Ça se débloque soit en spécifiant un serveur bootstrap, soit en ajoutant un magnet contenant des trackers ou soit en ajoutant directement l’IP d’un client que tu connais (ça peut être un ami par exemple).



Mes précisions sont plus sur l’aspect “technique” du DHT et magnet, dans les faits tu ne devrais jamais avoir le cas d’un téléchargement bloqué car maintenant tu as pratiquement tout les clients supportant les liens magnets qui ont des serveurs bootstrap en dur.

Et même sans serveur bootstrap, il suffit d’ajouter un magnet/torrent ayant un tracker dans l’url et l’ensemble démarre, même celui bloqué (une fois connecté au réseau, le client met en cache la liste des autres clients, c’est vraiment la première fois).



En gros, le fait de dire que ça n’utilise pas de tracker est uniquement vrai si tu ajoutes toi même un client que tu connais et qui lui même connaît le reste du réseau, car même si ça n’utilise qu’une seule et unique fois, ton client compatible magnet va quand même utiliser un tracker pour “démarrer” (qui ne sera plus nécessaire après, donc là oui, tu es totalement trackerless).



C’est vraiment pour être pointilleux vu que c’est qu’une fois <img data-src=" />








tuxicoman a écrit :



Attention, le lien vers le fichier se retrouvant dans la DHT, il suffit de parser la DHT pour le récupérer. Donc chiffrez vos documents avant de les mettre sur la DHT.&nbsp;





Oui, comme dit dans l’article ;) PS : pas de pub pour ce genre de sites ici, merci.



Il ne faut pas confondre Magnet et DHT. Un lien magnet peut renvoyer vers un tracker, mais de fait ça n’utilise pas la DHT. Le magnet est une forme de remplacement du fichier torrent avec des infos en paramètres dans une adresse plutôt qu’un fichier. Surtout utilisé pour passer un URN (et donc favoriser l’usage de la DHT) mais avec d’autres modes de fonctionnement (comme renvoyer vers un tracker).&nbsp;



Après je ne comprends pas trop ton insistance sur ton point sur la DHT et le fait qu’elle serait une sorte de centralisation ou qu’il faudrait ajouter quoi que ce soit en manuel. Tu as des soucis avec ta seedbox c’est une chose, mais ça ne change rien aux fait du protocole et de l’extension DHT. Surtout que, bon, la DHT ça ne date pas trop de la semaine dernière et si un client la gère mal, c’est qu’il est un peu à l’ouest tout de même.



Mais dire que la DHT est un élément centralisant qui pourrait tomber si aucun noeud n’était disponible, ça revient à dire que c’est le cas de bittorrent parce que si personne ne partage un fichier il n’est plus disponible ou que si on coupe l’ensemble des pairs du réseau, le réseau n’est plus.&nbsp;








David_L a écrit :



Mais dire que la DHT est un élément centralisant qui pourrait tomber si aucun noeud n’était disponible







Je pense que son insistance n’est pas sur ce point, mais sur le fait que le(s) premier(s) noeud(s) interrogé(s) par un client est généralement codé en dur. Autrement dit, si un client X a le serveur Y codé, si demain le serveur Y est indisponible (il tombe, il est fermé par les autorités, etc.) alors le client est inutilisable pour les nouveaux venus. Il n’est pas nécessaire que tous les noeuds tombent, juste un seul !



De ce point de vue, dire que le système est entièrement décentralisé n’est pas totalement juste, même si la partie “non décentralisé” reste très minime… ;)

Après, ça reste du chipotage sur un point de détail ^^



Pour le lien, je comprends la position de NextInpact. Je n’avais juste pas fait gaffe. Désolé.

&nbsp;

Pour les autres, c’était un lien vers un site qui a eu l’idée de faire parcourir à un programme la DHT.

Le programme récupère les clés de la table DHT (les clés sont les hash qu’on retrouve dans le lien magnet), commence le téléchargement pour juste récupérer les métadonnées des seeders comme le titre du fichier et sas taille. Ça s’arrête là. Au bout du compte, le site peut ainsi proposer une DHT inversée : titre -&gt; hash.



Mais bon, c’est légalement chaud de publier l’annuaire de la DHT en 2020 en France. Dûr….


Le fait de proposer un moteur de recherche en soi n’est pas un souci, après le site en question peut faire des choix plus ou moins légitime et viser telle ou telle activité en particulier ;) Mais oui, le principe de la DHT c’est qu’elle peut être indexable puisqu’ouverte.



C’est d’ailleurs ce qui lui avait valu les foudres des trackers privés, qui étaient bien contents d’être un point central pour attirer tous les pirates en herbe pour leur fourguer pubs, trackers et liens affiliés pour des solutions de VPN afin de monétiser le partage d’un contenu dont ils ne détiennent pas les droits.



Du moment où les fichiers sont disponibles et trouvables publiquement, où leur serveur ne peuvent pas être utilisés pour trouver les peers, ils ne peuvent justifier leur statut de point central et donc leurs revenus <img data-src=" />


Ce serait faut de dire que le système est décentralisé si certains points d’entrée étaient immuables. DNS contient par exemple des points de centralisation du fait qu’il faille passer par les serveurs racine pour récupérer certaines informations, et que personne ne peut faire sa racine.



DHT permet à chacun de monter un noeud, et d’initier un “bootstrap” lorsque nécessaire. Après que certains clients fassent tel ou tel choix pour cette initialisation, c’est autre chose, mais en rien une preuve d’un point de centralisation dans l’extension du protocole.&nbsp;



Surtout que dans le meilleur des cas, ce serait vrai au premier lancement, mais assez vite réglé après les premiers téléchargement initiés la DHT étant en place. Mais il m’est d’avis que si ça devait constituer un problème un jour, il serait assez trivial à contourner.&nbsp;


Non, je veux dire que tu n’aurais jamais accès au réseau DHT si tu ne connais pas un “point d’entrée” vers la table.



Et donc que ça ne marcherait pas pour Mme Michu s’il n’existe plus aucun tracker ou serveur bootstrat.

Le fait d’avoir un ou plusieurs trackers dans un lien magnet peut te permettre d’accéder à la table car le tracker va t’envoyer une liste de seed/peer qui potentiellement ont accès à la table et donc la partager avec toi.



Si tu n’as pas dans ton client : un serveur bootstrap / un lien magnet avec un tracker dans l’url ou que tu ai ajouté toi même un peer qui a accès à la table, ton lien magnet ne démarrera jamais.

La table n’est pas l’élément centralisant, c’est le besoin de connaître quelqu’un qui connaît la table et donc que la première fois tu te repose sur du centralisé (de part un serveur bootstrap, un tracker dans le lien magnet).



C’est pour une seule et unique fois, après le client se met à jour et met en cache ce qu’il connaît et c’est seulement à ce moment que ça fonctionne trackerless.



Et c’est pour ça que j’avais un problème, j’avais réinstaller mon serveur, pas de serveur bootstrap utilisé, j’ai testé un unique lien magnet (sans tracker) qui n’a jamais démarré (forcément). Pour le faire partir, un simple ajout d’un autre magnet qui n’a rien avoir mais avec un tracker avait fait démarrer l’ensemble.


C’est du chipotage dû à une expérience personnelle qui m’avait empêcher de faire fonctionner un lien magnet après réinstallation de ma seedbox, mais qui pourrait arriver aussi si tu prends un client qui n’a pas ces serveurs en durs et donc pas de point d’entrée vers la table distribuée (ou utilise un unique serveur bootstrap qui tombe, comme Transmission) et que ton premier lien magnet et sans tracker.



Ça concerne moins de 0,001 % de cas, mais ça reste quelque chose qu’il faut savoir dans le fonctionnement du truc. Après effectivement, la table en elle même est décentralisé, mais l’accès à celle-ci nécessite une certaine centralisation.


Je m’auto-répond, vu que je viens un peu de me relire (et que mes phrases sont pas toujours très clair au niveau du sens) :

La table distribuée (DHT) est effectivement totalement décentralisée, mais son accès nécessite une certaine forme de centralisation au moins pour le tout premier lien magnet. Sans ça, le premier magnet ajouté au client ne démarrera jamais (faut d’accès à la table).

C’est pour une unique fois et après l’ensemble est full décentraliser, effectivement.


La centralisation ce n’est pas le besoin de connaître une adresse. C’est le fait de ne pas avoir le choix dans cette adresse. Les clients l’ont, ils peuvent en utiliser plusieurs, la passer en paramètre, n’importe quelle node peut faire l’affaire. Ils pourraient même assurer des modes de découverte automatique, ils vont juste au plus simple avec des adresses connues avec un bon uptime. Ce n’est pas centralisé. Après si le client force tel ou tel paramètre, c’est autre chose. C’est ausi pour ça que l’open source est important ;)



Mais comme tout réseau, il faut un porte d’entrée. Pour naviguer sur le WWW, il faut connaître une URL, sinon on a une page blanche, à moins que le navigateur mette une page de moteur de recherche par défaut. Sur un réseau décentralisé/distribué, faire tomber une porte d’entrée ne change rien au fonctionnement de l’ensemble.



Mais si un réseau n’a plus aucun élément, effectivement, il ne fonctionne pas. Cela ne confirme en rien ton propos. C’est juste une logique technique inhérente à la notion de réseau.&nbsp;Je le répète, avoir un souci avec un client que l’on utilise sur son serveur ne permet pas de faire dire à un protocole ou à une extension ce qu’ils ne sont pas.



Un mauvais client ne fait pas un mauvais protocole. TL;DR; : Si ta box internet ne délivre pas de serveur DNS par défaut à ta machine, ce n’est pas parce que DHCP ou DNS sont mauvais, c’est peut être simplement que la couche logicielle de ta box est mauvaise.&nbsp;


Oui effectivement, vu comme ça (avec le parallèle avec le DNS) c’est effectivement la même chose.


&gt; Internet comme il a été conçu au départ, pour recevoir et diffuser du contenu, contrairement à ce bon vieux minitel.



Une petite référence à la conférence Minitel 2.0 de Benjamin Bayart !

Je remet un lien vers une de ses vidéos, très intéressant pour expliquer à Môman c’est quoi internet :

&nbsphttps://www.youtube.com/watch?v=M_fL1wf8V7c



Au passage, ça nous rappelle pourquoi un accès à internet par la 4G n’est pas vraiment internet, vu qu’on a pas d’IP publique et qu’on ne peux pas faire serveur…


Article intéressant ! Ainsi que les échanges ci-dessous où j’ai appris pas mal de choses.



Cela fait un moment que j’ai en tête de monter un tracker privé pour permettre le téléchargement “facile” de fichiers par la famille, uniquement nos photos et vidéos persos, donc privés (vraiment).

Le vrai souci est de proposer une interface web facile pour la mise à disposition des fichiers par des utilisateurs néophytes.

&nbsp;

Un système avec un compte (créé à la main par l’admin) avec une liste des fichiers dispos entre nous et une interface pour que l’utilisateur puisse envoyer son fichier et obtenir le fichier torrent ou le lien magnet à donner aux autres..

Ça paraissait pas compliqué, Freeostorrent.fr avait publié son code, mais tout semble abandonné depuis plusieurs années, les autres tracker auto-hébergeables sont pareils :( quelqu’un aurait une suggestion ? Il n’y a peut être pas besoin de beaucoup de modifs une fois que ça tourne mais aucun fix en 2 ans ça me parait louche.



Serait-il possible d’auto-héberger seulement le “bootstrap” dont vous parlez plus haut et de générer des liens magnet à se partager ? Est-ce qu’un utilisateur néophyte y arriverait ?



-Merci-


Pense tout de même à protéger les fichiers en amont du transfert (compression avec mdp, chiffrement ou autre) pour éviter tout souci. Les réseau P2P sont par nature ouverte, n’importe qui peut les récupérer en théorie. Que tu places ça en privé ou pas, ils existent et sont atteignables. Cela revient à les placer sur un serveur HTTP en se disant “non mais personne n’a l’adresse, donc ça va”.


Je me doutais de ce risque, merci de le confirmer et attirer mon attention dessus :)








Epy a écrit :



Je me doutais de ce risque, merci de le confirmer et attirer mon attention dessus :)







Le mode privé permet d’interdire que quelqu’un de non-identifié par le tracker puisse télécharger les données.

Il faut évidemment que le tracker soit réglé comme il faut.

Mais du coup pas de DHT (mais peu importe si c’est privé), et la divulgation (volontaire ou non) d’un torrent ou un lien magnet par une personne identifiée peut permettre à d’autres d’y accéder car ils contiennent la “passkey” que le tracker utilise pour identifier les personnes autorisées.



Oui après attention à la notion de “privé” à ne pas confondre avec un “torrent privé” qui n’est qu’une indication dans le fichier torrent qui n’implique aucune obligation du côté des clients. Maintenant comme je disais, si le but est de partager avec quelques proches, l’idéal n’est sans doute pas de passer par BT, surtout pour aller y dépendre d’un tracker privé pour l’auth (et donc d’un serveur central où on pourrait juste mettre un Apache et une auth).