par Dave Hrycyszyn, traduction de l’article
Je travaille pour Nym, une entreprise de protection de la vie privée sur Internet. L’une de nos technologies, un mixnet, peut défendre les utilisateurs contre des adversaires même très puissants, comme les gouvernements ou les grandes entreprises. Voici comment cela fonctionne, décrit de manière non technique.
Nous avons déjà publié pas mal de documentation technique sur les mixnets et la confidentialité, et avec la publication prochaine de notre whitepaper, il y en aura beaucoup plus. La vidéo de présentation d’Usenix est probablement la meilleure introduction d’une demi-heure aux rouages techniques d’un mixnet Loopix, si vous êtes un geek de la sécurité et que vous voulez y jeter un coup d’œil.
Mais jusqu’à présent, je pense qu’il n’y a pas eu d’explication simple, ou peut-être simpliste, de ce qu’est un mixnet. Voici une tentative pour ramener les choses à un niveau non technique.
Nous présentons généralement le mixnet comme ceci :
Le problème avec les diagrammes architecturaux, c’est qu’ils sont généralement parfaitement compréhensibles pour les geeks qui les dessinent, mais n’aident personne d’autre. Aujourd’hui, nous allons adopter une approche différente. Construisons un mixnet dans notre esprit, en utilisant des métaphores physiques, à titre d’expérience de pensée.
Pensez à une rue bondée que vous connaissez dans une grande ville. Si elle ressemble à Londres (où je vis), cette rue est équipée de nombreuses caméras. Les opérateurs des caméras de surveillance sont les personnes contre lesquelles vous essayez de vous défendre.
Les opérateurs de caméra peuvent voir tout ce qui se passe dans la rue, et aussi tout enregistrer pour une analyse ultérieure.
Ensuite, il faut peupler la rue de personnes. Même dans une rue bondée, les caméramans savent clairement quels chemins ils ont empruntés et à qui ils ont pu parler, car ils enregistrent tout en vidéo haute qualité et peuvent le visionner à loisir.
La question est de savoir s’il est possible de déjouer la surveillance omniprésente dans la rue.
Essayons. Imaginez que tout le monde porte des masques et des vêtements identiques.
Vous pouvez faire tout ce que vous voulez dans la liberté de votre esprit, alors amusez-vous un peu. Ils peuvent tous porter des masques de Guy Fawkes et des tenues noires minimalistes, ou être fabuleux dans des costumes complets de Mardi Gras. Veillez simplement à ce que chaque personne soit indiscernable des autres.
La surveillance est désormais beaucoup plus difficile. C’est la magie de l’une de nos technologies, appelée Sphinx. Toutes les informations qui transitent par le mixnet (la rue, dans notre analogie) sont enveloppées dans des paquets Sphinx. Sphinx rend difficile la distinction entre les différents éléments d’information parce qu’il englobe toutes les caractéristiques distinctives dans un uniforme de chiffrement fade et identique.
Voici mes paquets Sphinx transitant sur le réseau :
C’est déjà assez difficile de garder une trace.
Y a-t-il autre chose dont nous avons besoin ? Oui. De la compagnie.
Pensez à la circulation piétonne dans la rue à deux moments de la journée. Tout d’abord, un vendredi après-midi bondé avec beaucoup de monde dehors. Ensuite, à minuit le dimanche. Il n’y a presque personne.
Si vous êtes la seule personne dans la rue le dimanche soir, les caméras de surveillance peuvent facilement voir ce que vous avez fait, que vous portiez un costume “Eyes Wide Shut”, un uniforme de policier anti-émeute ou un costume de lapin de Pâques. Il n’y a tout simplement pas assez de couverture pour vous. En d’autres termes, l’anonymat n’est pas assez grand pour se cacher.
Mais si vous faites partie des 100'000 personnes dans la rue le vendredi après-midi, vous serez très bien couvert. Il sera très difficile de vous repérer dans la foule et de vous anonymiser.
Ces moutons racontent l’histoire :
Comme vous pouvez le constater, l’anonymat aime la compagnie. Votre anonymat dans un système de réseau est similaire à l’anonymat que vous obtenez en étant mélangé à une grande foule de personnes qui sont indiscernables les unes des autres.
Est-ce tout ce dont nous avons besoin ? Le travail est fait ? Non, pas encore.
Les opérateurs de la caméra de surveillance peuvent toujours suivre les personnes en les chronométrant. Supposons que toutes les personnes qui entrent et sortent de la rue le font de manière ordonnée (une entrée, une sortie). Même si la rue est bondée et que tout le monde porte des tenues identiques à celles de Barney le dinosaure violet, ils peuvent toujours savoir qui est qui. Il leur suffit de tenir un compte ordonné.
Comment pouvons-nous arrêter cette attaque temporelle?
Dans votre expérience de pensée, placez des tentes à intervalles réguliers au milieu de la rue. Les caméras de surveillance ne peuvent pas voir à l’intérieur. Les gens entrent périodiquement dans les tentes, et y restent pendant un temps très court et aléatoire. Puis ils partent dans un ordre différent de celui dans lequel ils sont arrivés. Maintenant, les opérateurs de caméra n’ont vraiment aucune idée de qui est qui.
Les tentes sont vos mixnodes. Ils brassent, ou mélangent, les paquets Sphinx, afin de s’assurer que les opérateurs de surveillance sont incapables d’utiliser des attaques de synchronisation (en comptant les paquets dans l’ordre) pour désanonymiser les utilisateurs. Voici un dessin technique de quelques paquets Sphinx se relaxant momentanément dans une tente à bière à Munich, complètement à l’abri de la surveillance extérieure :
Il y a une dernière chose que nous pouvons faire. Bien que les gens soient désormais parfaitement à l’abri de la surveillance lorsqu’ils marchent dans la rue, il est toujours possible de savoir quand ils entrent dans la rue ou en sortent, c’est-à-dire quand ils commencent ou arrêtent d’utiliser le mixnet.
Cela peut poser un problème : si vous entrez dans notre rue imaginaire au moment exact où vous voulez contrer la surveillance et que vous quittez la rue dès que vous avez terminé, les actions que vous entreprenez peuvent être évidentes (selon le contexte réel de ce que vous faites). Le mixnet de Nym envoie donc en permanence du trafic de couverture : un faux trafic de rue auquel peuvent se fondre des personnes réelles effectuant des actions réelles.
Dès que vous démarrez une application Nym, elle commence automatiquement à envoyer des robots dans la rue en votre nom. Ainsi, lorsque vous avez réellement besoin d’anonymat, les actions que vous entreprenez sont enfouies dans un flux d’autres trafics qui ont déjà été envoyés depuis votre machine.
Ok, c’est le rapport entre les mixnets et le monde réel. Revenons à notre dessin original de l’architecture du mixnet, armés de notre nouvelle perspective physique.
Comme nous l’avons appris par les révélations de Snowden, diverses entités surveillent de larges portions de l’internet — elles enregistrent essentiellement tous les flux d’informations sur l’internet. C’est contre ces caméras que nous voulons nous défendre. Jetez un coup d’œil au schéma du Mixnet :
L’ordinateur d’Alice, à gauche, veut envoyer des messages à l’ordinateur de Bob, via le mixnet, et échapper à la surveillance.
Dès que l’ordinateur d’Alice est allumé, il commence automatiquement à envoyer le trafic de couverture des paquets Sphinx à travers le mixnet. Chacun de ces paquets est indiscernable au niveau binaire de tous les autres paquets, comme un stormtrooper est indiscernable d’autres stormtroopers.
Les paquets Sphinx sont acheminés à travers les mixnodes. Les paquets sont mélangés et émis dans un ordre différent de celui dans lequel ils sont entrés dans chaque nœud. Comme les stormtroopers qui s’arrêtent pour boire une bière rapide dans les tentes de l’Oktoberfest.
Les paquets Sphinx traversent plusieurs mixnodes et sont livrés à Bob. En supposant qu’il y ait un nombre suffisamment important de personnes utilisant le mixnet (que nous ayons un grand ensemble d’anonymat de stormtroopers, ou de moutons, dans la rue), il est impossible pour quiconque observe le réseau de déterminer si Alice parlait à Bob, parlait à quelqu’un d’autre, ou envoyait simplement automatiquement du trafic de couverture pendant qu’elle était sortie manger un sandwich.
Pour résumer, le mixnet Nym utilise les techniques suivantes pour déjouer la surveillance omniprésente des réseaux en ligne :
- faire en sorte que tout le trafic ait la même apparence (afin que les adversaires ne puissent pas suivre le trafic individuel)
- réorganiser le trafic (afin que les adversaires ne puissent pas simplement compter ce qui entre et ce qui sort pour anonymiser statistiquement les utilisateurs).
générer un faux trafic de couverture (afin que les adversaires ne puissent pas savoir quand l’anonymat était important)
Crédits photos : London Street | Storm Troopers
Publié à l’origine sur https://blog.nymtech.net/a-simple-introduction-to-mixnets-6783a103d20e