Le MIT et l’EPFL présentent Riffle, une alternative à Tor et aux réseaux anonymes DC

Lenteur des réseaux anonymes actuels

L’anonymat, s’il n’est pas toujours souhaitable, est un droit fondamental dans une société démocratique, nécessaire pour la liberté de parole et pour assurer la sécurité d’un dénonciateur.

Aujourd’hui, deux types de réseaux anonymes sont généralement utilisés.

Tor est le plus populaire. Il ne résiste toutefois pas aux attaques d’analyse de trafic d’un adversaire sophistiqué, comme un fournisseur d’accès Internet contrôlé par un État.

Les réseaux de type DC (Dining-Cryptographer Networks) résistent théoriquement aux attaques d’analyse de trafic du moment qu’un des serveurs est honnête, mais nécessitent une diffusion en masse qui limite les possibilités de mise à l’échelle et qui occasionne un énorme trafic.

Le problème de ces deux types de réseaux d’anonymat est leur lourdeur : on doit s’attendre à des pertes de débit considérable, tout comme une explosion de la latence, qui limitent fortement des classes d’utilisations comme le partage de fichier pair à pair.

Lors du PETS 2016 (Privacy Enhancing Technologies Symposium), qui se tient du 19 au 22 juillet 2016 à Darmstadt en Allemagne, quatre chercheurs du MIT et de l’École Polytechnique Fédérale de Lausanne ont présenté Riffle, une alternative efficace en calculs et en débit à ces réseaux.

Riffle

Riffe utilise deux nouvelles primitives de sécurité pour parvenir à ce but : le mélange hybride vérifiable pour le téléversement, et la récupération des informations privées pour le téléchargement.

Riffe se compose de clients qui veulent communiquer de manière anonyme, aussi bien l’envoyeur que le destinataire, mais pas forcément confidentiellement, et de serveurs qui forment collectivement un fournisseur d’anonymat. Pour le garantir, au moins un serveur doit être honnête.

Toutes les communications de Riffle sont chiffrées et authentifiées, par exemple avec TLS.

Le mélange vérifiable consiste à découper une communication en partie de taille uniforme et de les distribuer, ainsi qu’une preuve, aléatoirement aux serveurs de telle sorte qu’ils puissent vérifier la preuve.

Comme le processus est très long, les auteurs proposent une amélioration : le mélange hybride vérifiable, qui n’utilise le mélange vérifiable qu’une fois pour partager les clés de chiffrement. Ensuite, le chiffrement utilise les clés partagées au lieu d’utiliser des algorithmes de clé publique.

Pour le téléchargement par le client, Riffle utilise un système de récupération d’information privée à multiserveurs (multiserver private information retrieval, ou PIR) qui évite les écueils habituels en ne forçant pas le client à télécharger tous les messages, y compris ceux qui ne l’intéressent pas.

Le protocole utilise un système sophistiqué de masquage de bits et de génération pseudo-aléatoire de nombres (PRNG) : les masques sont envoyés une seule fois aux serveurs, et ensuite ils les modifient en interne avec le PRNG.

Le protocole supporte un système d’accusation afin d’empêcher un serveur canaille de corrompre un message, et un système d’engagement afin d’empêcher des serveurs malicieux d’accuser à tort un serveur honnête.

Prototype d’implémentation

Les auteurs du document décrivent en détail les algorithmes utilisés, et présentent l’analyse de sécurité de Riffle. Ils fournissent une implémentation du prototype, programmée en Go, un langage de programmation inventé récemment par Google, et qui connaît un succès limité.

Dans les conditions de tests choisis, Riffle est en général un ou plusieurs ordres de magnitude plus rapide que les systèmes concurrents. Dans les cas où il est plus lent, il apporte une amélioration sécuritaire, telle qu’un anonymat renforcé.

Limites

Parmi les limitations énumérées, qui devraient être traitées dans de futurs travaux, on note l’impossibilité pour un serveur honnête de se défendre d’une fausse accusation si tous les autres serveurs canailles l’accusent, un cas de figure qui devrait être rare ; la mise à l’échelle limitée par le débit serveur à serveur, qui croît linéairement avec l’augmentation du nombre de clients ; et comme tous les clients doivent répondre à chaque tour, Riffle n’est pas optimisé pour le cas de figure classique ou ils ont des vitesses de connexion très variables.