« Tor, conception, fonctionnement et limites » : différence entre les versions

Ligne 358 : Ligne 358 :


Les deux ont leurs avantages et leurs inconvéniens. L'avantage de la cryptographie symétrique est qu'elle est rapide d'éxécution, ce qui n’est pas le cas de la crypto assymétrique. Ceci peut être un enjeu majeur lorsqu'on doit transmettre des données, en particulier lorsque la connexion doit transiter par plusieurs relais comme c’est le cas dans Tor. C’est pour cette raison que la cryptographie symétrique est toujours utilisée pour protéger concrètement les données. En revanche, la cryptographie symétrique a un très gros problème de sécurité : elle repose entièrement sur l'existence d'un secret partagé, c'est à dire sur la nécessité que les deux personnes se mettent d'accord sur une clé sans qu'elle ne soit interceptée par un tiers (Car mon canal est par définition non-sécurisé. S’il l’était, le recourt à la crypto serait inutile, autant s’échanger directement les données). Ce problème ne se pose pas avec la crypto assymétrique.
Les deux ont leurs avantages et leurs inconvéniens. L'avantage de la cryptographie symétrique est qu'elle est rapide d'éxécution, ce qui n’est pas le cas de la crypto assymétrique. Ceci peut être un enjeu majeur lorsqu'on doit transmettre des données, en particulier lorsque la connexion doit transiter par plusieurs relais comme c’est le cas dans Tor. C’est pour cette raison que la cryptographie symétrique est toujours utilisée pour protéger concrètement les données. En revanche, la cryptographie symétrique a un très gros problème de sécurité : elle repose entièrement sur l'existence d'un secret partagé, c'est à dire sur la nécessité que les deux personnes se mettent d'accord sur une clé sans qu'elle ne soit interceptée par un tiers (Car mon canal est par définition non-sécurisé. S’il l’était, le recourt à la crypto serait inutile, autant s’échanger directement les données). Ce problème ne se pose pas avec la crypto assymétrique.


Chiffrer les communications, c’est bien, mais malheureusement, ce n’est pas suffisant. En effet, si je me plante lors de la négociation d’une clé symétrique, mes échanges ne sont plus sécurisés. Parreillement, si quelqu’un usurpe l’identité de mon correspondant, j’aurai beau chiffrer, je transmettrai mes données à l’attaquant. C’est pour cette raison que le chiffrement https et le chiffrement dans tor est accompagné de tout un tas de procédures rôdées contituant un protocole destiné à sécuriser au maximum les communications. Ce protocole se passe en plusieurs étapes et dans cet ordre :
Chiffrer les communications, c’est bien, mais malheureusement, ce n’est pas suffisant. En effet, si je me plante lors de la négociation d’une clé symétrique, mes échanges ne sont plus sécurisés. Parreillement, si quelqu’un usurpe l’identité de mon correspondant, j’aurai beau chiffrer, je transmettrai mes données à l’attaquant. C’est pour cette raison que le chiffrement https et le chiffrement dans tor est accompagné de tout un tas de procédures rôdées contituant un protocole destiné à sécuriser au maximum les communications. Ce protocole se passe en plusieurs étapes et dans cet ordre :
Ligne 366 : Ligne 365 :
* L’échange de données chiffrées
* L’échange de données chiffrées
* La vérification de l’intégrité des données.
* La vérification de l’intégrité des données.


=== Authentification du serveur ===
=== Authentification du serveur ===


==== Algorithme RSA ====
Comme nous l'avons expliqué, Tor implique de faire transiter la connexion par plusieurs relais avant d’atteindre sa destination. Il est donc absolument nécessaire que le client qui va établir le circuit (c’est à dire votre machine) soit sûre que les relais contactés sont bien ceux du réseau Tor et pas ceux d’un attaquant qui essaierait d’en usurper un. Le processus d’authentification fait intervenir la cryptographie assymétrique. Comme cette étape n’a besoin que d’être faite une seule fois, le problème de lenteur inhérent à la cryptographie assymétrique ne se pose pas vraiment.
*A VENIR*
 
Le serveur, en l’occurence le relai Tor, va disposer d’un couple de clés publique/privée. La clé publique est signée par un tiers de confiance afin de garantir que cette clé appartient bien au relai Tor.
 
Lors du processus d’authentification, le client va récupérer la clé publique du serveur. Il va chiffrer un secret à l’aide de la clé publique et va envoyer le secret chiffré au serveur. Le serveur va déchiffrer ce secret à l’aide de sa clé privée et renvoyer le secret déchiffré au client. Le client vérifie ensuite que ce qu’il a envoyé correspond bien à ce qu’il a reçu. Si c’est le cas, l’authentification est correcte. Pour ce faire, Tor utilise 2 algorithmes.
 
L’algorithme majoritairement utilisé est l’algorithme RSA et la taille de la clé fait 1024 bits https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt . Cependant, Tor est actuellement en train de migrer vers les courbes Elliptiques qui sont plus sécurisées.


==== Courbes Elliptiques ====
*A VENIR*


=== Echange de Diffie-Hellman ===
=== Echange de Diffie-Hellman ===
245

modifications