mirror of
https://github.com/almet/notmyidea.git
synced 2025-04-28 19:42:37 +02:00
165 lines
No EOL
11 KiB
HTML
165 lines
No EOL
11 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<title>
|
|
Retours sur un atelier ZeroNet - Alexis Métaireau </title>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet"
|
|
href="https://blog.notmyidea.org/theme/css/main.css?v2"
|
|
type="text/css" />
|
|
<link href="https://blog.notmyidea.org/feeds/all.atom.xml"
|
|
type="application/atom+xml"
|
|
rel="alternate"
|
|
title="Alexis Métaireau ATOM Feed" />
|
|
</head>
|
|
<body>
|
|
<div id="content">
|
|
<section id="links">
|
|
<ul>
|
|
<li>
|
|
<a class="main" href="/">Alexis Métaireau</a>
|
|
</li>
|
|
<li>
|
|
<a class=""
|
|
href="https://blog.notmyidea.org/journal/index.html">Journal</a>
|
|
</li>
|
|
<li>
|
|
<a class="selected"
|
|
href="https://blog.notmyidea.org/code/">Code, etc.</a>
|
|
</li>
|
|
<li>
|
|
<a class=""
|
|
href="https://blog.notmyidea.org/weeknotes/">Notes hebdo</a>
|
|
</li>
|
|
<li>
|
|
<a class=""
|
|
href="https://blog.notmyidea.org/lectures/">Lectures</a>
|
|
</li>
|
|
<li>
|
|
<a class=""
|
|
href="https://blog.notmyidea.org/projets.html">Projets</a>
|
|
</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<header>
|
|
<h1 class="post-title">Retours sur un atelier ZeroNet</h1>
|
|
<p><em>Comment contourner la censure grâce à un Web pair-à-pair ?</em></p>
|
|
<time datetime="2016-03-17T00:00:00+01:00">17 mars 2016</time>
|
|
|
|
|
|
</header>
|
|
<article>
|
|
<p>Mardi dernier se tenait <a href="http://biblio.insa-rennes.fr/crypto">une <em>cryptoparty</em></a> dans les locaux de l’<span class="caps">INSA</span> de Rennes.</p>
|
|
<p>L’évènement s’étant rempli au delà de toutes les espérances, on m’a proposé de
|
|
venir y tenir un atelier, que j’ai proposé sur <a href="https://zeronet.io">ZeroNet</a>, un
|
|
petit projet fort sympathique qui pourrait devenir une nouvelle manière de
|
|
distribuer le Web, permettant notamment d’éviter la censure.</p>
|
|
<p>Avant toute autre chose, merci énormément à l’équipe de la bibliothèque de
|
|
l’<span class="caps">INSA</span> pour l’organisation de cet évènement qui à une réelle portée politique.</p>
|
|
<h2 id="un-peu-dhistoire">Un peu d’histoire</h2>
|
|
<p>Il me semble que Tim Bernes Lee (l’inventeur du Web) avait prévu le Web comme un
|
|
protocole décentralisé. Chacun hébergerait ses données et les servirait aux
|
|
autres, qui pourraient alors y accéder.</p>
|
|
<p>Avec ce fonctionnement, impossible alors d’accéder à des sites si leur auteur
|
|
n’est pas en ligne. Qu’à cela ne tienne, on s’est mis à avoir des machines qui
|
|
restent connectées au réseau 24 heures par jour. Et puis une machine ne
|
|
suffisant plus, on a eu des fermes de machines dans des <em>data centers</em> etc afin
|
|
de supporter les milliers d’utilisateurs des sites.</p>
|
|
<h2 id="un-web-decentralise">Un Web décentralisé</h2>
|
|
<p>ZeroNet permet (entre autres) de répondre à ce problème en proposant une manière alternative de <strong>distribuer le Web</strong>, en pair à pair. Lors d’une visite d’un site:</p>
|
|
<ol>
|
|
<li>Vous contactez un <em>tracker</em> BitTorrent pour connaitre la liste des autres
|
|
visiteurs du site (les <em>pairs</em>).</li>
|
|
<li>Vous demandez aux <em>pairs</em> de vous donner les fichiers du site.</li>
|
|
<li>Vous validez que les fichiers servis sont bien les bons (en vérifiant la
|
|
signature attachée).</li>
|
|
</ol>
|
|
<p>N’importe quel visiteur devient alors un <em>pair</em>, qui sert le site aux autres visiteurs.</p>
|
|
<p>Parmi les nombreux avantages de cette approche, je note particulièrement que:</p>
|
|
<ul>
|
|
<li>Il est très difficile de censurer un site — Il est sur l’ensemble des machines
|
|
des visiteurs.</li>
|
|
<li>Les attaques par <em>fingerprinting</em> sont impossibles: le navigateur Web se
|
|
connecte à un serveur <em>proxy</em> local.</li>
|
|
<li>Vous détenez directement vos données et (par design) ne les donnez pas à des
|
|
silos (Facebook, Google, etc.)</li>
|
|
</ul>
|
|
<p>Si vous êtes interessés par une démonstration rapide, j’ai enregistré une vidéo
|
|
de 10 minutes où je parle en anglais avec une voix très grave.</p>
|
|
<video controls="" src="http://alexis.notmyidea.org/zeronet.webm" width=800></video>
|
|
|
|
<h2 id="atelier">Atelier</h2>
|
|
<p>Pour l’atelier, j’ai choisi de faire une présentation rapide du projet (<a href="https://blog.notmyidea.org/docs/zeronet-presentation-fr.pdf">j’ai
|
|
traduit les slides</a> anglais
|
|
pour l’occasion — <a href="https://docs.google.com/presentation/d/158C_-V1ueNaaKHMBMBgGOVhunb9xrXzB3hC_g1N53c0/edit?usp=sharing">accès aux sources</a>)
|
|
avant d’installer ZeroNet sur les machines et de l’utiliser pour publier un site.</p>
|
|
<h3 id="partager-sur-le-reseau-local">Partager sur le réseau local</h3>
|
|
<p>Nous avons eu des soucis à cause du réseau (un peu congestionné) sur lequel
|
|
les ports utilisés pour la discussion entre <em>pairs</em> étaient fermés. Il est bien
|
|
sur possible de faire tourner le tout de manière indépendante du reste du réseau,
|
|
mais je n’avais pas prévu le coup.</p>
|
|
<p>Voici donc comment faire pour contourner le souci:</p>
|
|
<ol>
|
|
<li>Installer et lancer un <em>tracker</em> BitTorrent (De manière surprenante,
|
|
<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685575">rien n’est packagé pour debian pour l’instant</a>)
|
|
J’ai choisi d’installer <a href="http://erdgeist.org/arts/software/opentracker/#build-instructions">OpenTracker</a></li>
|
|
<li>Ensuite lancer ZeroNet avec des options spécifiques.</li>
|
|
</ol>
|
|
<div class="highlight"><pre><span></span><code>$<span class="w"> </span>python<span class="w"> </span>zeronet.py<span class="w"> </span>--trackers<span class="w"> </span>udp://localhost:6969<span class="w"> </span>--ip_external<span class="w"> </span><span class="m">192</span>.168.43.207
|
|
$<span class="w"> </span>python<span class="w"> </span>zeronet.py<span class="w"> </span>--trackers<span class="w"> </span>udp://192.168.43.207:6969<span class="w"> </span>--ip_external<span class="w"> </span><span class="m">192</span>.168.43.172
|
|
</code></pre></div>
|
|
|
|
<p>Il est nécessaire de spécifier l’adresse <span class="caps">IP</span> externe que chaque nœud expose pour
|
|
éviter qu’elle n’essaye d’aller la trouver par elle même: nous voulons l’adresse
|
|
du réseau local, et non pas l’adresse internet.</p>
|
|
<p>La prochaine fois je tenterais de venir avec un HotSpot Wifi et un tracker
|
|
BitTorrent dans la poche!</p>
|
|
<h2 id="questions-reponses">Questions / Réponses</h2>
|
|
<p>Il y avait quelques questions intéressantes auxquelles je n’ai pas toujours su
|
|
répondre sur le moment. Après quelques recherches, je rajoute des détails ici.</p>
|
|
<h3 id="torrent-tor-breche-de-secu">Torrent + Tor = brèche de sécu ?</h3>
|
|
<p>Il me semblait avoir entendu parler de problèmes de <em>dé-anonymisation</em>
|
|
<a href="https://hal.inria.fr/file/index/docid/471556/filename/TorBT.pdf">lors de l’utilisation de BitTorrent par dessus Tor</a>.</p>
|
|
<blockquote>
|
|
<p>Dans certains cas, certains clients torrents (uTorrent, BitSpirit, etc)
|
|
écrivent directement votre adresse <span class="caps">IP</span> dans l’information qui est envoyée
|
|
au tracker et/ou aux autres pairs.
|
|
— https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea</p>
|
|
</blockquote>
|
|
<p><a href="https://github.com/HelloZeroNet/ZeroNet/issues/274">Ce n’est pas le cas de ZeroNet</a>, ce qui évacue le souci.</p>
|
|
<h3 id="zeromail-cest-lent-non">ZeroMail, c’est lent non ?</h3>
|
|
<p>Une des applications de démo, <em>ZeroMail</em>, propose un mécanisme qui permet de
|
|
s’envoyer des messages chiffrés sur un réseau pair à pair. L’approche choisie
|
|
est de chiffrer les messages avec la clé du destinataire et de le mettre dans
|
|
un <em>pot commun</em>. Tout le monde essaye de déchiffrer tous les messages, mais ne
|
|
peut déchiffrer que les siens.</p>
|
|
<p>Cela permet de ne <strong>pas</strong> fuiter de méta-données, <a href="https://blog.notmyidea.org/les-problemes-de-pgp.html">à l’inverse de <span class="caps">PGP</span></a>.</p>
|
|
<p>Je n’ai en fait pas de réponse claire à donner à cette question: l’auteur de
|
|
ZeroNet me disait que <span class="caps">10MB</span> (la limite de taille d’un site, par défaut)
|
|
correspondait à beaucoup de place pour stocker des messages, et qu’il était
|
|
possible de supprimer les anciens messages une fois qu’ils sont lus par exemple.</p>
|
|
<p>Une autre solution à laquelle je pensait était de créer un <em>ZeroSite</em> pour
|
|
chaque récipient, mais on connait à ce moment là le nombre de messages qu’un
|
|
utilisateur peut recevoir.</p>
|
|
<p>Je vois plusieurs problèmes avec le design actuel de ZeroMail (il me semble
|
|
assez facile d’y faire un déni de service par exemple). A creuser.</p>
|
|
<h3 id="comment-heberger-des-tres-gros-sites">Comment héberger des très gros sites ?</h3>
|
|
<p>Par exemple, comment faire pour héberger Wikipedia ?</p>
|
|
<p>Il semble que la meilleure manière de faire serait de séparer Wikipedia en
|
|
un tas de petites ressources (par catégorie par ex.). Les gros médias pourraient
|
|
être considérés optionnels (et donc téléchargés uniquement à la demande)</p>
|
|
<h3 id="est-ce-quon-a-vraiment-besoin-dun-tracker">Est-ce qu’on à vraiment besoin d’un tracker ?</h3>
|
|
<p>Le support d’une <span class="caps">DHT</span> <a href="https://github.com/HelloZeroNet/ZeroNet/issues/57">est souhaité</a>,
|
|
mais pour l’instant pas encore implémenté. L’utilisation de la <span class="caps">DHT</span> BitTorrent
|
|
n’est pas une option puisque <a href="https://github.com/HelloZeroNet/ZeroNet/issues/57">Tor ne supporte pas <span class="caps">UDP</span></a>.</p>
|
|
</article>
|
|
<footer>
|
|
<a id="feed" href="/feeds/all.atom.xml">
|
|
<img alt="RSS Logo" src="/theme/rss.svg" />
|
|
</a>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html> |