Anonymat sur Internet

Qu'est ce qu'un proxy

Après les VPN, nous allons nous intéresser aux serveurs proxies. Ces serveurs (tout comme les VPN’s) sont des intermédiaires qui permettent à l’utilisateur de garantir son anonymat sur l’Internet. Nous allons donc voir ici comment un proxy fonctionne et à quoi il sert.

I/ Qu’est ce qu’un proxy ?

Un proxy (ou intermédiaire en français) est un serveur qui va servir d’intermédiaire entre deux ordinateurs ou serveurs.

proxy1.pngSi un utilisateur cherche à aller sur un site alors il va envoyer une requête vers le serveur web. Cette requête va d’abord passer par le proxy qui va ensuite la transmettre au serveur web.

Le serveur va répondre au proxy puis le proxy va transmettre la réponse à l’utilisateur. D’où le principe d’intermédiaire :

proxy2.pngDe cette manière l’utilisateur naviguera de façon anonyme puisque ce n’est pas son IP qui sera utilisée sur Internet mais celle du proxy.

En entreprise, les serveurs proxies sont utilisés dans de nombreux buts. Le premier c’est de faire du filtrage de contenu c’est à dire de bloquer certains sites ou services comme les réseaux sociaux, le peer to peer, les messageries instantanées etc… Le second va être de pouvoir garder en mémoire les sites web les plus visités afin de pouvoir les renvoyer plus rapidement aux utilisateurs dans le but d’accélérer la navigation. On appelle ces proxies des proxies-cache.

II/ VPN et Proxy : les différences

La première grosse différence entre les VPN’s et les proxies est que le proxy doit être configuré dans l’application. Par exemple si vous voulez vous servir d’un proxy avec Firefox alors vous devrez remplir ces paramètres :

proxy3.png

Si vous voulez utiliser BurpSuite en tant que proxy pour intercepter et modifier vos requêtes vous serez obligés de remplir correctement les champs sinon le proxy ne fonctionnera pas.

Ensuite toutes les applications ne fonctionnent pas via un proxy. Il arrive donc que des applications tels que les anti-virus ne transitent pas par le proxy mais soient directement  envoyées sur le web. Dans ce cas là vous ne serez plus anonymes.

De manière générale un serveur VPN reste plus « safe » qu’un proxy. La raison principale est que le trafic qui passe entre votre ordinateur et le VPN est fortement chiffré contrairement au proxy qui ne l’est pas toujours. En plus de ça, tout le trafic de votre ordinateur transite par le VPN donc il y a théoriquement aucune fuites possibles.

III/Les reverse proxy

Un reverse proxy c’est l’inverse d’un proxy. Avec un proxy on accède depuis un ordinateur à Internet. Avec un reverse proxy, on va accéder depuis l’Internet à un serveur présent dans un réseau local privé.

Ces solutions sont largement utilisées par les entreprises car elles permettent de sécuriser les serveurs qui hébergent des applications web accessibles depuis l’Internet.

proxy4.png

Prenons un cas concret, vous voulez vérifier vos comptes sur le site de votre banque. Vous allez donc sur son site web et vous utilisez l’application qui vous permet de vous identifier puis checker vos comptes.

Cette application est hébergée sur un serveur accessible depuis l’Internet via un reverse proxy donc vous n’allez pas directement communiquer avec le serveur web mais avec le serveur proxy. Bien évidemment tout ceci est transparent pour les utilisateurs.

A quoi ça va servir ? Eh bien dans un premier temps ça va permettre au proxy de filtrer les requêtes et donc potentiellement d’empêcher certaines attaques contre l’application. C’est aussi une très bonne solution contre les attaques Ddos puisque c’est le serveur proxy qui va être saturé et pas le serveur web !

Ensuite ça va permettre de réguler le trafic entre différents serveurs web ou encore d’accélérer le trafic via l’utilisation d’un cache.

Les reverse proxies se sont donc imposés comme des outils nécessaires dans le monde de l’entreprise.

IV/ Quel proxy utiliser?

Tout comme pour les VPN’s, le choix d’un proxy doit être longuement étudié. Je vous invite à vous reporter sur l’article sur les VPN’s pour voir les points à garder en tête avant de faire votre choix final. Pour ma part j’ai opté pour le vendeur https://www.sslprivateproxy.com/. Pour 15 euros par mois je dispose de 5 proxies privés que j’ai longuement testé et ça fonctionne plutôt bien  !

Qu'est ce qu'un VPN

Sur Internet tous les utilisateurs ont une adresse IP. Cette IP est l’équivalent de votre adresse postale qui permet à votre famille de vous envoyer une carte postale et à la police de vous envoyer vos PV’s.

Vous n’êtes jamais anonyme sur Internet. Votre adresse IP est un élément suffisant pour tracer l’ensemble de vos agissements. Toutes les connexions sur les serveurs laissent une trace, le téléchargement de torrents laisse des traces…

De manière générale on se rend très vite compte qu’utiliser son adresse IP afin de naviguer sur Internet peut être dangereux. Donc camoufler son IP pourrait être intéressant et justement les VPN’s peuvent servir à ça !

Dans cet article nous allons donc voir à quoi sert un VPN, comment ça fonctionne et ce qui fait qu’un VPN est un bon VPN.

I/Qu’est ce qu’un VPN ?

Un VPN (Virtual Private Network ou réseau virtuel privé en français) est une technologie permettant de créer un tunnel entre deux réseaux physiques via Internet dans lequel les données qui circuleront seront chiffrées et donc illisibles.

Pour bien comprendre l’utilité des VPN’s nous allons prendre l’exemple d’une société qui dispose de plusieurs sites géographiques distants. Le premier est en France tandis que le second est en Russie.

Ces deux sites géographiques disposent tous les deux d’un réseau local privé utilisé par les employés pour travailler. Mais comment un employé Russe va faire pour récupérer un document qui est contenu sur un des serveurs du site français? A priori le serveur français est inaccessible de l’extérieur donc ça risque d’être compliqué.

En fait pas tellement, en effet si le service informatique de la société a  mis en place des VPN’s alors ça sera extrêmement simple ! Ces VPN’s vont créer un tunnel avec un point d’entrée et un point de sorti unique dans lequel les informations pourront circuler de manière sécurisée. L’employé Russe pourra donc -au travers de ce tunnel- récupérer le document qui l’intéresse comme s’il se situait sur le réseau local privé français.

Schématiquement nous aurons cette situation :

vpn1.png

Nous avons bien nos deux sites France et Russie donc deux réseaux locaux privés liés l’un à l’autre par un tunnel à travers l’Internet.

II/ A quoi ça peut servir ?

Nous avons déjà vu un cas d’utilisation des VPN’s, celui des entreprises. Il y a aussi le cas ou c’est un employé qui souhaite se connecter au réseau local privé de l’entreprise et pour cela il se servira lui aussi d’un VPN.

Le principe est identique.

Nous ce qui va le plus nous intéresser c’est la partie anonymisation.

Si plus tôt je vous ai fait tout un speech sur l’anonymat sur Internet c’est parce qu’avec un VPN on va avoir la possibilité de changer son adresse IP et donc d’être « théoriquement » intraçable.

Il existe de nombreux services VPN mais de manière générale ils fonctionnent tous identiquement. Les sociétés qui gèrent ces services VPN’s mettent à disposition des utilisateurs des serveurs sur lesquels les utilisateurs peuvent se connecter directement depuis chez eux.

Lorsque vous naviguez sur Internet, votre FAI sait ce que vous faites. Il est capable de déterminer sur quel site vous êtes allés, à quelle heure, quel jour et ce que vous y avez fait. En revanche avec un VPN il ne pourra pas. La raison est simple, ce n’est pas vous (votre ordinateur) qui va initier la connexion aux sites web mais le serveur VPN !

Explications.

Dans un premier temps vous allez initier une connexion au serveur VPN. Vous allez donc forcément passer par votre FAI et ce dernier saura que vous vous êtes connectés à un serveur. D’ailleurs dans certains cas il sera en mesure d’anticiper la nature du serveur et donc de bloquer le VPN.

