Certains services sur le réseau Tor ?, le plus connu du web profond, ont été indisponibles ou instables ces dernières années en raison d’un problème complexe : les attaques par déni de service. Pour les atténuer, le projet Tor a proposé certaines mesures de défense, notamment un système de jetons.
Une attaque par déni de service est une attaque qui fait qu’un serveur reçoit plus de demandes simultanées qu’il n’est capable d’en prendre en charge. C’est comme si une armée d'”ordinateurs zombies” essayait d’accéder à un site particulier en même temps.
Il existe des techniques de défense. L’une consiste à analyser les modèles qui identifient le trafic non valide pour bloquer ou détourner ces accès. Le problème est que la nature anonyme du réseau Tor – dont les pages sont terminées par .onion – rend ce travail extrêmement difficile, pour ne pas dire impossible.
De manière simplifiée, voici ce qui se passe : le site qui est la cible de l’attaque reçoit des centaines ou des milliers de demandes simultanées de petits messages qui nécessitent beaucoup de ressources de service pour être traités ; comme les demandes sont très nombreuses, le serveur devient surchargé et, par conséquent, instable.
Comme l’explique le projet Tor dans son blog, “dans les services en oignon d’aujourd’hui, chaque demande est indiscernable des autres (après tout, c’est un système d’anonymat), donc la seule stratégie disponible est de traiter chacun d’entre eux de manière égale”.
Que peut-on faire pour empêcher que des demandes malveillantes soient bloquées sans affecter les demandes légitimes ? Il n’y a pas de solution facile. Les attaques DDoS peuvent être orchestrées de plusieurs façons.
À la mi-2019, le projet Tor a même corrigé une faille dans son protocole qui, pendant des années, a permis des attaques DDoS sur des sites .onion. Cependant, ce bug n’était qu’un des moyens exploités. Les attaques continuent à être menées par d’autres moyens.
Une solution définitive nécessiterait de profonds changements dans le réseau Tor, ce qui n’est pas faisable, du moins à court terme. C’est de là que vient la proposition du jeton , qui fonctionnerait comme une sorte de ticket qui prouverait que la demande reçue est légitime, c’est-à-dire qu’elle provient d’un utilisateur réel.
Un jeton peut être tout type d’information capable de valider un accès : adresse IP, numéro de téléphone portable, e-mail, etc. Le problème est que la nature anonyme du web profond, déjà mentionnée, rend l’utilisation de ce type de données insignifiante.
Mais il existe d’autres approches qui peuvent être essayées. La classe du Projet Tor suggère de mettre en place un service CAPTCHA qui récompenserait les utilisateurs avec des jetons anonymes. Les systèmes de type ne sont pas infaillibles, mais même si les envahisseurs obtenaient des jetons par ce moyen, ils ne les auraient guère en quantité suffisante pour une attaque efficace.
Une autre approche suggérée est l’utilisation d’un mécanisme de preuve de travail, en gros, un algorithme qui valide une requête lorsqu’un problème (comme un puzzle rapide) est résolu. Ce système pourrait être mis en œuvre seul ou conjointement avec le système CAPTCHA.
Ces idées ont été présentées à la communauté autour du réseau Tor pour voir qu’il existe des moyens de lutter contre les attaques DDoS, même si aucune solution n’est parfaite. La question est encore à l’étude, mais en fin de compte, chaque cas est un cas d’espèce : l’adoption ou non des idées dépendra des responsables de chaque page .onion.