diff --git a/.gitignore b/.gitignore index 53752db..8405f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ output +cache diff --git a/content/crypto/2016.03.ZeroNet.md b/content/crypto/2016.03.ZeroNet.md new file mode 100644 index 0000000..200db75 --- /dev/null +++ b/content/crypto/2016.03.ZeroNet.md @@ -0,0 +1,143 @@ +Title: Retours sur un atelier ZeroNet +Date: 2016-03-17 +Headline: Comment contourner la censure grâce à un Web pair-à-pair ? + +Mardi dernier se tenait [une *cryptoparty*](http://biblio.insa-rennes.fr/crypto) +dans les locaux de l'INSA de Rennes. + +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 [ZeroNet](https://zeronet.io), un +petit projet fort sympathique qui pourrait devenir une nouvelle manière de +distribuer le Web, permettant notamment d'éviter la censure. + +Avant toute autre chose, merci énormément à l'équipe de la bibliothèque de +l'INSA pour l'organisation de cet évènement qui à une réelle portée politique. + +## Un peu d'histoire + +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. + +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 tout connectées au réseau 24 heures par jour. Et puis une machine ne +suffisant plus, on à eu des fermes de machines dans des *data centers* etc afin +de supporter les milliers d'utilisateurs des sites. + +## Un Web décentralisé + +ZeroNet permet (entre autres) de répondre à ce problème en proposant une manière +alternative de **distribuer le Web**, en pair à pair. Lors d'une visite d'un +site: + +1. Vous contactez un *tracker* BitTorrent pour connaitre la liste des autres + visiteurs du site (les *pairs*). +2. Vous demandez aux *pairs* de vous donner les fichiers du site. +3. Vous validez que les fichiers servis sont bien les bons (en vérifiant la + signature attachée). + +N'importe quel visiteur devient alors un *pair*, qui sert le site aux autres +visiteurs. + +Parmi les nombreux avantages de cette approche, je note particulièrement que: + +- Il est très difficile de censurer un site — Il est sur l'ensemble des machines + des visiteurs. +- Les attaques par *fingerprinting* sont impossibles: le navigateur Web se + connecte à un serveur *proxy* local. +- Vous détenez directement vos données et (par design) ne les donnez pas à des + silos (Facebook, Google, etc.) + +Si vous êtes interessés par une démonstration rapide, j'ai enregistré une vidéo +de 10 minutes ou je parle en anglais avec une voix très grave. + + + +## Atelier + +Pour l'atelier, j'ai choisi de faire une présentation rapide du projet ([j'ai +traduit les slides]({filename}/static/zeronet-presentation-fr.pdf) anglais +pour l'occasion — [accès aux sources](https://docs.google.com/presentation/d/158C_-V1ueNaaKHMBMBgGOVhunb9xrXzB3hC_g1N53c0/edit?usp=sharing)) +avant d'installer ZeroNet sur les machines et de l'utiliser pour publier un +site. + +### Partager sur le réseau local + +Nous avons eu des soucis à cause du réseau (un peu congestionné) sur lequel +les ports utilisés pour la discussion entre *pairs* é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. + +Voici donc comment faire pour contourner le souci: + +1. Installer et lancer un *tracker* BitTorrent (De manière surprenante, + [rien n'est packagé pour debian pour l'instant](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685575)) + J'ai choisi d'installer [OpenTracker](http://erdgeist.org/arts/software/opentracker/#build-instructions) +2. Ensuite lancer ZeroNet avec des options spécifiques. + +```bash + +$ python zeronet.py --trackers udp://localhost:6969 --ip_external 192.168.43.207 +$ python zeronet.py --trackers udp://192.168.43.207:6969 --ip_external 192.168.43.172 +``` + +Il est nécessaire de spécifier l'adresse IP 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. + +La prochaine fois je tenterais de venir avec un HotSpot Wifi et un tracker +BitTorrent dans la poche! + +## Questions / Réponses + +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. + +### Torrent + Tor = brèche de sécu ? + +Il me semblait avoir entendu parler de problèmes de *dé-anonymisation* +[lors de l'utilisation de BitTorrent par dessus Tor](https://hal.inria.fr/file/index/docid/471556/filename/TorBT.pdf). + +> Dans certains cas, certains clients torrents (uTorrent, BitSpirit, etc) +> écrivent directement votre adresse IP 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 + +[Ce n'est pas le cas de ZeroNet](https://github.com/HelloZeroNet/ZeroNet/issues/274), ce qui évacue le souci. + +### ZeroMail, c'est lent non ? + +Une des applications de démo, *ZeroMail*, propose un mechanisme 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 *pot commun*. Tout le monde essaye de déchiffrer tous les messages, mais ne +peut déchiffrer que les siens. + +Cela permet de ne **pas** fuiter de méta-données, [à l'inverse de PGP]({filename}../crypto/2015.05.pgp-problemes.rst). + +Je n'ai en fait pas de réponse claire à donner à cette question: l'auteur de +ZeroNet me disait que 10MB (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. + +Une autre solution à laquelle je pensait était de créer un *ZeroSite* pour +chaque récipient, mais on connait à ce moment là le nombre de messages qu'un +utilisateur peut recevoir. + +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. + +### Comment héberger des très gros sites ? + +Par exemple, comment faire pour héberger Wikipedia ? + +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) + +### Est-ce qu'on à vraiment besoin d'un tracker ? + +Le support d'une DHT [est souhaité](https://github.com/HelloZeroNet/ZeroNet/issues/57), +mais pour l'instant pas encore implémenté. L'utilisation de la DHT BitTorrent +n'est pas une option puisque [Tor ne supporte pas UDP](https://github.com/HelloZeroNet/ZeroNet/issues/57). diff --git a/content/incubation/le-mail-doit-mourir.rst b/content/incubation/le-mail-doit-mourir.rst index b61d2c0..b922142 100644 --- a/content/incubation/le-mail-doit-mourir.rst +++ b/content/incubation/le-mail-doit-mourir.rst @@ -1,9 +1,9 @@ -Le mail doit mourir -################### +Le mail doit-il mourir ? +######################## :status: draft :date: 2015-11-24 -:headline: Le mail est un protocole qui bien établi qui souffre de nombreux +:headline: Le mail est un protocole bien établi qui souffre de nombreux problèmes. Est-ce qu'il ne serait pas temps de préparer la suite ? @@ -22,21 +22,21 @@ faire fuiter les metadonnées (au moins le destinataire) pour avoir un protocole mail fonctionnel. Le mail réponds à un besoin de communication asynchrone qui permet des -conversations plus réfléchies qu'un simple chat. Il est tout à fait possible -d'utiliser certaines technologies existantes afin de constuire le futur de -l'email, pour lequel: +conversations plus réfléchies qu'un simple chat (miaou). Il est tout à fait +possible d'utiliser certaines technologies existantes afin de constuire le +futur de l'email, pour lequel: -- Les méta-données sont chiffrées — Il ne soit pas possible de savoir qui +- Les méta-données seraient chiffrées — Il n'est pas possible de savoir qui communique avec qui, et quand; -- Le chiffrement est fort et protégé d'une phrase de passe; -- La saisie d'une clé utilisée dans un échange ne permette pas de déchiffrer - l'ensemble des échanges (forward secrecy); -- Il ne soit pas possible de réutiliser les données pour incriminer l'emmeteur - ou le recepteur des messages (deniability); +- Le chiffrement serait fort et protégé d'une phrase de passe; +- La fuite d'une clé de chiffrement utilisée dans un échange ne permette pas de + déchiffrer l'ensemble des échanges (forward secrecy); +- Il ne soit pas possible de réutiliser les données comme preuve pour + incriminer l'emmeteur du message (deniability); Avec au moins ces besoins en tête, il semble qu'une revue de l'ensemble des projets existants pointe du doigt vers `pond `_, -ou vers Signal. +ou vers `Signal `_. Malheureusement, Pond est le projet d'une seule personne, qui veut plutôt utiliser ce code comme demonstration du concept en question. @@ -47,7 +47,7 @@ comparaisons qui me semblaient utiles (Nombre de developeurs, date du dernier commit). =========================== ====== ====== ==== -Project Pond Signal PGP +Project Pond Signal PGP =========================== ====== ====== ==== Forward secrecy --------------------------- ------ ------ ---- @@ -56,6 +56,11 @@ Meta-data encryption Deniability =========================== ====== ====== ==== + +Axolotl v2 +========== + +Un des champions actuels (depuis quelques années déjà) dans Hi, As a prelude, let me say that I've been following this mailing-list since over diff --git a/content/static/zeronet-presentation-fr.pdf b/content/static/zeronet-presentation-fr.pdf new file mode 100644 index 0000000..b2445f9 Binary files /dev/null and b/content/static/zeronet-presentation-fr.pdf differ diff --git a/content/tech/2010.08.an-amazing-summer-of-code-working-on-distutils2.rst b/content/tech/2010.08.an-amazing-summer-of-code-working-on-distutils2.rst index 2f89a1f..4d42f79 100644 --- a/content/tech/2010.08.an-amazing-summer-of-code-working-on-distutils2.rst +++ b/content/tech/2010.08.an-amazing-summer-of-code-working-on-distutils2.rst @@ -58,7 +58,7 @@ code on, that's `distutils2 `_. My job ------ -I had to provides a way to crawl the PyPI indexes in a simple way, +I had to provide a way to crawl the PyPI indexes in a simple way, and do some installation / uninstallation scripts. All the work done is available in @@ -172,5 +172,3 @@ cheerfulness ! Many thanks too to the Google Summer of Code program for setting up such an initiative. If you're a student, if you're interested about FOSS, dont hesitate any second, it's a really good opportunity to work on interesting projects! - - diff --git a/content/thoughts/2016.03.focus.rst b/content/thoughts/2016.03.focus.rst index e2776c7..50a0760 100644 --- a/content/thoughts/2016.03.focus.rst +++ b/content/thoughts/2016.03.focus.rst @@ -14,9 +14,16 @@ And this thing makes me feel uncomfortable at the end of the day, because I feel that I missed something. That I missed some good time, away from news and agitation. -What do I need? I tried to change my tools, it helped a bit, Still, I'm not -focused like I would like to be. I've tried the pomodoro technique but… after -some *pomodoros* I stopped using it, not sure why. +Working remotely is sometimes hard. Hard because you need to at the same time +be in the discussions channels and work on the interesting projects. A real +myth. + +In practice, I'm really bad at multi-tasking. I tried a few times the *Pomodoro* +technique, which forces me to focus on a task for 25mn, but this split of my day +into slices of 25mn breaks my natural flow. + +So, what do I need? I tried to change my tools, it helped a bit. Still, I'm not +focused like I would like to be. Maybe that's just me who needs some more persuasion over myself, but the best way I found to work is to unplug the cable. Literally. At work, at some point I