diff --git a/content/slides/privacy/images/tor/300px3.png b/content/slides/privacy/images/tor/300px3.png new file mode 100644 index 0000000000000000000000000000000000000000..4e092c93d86465deb7deea5af6e03abb32cfe02f Binary files /dev/null and b/content/slides/privacy/images/tor/300px3.png differ diff --git a/content/slides/privacy/images/tor/HS-Step1.png b/content/slides/privacy/images/tor/HS-Step1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f8f71ca8acf8b958e2448e8885fb4d63a22c688 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step1.png differ diff --git a/content/slides/privacy/images/tor/HS-Step2.png b/content/slides/privacy/images/tor/HS-Step2.png new file mode 100644 index 0000000000000000000000000000000000000000..f59fcaead99043205e085afb5572688220173d73 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step2.png differ diff --git a/content/slides/privacy/images/tor/HS-Step3.png b/content/slides/privacy/images/tor/HS-Step3.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7deab360f258e7406582ccce75a0827bb22e83 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step3.png differ diff --git a/content/slides/privacy/images/tor/HS-Step4.png b/content/slides/privacy/images/tor/HS-Step4.png new file mode 100644 index 0000000000000000000000000000000000000000..389817f6c7a1cb9a583aa07960935035589312ea Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step4.png differ diff --git a/content/slides/privacy/images/tor/HS-Step5.png b/content/slides/privacy/images/tor/HS-Step5.png new file mode 100644 index 0000000000000000000000000000000000000000..1f617e94ac2edb9c4fa7a4cca8d0d6761cc838c7 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step5.png differ diff --git a/content/slides/privacy/images/tor/HS-Step6.png b/content/slides/privacy/images/tor/HS-Step6.png new file mode 100644 index 0000000000000000000000000000000000000000..7e39279c15b87dde65d99f2e93ef00052db227f6 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step6.png differ diff --git a/content/slides/privacy/images/tor/HS-Step7.png b/content/slides/privacy/images/tor/HS-Step7.png new file mode 100644 index 0000000000000000000000000000000000000000..fd374c9f97431f010d7a23605826ba4e95024c19 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step7.png differ diff --git a/content/slides/privacy/images/tor/HS-Step8.png b/content/slides/privacy/images/tor/HS-Step8.png new file mode 100644 index 0000000000000000000000000000000000000000..17bcc61663eb3def551b3cd01daaa766552821d2 Binary files /dev/null and b/content/slides/privacy/images/tor/HS-Step8.png differ diff --git a/content/slides/privacy/images/tor/tor-circuit.png b/content/slides/privacy/images/tor/tor-circuit.png new file mode 100644 index 0000000000000000000000000000000000000000..320ae365d0953cadc51f19ad8e810d491d7c9fc6 Binary files /dev/null and b/content/slides/privacy/images/tor/tor-circuit.png differ diff --git a/content/slides/privacy/md/tor.md b/content/slides/privacy/md/tor.md index a38b5349ff0d8bef22d88212e905816d30c1cb27..7ddf67f2cb6a47501990879e274a551cea8dc042 100644 --- a/content/slides/privacy/md/tor.md +++ b/content/slides/privacy/md/tor.md @@ -69,7 +69,12 @@ Some websites restrict allowances through Tor. * crime organisé +## Tor en stats + https://metrics.torproject.org/ +https://torflow.uncharted.software/#?ML=34.98046875,31.12819929911196,3&C=ru,RUS +[Tor relays map](https://torflow.uncharted.software) +[Tor est lent](https://svn.torproject.org/svn/projects/roadmaps/2009-03-11-performance.pdf) ## Tor Browser @@ -93,46 +98,244 @@ https://metrics.torproject.org/ ### :fa-exclamation-circle: quelle confiance avez vous en votre OS? +## How Tor works + +protège toujours le client + +* ne protège pas le serveur sur le web de surface + * correspondance DNS / IP +* les hidden services ou "services cachés" sont stockés "dans" Tor + * sont donc protégés + * mais ne sortent pas de Tor + + +## How Tor works +  -* seul le premier noeud connait alice +* seul le noeud d'entrée connait alice * il ne connait pas bob -* seul le dernier noeud connait bob +* seul le noeud de sortie connait bob * il ne connait pas alice * il voit le contenu de la requête -Le noeud d’entrée - Noeud Gardien - Bridge -Le noeud intermédiaire -Le noeud de sortie +## Tor 3 types de relais + +* noeud d’entrée (NE) + * noeud Gardien (NG) + * bridge (NB) +* noeud intermédiaire (NI) +* Le noeud de sortie (NS) + +* https://metrics.torproject.org/relayflags.html?start=2017-10-25&end=2018-01-23&flag=Running&flag=Exit&flag=Fast&flag=Guard&flag=Stable&flag=HSDir + + +## Circuit Tor + +entrée / intermédiaire / sortie + +* contrôler le noeud d'entré et le noeud de sortie d'un circuit + * permet de désanonymiser ce circuit + +* les circuits sont renouvelés toutes les 10 minutes + * le noeud d'entrée lui ne change que tous les 2 à 3 mois + * [Minimise la probabilité d'utiliser de manière cumulative des circuits compromis](https://www.freehaven.net/anonbib/cache/wpes12-cogs.pdf) + + +## Noeuds d'entrée + +* noeuds Gardien + * liste d'IPs publiques + * connus des FAI + * bloquables + +* noeuds bridges + * liste secrète + * [distribuer au compte gouttes](https://bridges.torproject.org/bridges) + +* [servers by flags](https://metrics.torproject.org/relayflags.html) + +* [héberger des noeuds Tor](https://www.torproject.org/docs/tor-doc-relay.html.en) peut être [une bonne idée](http://www.zdnet.fr/blogs/50-nuances-d-internet/le-darkweb-est-il-en-voie-de-disparition-39859066.htm)! + + + +## Noeuds gardien + +https://www.dan.me.uk/tornodes ou https://atlas.torproject.org/#search/flag:Guard ou https://torstatus.blutmagie.de/ + +``` +grep -B2 "^s.*Guard" /var/lib/tor/cached-microdesc-consensus | grep "^r" | awk '{print $6 ":" $7}' +``` + +``` +4484.0298.4949.1082|ServerName|443|80|GFHRSDV|259492|Tor 0.2.9.10| +``` + + +## Politique de gestion des cirtcuits + + + +## autorités d’annuaire + +* https://atlas.torproject.org/#search/flag:authority + * "maintained by super trusted we-know-you-and-have-had-many-beers-with-you Tor volunteers" +* IP codées en dures dans les clients Tor + * votes toutes les heures pour trouver un consensus sur la liste des relais à diffuser + + +## consensus + +* les relais envoie leurs infos au autorités d'annuaire +* les autorités compilent indépendament ces informations et évaluent chaque relais + * passer Guardian ou BadExit par exemple +* vote pour obtenir un consensus (une liste commun +* publier le consensus + + +## Sur le web de surface + +* HTTP tout passe en claire +* HTTPS, les données et l'url de la requête sont chiffrées + * l'IP du site consultée est traçable + * la requête DNS du client trahie le nom de domaine + + +## Avec Tor sur le web de surface + +* télécharger le consensus +* sélectionner un circuit Tor aléatoirement +* récupérer les clés publiques de chaque noeuds du circuit sur un serveur de clé + +## Avec Tor sur le web de surface + +* Handshake avec le **NE** + * le **NE** signe le handshake avec sa clé privée (RSA 1024 à date) + * le client vérifie la signature du **NE** avec la clé publique récupérée + * négociation d'une clé de session **KE** (pour le chiffrement symétrique) via Diffie Hellman + + +* Handshake avec le **NI** au travers du canal chiffré établi avec le **NE** + * le client envoie une demande de connexion au **NE** à transmettre au **NI* (chiffré avec **KE**) + * le **NE** déchiffre la demande de connexion et la transmet au **NI** + * le **NI** signe le handshake avec sa clé privée (RSA 1024 à date) et l'envoie au **NE** + * le **NE** transmet au client (chiffré avec la **KE**) + * le client déchiffre le message du **NE** avec **KE** et vérifie la signature du **NI** avec la clé publique récupérée + * négociation d'une clé de session **KI** (pour le chiffrement symétrique) via Diffie Hellman avec le **NI** en passant par le canal chiffré établi avec le **NE** chiffré avec **KE** + +Le client a établi un canal chiffré avec le **NI** sans que le **NI** connaisse son ip + +* Handshake avec le **NS** au travers du canal chiffré établi avec le **NE**, puis celui établi avec le **NI** + * le client envoie une demande de connexion chiffrée 2 fois avec **KE** et **KI** et l’envoie au **NE** + * le **NE** déchiffre la première couche avec **KE** et envoie le résultat (chiffré avec **KI** au **NI**) + * le **NI** déchiffre avec **KI** et transmet au **NS** + * le **NS** signe et renvoie au **NI** + * le **NI** chiffre avec **KI** et envoie au **NE** + * le **NE** chiffre avec **KE** et renvoie au client + * le client déchiffre avec **KE** puis **KI** et vérifie la signature du **NS** avec la clé publique récupérée + * négociation d'une clé de session **KS** (pour le chiffrement symétrique) via Diffie Hellman avec le **NS** en passant par le canal chiffré établi avec le **NI** chiffré avec **KI**, puis par le canal chiffré établi avec le **NE** chiffré avec **KE** + +Le client a établi un canal chiffré avec le **NS** sans que ni le **NI** ni le **NS** ne connaissent son ip + +Il peut envoyer une requête http dans ce canal en onion + +Ce n'est plus le client qui émet la requête DNS mais le **NS** + +le **NS** transmet la requête au serveur et + +renvoie ensuite la réponse chiffrée successivement avec **KS**, **KI**, **KE**, au **NI** + +[](https://tor.stackexchange.com/questions/1932/does-exit-node-encrypt-three-times-for-the-return-path-to-local-machine) -protège toujours le client -* pas le serveur sur le web de surface - * correspondance DNS / IP -* les hidden services ou "services caché" sont stockés dans Tor - * donc protégés - * ne sortent pas de Tor ---- ## Tor / HTTPS  ---- -## [Tor côté serveur](https://benjamin.sonntag.fr/Tor-les-onion-le-darknet-a-votre-portee) +## hidden service + +* .onion + * via client Tor + +* [Tor côté serveur](https://benjamin.sonntag.fr/Tor-les-onion-le-darknet-a-votre-portee) * système d'adressage basé sur des clés de chiffrement RSA * protège l'IP du serveur + * c'est une protection contre le DDoS * [quoique](https://donncha.is/2013/05/trawling-tor-hidden-services/) + +* éablissement de quelques cricuits Tor + * les noeuds de sortie de ces circuits sont sollicités pour jouer le rôle de points d'introductions (PI) pour le HS + +HS > NE > NI > NS (PI) + +* le HS publie un descripteur contenant sur un HSDir + * Les IP des points d'introduction[8] + * La clé publique du service caché[8] + * La signature des deux éléments précédents, faite avec la clé privée correspondante + +HS > NE > NI > NS (HSdir) + + * les HSDir sont des noeuds spéciaux + * partage une DHT de descripteur de HS + +* le client télécharge le consensus + * réupcère des IP de HSDir + * les interroge via des circuits Tor + * récupère le descriptetur et vérifie la signature + +client > NE > NI > NS (HSdir) + +* le client peut alors contacter les points d'introduction + +* le client crée un circuit Tor + * le noeud de sorti sera le point de rendez vous + * auquel le client communique un secret + * pour authentifier le HS + +client > NE > NI > NS (RdV) + +* le client crée un circuit Tor vers un des points d'introduction envoie + * l'IP du rendez vous (descripteur en provenance du HSDir) + * la première partie d'un échang de clé Diffie Hellmann + * le secret communiqué au point de rendez vous + + +Le tout chiffré avec la clé publique du HS (descripteur en provenance du HSDir) + +relayé par le cricuit Tor entre PI et HS + +client > NE1 > NI1 > NS1 > PI > NI2 > NS2 > HS + +* les HS contact le point de RendezVous + * envoie le secret qu'il a reçu du client + * authentification du HS + * il est bein le possesseur de la clé publique du descripteur puisqu'il a déchiffré le secret + +* fin de l'échange DH entre client et HS + * un secret de communication est établi + + +client > NE1 > NI1 > NS1(Rdv) > NE2 > NI2 > NS2 > HS + + +https://svn.torproject.org/svn/projects/design-paper/tor-design.html#sec:rendezvous +https://www.torproject.org/docs/onion-services + + * [installer un service en .onion](https://benjamin.sonntag.fr/Tor-les-onion-le-darknet-a-votre-portee) -* [héberger des noeuds Tor](https://www.torproject.org/docs/tor-doc-relay.html.en) peut être [une bonne idée](http://www.zdnet.fr/blogs/50-nuances-d-internet/le-darkweb-est-il-en-voie-de-disparition-39859066.htm)! - * [Tor relays map](https://torflow.uncharted.software) ---- +## hidden Service + +* demande https://github.com/radii/tor/blob/master/doc/spec/rend-spec.txt#L247 + + +* HSDIR + + ## Trouver des .onion @@ -160,3 +363,13 @@ vm et version de la clé synchrones * https://github.com/katmagic/arm * https://tox.chat/ + +## Tor over VPN + +## docs + +https://github.com/radii/tor/blob/master/doc/spec/rend-spec.txt à lire + +https://www.torproject.org/docs/faq.html.en#WhySlow +https://en.wikipedia.org/wiki/Tor_(anonymity_network)#cite_note-42 +https://www.freehaven.net/anonbib