Une fois connecté au VPN vous n’aurez plus qu’à naviguer sur le web. Votre requête sera envoyé au serveur VPN (la requête est fortement chiffrée donc personne ne pourra pas en lire le contenu même en cas de Man In The Middle) et le serveur VPN ira se connecter (avec son IP à lui) aux serveurs que vous voulez joindre. Puis il vous retournera la réponse et ainsi de suite.

vpn2.png

Pour résumer, toutes les connexions aux sites que vous voulez voir sont faites par le VPN et non directement par votre ordinateur. Donc votre adresse IP ne figure pas dans les logs du serveur ciblé.

C’est pour cela que lorsque je me rends sur le site monip.com, c’est celle du serveur VPN qui s’affiche et non pas la mienne

vpn3.png

En utilisant un VPN on peut donc bypass la censure d’un pays (Chine, Corée du Nord etc), visionner les vidéos YouTube interdites dans certaines régions du monde et par dessus tout s’anonymiser.

III/Quel service VPN utilisé ?

Il existe de nombreux services VPN. Certains sont justes des modules pour navigateur : Hoxx VPN Proxy, BrowSec VPN . D’autres sont des logiciels gratuits ou payants. Parmi eux on retrouve des noms connus tel que HideMyAss, PureVPN ou encore expressVPN.

Avant de souscrire à un abonnement VPN il faut vérifier plusieurs points.

Tout d’abord il faut s’assurer que le VPN est « no log ». C’est à dire qu’il ne conserve pas de traces de vos agissements sur le web. Si un VPN n’est pas « no log » alors cela veut dire qu’il stocke votre adresse IP et les sites auxquels vous vous êtes connectés. Donc les forces de l’ordre auront très facilement accès à tout ça.

Le VPN doit utiliser des protocoles de sécurité élaborés. Un VPN qui utilise le protocole PPTP est donc à éviter. On privilégiera le protocole L2TP sur IpSec. Si vous voulez plus d’informations sur les protocoles VPN’s rendez vous ici!

Si possible il faut privilégier les VPN’s dits « dynamiques ». Ces services vont, toutes les X minutes, changer votre adresse IP ce qui sera une protection de plus pour vous.

Le VPN doit être certifié anti DNS leak. Lorsque vous naviguez sur Internet vous utilisez le protocole DNS qui fait le lien entre une adresse IP et une URL. Il existe plusieurs serveurs DNS dont certains sont gérés par votre FAI. Hors il arrive que lorsque vous utilisez un VPN, votre navigateur envoie la requête DNS au serveur DNS de votre FAI par erreur. Dans ce cas là votre FAI sait quel site vous avez consulté et donc votre anonymat est compromis. Optez donc pour un VPN anti DNS leak et en même temps changez la configuration DNS de votre ordinateur (utilisez les serveurs DNS de Google par exemple). Si vous voulez tester l’anti DNS leak de votre VPN allez sur ce site !

La société qui gère le service VPN ne doit pas être située dans votre pays d’origine. Si vous utilisez un VPN étranger alors les forces de l’ordre de votre pays auront besoin d’un mandat international avant de pouvoir perquisitionner les serveurs VPN’s. Ce qui peut considérablement les ralentir.

Enfin il faut vous assurer que les lois sur l’informatique du pays qui propose le service VPN sont assez souples. La loi française sur l’informatique est très bien élaborée mais il y a de nombreux pays dans lequel les lois sont quasi inexistantes.

Avant d’acheter un service VPN il faut vous assurer que le pays dans lequel la société qui vend le service VPN est située n’a pas de lois sur la conservation des données et donc qu’il n’existe aucune loi obligeant un service VPN à garder des données qui pourraient servir aux forces de l’ordre à :

En Europe il y a plusieurs pays qui ont peu ou pas de lois sur la conservation des données notamment la Bulgarie, le Luxembourg, les Pays-Bas, la Roumanie, la Serbie et la Suède.

Au niveau mondial il y a l’Argentine, le Brésil, Hong Kong, l’Islande, le Japon, Panama, Taiwan et l’Ukraine.

Il est donc nécessaire d’utiliser un service basé dans ces pays là et d’utiliser des serveurs VPN’s situés eux aussi dans ces pays.

