Speaker #0Bonjour mamie, bonjour et bienvenue dans la cybersécurité expliquée à ma grand-mère, le podcast pour expliquer la cybersécurité à des gens qui n'y prennent rien. Bien souvent dans la vie de tous les jours, l'anonymat est un facteur important. Tantôt, c'est quelque chose qu'on cherche, c'est le cas des activistes politiques, mais aussi parfois des journalistes désireux d'échanger des informations en toute confidentialité. Mais quelquefois, c'est aussi quelque chose qu'on redoute, et c'est le cas de tous les trafiquants en tout genre. Il existe une co-évolution entre la technologie et la société. C'est-à-dire que si nous vivions dans un monde sans surveillance et sans crime, il serait fort probable qu'il n'y ait plus besoin de se protéger. Mais le monde est ainsi fait, qu'il existe des entités, parfois étatiques, qui surveillent les peuples pour mieux les manipuler, et pour éviter certains scandales. Vous savez Hubert, la vie n'est pas toujours facile pour les gens ici. C'est d'ailleurs le propre des dictatures. Une dictature, comme vous y allez. Vous êtes bien sympathique Dolorès, mais épargnez-moi vos analyses politiques. Vous savez ce que c'est qu'une dictature ? Une dictature c'est quand les gens sont communistes. Déjà, ils ont froid, avec des chapeaux gris et des chaussures à fermeture éclair. C'est ça, une dictature Dolorès. D'accord. Et comment vous appelez un pays qui a comme président un militaire avec un pouvoir, une police secrète, une seule chaîne de télévision et dont toute l'information est contrôlée par l'État ? J'appelle ça la France, mademoiselle. Et pas n'importe laquelle. La France du général de Gaulle. La technologie permet de fournir des outils pour protéger les individus, mais malheureusement, en même temps, donne aussi les moyens aux criminels de rester dans l'ombre. Je ne parlerai donc pas ici du débat autour de l'intérêt ou non de se rendre anonyme sur Internet, car c'est un sujet plus politique que technique. Mais le but est plus simplement de vous présenter des techniques qui permettent de se rendre, ou plutôt d'essayer de se rendre, le plus anonyme possible. Car on va le voir, pour ne pas laisser de traces, il va falloir se lever tôt. Je vais traiter de trois moyens techniques pour se rendre pseudo-anonyme. Le premier, le plus connu de tous, et on va le voir bien souvent pour de mauvaises raisons, le VPN. Le second, un peu plus confidentiel, le réseau Tor, très connu comme étant la porte d'entrée du Deep Web et de toutes ses dérives. Et enfin pour finir, le petit dernier de la troupe. NIM. Avant de rentrer dans le détail de chacune de ces techniques, on va d'abord passer un peu dedans à expliquer comment une communication s'établit sur Internet et pour ça il va falloir comprendre comment Internet fonctionne. Si on regarde Internet au niveau macroscopique, on peut voir qu'il existe une multitude de médias et d'équipements possibles. Vous avez peut-être chez vous une connexion fibre, mais peut-être que votre box est connectée à votre ordinateur avec un câble Ethernet, c'est-à-dire des fils en cuivre, alors que votre smartphone, lui, sera certainement connecté en Wi-Fi. Mais le plus fantastique dans tout ça, c'est que tout ce petit monde communique parfaitement, alors que dans la très grande majorité des cas, ce sont des équipements issus de fabricants différents. Et pourtant, tout a l'air de fonctionner correctement. Ce qui est d'autant plus étonnant, c'est que les services et applications que vous utilisez sur Internet sont eux aussi rendus par des fournisseurs différents, utilisant des technologies complètement différentes les unes des autres. Vous pouvez parfaitement vous connecter sur un serveur web qui tourne sous Linux, en utilisant un navigateur qui tourne sur Windows. Ça ne pose aucun problème, d'ailleurs ça passe totalement inaperçu. L'Internet est formé d'une myriade de composants hétérogènes, et pourtant, dans la grande majorité des cas, ça fonctionne comme par magie. Quiconque a déjà cherché à acheter un sac pour son aspirateur a compris à quel point les industriels aiment les technologies propriétaires. Alors comment Internet arrive à fonctionner à l'inverse des fabricants d'aspirateurs et à faire que tout fonctionne correctement ? En fait, il existe des consortiums qui travaillent dans le but d'uniformiser les standards. Il en existe un pour le Wi-Fi par exemple, il s'appelle Wi-Fi Alliance. Son but est de travailler à la standardisation de la technologie Wi-Fi et à ses évolutions futures. Par la suite, les industriels qui fournissent cette technologie devront se conformer à cette norme ou à défaut se retrouver à vendre les équipements non conformes ou fabricants de secs d'aspirateur. Il en va de même pour l'Internet. C'est l'IETF, pour Internet Engineering Task Force, qui est le consortium qui gère l'Internet. C'est en quelque sorte eux qui définissent le comportement que le protocole doit avoir. Ils sont responsables aussi de faire évoluer le protocole pour prendre en compte les besoins futurs. Vous avez peut-être déjà entendu parler de IP version 4 ou de IP version 6 par exemple. L'IETF est donc garant de l'universalité des protocoles en définissant le comportement de chacun d'entre eux, car leur comportement est précisément décrit. Charge ensuite à chaque fournisseur, que ce soit de système d'exploitation mais aussi d'équipement réseau ou de solution de sécurité, d'être parfaitement en ligne avec les règles édictées par l'IETF. C'est un peu comme un code de la route universel dans lequel tout est parfaitement décrit. Comment prendre un carrefour gératoire ou définir le côté de la route sur lequel vous devrez vous positionner ? L'IETF va définir très précisément le format de messages qui peuvent circuler, mais aussi le sens des informations qu'il contient, c'est-à-dire la sémantique du message lui-même. Mais il y a aussi l'architecture globale des protocoles et leurs éventuelles interactions. Il existe de très nombreux protocoles et chacun ont un usage bien précis. Certains sont des protocoles de service, comme pour améliorer l'acheminement des messages par exemple, mais d'autres sont plus liés à des usages applicatifs. Ces protocoles sont en quelque sorte des moyens structurés de communication. Qu'un protocole puisse fonctionner de bout en bout, et ce quel que soit le matériel et ou le support de communication, il a fallu décomposer la responsabilité des différentes couches. Plus les couches sont basses, et plus on parlera de couches proches du matériel. Ces couches ont un contrat à respecter avec la couche inférieure et la couche supérieure. Sécrètement, elles attendent certaines informations et actions de la couche inférieure et fournissent certaines actions et informations à la couche supérieure. Chacun joue son rôle et présume que les autres en feront de même. C'est ce qui permet par exemple de ne pas faire de distinction entre la connexion envoyée par un réseau Ethernet et un message envoyé par le Wi-Fi. Pour l'utilisateur, les choses sont strictement les mêmes, mais en réalité c'est la couche de transport qui change dans ce cas. Mais comme le contrat rendu par cette couche est le même dans le cas d'Ethernet et dans le cas de Wi-Fi, alors c'est totalement transparent pour la couche supérieure qui s'appuie sur la couche responsable du transport. Cette indépendance entre les couches permet de les rendre interopérables c'est-à-dire d'échanger de manière transparente, Ethernet ou contre Wi-Fi par exemple, sans avoir d'impact sur les couches supérieures. Mais comment les messages transitent sur Internet ? Prenons l'exemple d'une page web. La communication est découpée en paquets de données. Ces paquets sont envoyés sur les réseaux vers une destination définie par une adresse qu'on appelle l'adresse IP, IP pour Internet Protocol. Et là, il existe deux modes d'utilisation différents pour gérer cette communication. Il y a l'UDP, UDP pour User Datagram Protocol, Dans ce cas, c'est à l'utilisateur. Ici, il faut comprendre le programme qui utilise la connexion Internet. C'est lui qui doit gérer le message lui-même. C'est donc l'utilisateur qui est responsable de gérer les éventuels aléas de connexion. Le réseau, dans ce cas, essaiera de livrer le paquet avec le meilleur effort possible. Mais s'il y a un problème et que le paquet est perdu, par exemple, c'est à l'utilisateur, c'est-à-dire au programme, de gérer cette problématique. L'avantage de ce mode de connexion, c'est que c'est très simple à mettre en œuvre et que c'est aussi très rapide, car il y a... aucun contrôle sur le flux de données. Pour ceux qui souhaitent au contraire avoir l'assurance que les données seront délivrées, alors il existe un autre mode de connexion qu'on appelle TCP. TCP pour Transport Control Protocol. C'est le fameux TCP IP. On parle aussi de mode connecté dans ce cas-là. Dans le sens où la connexion va suivre un cycle de vie bien particulier, où elle sera initiée, utilisée et enfin clôturée. Ce mode de connexion est moins performant qu'UDP, mais il est aussi bien plus sûr. car le protocole prend en compte les aléas de connexion grâce entre autres à un mécanisme d'accusé de réception. C'est-à-dire qu'après avoir initié la connexion, tous les morceaux de messages envoyés seront d'une part acquittés, c'est-à-dire que l'on va confirmer la bonne réception, mais l'intégrité de ce message sera lui aussi garantie. C'est-à-dire que l'on va regarder que le message n'a pas été altéré, mais aussi qu'il a bien été reçu par la machine distante. Si d'aventure l'une des trames a été altérée ou n'a pas été reçue, alors le protocole demandera un renvoi de la trame manquante ou erronée. C'est bien cette connexion de bout en bout qui permet le mode de connexion TCP. Le protocole HTTP, qui est le protocole utilisé dans le cadre d'un serveur web, est basé sur la connexion TCP, ce qui permet de recevoir une page web sans trou dans le texte et les paragraphes dans le bon ordre. En fait, il faut comprendre que même si vous avez le sentiment que le flux de données est continu, c'est ce qu'on peut imaginer quand on regarde un film en streaming par exemple, bien en fait, derrière cette apparence continuité, le processus est discret car les messages ont une dimension finie. Le monde qui nous entoure n'est pas forcément celui qu'on imagine. D'ailleurs, si ce thème vous intéresse, je vous conseille la lecture du livre Apologie de la discrétion de Lionel Nakache. Comme vous pouvez le constater, le TCP a été conçu pour assurer la robustesse et l'intégrité du flux d'informations, qui semble continu, même s'il ne l'est pas en réalité. La robustesse et l'intégrité, oui, mais pas la confidentialité des données. Et c'est là où les choses sérieuses peuvent commencer. Quand on parle de confidentialité sur Internet, la première chose qui vient à l'esprit est le VPN. VPN, c'est un nom de la société. pour Virtual Private Network. Il existe plusieurs types et implémentations d'architecture de VPN. Mais pour simplifier, un VPN va rediriger toutes vos connexions Internet issues de votre machine au travers d'un canal sécurisé vers un serveur qui sortira sur Internet avec une adresse IP différente de la vôtre. Du point de vue du site web que vous cherchez à consulter, c'est cette adresse IP qui apparaît et non la vôtre. Le serveur de VPN va donc faire l'interface entre le site web et votre machine. Si quelqu'un regarde le réseau entre votre machine et le serveur VPN, il ne verra que des données chiffrées. La promesse de ce genre d'outil est de rendre votre connexion sécurisée et confidentielle. Mais qu'est-ce qu'il faut entendre par sécurisé et confidentiel dans ce cas ? N'y a-t-il pas un peu de sucre marketing ajouté par les vendeurs de VPN ? Pour répondre à cette question, il faut d'abord se poser la question de pourquoi utiliser un VPN. La réponse la plus connue est pour surfer de manière anonyme. En fait c'est simple.
Speaker #0Dans la très grande majorité des cas, le site sur lequel vous allez surfer sera en HTTPS, c'est-à-dire que le contenu de votre communication avec le serveur sera protégé par le TLS. Le TLS est le protocole qui va chiffrer les communications HTTP et donne lieu au fameux HTTPS. Il ne sera donc pas possible de voir le contenu de votre connexion vers le site web. En d'autres termes, il ne sera pas possible de vous écouter. Mais malheureusement, il sera possible de voir sur quel site vous êtes connecté. Ce problème est dû à la première phase de la mise en œuvre du Thales avec le serveur web, car les premiers échanges ne sont pas chiffrés. En d'autres termes, on peut détecter que vous êtes connecté à un site web, mais pas voir les échanges avec celui-ci. Un autre élément à prendre en compte est votre adresse IP, puisque quand vous établissez une communication entre votre ordinateur et le site web, c'est votre adresse IP qui apparaît dans les logs de connexion. Troisième point à prendre en compte est que votre adresse IP est loin d'être la seule information utile pour vous identifier. Votre navigateur, par sa configuration et par toutes les informations qu'il donne sur vous, rend votre connexion quasi unique. Et là, je ne parle même pas des cookies, ils permettent à coup sûr de l'identifier de manière unique. Vous pouvez par exemple tester votre niveau de traçabilité en utilisant le site web Cover Your Tracks, dont je mettrai le lien en commentaire de cet épisode. Mais il y a aussi votre manière de déplacer la souris et de scroller une page. Même la fonte de caractères utilisée par la page web peut être utilisée contre vous. D'ailleurs, à ce propos, je vous conseille d'écouter l'épisode du podcast Le code a changé de Xavier Delaporte, consacré à la typographie. Ça semble complètement lié comme sujet, mais c'est en réalité passionnant. Je mettrai le lien dans la description de cet épisode. Alors, est-ce qu'un VPN peut régler ces problèmes ? Eh bien, la réponse est oui et non. Tout dépend du VPN dont on parle. Commençons par la confidentialité d'une connexion vers un site web. Vous l'avez compris, la confidentialité de la connexion sera dans une majeure partie des cas assurée par le HTTPS. Il faut comprendre par là que l'utilisation de HTTPS est devenue une norme et qu'il est impensable aujourd'hui d'avoir une connexion web qui ne passe pas via ce protocole. Le VPN dans ce cas ne vous servira pas à grand chose. Au mieux, cela permettra d'éviter à quelqu'un de voir les sites web sur lesquels vous êtes en train de surfer. En théorie, le VPN peut aussi cacher votre adresse IP. Ce qui est factuellement vrai, mais l'adresse IP que vous utiliserez sera celle de votre prestataire VPN. Et cette adresse IP n'aura pas forcément une bonne réputation, car elle sera partagée entre différents clients qui, pour certains d'entre eux, vont l'utiliser à des fins malveillantes. Et à cause de cela, certains sites vont simplement refuser la connexion. Ça peut être le cas pour les boîtes mail. Certains prestataires refuseront toute connexion en provenance d'un prestataire VPN car ils considéreront cette connexion comme une attaque à la boîte mail elle-même. Il en ira de même avec les plateformes de télévision en ligne qui connaissent parfaitement ces adresses IP et qui, dans de nombreux cas, refuseront la connexion. Là encore, le VPN n'est pas d'une très grande utilité. Alors, est-ce que le VPN peut au moins rendre la navigation anonyme ? Eh bien, malheureusement, non. Car les traces laissées par votre navigateur, dont nous avons parlé précédemment, n'ont rien à voir avec la connexion que vous utilisez. Souvenez-vous que les couches sont indépendantes les unes aux autres, c'est-à-dire que le service qu'elles rendent ne sont pas dépendantes des couches entre elles. Il en va de même de votre navigateur qui communique avec un serveur web. Le contenu de cette communication est indépendant du moyen que vous utilisez pour communiquer. Alors, est-ce que le VPN peut au moins vous protéger si vous comptez faire quelque chose d'illégal ? Beaucoup de prestataires de VPN affichent fièrement qu'ils ne stockent aucun log, c'est-à-dire aucune information sur vos connexions. Rien, aucune info, jamais vraiment jamais, que dalle, nada. Sauf que... Sauf que plusieurs affaires montrent que la réalité est plus subtile et que dans bon nombre de cas, ils stockent des informations. Il est même arrivé que pour certains, ils soient obligés de fournir ces informations à la police. Alors les VPN sont-ils aussi indispensables que certains fournisseurs de VPN le prétendent ? C'est, je pense, loin d'être le cas. En revanche, si vous avez besoin de vous connecter au réseau de votre entreprise de manière sûre, alors c'est un bon usage. Alors comment faire si les VPN ne sont pas efficaces ? L'une des alternatives les plus connues est le réseau TOR. TOR est un réseau qui a été conçu dans les années 90 par l'armée américaine dans le but de mettre en œuvre un système de communication fiable en matière de cybersécurité. c'est-à-dire un système capable de garantir la confidentialité de bout en bout. Tor veut dire The Onion Routing Network et vous allez comprendre dans quelques instants pourquoi il fait référence à ce légume herbacé biannuel. Tor est un réseau mondial décentralisé de serveurs mis à disposition par des bénévoles et dont l'objectif est d'anonymiser les connexions sur Internet. L'idée de base, c'est que lorsque votre machine voudra accéder à Internet via le réseau Tor, elle va sélectionner au hasard trois serveurs, qu'on appelle des relais ou des nœuds. Elle va chiffrer ensuite trois fois sa requête et va l'envoyer au serveur qui vont la relayer en pelouache chacun à son tour, une couche du chiffrement. C'est la raison pour laquelle le logo Thor est un non-nul. Il existe trois types de relais. Chacun d'entre eux assure des missions distinctes ayant des modes de fonctionnement différents. Les nœuds d'entrée, qu'on appelle les nœuds gardiens, ou les nœuds bridge, les nœuds intermédiaires et les nœuds de sortie. Thor assure l'anonymat dans un sens, c'est-à-dire dans la protection du client, mais pas nécessairement celui du serveur. Par exemple, quand vous connectez un serveur, celui-ci n'est pas anonyme, puisqu'il est indexé dans le serveur DNS. DNS pour Domain Name Server. Le DNS vous permettra d'obtenir l'adresse IP du serveur que vous cherchez à joindre. Quand vous tapez www.google.fr, faites-vous demander au Domain Name Server l'adresse du serveur www dans le domaine google.fr. Le site web n'est donc pas du tout anonyme, il est même au contraire connu de tous. Tor permet de mettre en œuvre des sites web vraiment anonymes. Ce sont ces fameux sites web qui terminent par.onion. Un tel site web est alors appelé service caché sous-entendu caché dans le réseau Tor, et ne peut pas être tracé. L'ensemble de tous ces services cachés est communément appelé le Deep Web. Pour se connecter, votre machine va créer un circuit de trois relais par lesquels va transiter le flux des données. Le premier relais est le relais d'entrée. Cette catégorie comporte deux sous-catégories, les nœuds gardiens et les bridges. Dans les deux cas, ce nœud va servir de point d'entrée dans le réseau Tor. Concrètement, votre machine se connectant à Internet via Tor va envoyer la requête au nœud d'entrée, lequel va la transmettre au nœud intermédiaire. La différence entre un nœud gardien et un nœud bridge, c'est que la liste des nœuds Tor gardien est publique, tandis que la liste des bridges est tenue secrète par Tor Project. Ceci a pour conséquence que les nœuds bridge masquent le fait que vous utilisiez Tor auprès de votre fournisseur d'accès Internet ou à toute autre personne qui se placerait entre vous et le bridge. Si vous utilisez un noeud gardien, ce sera le cas par défaut, votre fournisseur d'accès internet verra que vous utilisez Tor et pourra potentiellement vous bloquer, même s'il ne connaîtra ni la destination ni le contenu de la requête. L'utilisation de noeud bridge est intéressante dans les pays où Tor est bloqué ou illégal. Pour utiliser un bridge, il faut en faire la demande à Tor Project, qui distribue une ou deux IP de bridge à la demande. Par sécurité, Tor renouvelle le circuit toutes les 10 minutes pour brouiller les pistes et limiter les informations qu'un attaquant contrôlant un noeud pourrait récupérer. Cependant... les nœuds d'entrée, qu'ils soient bridge ou gardien, est fixe et ne change que tous les 2 ou 3 mois. Ce temps est appelé pariette de rotation. La liste de tous les nœuds Tor est publique, à l'exception des bridge. Il y a aujourd'hui environ 6000 serveurs. Les nœuds peuvent rentrer et sortir à leur gré du réseau, ou changer d'état et passer nœud gardien par exemple. Ou alors être bannis parce que ce sont des relais compromis. Et tout ça, ça pose problème. Le Tor Project a donc déployé une poignée de serveurs particuliers appelées les autorités d'annuaire. Les IP de ces autorités annuaires sont codées en dur à l'intérieur de chaque clientor, et ils sont au nombre de 9. Mais comment ça fonctionne ? D'abord, votre machine va télécharger de l'un de ces sites annuaires le consensus, c'est-à-dire la liste des nœuds disponibles. Elle va ensuite sélectionner aléatoirement un nœud gardien, un nœud intermédiaire, et un nœud de sortie à partir du consensus. Une fois que c'est fait, c'est là où ça va se compliquer un peu parce qu'il va falloir négocier des clés de chiffrement avec chacun des relais de façon anonyme. Votre machine va donc récupérer les trois clés publiques des trois relais depuis un serveur de clé. Ces clés vont servir pour l'authentification de ces serveurs. Si vous ne savez pas comment ce mécanisme fonctionne, je vous invite à écouter l'épisode On dit chiffré Une fois que le premier nœud a été authentifié et qu'une connexion sécurisée est établie, votre machine va pouvoir négocier avec le second nœud en passant ses communications à travers le premier. Et là encore, c'est un peu le même principe, il authentifie le nœud. La négociation avec le nœud intermédiaire est un peu plus difficile car il faut pour cela que le nœud intermédiaire connaisse le client. A ce stade, la communication est donc chiffrée deux fois avec des clés symétriques des nœuds 1 et 2. Pour atteindre le dernier nœud, celui de sortie, la machine envoie une demande de connexion chiffrée deux fois avec les clés du premier et du second nœud. Le premier nœud déchiffre la première couche avec la clé, mais ne peut toujours pas lire le contenu puisqu'il a été chiffré avec la clé du second nœud. Il envoie donc le contenu chiffré au second nœud. Le second nœud déchiffre le message avec sa clé et le transmet au troisième nœud. On comprend dans cet exemple pourquoi on parle d'oignons, car les messages sont successivement chiffrés avec des clés différentes. C'est comme si vous enfermiez un message dans un coffre-fort avec une première clé, et que vous mettiez ensuite ce coffre-fort dans un autre coffre-fort, lui-même fermé par une seconde clé. et que ce coffre-fort soit lui-même placé dans un troisième coffre-fort. Pour obtenir le message initial, il faut qu'à chaque étape, on utilise une clé pour enlever une couche de protection. Le message d'origine sera visible qu'à la dernière étape. Et c'est grâce à ce mécanisme que Tor garantit l'anonymat. Mais Tor permet en plus de mettre à disposition des sites web qui ne sont connus que sur les réseaux Tor. Et ça, c'est quelque chose d'assez unique. Mais alors, si c'est si bien, pourquoi ne pas utiliser Tor ? Le premier problème est que Tor est un réseau formé par des machines fournies par des bénévoles, et les performances et la stabilité n'est pas toujours au rendez-vous. Un second problème réside dans l'observation des nœuds de sortie. Dans le cas d'une connexion Internet classique, le nœud de sortie est le plus critique des trois. En effet, le nœud de sortie va peler la dernière couche de chiffrement, et va donc avoir la requête en clair, dans laquelle peut se trouver des informations sensibles, tels que des identités, des mots de passe, des informations personnelles, des fichiers téléchargés, etc. C'est-à-dire que même si le nœud de sortie ne connaît pas l'IP de votre machine, vous pouvez quand même être désanonymisé. Pour cette raison, le Tor Project surveille très étroitement les nœuds de sortie. Un projet de recherche appelé Sploid Onions conduit en octobre 2013 et publié en janvier 2014, avait pour objectif de trouver les oignons pourris du réseau. Pour cela, ils ont développé deux outils de scan de nœuds de sortie, ExitMap et OniConnector. Exit Map permet de détecter les manipulations de trafic en utilisant une connexion Tor vers un leurre contrôlé par Tor Project. En sécurité informatique, on appelle ça un pot de miel, référence au véritable pot de miel pour piéger les insectes. On sait ce qu'on envoie dans le réseau et on regarde ce qui arrive dans le pot de miel. Si le trafic a été modifié, alors ça veut dire que le noeud de sortie modifie les trames du réseau. Ony Connector permet de détecter le sniffage de trafic, c'est-à-dire la récupération des informations sans les modifier. Concrètement, on envoie via Tor un couple identifié en mot de passe sur un pot de miel toujours contrôlé par Tor Project. Ensuite, si une tentative de connexion a lieu ultérieurement sur le pot de miel, alors on sait que le nœud de sortie par lequel ce couple d'identifiant est passé l'a intercepté. Tor Project fait régulièrement tourner Exit Map et OnyCollector pour trouver et bannir des oignons pourris. Pour la petite histoire sordide, sachez que cette étude a mis en évidence que les oignons pourris avaient beaucoup de similitudes et pouvaient être classés en groupes. Un de ces groupes était constitué de 20 oignons pourris localisés en Russie, collaboraient entre eux et étaient contrôlés par la même entité. La même chose a été observée pour un groupe localisé en Arde et un groupe décentralisé. De plus, les attaques ne sont pas systématiques, mais avaient des destinations cibles spécifiques. Ainsi, le groupe russe ciblait exclusivement les connexions à Facebook. Ça veut dire que les oignons pourrines ne sont pas tenus par des script kiddies ou des loups solitaires, mais par des entités organisées qui ont les moyens de faire tourner plusieurs dizaines de serveurs et d'analyser les gros paquets de données qui en résultent. Un autre moyen est d'analyser le trafic. Le concept est assez simple. Supposons que deux personnes s'échangent des messages chiffrés et qu'un attaquant surveille ces échanges. Étant donné que les messages sont chiffrés, l'attaquant n'a pas accès au contenu. En revanche, la fréquence d'échange des messages, ainsi que leur taille, sont des indications permettant aux attaquants de faire des déductions quant à leur contenu ou à leur destination. Prenons un exemple très concret. Normalement, Thor est censé réactualiser le circuit toutes les 10 minutes. Or, il existe quelques exceptions à cette règle. Lorsque vous maintenez un échange de données ininterrompu avec un serveur en passant par tort, par exemple en téléchargeant ou en uploadant, le circuit ne peut pas être réactivisé dans cet échange. Supposons que vous téléchargez vraiment un gros fichier, genre un film de 2h30 en Full HD, 10 JK via le site YouTube DL, et que ça prenne environ, mettons 5 heures. Pendant 5 heures, vous allez garder le même circuit. Et si un attaquant qui contrôle des relais torts voit que le serveur de YouTube fait rentrer par un des relais un énorme fichier pendant 5 heures, et qu'à un autre endroit, un autre relais envoie à un utilisateur un autre gros fichier pendant 5 heures, il peut raisonnablement en conclure que vous êtes en train de télécharger un film sur YouTube, sans pour autant avoir accès au fichier en lui-même. Et voilà mamie, tu t'es fait griller. Il existe des tas et des tas de façons de faire de l'analyse de trafic et de compromettre des connexions. C'est réellement un problème car les solutions qui permettent de corriger ce problème risquent gravement de nuire à l'utilisabilité de Tor. Par exemple, on pourrait imaginer introduire du trafic parasite qui serait créé de façon transparente directement par le client et par le serveur. Mais on augmenterait alors drastiquement la charge de la bande passante de Tor. On pourrait également introduire des perturbations aléatoires de débit et cela ralentirait considérablement les connexions Tor qui sont déjà réputées être lentes. Alors que penser de Tor ? Est-ce que Tor permet vraiment d'assurer l'anonymat ? Et bien encore, c'est difficile de trancher de manière définitive au regard de ce qui vient d'être expliqué. Certes, il existe des failles de sécurité et la bande passante du réseau n'est pas très rapide, mais il y a quand même un indicateur qui montre le niveau de solidité du réseau. C'est le temps nécessaire pour trouver et stopper un site malveillant. Généralement, ceux qui se chargent de stopper un site malveillant sur Tor ce qu'on appelle un takedown dans le jargon, ce sont Interpol ou LFBI. Autant dire des gars plutôt sérieux avec un peu de moyens. Bien généralement, ça leur prend un peu de temps et souvent la raison pour laquelle ils réussissent à stopper un site n'est pas liée au réseau lui-même. On citera par exemple le cas de OxyMonster, gal Valerius de son vrai nom, grand revendeur d'OxyContin et de CrystalMet, mais aussi très grand fan de concours capillaires. C'est d'ailleurs dans un concours de barbe qu'il s'est fait arrêter. Je pense que son arrestation tient plus de la bonne exploitation de ce qu'on appelle l'OSINT, d'ailleurs le prochain hors-série de ce podcast sera consacré à ce sujet, plutôt qu'à une vraie faille de sécurité du réseau. On peut donc raisonnablement conclure que même si Thor a pas mal de défauts, ce n'est pas un gilet pare-balles, c'est quand même un assez bon moyen de se rendre anonyme. Existe-t-il un moyen plus sûr et plus performant que Thor ? Eh bien il y a le petit dernier de la liste, NIMH. Le mot NIM est très présent dans les écrits d'un célèbre groupe de hackers des années 80. Devinez qui ? Les cypherpunks. Et oui, encore eux. Le projet NIM est né dans l'esprit de Harry Alpine en 2017, lors de la conférence Financial Cryptography and Data Security. On parlait tout à l'heure de l'intrication qui existe entre la société et la technologie. Eh bien le nom de cette conférence exprime parfaitement ce phénomène. NIM reprend un certain nombre de concepts de tort, mais va plus loin dans la démarche. Commençons par les aspects techniques. NIM est un réseau distribué sur MixNet, littéralement réseau mélangeur. A l'instar de Tor, MixNet est composé de nœuds et de passerelles d'entrée et de sortie. Il y a aussi des validateurs dont je parlerai un peu plus tard. Les passerelles permettent l'entrée et la sortie du réseau. Les messages que vous souhaitez faire passer vont transiter via les nœuds du réseau. Vous vous souvenez, dans le cas de Tor, les messages transitaient via trois nœuds successifs qui composaient un circuit valide pendant 10 minutes. Dans le cas de NIM, le circuit est différent pour chaque paquet. C'est-à-dire que les paquets qui composent votre message ne passeront jamais deux fois par le même circuit. D'où le nom réseau mixnet le réseau qui mélange. En plus de passer par des chemins différents, le haut réseau fait circuler de faux paquets. Ces paquets sont des leurres pour induire en erreur un éventuel attaquant. En plus de ça, dans le cas de TOR, l'une des attaques possibles était d'observer la corrélation entre l'entrée et la sortie. Si on observe du trafic à la sortie juste après avoir observé le trafic à l'entrée, et bien il est possible d'en déduire les deux bouts de la communication. Pour pallier à ce problème, le réseau MixNet va lui-même induire des retards dans la livraison des paquets. Pour mieux comprendre comment cette attaque fonctionne, et surtout comment NIM permet de s'en prémunir, imaginez un arbre de Noël avec des gearland. Des gearland assez basiques où toutes les ampoules s'allument et s'éteignent au même moment. Toutes les gearland s'allument et s'éteignent à une fréquence différente. Certains sont très rapides alors que d'autres le sont beaucoup moins. Si vous regardez cet arbre, vous verrez tout un tas de lumières qui vont clignoter. Vu de loin, tout semble aléatoire. Mais peut-être que si vous observez attentivement ces lumières, vous observerez que certaines lumières s'allument et s'éteignent au même moment. Les lumières qui s'allument et s'éteignent au même moment sont sur la même guirlande. C'est exactement ce qui se passe dans le cas de Thor. Si vous arrivez à observer la corrélation, vous pouvez en déduire l'arrivée et le départ de la communication. Imaginez maintenant que certaines de ces ampoules s'allument avec du retard. Eh bien, vu de l'extérieur, le clignotement sera bien plus aléatoire. et donc il sera beaucoup plus difficile de détecter les gear-land. MixNet, en induisant un retard dans le traitement des paquets, va rendre la corrélation beaucoup plus complexe et donc le réseau plus sûr. Mais il reste encore un défaut de Tor à corriger. Tor est un réseau formé par des bénévoles qui mettent à disposition des ressources pour que le réseau fonctionne. Mais il n'y a aucune incitation à rendre le réseau performant et robuste, ce qui rend Tor structurellement et économiquement fragile. D'autant plus que les personnes qui vont mettre le plus de moyens, c'est-à-dire avoir le plus grand nombre de nœuds dans le réseau, ne le feront pas forcément pour les meilleures raisons du monde, puisque plus vous avez de machines et plus vous aurez de leviers pour supprimer l'anonymat. Là encore, NIM est assez novateur dans son approche, puisque chaque personne qui participe au réseau, en mettant à disposition des ressources, est rémunérée dans une crypto-monnaie propre à NIM. D'ailleurs, le token s'appelle NIM. Le mode de rémunération est décrit dans le document appelé Reward Sharing for Mixnet. ou en français, partage de la rétribution du réseau Mixnet. Vous connaissez ? Je voulais vous demander un conseil d'ailleurs, parce que quand votre voisin de gauche rachète la banque à la moitié de sa valeur, il doit bien donner 17% des artichauts qu'il a gagnés pendant la dernière donne. Euh, ouais. Ouais, mais si vous faites artichette et que vous collez le banquier à moins 6, vous pouvez tenter la retournelle et balancer les annonces. Bah ouais. Donc on est d'accord, artichette, tichette de 2, tichette de 3, tichette de 21, tichette, tchèdèque. Mik, Zgada Dabaran, Drezine et Retournel. Ah ben voilà ! C'est pas moi qui explique mal, c'est les autres qui sont cons. La blockchain de Mixnet suit le principe de Proof-of-Tac et non le Proof-of-Work. Pour résumer très rapidement la différence entre les deux méthodes, le Proof-of-Work est la méthode qui permet à un opérateur de rajouter un bloc dans la blockchain s'il prouve qu'il a fait son travail. Et dans ce cas, la preuve de travail est la résolution d'un challenge cryptographique. Pour résumer, ce sont des milliers de machines qui tournent à fond pour résoudre un challenge. Si l'une d'entre elles trouve la réponse, alors elle a le droit d'ajouter son bloc à la chaîne et de toucher une rémunération au passage. Le gros problème, c'est que toutes ces machines consomment énormément de ressources, ce qui est dans le contexte climatique actuel un véritable non-sens. L'alternative à cette méthode est la Proof-of-Stack. Dans ce cas, l'opérateur prend un engagement financier sur le nœud du réseau. C'est-à-dire que s'il triche en essayant de modifier un bloc de la chaîne, eh bien, il perdra tout son argent. Cette méthode a l'avantage d'être beaucoup moins consommateur de ressources, mais d'une part, il faut qu'il y ait des validateurs indépendants, mais d'autre part, l'algorithme va sélectionner... plus souvent des nœuds ayant de gros montants engagés, puisque par définition, ils seront plus sûrs. Eh bien, le réseau Mixed Head a parfaitement intégré ce principe. Quand un contributeur met en place un nœud NIM, il dépose en garantie une somme que l'on pourrait considérer comme étant un capital investi dans ce nœud. Mais il est aussi possible que quelqu'un investisse lui aussi sur ce nœud. Plus il y aura d'investisseurs et d'argent engagés, et plus le nœud aura du poids dans le réseau et sera sélectionné. A noter que l'algorithme de sélection prend aussi en compte la stabilité du nœud et donc la qualité de service rendue. Petit détail intéressant, les processus qui tournent sur les nœuds du réseau notes sont écrits en Rust, un langage spécialement conçu pour être robuste. Et enfin, pour boucler la boucle, si vous souhaitez utiliser NIM, il faudra payer en NIM, qui est la crypto-monnaie de ce réseau. En quelque sorte, la valeur de la crypto-monnaie est adossée à la qualité de service de NIM, ce qui doit le rendre théoriquement plus stable. Est-ce que NIM est la solution pour permettre l'anonymat sur Internet ? Difficile de répondre à cette question car il est difficile d'être aussi catégorique. Mais c'est très certainement l'un des projets les plus aboutis, mais surtout qui est le plus ancré dans les problématiques actuelles. On voit bien que cette initiative, lancée depuis de nombreuses années, démontre clairement que l'anonymat est un besoin pour nos sociétés, mais qu'il existe aussi de nombreuses difficultés techniques à résoudre. Le modèle économique de Nîmes, et particulièrement son modèle de rémunération basé sur l'équilibre d'un âge, laisse penser que ce système permettra de mettre en œuvre un système décentralisé et stable, rendant l'anonymat vraiment accessible et raisonnablement sûr. Merci d'avoir écouté cet épisode, je mettrai en description les références dont j'ai parlé. Et surtout n'oubliez pas, certaines personnes pensent que la cybersécurité est un enjeu de vie ou de mort, bien plus sérieux que ça.