Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Mon blog dans les oignons

Première rédaction de cet article le 15 janvier 2015
Dernière mise à jour le 1 septembre 2021


Cela faisait longtemps que je voulais m'amuser avec cela, donc, désormais, ce blog est également accessible en Tor hidden service, c'est-à-dire avec un nom de domaine en .onion.

Quel est l'intérêt de faire cela ? Le réseau Tor est connu pour permettre une connexion aux services de l'Internet qui soit anonyme (attention à votre sécurité toutefois : aucune technique n'est parfaite et rien n'est jamais complètement anonyme) et qui résiste à la censure. Tor assure ce service en relayant chaque requête par plusieurs nœuds Tor. Seul le premier connait le client initial (il ne connait pas la destination) et seul le dernier connait le serveur visé (il ne connait pas le client initial). Bon, ça, c'est Tor qui protège le client. Mais si on a envie de protéger le serveur ? Lorsqu'on publie traditionnellement sur l'Internet, on annonce un nom de domaine et n'importe qui peut investiguer, trouver (par exemple avec dig) l'adresse IP associée, se servir de whois pour trouver où et par qui est connectée cette machine, bref, même si on n'a pas mis son nom et son adresse dans les informations distribuées par le serveur, on peut être retrouvé facilement, ce qui est un problème si on veut bloguer alors qu'on vit sous une dictature intégriste et moyenâgeuse.

C'est là qu'interviennent les Tor hidden services. L'idée de base est que le serveur fabrique une identité sous forme d'une clé cryptographique, l'envoie à quelques relais Tor, qui inscrivent cette identité dans, par exemple, une DHT, et les clients qui se connecteront à Tor trouveront ainsi les points de rendez-vous, permettant de se connecter à votre serveur, sans que les clients ne trouvent son adresse. Comme toutes les techniques de sécurité, cela n'est pas invulnérable à tout attaquant, donc, attention, si les enjeux sont élevés, il faut prévoir également d'autres précautions.

Pour savoir si le serveur à contacter est un serveur « normal » sur l'Internet ou bien si c'est un de ces services discrets (ce que les médias à sensation nomment le « Dark Web »), les services discrets ont un nom dans le TLD (domaine qui a depuis été officiellement reconnu par le RFC 7686) .onion. C'est ainsi que ce blog est (le lien ne marchera que si vous avez un client Tor) http://sjnrk23rmcl4ie5atmz664v7o7k5nkk4jh7mm6lor2n4hxz2tos3eyid.onion/.

Pour configurer ce service, la documentation en ligne est suffisante. J'ai juste installé Tor sur une machine Debian (aptitude install tor), ajouté et configuré Apache (attention à n'écouter qu'en local, avec Listen 127.0.0.1:80), puis configuré Tor

HiddenServiceDir /var/lib/tor/blog/
HiddenServicePort 80 127.0.0.1:80

Et c'est tout (en supposant que l'Apache ne serve qu'un site, sinon il faudra mettre le nom en .onion dans ServerName). Tor crée la clé et la publie auprès des relais. On peut la lire dans /var/lib/tor/blog/hostname (où blog est le nom du service caché, utilisé dans la directive HiddenServiceDir). Attention toutefois à certains pièges : le but étant d'être autant que possible anonyme, Tor ne servira à rien si vous laissez des choses comme ServerAdmin jeankevin@chezmoi.example, choses qu'Apache publiera dans certains cas. Vérifiez donc bien que vous ne laissez pas d'indications dans vos textes ou votre configuration !

Bien sûr, dans le cas de ce blog, le service discret Tor n'a aucun intérêt pour l'auteur puisque le même contenu est publié par ailleurs par une technologie classique. Mais, dans un monde où on peut être assassiné pour des dessins qui déplaisent aux censeurs, beaucoup de gens ont intérêt à publier discrètement.

De nombreux sites sont ainsi accessibles via .onion même si, pour certains, cela peut sembler surprenant.

Si vous voulez des informations techniques en français, il y a l'article de Benjamin Sonntag. Vous y noterez (à la fin de la section « Héberger votre site avec Tor ») un point dont je n'ai pas parlé, la possibilité de choisir un nom plus parlant, au lieu de la clé cryptographique aléatoire que Tor génère par défaut. Cette possibilité me semble une faiblesse de sécurité mais les gens de Tor ne sont pas d'accord (la section « Part three: their vanity address doesn't mean the world has ended »).

Au fait, ce n'est pas tout d'avoir un site en .onion, encore faut-il que les gens l'utilisent. Pour aider, le navigateur Tor a, depuis sa version 9.5, la possibilité de découvrir une version .onion d'un site Web qui l'annonce via l'en-tête HTTP (non standard à ce jour) Onion-Location:. C'est ce que j'ai configuré sur ce blog, avec la directive Apache :

Header set Onion-Location "http://sjnrk23rmcl4ie5atmz664v7o7k5nkk4jh7mm6lor2n4hxz2tos3eyid.onion%{REQUEST_URI}s"

Je paie une bière à celui ou celle qui m'indiquera l'adresse IP de la machine qui héberge ce service, je vais peut-être découvrir (c'est mon premier service Tor discret) que j'ai fait plusieurs grosses erreurs de configuration (rappelez-vous l'avertissement plus haut : les erreurs arrivent et, en sécurité, elles peuvent coûter cher). La première faille a été découverte par Xilokar et c'était l'oubli du /server-status d'Apache, activé par défaut... (Ce problème a fait l'objet d'une alerte de sécurité bien plus tard.)

Avec mes remerciements à Ser Davos, le « chevalier à l'oignon », un des personnages les plus sympathiques de Game of Thrones.

Pour le futur : faudrait quand même que je mette les flux de syndication en .onion, eux aussi...

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)