Pour ma part je n’ai pas encore fini d’éplucher les lois sur l’informatique de ces pays donc je ne pourrais vous conseiller un VPN sûr. Je vous invite donc à lire les décrets de loi sur l’informatique et la conservation des données pour chacun de ces pays avant de faire votre choix.

De toute façon il est toujours intéressant lorsque l’on travaille dans la sécurité informatique de connaître ses droits  !

Routage oignon et oignon services

Pour finir la série d’article sur l’anonymat sur Internet je me devais de vous présenter le routage oignon. Vous l’avez compris, aujourd’hui on va parler du réseau TOR (The Onion Router).

Je ne m’attarderai pas à faire une description du Deep Web ou encore a alimenté les rumeurs et les légendes qui l’entourent. Ici nous allons nous intéresser seulement à la partie technique.

I/Le réseau TOR

De toutes les techniques que nous avons vu jusqu’à présent (VPN et proxies), le réseau TOR est la méthode la plus sûre si vous voulez être anonymes sur le web.

Le réseau TOR est constitué de plusieurs machines que l’on appelle des nœuds TOR. Chacun de ces nœuds est mis à disposition des utilisateurs et agit comme un proxy.

Avant chaque début de communication, le client TOR va accéder à un serveur qui contient l’ensemble des nœuds TOR (un annuaire en somme). A l’aide de cet annuaire il va aléatoirement créer un chemin composé de plusieurs nœuds, qui part de votre PC et qui finit chez le destinataire.

tor1.png

Crédit image : http://www.torproject.org

Lors de la création du chemin, le client TOR va contacter chacun des nœuds afin de créer une paire de clé privée/publique qui serviront au chiffrement/déchiffrement.

Chacun de ces nœuds disposera de deux informations :

-La clé privée négociée avec le client TOR qui lui permettra de chiffrer le message.
-Le nœud TOR qui lui précède et celui qui lui succède de telle sorte que si les nœuds TOR sont A B C D E F alors C connaît B et D mais pas A, E ou F.

Cela implique qu’aucun des nœuds du chemin ne connaît le chemin dans sa totalité et donc aucun des nœuds ne peut être utilisé afin de déterminer qui est la source et/ou le destinataire du message.

Ensuite, le client TOR va chiffrer le message avec chacune des clés publiques qu’il a -au préalable- défini avec les nœuds :

tor2.pngCrédit image : http://www.openclassroom.com

S’il y a trois nœuds : A, B et C alors il y aura trois couches de chiffrement différentes. Le message sera chiffré en premier avec la clé publique négociée avec le denier nœud TOR du chemin (C) puis avec la clé publique du nœud B et enfin celle du nœud A. Le message étant chiffré, il peut être envoyé sur le réseau :

tor3.png
Crédit image : http://www.torproject.org

Du PC d’Alice au premier nœud, le message aura trois couches de chiffrement (A, B et C). Lorsqu’il arrivera au niveau du premier nœud (A), la première couche de chiffrement sera supprimée. Il restera donc la couche B et C. Le message va ensuite être envoyé au nœud B qui va enlever la couche B. Quand le message arrivera au nœud C, la dernière couche de chiffrement sera enlevée. Donc le message sera en clair (symbolisé par la liaison en rouge) et envoyé au destinataire.

A chaque nœud TOR, le message perdra donc une de ses couches de chiffrement. Chaque nœud pourra déchiffrer une couche de chiffrement à l’aide de la clé privée négociée lors de la création du chemin.

Le message atteint le destinataire et c’est à ce moment là que sera faite la résolution DNS. Puis le destinataire renvoie une réponse qui sera à son tour chiffrée par chaque nœuds puis déchiffré par le client TOR. Si la communication dure plus de 10 minute alors un nouveau chemin sera établi par le client TOR.

Même si le réseau TOR nous promet un certain anonymat on se rend rapidement compte qu’il y a quelques failles. La première réside dans la conception même de TOR en effet le dernier nœud déchiffre la dernière couche du message et donc il a accès au message en clair. Si le serveur est vérolé ou appartient à un pirate alors ce dernier peut stocker les informations telles que des identifiants, numéros de carte bleu etc…

