Commit bb6e966c authored by mazenovi's avatar mazenovi
Browse files

enhance tor

parent 5561f5f8
......@@ -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
![How tor works](https://i.stack.imgur.com/XhXQa.png)
* 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**
[![Tor circuit](images/tor/tor-circuit.png)](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 avec HTTPS](https://cloud.m4z3.me/index.php/s/rywwyShzrwgLbrA/download)
---
## [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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment