Tor (réseau)
Tor | |
Logo |
|
Développeur | The Tor Project, Inc[1] (ONG financée à 80% par le gouvernement américain et d'autres ONG pour la démocratie) |
---|---|
Première version | 2001[2] |
Dernière version | 0.2.6.10 ()[3] [+/-] |
Écrit en | C |
Environnement | Multiplate-forme |
Licence | Licence libre : BSD |
Site web | torproject.org |
modifier |
Tor (depuis la génération alpha, l’acronyme récursif de Tor onion routing[4],[5] et également pour la seconde génération l’acronyme de The Onion Router[6],[7], littéralement « le routeur oignon ») est un réseau informatique superposé mondial et décentralisé, mis en œuvre du principe de réseau mélangé (mix network). Il est composé de routeurs organisés en couches, appelés nœuds de l’oignon, qui transmettent de manière anonyme des flux TCP. Le réseau Tor peut ainsi rendre anonymes tous les échanges internet fondés sur le protocole de communication TCP. Ce logiciel libre est distribué sous licence BSD révisée.
Le projet Tor a reçu le prix du logiciel libre 2010, dans la catégorie projet d’intérêt[8].
Le « routage en oignon »
Le principe de Tor est le routage en oignon. Il fut conçu au milieu des années 1990 par un laboratoire de l'armée américaine, le Naval Research Laboratory, dont l'une des spécialités est la guerre informatique. Le mathématicien Paul Syverson, les ingénieurs Michael Reed et David Goldschlag, ont participé à sa conception. La Defense Advanced Research Projects Agency (DARPA) l'a développé.
Le routage en oignon pallie certaines carences des systèmes existants (notamment les serveurs mandataires) qui ne suffisent pas à garantir l’anonymat.
Tor est la seconde génération de système de routage en oignon (la première génération contenait beaucoup de défauts et n’a donc jamais eu de vrai succès). Il a donné naissance au projet Commotion[9].
Vue d'ensemble
Le routage en oignon fait rebondir les échanges TCP au sein d’Internet afin de neutraliser les analyses de trafic sur une partie du réseau (notamment les analyses par attaque de l'homme du milieu). Les utilisateurs du réseau deviennent alors impossibles à identifier. Dans le paragraphe suivant on prendra l'exemple de l'échange d'un paquet entre un client et un serveur (voir Client-serveur).
Construction d'un circuit
La première étape consiste à la récupération d'une liste de nœuds Tor[10].
Ayant accès à une liste de nœuds de Tor, chaque client choisit automatiquement un chemin aléatoire (il pourra en changer au bout d’un certain intervalle de temps), puis construit un circuit au sein duquel chaque nœud a la propriété de connaître son prédécesseur et son successeur, sans en savoir plus.
Le premier nœud du circuit connaît votre adresse IP. Mais dès le deuxième nœud, la négociation se fait par l’intermédiaire du circuit partiel déjà construit, de sorte que le deuxième nœud, par exemple, ne connaîtra finalement que l’adresse IP du premier nœud (et du troisième lorsqu’un troisième nœud aura été ajouté).
Les paquets à acheminer sont associés à une identification du propriétaire du circuit (la personne qui l’a construit). Mais cette identification est un code arbitraire qui a été choisi au moment de la construction du circuit. L’identification réelle du propriétaire est inaccessible.
Cette construction fait appel au concept de cryptographie hybride. Chaque nœud d’oignon possède une clef publique, mais la cryptographie à clef secrète est bien plus rapide que celle à clef publique. L’idée est donc de distribuer à chaque nœud du circuit une clef secrète chiffrée avec leur clef publique.
Après la phase de construction, chaque nœud du circuit dispose d'une clef secrète qui lui est propre et ne connaît que son prédécesseur et son successeur au sein du circuit.
Échange de paquets
Pour acheminer un paquet au serveur, le client doit chiffrer son paquet de nombreuses fois :
- la première fois, le client chiffre son paquet TCP avec la clef publique correspondant au dernier nœud, numéroté n ;
- la deuxième fois, avec celle de l’avant-dernier nœud, numérotée n-1 ;
- la troisième fois, avec celle de n-2 ;
- la quatrième fois, avec celle de n-3, etc.
- la dernière fois, avec celle du premier nœud, numéroté 1.
À ce stade, toutes les couches de l’oignon enferment le paquet TCP. Voyons comment l’oignon est pelé lorsque le client envoie ce paquet au circuit qu’il a construit :
- le premier serveur du circuit déchiffre le paquet avec la clef 1 et l’envoie au deuxième serveur ;
- le deuxième serveur déchiffre ce paquet avec la clef 2, etc. ;
- le dernier serveur déchiffre ce paquet avec sa propre clef privée n et obtient le paquet original.
En pratique, un client du réseau Tor peut configurer son navigateur web pour utiliser un serveur mandataire personnel qui donne accès à Tor (par exemple Privoxy). Voici le déroulement d’une visite de ce client au site web Wikipédia :
- Son navigateur web envoie la requête HTTP à Privoxy ;
- Privoxy retranche l’information non anonyme, passe l’information via SOCKS au client Tor. Le client construit un circuit (si ce n’est déjà fait), chiffre les données à envoyer, et les passe au premier nœud ;
- Ce premier nœud déchiffre une partie de l’enveloppe et fait suivre les données jusqu’à atteindre le nœud de sortie ;
- Ce nœud de sortie envoie la requête à Wikipédia.
La même chose se passe en sens inverse. L’échange est ainsi anonyme, mais est cependant très ralenti.
Services cachés
Tor propose à ses utilisateurs un ensemble de services cachés, qui ont pour but de publier des sites internètiques ou de proposer d’autres services sur Internet en cachant l’identité du serveur qui les héberge. Ils permettent ainsi de cacher l’adresse IP, donc les coordonnées géographiques, de serveurs utilisant ce service caché.
Pour la mise en place de sites web cachés, le serveur doit d’abord être configuré localement par son créateur, puis Tor va pointer sur ce serveur pour que des personnes extérieures puissent y accéder. Dans ce cas, le serveur recevra de Tor une adresse en .onion, et il ne pourra être accessible que par l’intermédiaire de Tor. L’accès d’utilisateurs à un service web protégé par les services cachés se fait selon un protocole défini par Tor. Ce protocole gère notamment la notion de rendez-vous entre l’utilisateur et le site, ce rendez-vous ayant lieu sur un des nœuds du réseau Tor.
La principale critique faite aux services cachés à leurs débuts était le temps qu’il fallait pour charger les pages de sites utilisant cette technologie. La longueur de la connexion pouvait ainsi excéder plusieurs minutes. Aujourd'hui (2015) le débit et le temps de réponse général sur le réseau Tor s'est très largement amélioré car de plus en plus de nœuds sont créés dans le monde. De plus, il est maintenant possible aux utilisateurs de créer des services cachés très efficaces de façon simple et rapide, que ce soit des pages web, de la messagerie instantanée ou même de la VoIP. En fonction du nombre de nœuds que la route Tor de l'utilisateur emprunte le temps de réponse varie entre 200ms et 650ms ce qui peut être considéré comme "performant" pour un réseau construit de cette façon.
Un anonymat partiel
Tor ne peut assurer la protection de paquets UDP, et n’en soutient donc pas les utilisations, notamment les requêtes aux serveurs DNS. Cependant Tor offre la possibilité d'acheminer les requêtes DNS à travers son réseau, notamment à l’aide de la commande « torsocks
» (à ne pas confondre avec « torify
»). Les auteurs recommandent l’extension Firefox Torbutton qui fait passer tout le trafic Firefox par Tor et non une partie configurée. Torbutton peut utiliser un proxy anonymiseur comme Privoxy ou Polipo.
On peut utiliser NoScript, une extension Firefox qui gère les scripts JavaScript en les activant uniquement dans les domaines de confiance. Mais le mieux est de désactiver toutes les extensions (JavaScript, Flash, plugins multimédias…).
La NSA a mis en place plusieurs nœuds Tor afin de collecter des informations sur le réseau[11]. La présentation Tor: Overview of Existing Techniques, explique également qu'une des techniques consiste à détourner le trafic de certains sites consultés par les activistes vers des serveurs contrôlés par la NSA[11].
Attaque de type Time Pattern
Tor permet d’empêcher un attaquant de suivre le chemin pris par une connexion. Cependant, s’il ne peut reconnaître le contenu du flux, il existe des moyens dont le principe est en quelque sorte lié au problème des canaux cachés. Par exemple, envoyez un flux comme du code morse : 3 paquets envoyés en salve, puis 5 secondes de silence, puis 3 paquets, etc. Lorsque vous verrez un flux sortir d’un nœud Tor et dont le motif temporel ressemble à celui-ci, alors vous saurez que c’est le vôtre.
Selon ce principe, vous pouvez chercher à attribuer une signature temporelle à un flux que vous essayez de suivre, ce qui vous permettra peut-être de le faire. Un attaquant peut d’ailleurs augmenter ses chances en donnant lui-même un motif temporel au flux qu’il cherche à suivre. C’est en effet chose possible. Comme au sein d’un nœud tous les paquets sont transférés par le biais d’une machine commune et se partagent donc les ressources du système, un attaquant peut inonder un nœud de ses propres paquets pour moduler un ralentissement de la machine comme il l’entend, et ainsi créer une signature temporelle pour les flux qui traversent ce nœud précis.
Ces deux types d’attaques sont très différentes et posent de nombreuses questions. La première montre que même si le réseau Tor protégeait parfaitement l'anonymat, des moyens simples peuvent le contourner complètement et fortement compromettre son efficacité. Le second exemple montre que, bien que Tor soit un outil efficace, il est possible de l’attaquer directement, à la condition d'avoir accès aux informations des réseaux, c'est le cas des opérateurs et des gouvernements. C'est le cas par exemple de la National Security Agency, service de renseignement des États-Unis qui a installé différents système espions sur les principaux opérateurs réseaux comme l'a divulgué Edward Snowden[11].
Financement
Le projet coûte 2 M$ annuellement pour son développement et pour payer les nombreux serveurs. En 2012 :
- 60 % proviennent du gouvernement américain (soutien à la liberté d'expression et à la recherche scientifique)[12] ;
- 18 % proviennent de fondations et autres donateurs (John S. and James L. Knight Foundation (en), SRI International, Google, Swedish International Development Cooperation Agency (en))[13] ;
- 18 % proviennent de la valorisation des contributions des bénévoles[13].
Polémique
L’existence d’un tel réseau est sujet à polémique :
- Risque de surveillance globale de la population par les gouvernements. Les gouvernements peuvent utiliser Tor à des fins d'espionnage. Il peut également être utilisé par des organismes d'État ou des sociétés privées spécialisées dans le droit, pouvant, avec l'aide d'huissiers et de la police, constater des problèmes légaux avec un site, en limitant la possibilité de se faire détecter par celui-ci. Des organes d'État des États-Unis utilisent par exemple ce type de procédé[14]. Par contre, du fait de la faille du motif de temps (time pattern), et de la possibilité pour les gouvernements d'accéder aux clefs des opérateurs réseau, il est facile pour ceux-ci de surveiller les utilisateurs de Tor, perdant de fait l’intérêt initial de ce projet.
- Utilisation pour des actes malveillants. Si la communauté Tor fait en effet valoir que les délinquants utilisent déjà d’autres techniques de cybercrime, vol, piratage (phishing, cheval de troie, ingénierie sociale, etc.), et qu’en outre, pour certains échanges, la condition d’anonymat est primordiale : journalistes, réseaux militants, etc., il reste que l’on ne saurait ignorer le risque que des actes illicites soient, à l’aide de Tor, commis sans qu’aucune archive ne permette d’identifier les éventuels auteurs d’infractions (la police allemande a ainsi saisi, en , des serveurs du réseau Tor dans le cadre de l’instruction d’une affaire de pédophilie)[15]. On qualifie donc parfois ces systèmes de réseaux d’impunité, les nœuds étant situés dans le monde entier, alors même qu’une législation à l’échelle d’un seul pays est déjà difficile à mettre en œuvre.
- Blocage des utilisateurs de Tor par certains serveurs. La liste des serveurs Tor étant connue (par nécessité et par volonté des responsables du logiciel)[16], certains sites internet et canaux IRC bloquent l’accès aux utilisateurs venant du réseau Tor. Par exemple, Wikipédia a la volonté d'empêcher les modifications de pages par les IP masquées par Tor. Le message affiché est le suivant : « Vous n'avez pas la permission de modifier cette page pour la raison suivante ; cette adresse IP a été automatiquement bloquée car elle fait partie du réseau de proxies anonymiseurs de Tor. Pour prévenir les abus, l’édition à partir de ces ordinateurs est interdite. […] Date d’expiration du blocage : ce blocage affectera cette adresse IP tant qu’elle fera partie du réseau Tor. […] ».
Implémentations
Plusieurs logiciels tirent parti du réseau Tor par exemple :
- Tor Browser : le produit phare du projet Tor, il inclut le navigateur web Mozilla Firefox ESR modifié, préconfiguré pour protéger l'anonymat sans devoir installer aucun autre logiciel. Il peut être exécuté depuis des médias amovibles et est disponible pour Windows, Mac OS X, et GNU/Linux ;
- PirateBrowser : également basé sur Mozilla Firefox. Édité par The Pirate Bay.
- Bitmessage : messagerie anonyme (similaire à I2P-Bote, laquelle utilise le réseau I2P) ;
- Syndie : forums et blogs en architecture distribuée ;
- Vuze (ex-Azureus) : client BitTorrent ;
- Torbutton a été abandonné pour laisser la place au Tor Browser ;
Plusieurs systèmes d'exploitation basés sur la sécurité font un usage intensif de Tor, tels que :
- Tails, The Amnesic Incognito Live System, qui utilise Tor par défaut, et I2P;
Notes et références
- ↑ (en) Tor Project: Core People, [lire en ligne], consulté le 17 juin 2015.
- ↑ (en) pre-alpha: run an onion proxy now!, consulté le 17 juin 2015.
- ↑ https://blog.torproject.org/blog/tor-02610-released
- ↑ (en) A Peel of Onionou [PDF], Paul Syverson, 2011, p.129, consulté le 17 juin 2015.
- ↑ (en) Tor Project FAQ, consulté le 17 juin 2015.
- ↑ (en) Taking Stock Of Tor: Top 5 Tips For Using The Onion Router, consulté de 17 juin 2015.
- ↑ (en) A Look at The Onion Router (Tor), consulté le 17 juin 2015.
- ↑ (en) Annonce officielle de la FSF, consulté le 17 juin 2015.
- ↑ Yves Eudes, « Commotion, le projet d'un Internet hors de tout contrôle », Le Monde,
- ↑ depuis un serveur (en) Tor: Overview — The solution: a distributed, anonymous network sur torproject.org
- 1 2 3 (en) James Ball, Bruce Schneier et Glenn Greenwald, « NSA and GCHQ target Tor network that protects anonymity of web users », The Guardian (consulté le 10 juin 2014)
- ↑ Geoffrey A. Fowler, « Tor: An Anonymous, And Controversial, Way to Web-Surf - WSJ.com », Online.wsj.com, (consulté le 19 mai 2013)
- 1 2 The Tor Project, Inc., « TorProject 2012 Annual Report », Tor Project, (consulté le 28 mai 2013)
- ↑ (en) Tor: Overview — Overview sur torproject.org
- ↑ (en) « German police seize TOR servers : Anonymising service flushed out », The Register, (consulté le 18 septembre 2015).
- ↑ torstatus.blutmagie.de est la page officielle du projet permettant d'avoir la liste des serveurs instantanément
Voir aussi
Articles connexes
- Anonymat sur Internet
- Censure de l'Internet
- Darknet : les médias considèrent que Tor est un Darknet (en dépit de la définition originale).
- Filtrage d'Internet
- I2P : ce logiciel permet (entre autres) de naviguer anonymement sur les sites internètiques hébergés à l'intérieur d'I2P (le « réseau I2P »), à la manière des services cachés de Tor, mais ne se destine pas à naviguer sur internet en clair comme le permet Tor.
- P2P anonyme : informations générales sur les principes du P2P anonyme (une technique utilisée par Tor), et tableau comparatif de logiciels.
- Vie privée, Vie privée et informatique
Liens externes
- Site officiel
- Documentation
- Code source
- Portail de la sécurité informatique
- Portail de la cryptologie
- Portail d’Internet
- Portail des logiciels libres