Il faudra donc lorsque vous naviguez sur le réseau TOR privilégiez une connexion HTTPS mais encore une fois on a vu dans différents articles que le HTTPS n’était pas un gage de sureté.

Autre conséquence de cette architecture, si un pirate se positionne en Man In The Middle entre le destinataire et le dernier noeud du réseau alors il pourra intercepter/modifier le contenu de la requête. On peut donc imaginer toute sorte de déviance (coucou le javascript).

Il y a eu de nombreuses recherches de faite afin de détecter les failles du réseau. Pas mal de choses sont trouvables sur ce site. Je vous conseille fortement de le lire, le contenu de l’article est vraiment incroyable.

Bon là on a vu comment fonctionnait le réseau TOR pour de la navigation régulière. Mais ce qui fait que le réseau TOR est si apprécié des pirates c’est les hidden services.

II/ Les Hidden Services

Le principe d’un hidden service c’est que l’émetteur de la requête ne sait pas où se trouve le destinataire et en plus de ça, l’émetteur ne se connecte jamais réellement au destinataire et donc à aucun moment l’émetteur ne connaît l’adresse IP du serveur.

Lors d’une connexion régulière, le client se connecte à un serveur. Pour cela le client utilise une URL qui est traduite en une adresse IP par un DNS puis le client va envoyer une requête via l’adresse IP au serveur concerné. Le serveur lui renvoie une réponse et blablabla : les deux communiquent.

Avec un hidden service c’est pas tout à fait pareil. La première chose à faire quand on veut lancer un hidden service c’est de déclarer son existence sur le réseau Tor. Pour cela, le hidden service va créer une paire de clé privée et publique. Puis il va choisir aléatoirement des nœuds du réseau et va leur demander d’agir comme des points d’introduction en leur donnant sa clé publique.

tor4.png
Crédit image : http://www.torproject.org

Attention, les flèches en vert désignent un circuit TOR et non pas une connexion directe. Entre IP1, IP2, IP3 et le serveur Bob il y a plusieurs nœuds TOR.

Ensuite, le hidden service va créer un « hidden service descriptor » qui contient sa clé publique ainsi qu’un résumé de ses différents points d’introduction sur le réseau TOR. Ce descriptor va être signé à l’aide de la clé privée du hidden service et uploadé dans une table de hachage distribuée.

tor5.png
Crédit image : http://www.torproject.org

Une table de hachage c’est une structure de données dans laquelle une clé est liée à une valeur. Pour la suite de l’opération il faudra que le client connaisse l’adresse .onion du hidden service. Ces adresses sont des suites de caractère (16 caractères) qui semblent être créer aléatoirement alors qu’en fait pas du tout. En voici un exemple :

http://azedspl4p12654sd.onion/

Chaque adresse .onion est dérivée de la clé publique du hidden service. Il existe différentes listes de hidden services la plus connue étant hébergée sur le site hiddenwiki.

Donc après avoir récupéré l’adresse onion du hidden service, le client va se connecter au serveur qui héberge la table de hachage distribuée et va demander des informations concernant l’adresse .onion. S’il existe un descriptor pour l’adresse .onion recherchée alors le client va télécharger le descriptor et il aura accès à deux informations :
-Les points d’introduction au hidden service
-La clé publique utilisée pour chiffrer les communications

A ce moment là, le client va initier une nouvelle connexion à travers le réseau TOR jusqu’à un « point relai » qui va agir comme un point de rendez vous.

tor6.png
Crédit image : http://www.torproject.org

Le client va créer un message d’introduction (chiffré à l’aide de la clé publique) qui contient l’adresse du point de relai ainsi qu’un secret unique et l’envoyer à un point d’introduction en lui précisant qu’il veut que ce message soit forwardé au hidden service :

tor7.png
Crédit image : http://www.torproject.org

Le hidden service va déchiffrer le contenu du message à l’aide de sa clé privée et va donc découvrir l’adresse du point de rencontre ainsi que le secret qui lui permettra de s’identifier au client. Il va créer un nouveau circuit au sein du réseau TOR qui l’amènera jusqu’au point de rencontre et ensuite il enverra un message chiffré contenant le secret.