Neutre comme la Suisse

La neutralité des réseaux n'est pas un vain mot pour les défenseurs d'un Internet sans frontière ni péage. Chacun devrait d'ailleurs prendre conscience que cette neutralité est fragile, et que des lobbies d'opérateurs internet sont bien décidés à y mettre un terme. En mots de tous les jours, cela signifierait que si vous êtes abonnés à Internet chez le fournisseur X, vous pourriez bien avoir des problèmes pour accéder à Youtube, ou à des contenus hébergés par l'entreprise Y. Pire, vous pourriez vous voir interdir ou facturer l'usage de certains protocoles. En tant qu'entreprise, vous devriez payer plus cher pour que les abonnés de tel ou tel fournisseur d'accès puissent accéder à vos serveurs.

L'entreprise Proxad (Online, Free, Dedibox, ...) a déjà recours à ces procédés. Par exemple, une connexion vers un serveur Dedibox sera très lente si vous êtes aux États Unis, alors qu'elle sera rapide si vous êtes en France. Un téléchargement de fichier hébergé sur dl.free.fr sera très rapide si vous êtes sur une connexion ADSL Free, mais d'une lenteur dissuasive chez n'importe quel autre opérateur.
Dans un domaine similaire, on a constaté que le fournisseur d'accès américain Comcast a tenté de bloquer l'utilisation de Bittorrent par des procédés douteux.

Face à ces menaces, l'Electronic Frontier Foundation a commencé à travailler sur un logiciel client-serveur qui sera capable de déterminer si le traffic réseau émis par une machine a été modifié entre la source et la destination. Ce logiciel, Switzerland, est en version 0, donc encore largement inutilisable par le grand public. Néanmoins, son fonctionnement est prometteur, et j'ai déjà pu effectuer quelques tests avec l'aide d'autres utilisateurs.

Le principe de fonctionnement de Switzerland est le suivant :

  • Un serveur Switzerland tourne quelque part sur internet
  • Les utilisateurs (vous, moi, des serveurs web/mail/... sur internet) lancent le client Switzerland sur leur machine et se connectent au serveur Switzerland
  • Les utilisateurs se connectent les uns aux autres et échangent des données (vous relevez vos mails, nous partageons une ISO de FreeBSD via Bittorrent, ...)
  • Votre client Switzerland calcule un checksum des paquets que vous envoyez vers moi, ou vers un service en ligne qui utilise le client Switzerland
  • Chaque checksum est envoyé au serveur central Switzerland
  • Le client Switzerland du destinataire des paquets calcule à son tour le checksum du paquet, et les envoie au serveur Switzerland
  • Le serveur Switzerland compare les checksums des paquets, pour détecter les modifications

Dans le cas où une modification est détectée, le serveur Switzerland demande alors aux clients impliqués dans la connexion de lui envoyer les paquets complets, et non plus les checksums. Ainsi, il peut se livrer à une analyse détaillée de ce qui a été modifié. Donc tant qu'il n'y a pas de problème, vos échanges restent absolument privés. Mais dès l'instant où un opérateur modifie des informations dans vos échanges, certaines données seront transmises au serveur Switzerland.

switzerland diagram copyright EFF - under creative commons licence

Switzerland est encore loin d'être utilisable. C'est un logiciel en plein développement. Néanmoins, si vous souhaitez le tester voici quelques remarques :

  • Lisez bien tout ce qu'on vous dit sur http://www.eff.org/testyourisp/switzerland
  • Vous devez avoir une installation de Python pas trop ancienne
  • Vous devez avoir une horloge parfaitement synchronisée
  • Si vous utilisez open-ntpd comme moi, veillez à ce que ntpdc soit hors d'atteinte (renommez le)
  • Si comme moi vous n'utilisez pas ntpd (soit rien, soit autre chose), utiliser l'option -u 0
  • Actuellement, le serveur de test officiel est cassé, vous pourrez trouver d'autres adresses de serveur sur le wiki officiel
  • Vous devrez probablement désactiver votre firewall pour les tests, les NAT peuvent aussi poser quelques soucis
  • Sous Linux, si le client meure en disant "...Check for Large Segment Offloading on gigabit Ethernet cards...", essayez de régler le problème avec la commande `ethtool -K eth1 tso off` (à adapter en fonction de votre configuration)
  • C'est un logiciel connecté qui tourne en root, donc la prudence habituelle est de rigueur
Related posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.