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

Aller à la navigation Aller à la recherche
m
arnaque contrefacon exit scam
m (arnaque contrefacon exit scam)
 
(87 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
PAGE EN COURS D'ECRITURE !!!
Tor (Acronyme de "The Onion Router", le routage en oignon), est un réseau mondial décentralisé de serveurs mis à disposition par des bénévoles, et dont l'objectif est l'anonymisation des connexions internet. Il ne faut pas confondre Tor et le Tor browser. Tor désigne le réseau de serveurs. Le Tor browser est un client firefox modifié qui envoie les connexions dans le réseau Tor. L'origine de l'appellation "routage en oignon" fait référence à l'encapsulation des données envoyées ou reçues à l'intérieur de plusieurs "couches" de chiffrement qui sont "épluchées" ou reconstituées au fur et à mesure du trajet dans le cuircuit tor, à l'instar des couches d'un véritable oignon.
Tor (Acronyme de "The Onion Router", le routage en oignon), est un réseau mondial décentralisé de serveurs mis à disposition par des bénévoles, et dont l'objectif est l'anonymisation des connexions internet. Il ne faut pas confondre Tor et le Tor browser. Tor désigne le réseau de serveurs. Le Tor browser est un client firefox modifié qui envoie les connexions dans le réseau Tor. L'origine de l'appellation "routage en oignon" fait référence à l'encapsulation des données envoyées ou reçues à l'intérieur de plusieurs "couches" de chiffrement qui sont "épluchées" ou reconstituées au fur et à mesure du trajet dans le cuircuit tor, à l'instar des couches d'un véritable oignon.


== Histoire ==
*A VENIR*


== Conception ==
== Conception ==
Ligne 10 : Ligne 6 :
=== Généralités ===
=== Généralités ===


Tor est un réseau mondial décentralisé de serveurs mis à disposition par des bénévoles et dont l’objectif est d’anonymiser les connexions à Internet. Tor est devenu assez populaire depuis les révélations d’Edward Snowen en 2013. En Juin 2017, on estime le nombre d’utilisateurs de Tor à 2 375 000 par jour. La plupars de ces utilisateurs sont situés aux états unis (20,62% du total), aux Emirats Arabes Unis (21,52%, Alors que Tor est illégal là bas, voir chapitre légalité), et en Russie (10,64%). La France arrive en 5ème position avec 4,65% des utilisateurs. L’idée de base, c’est que lorsque votre machine voudra accèder à Internet via le réseau Tor, elle va sélectionner au hasard 3 serveurs (Appelés des relais ou des noeuds) dans ce réseau, elle va chiffrer 3 fois cette requête, et va l’envoyer aux serveurs qui vont la relayer en “pelant” chacun au passage une couche de chiffrement. Il existe donc 3 types de relais, chacun d’entre eux assurant des missions distinctes et ayant des modes de fontionnement différents :
Tor est un réseau mondial décentralisé de serveurs mis à disposition par des bénévoles et dont l’objectif est d’anonymiser les connexions à Internet. Tor est devenu assez populaire depuis les révélations d’Edward Snowen en 2013. En Juin 2017, on estime le nombre d’utilisateurs de Tor à 2 375 000 par jour<ref name="Tor users">[https://metrics.torproject.org/userstats-relay-country.html Tor Metrics, Relay users]</ref>. La plupars de ces utilisateurs sont situés aux états unis (20,62% du total), aux Emirats Arabes Unis (21,52%, Alors que Tor est illégal là bas, voir chapitre légalité), et en Russie (10,64%)<ref name="tormetrics1">[https://metrics.torproject.org/userstats-relay-table.html Tor Metrics, Top-10 countries by relay users]</ref>. La France arrive en 5ème position avec 4,65% des utilisateurs<ref name="tormetrics1"/>. L’idée de base, c’est que lorsque votre machine voudra accèder à Internet via le réseau Tor, elle va sélectionner au hasard 3 serveurs (Appelés des relais ou des noeuds) dans ce réseau, elle va chiffrer 3 fois cette requête, et va l’envoyer aux serveurs qui vont la relayer en “pelant” chacun au passage une couche de chiffrement. Il existe donc 3 types de relais, chacun d’entre eux assurant des missions distinctes et ayant des modes de fontionnement différents :


* Le noeud d’entrée
* Le noeud d’entrée
Ligne 18 : Ligne 14 :
* Le noeud de sortie
* Le noeud de sortie


Tor assure l’anonymat dans un sens (Protection du client), mais pas nécessairement celui du serveur. Par exemple, quand vous vous connectez sur www.psychoactif.org, le serveur n’est pas anonyme puisqu’il est indexé dans les serveurs DNS. Tor permet également d’assurer l’anonymat d’un serveur hébergeant un site web qui sera alors typiquement en .onion (au lieu d’être en .fr .com .org, etc). Par exemple, certains moteurs de recherches tels que duckduckgo (https://duckduckgo.com) peuvent utiliser ce mécanisme (en l’occurence : https://3g2upl4pq6kufc4m.onion/). Un tel site web est alors appellé un “service caché” (sous entendu : dans le réseau Tor) et ne peut pas être tracé. L’ensemble de tous les services cachés est communément appellé le “Deep Web”, bien que cette appellation ne soit pas appréciée par de nombreux hacktivistes qui la jugent trop péjorative. Le nombre de services cachés, c’est à dire la taille du “Deep Web”, est estimée à 60000 à la date d’aujourd’hui (*Date d’aujourd’hui*)
Tor assure l’anonymat dans un sens (Protection du client), mais pas nécessairement celui du serveur. Par exemple, quand vous vous connectez sur www.psychoactif.org, le serveur n’est pas anonyme puisqu’il est indexé dans les serveurs DNS. Tor permet également d’assurer l’anonymat d’un serveur hébergeant un site web qui sera alors typiquement en .onion (au lieu d’être en .fr .com .org, etc). Par exemple, certains moteurs de recherches tels que duckduckgo (https://duckduckgo.com) peuvent utiliser ce mécanisme (en l’occurence : https://3g2upl4pq6kufc4m.onion/). Un tel site web est alors appellé un “service caché” (sous entendu : dans le réseau Tor) et ne peut pas être tracé. L’ensemble de tous les services cachés est communément appellé le “Deep Web”, bien que cette appellation ne soit pas appréciée par de nombreux hacktivistes qui la jugent trop péjorative. Le nombre de services cachés, c’est à dire la taille du “Deep Web”, est estimée à 60000 à la date d’aujourd’hui (21/06/2017)<ref name="onion service">[https://metrics.torproject.org/hidserv-dir-onions-seen.html Tor Metrics, Onion services]</ref>.


Cette animation montre le flux Tor à travers le monde et au cours des années : https://torflow.uncharted.software/#?ML=34.98046875,31.12819929911196,3&C=ru,RUS
Cette animation montre le flux Tor à travers le monde et au cours des années : https://torflow.uncharted.software/#?ML=34.98046875,31.12819929911196,3&C=ru,RUS


=== Le noeud d'entrée ===
=== Circuit Tor ===


Cette catégorie comporte deux sous-catégorie : les noeuds gardiens et les bridges. Dans les deux cas, ce noeud va servir de point d’entrée dans le réseau Tor. Concrètement, votre machine se connectant à Internet via Tor va envoyer la requête au noeud d’entrée, lequel va la transmettre au noeud intermédiaire. La différence entre un noeud gardien et un bridge, c’est que la liste des noeuds Tor (hors bridges) est publique, tandis que la liste des bridges est tenue secrète par le Tor Project. Ceci a pour conséquence que le bridge masque le fait que vous utilisiez Tor auprès de votre FAI ou de toute personne qui se placerait entre vous et le bridge. Si vous utilisez un noeud gardien (ce qui est le cas par défaut), votre FAI verra que vous utilisez Tor et pourra potentiellement vous bloquer (même s’il ne connaîtra ni la destination, ni le contenu de la requête). L’utilisation de bridge est intéressante dans les pays ou Tor est bloqué ou illégal (voir chapitre légalité). Pour utiliser un bridge, il faut en faire la demande au Tor project, qui distribue une ou deux IP de bridges à la demande. Vous pouvez par exemple obtenir des bridges ici : https://bridges.torproject.org/bridges.
Le circuit Tor désigne les trois relais par lesquels va transiter le flux de données. Le premier relai est le relai d'entrée. Cette catégorie comporte deux sous-catégorie : les noeuds gardiens et les bridges. Dans les deux cas, ce noeud va servir de point d’entrée dans le réseau Tor. Concrètement, votre machine se connectant à Internet via Tor va envoyer la requête au noeud d’entrée, lequel va la transmettre au noeud intermédiaire. La différence entre un noeud gardien et un bridge, c’est que la liste des noeuds Tor (hors bridges) est publique, tandis que la liste des bridges est tenue secrète par le Tor Project. Ceci a pour conséquence que le bridge masque le fait que vous utilisiez Tor auprès de votre FAI ou de toute personne qui se placerait entre vous et le bridge. Si vous utilisez un noeud gardien (ce qui est le cas par défaut), votre FAI verra que vous utilisez Tor et pourra potentiellement vous bloquer (même s’il ne connaîtra ni la destination, ni le contenu de la requête). L’utilisation de bridge est intéressante dans les pays ou Tor est bloqué ou illégal (voir chapitre légalité). Pour utiliser un bridge, il faut en faire la demande au Tor project, qui distribue une ou deux IP de bridges à la demande. Vous pouvez par exemple obtenir des bridges ici : https://bridges.torproject.org/bridges.


Par sécurité, Tor renouvelle le circuit toutes les 10 minutes pour brouiller les pistes et limiter les information qu’un attaquant controllant un noeud pourrait récupérer. Cependant, Le noeud d’entrée, qu’il soit bridge ou gardien, est fixe et ne change que tous les 2 à 3 mois pour un noeud gardien. Ce temps est appellé la “période de rotation”. Le Tor Project est même en train de réfléchir pour faire passer la période de rotation à 1 an. Alors, pourquoi ça ? C’est vrai que ça peut sembler contre-intuitif comme ça. Mais il y a des bonnes raisons :
Par sécurité, Tor renouvelle le circuit toutes les 10 minutes pour brouiller les pistes et limiter les information qu’un attaquant controllant un noeud pourrait récupérer. Cependant, Le noeud d’entrée, qu’il soit bridge ou gardien, est fixe et ne change que tous les 2 à 3 mois pour un noeud gardien. Ce temps est appellé la “période de rotation”. Le Tor Project est même en train de réfléchir pour faire passer la période de rotation à 1 an. Alors, pourquoi ça ? C’est vrai que ça peut sembler contre-intuitif comme ça. Mais il y a des bonnes raisons :
Ligne 33 : Ligne 29 :


3 : Un noeud ne devient pas bridge ou gardien comme ça. Si un serveur veut acquérir le statut de gardien, il doit remplir certaines conditions, notamment de bande passante, de stabilité, et surtout d’ancienneté. De plus, une fois que le serveur a acquit le statut de gardien, il faudra encore du temps pour que les clients Tor le choisissent en fonction de leurs périodes de rotation respectives.
3 : Un noeud ne devient pas bridge ou gardien comme ça. Si un serveur veut acquérir le statut de gardien, il doit remplir certaines conditions, notamment de bande passante, de stabilité, et surtout d’ancienneté. De plus, une fois que le serveur a acquit le statut de gardien, il faudra encore du temps pour que les clients Tor le choisissent en fonction de leurs périodes de rotation respectives.
=== Le noeud de sortie ===
Le noeud de sortie est le plus critique des 3 noeuds. En effet, le noeud de sortie va “peler” la dernière couche de chiffrement et va donc avoir accès à la requête en clair, dans laquelle peut se trouver des informations sensibles telle que des identifiants, des mots de passe, des informations personnelles, les fichiers téléchargés, etc. Ca veut dire que même si le noeud de sortie ne connaît pas l’IP de votre machine, vous pouvez quand même être desanonymisé. Pire : il est même théoriquement possible de modifier le contenu, voire de pirater purement et simplement votre machine en y insérant des virus, des backdoors ou d’autre saloperies de ce genre. Le problème se pose aussi pour les sites en https car il est possible de modifier les requêtes pour les rediriger en http. Bref, pour un attaquant (Un pirate ou un gouvernement), contrôler un noeud de sortie, c’est du pain béni.
Pour cette raison, le Tor Project surveille très étroitement les noeuds de sortie. Un projet de recherche appellé “Spoiled Onions” conduit en octobre 2013 et publié en janvier 2014 avait pour objectif de trouver les “oignons pourris” du réseau Tor<ref name="Winter-et-al-20147">[https://www.cs.kau.se/philwint/spoiled_onions/pets2014.pdf Winter, P., Köwer, R., Mulazzani, M., Huber, M., Schrittwieser, S., Lindskog, S., Weippl, E., 2014, Spoiled Onions: Exposing Malicious Tor Exit Relays]</ref>. Pour celà, ils ont dévelloppé deux outils de scan  de noeud de Sortie : Exitmap et HoneyConnector.
Exitmap permet de détecter les manipulations du traffic en établissant une connexion Tor vers un leurre controllé par le Torproject (En sécurité informatique, on appelle ça un “pot de miel”, référence à un véritable pot de miel pour pièger les insectes). On sait ce qu’on envoie dans le réseau, et on regarde ce qui arrive sur le pot de miel. Si le traffic a été modifié, alors ça veut dire que le noeud de sortie modifie les trames réseau.
Honeyconnector permet de détecter le sniffage passif du traffic (C’est à dire la récupération des information sans les modifier). Concrètement, on envoie via Tor un couple unique “identifiant/mot de passe” sur un pot de miel toujours controllé par le Torproject. Ensuite, si une tentative de connexion a lieu ulterieurement sur ce pot de miel, alors on sait que le noeud de sortie par lequel ce couple d’identifiant est passé l’a intercepté.
Ce projet de recherche a mis en évidence 65 oignons pourris sur 1000 analysés, 40 qui modifiaient activement le traffic, 27 qui le sniffaient passivement, et 2 qui faisaient les deux<ref name="Winter-et-al-20147"/>. Le tor project fait régulièrement tourner Exitmap et Honeycollector pour trouver et bannir les oignons pourris. Pour la petite histoire sordide, sachez que cette étude a mis en évidence que les oignons pourris avaient beaucoup de similitudes et qu’on pouvait les classer en groupes. Un de ces groupes était constitué de 20 oignons pourris localisés en Russie qui collaboraient entre eux et étaient contrôlés par la même entité<ref name="Winter-et-al-20147"/>. La même chose a été observé pour un groupe localisé en Inde et un groupe décentralisé<ref name="Winter-et-al-20147"/>. De plus, les attaques ne sont pas systématique, mais avaient des destinations cibles spécifiques. Ainsi, le groupe russe ciblait exclusivement les connexions à Facebook<ref name="Winter-et-al-20147"/>. Ca veut dire que les oignons pourris ne sont pas tenus par des scripts kiddies ou des loups solitaires, mais par des entités organisées qui ont les moyens de faire tourner plusieurs dizaines de serveurs et d’analyser le gros paquet de données qui en résulte.


=== Le consensus ===
=== Le consensus ===


A la date du 06/06/2017, le réseau Tor comporte 7199 noeuds dont 2439 noeuds gardiens, 814 noeuds de sortie, ainsi que 3541 bridges (non comptabilisés dans ce total)<ref>https://metrics.torproject.org/networksize.html</ref>. Cet inventaire est actualisée tous les jours sur le site de Tor Metrics. La liste de tous les noeuds Tor disponibles, à l’exception des bridges, est publique et consultable librement (Voici la référence du consensus du 04/06/2017 à 21h00 contenant les IPs de tous les noeuds disponibles à ce moment <ref>https://collector.torproject.org/recent/relay-descriptors/consensuses/2017-06-04-21-00-00-consensus</ref>).
A la date du 06/06/2017, le réseau Tor comporte 7199 noeuds dont 2439 noeuds gardiens, 814 noeuds de sortie, ainsi que 3541 bridges (non comptabilisés dans ce total)<ref>https://metrics.torproject.org/networksize.html</ref>. Cet inventaire est actualisée tous les jours sur le site de Tor Metrics. La liste de tous les noeuds Tor disponibles, à l’exception des bridges, est publique et consultable librement (Voici la référence du consensus du 04/06/2017 à 21h00 contenant les IPs de tous les noeuds disponibles à ce moment<ref>https://collector.torproject.org/recent/relay-descriptors/consensuses/2017-06-04-21-00-00-consensus</ref>).


Un tel nombre de noeud, associé à leur volatilité (Les noeuds peuvent rentrer et sortir à leur gré du réseau, ou changer d’état et passer noeud gardien, ou alors être bannis parce que ce sont des oignons pourris) pose un problème de maintenance. Le Torproject a donc déployé une poignée de serveurs particuliers appellés les autorités d’annuaire. Les IPs de ces autorités d’annuaires sont codées en dur à l’intérieur de chaque client Tor. Elles sont au nombre de 9 :
Un tel nombre de noeud, associé à leur volatilité (Les noeuds peuvent rentrer et sortir à leur gré du réseau, ou changer d’état et passer noeud gardien, ou alors être bannis parce que ce sont des relais compromis, voir chapitre vulnérabilités) pose un problème de maintenance. Le Torproject a donc déployé une poignée de serveurs particuliers appellés les autorités d’annuaire. Les IPs de ces autorités d’annuaires sont codées en dur à l’intérieur de chaque client Tor. Elles sont au nombre de 9 :


{| class="wikitable centre" width="70%"
{| class="wikitable centre" width="70%"
Ligne 103 : Ligne 86 :
1 : Compiler chacun de leur côté une liste de tous les relais connus, avec leurs informations respectives. En effet, les relais envoient périodiquement leurs données aux autorités.
1 : Compiler chacun de leur côté une liste de tous les relais connus, avec leurs informations respectives. En effet, les relais envoient périodiquement leurs données aux autorités.


2 : Calculer toujours séparément des informations relatives à ces relais, et décider si les relais sont “bons pour le service”. C’est notamment à ce moment là que les noeuds peuvent se voir attribuer le statut de gardien, et les oignons pourris recevoir le statut de “Bad Exit”.
2 : Calculer toujours séparément des informations relatives à ces relais, et décider si les relais sont “bons pour le service”. C’est notamment à ce moment là que les noeuds peuvent se voir attribuer le statut de gardien, et les relais compromis recevoir le statut de “Bad Exit”.


3 : Se concerter et voter pour atteindre un consensus au niveau de l’annuaire ainsi créé.
3 : Se concerter et voter pour atteindre un consensus au niveau de l’annuaire ainsi créé.
Ligne 158 : Ligne 141 :
==== Echange des données ====
==== Echange des données ====


[[Image:Connexion tor nontls2.png|thumb|Connexion https à www.psychoactif.org sans passer par Tor]]
[[Image:Connexion tor nontls2.png|thumb|Connexion https à www.psychonaut.com à travers Tor]]
[[Image:Connexion tor tls.png|thumb|Connexion https à www.psychoactif.org sans passer par Tor]]
[[Image:Connexion tor tls.png|thumb|Connexion https à www.psychoactif.org à travers Tor]]


Supposons que vous vouliez vous connecter à www.psychonaut.com
Supposons que vous vouliez vous connecter à www.psychonaut.com
Ligne 218 : Ligne 201 :
[[Image:Final_connexion.png|thumb|Résultat final.]]
[[Image:Final_connexion.png|thumb|Résultat final.]]
Voici à quoi ressemble une connexion établie à un service caché. Notez que cette fois, il n'y a pas trois, mais six relais. Quel que soit le sens, les 3 premiers relais épluchent une couche de l'oignon et les 3 dernier en reconstituent une. La présence de six relais au lieu de trois explique pourquoi le deep web est bien plus lent que le web classique.
Voici à quoi ressemble une connexion établie à un service caché. Notez que cette fois, il n'y a pas trois, mais six relais. Quel que soit le sens, les 3 premiers relais épluchent une couche de l'oignon et les 3 dernier en reconstituent une. La présence de six relais au lieu de trois explique pourquoi le deep web est bien plus lent que le web classique.


== Vulnérabilités de Tor ==
== Vulnérabilités de Tor ==
=== Ecoute du noeud de sortie ===
Dans le cas d'une connexion sur l'internet classique, le noeud de sortie est le plus critique des 3 noeuds. En effet, le noeud de sortie va “peler” la dernière couche de chiffrement et va donc avoir accès à la requête en clair, dans laquelle peut se trouver des informations sensibles telle que des identifiants, des mots de passe, des informations personnelles, les fichiers téléchargés, etc. Ca veut dire que même si le noeud de sortie ne connaît pas l’IP de votre machine, vous pouvez quand même être desanonymisé. Pire : il est même théoriquement possible de modifier le contenu, voire de pirater purement et simplement votre machine en y insérant des virus, des backdoors ou d’autre saloperies de ce genre. Le problème se pose aussi pour les sites en https car il est possible de modifier les requêtes pour les rediriger en http. Bref, pour un attaquant (Un pirate ou un gouvernement), contrôler un noeud de sortie, c’est du pain béni.
Pour cette raison, le Tor Project surveille très étroitement les noeuds de sortie. Un projet de recherche appellé “Spoiled Onions” conduit en octobre 2013 et publié en janvier 2014 avait pour objectif de trouver les “oignons pourris” du réseau Tor<ref name="Winter-et-al-20147">[https://www.cs.kau.se/philwint/spoiled_onions/pets2014.pdf Winter, P., Köwer, R., Mulazzani, M., Huber, M., Schrittwieser, S., Lindskog, S., Weippl, E., 2014, Spoiled Onions: Exposing Malicious Tor Exit Relays]</ref>. Pour celà, ils ont dévelloppé deux outils de scan  de noeud de Sortie : Exitmap et HoneyConnector.
Exitmap permet de détecter les manipulations du traffic en établissant une connexion Tor vers un leurre controllé par le Torproject (En sécurité informatique, on appelle ça un “pot de miel”, référence à un véritable pot de miel pour pièger les insectes). On sait ce qu’on envoie dans le réseau, et on regarde ce qui arrive sur le pot de miel. Si le traffic a été modifié, alors ça veut dire que le noeud de sortie modifie les trames réseau.
Honeyconnector permet de détecter le sniffage passif du traffic (C’est à dire la récupération des information sans les modifier). Concrètement, on envoie via Tor un couple unique “identifiant/mot de passe” sur un pot de miel toujours controllé par le Torproject. Ensuite, si une tentative de connexion a lieu ulterieurement sur ce pot de miel, alors on sait que le noeud de sortie par lequel ce couple d’identifiant est passé l’a intercepté.
Ce projet de recherche a mis en évidence 65 oignons pourris sur 1000 analysés, 40 qui modifiaient activement le traffic, 27 qui le sniffaient passivement, et 2 qui faisaient les deux<ref name="Winter-et-al-20147"/>. Le tor project fait régulièrement tourner Exitmap et Honeycollector pour trouver et bannir les oignons pourris. Pour la petite histoire sordide, sachez que cette étude a mis en évidence que les oignons pourris avaient beaucoup de similitudes et qu’on pouvait les classer en groupes. Un de ces groupes était constitué de 20 oignons pourris localisés en Russie qui collaboraient entre eux et étaient contrôlés par la même entité<ref name="Winter-et-al-20147"/>. La même chose a été observé pour un groupe localisé en Inde et un groupe décentralisé<ref name="Winter-et-al-20147"/>. De plus, les attaques ne sont pas systématique, mais avaient des destinations cibles spécifiques. Ainsi, le groupe russe ciblait exclusivement les connexions à Facebook<ref name="Winter-et-al-20147"/>. Ca veut dire que les oignons pourris ne sont pas tenus par des scripts kiddies ou des loups solitaires, mais par des entités organisées qui ont les moyens de faire tourner plusieurs dizaines de serveurs et d’analyser le gros paquet de données qui en résulte.


=== Javascript ===
=== Javascript ===
Ligne 242 : Ligne 238 :
Le concept d’une attaque par analyse de traffic est assez simple. Supposons que deux personnes s’échangent des messages chiffrés et qu’un attaquant surveille cet échange. Etant donné que les messages sont chiffrés, l’attaquant n’a pas accès au contenu. En revanche, la fréquence d’échange des messages ainsi que leur taille sont des indications qui permettent à un attaquant de faire des déductions quant à leur contenu ou leur destination.
Le concept d’une attaque par analyse de traffic est assez simple. Supposons que deux personnes s’échangent des messages chiffrés et qu’un attaquant surveille cet échange. Etant donné que les messages sont chiffrés, l’attaquant n’a pas accès au contenu. En revanche, la fréquence d’échange des messages ainsi que leur taille sont des indications qui permettent à un attaquant de faire des déductions quant à leur contenu ou leur destination.


Prenons un exemple très concret. Normalement, Tor est censé réactualiser le circuit Tor toutes les 10 minutes. Or il existe quelques exceptions à cette règle : lorsque vous maintenez un échange de données ininterrompu avec un serveur en passant par Tor (par exemple, en téléchargeant ou en uploadant), le circuit ne peut pas être réactualisé pendant l’échange <ref name="Chakravarty et al.">[https://mice.cs.columbia.edu/getTechreport.php?techreportID=1545&format=pdf& Chakravarty, S., Barbera, M.V., Portokalidis, G., Polychronakis, M., Keromytis, A.D. On the effectiveness of traffic analysis against anonymity networks using flow records
Prenons un exemple très concret. Normalement, Tor est censé réactualiser le circuit Tor toutes les 10 minutes. Or il existe quelques exceptions à cette règle : lorsque vous maintenez un échange de données ininterrompu avec un serveur en passant par Tor (par exemple, en téléchargeant ou en uploadant), le circuit ne peut pas être réactualisé pendant l’échange<ref name="Chakravarty et al.">[https://mice.cs.columbia.edu/getTechreport.php?techreportID=1545&format=pdf& Chakravarty, S., Barbera, M.V., Portokalidis, G., Polychronakis, M., Keromytis, A.D. On the effectiveness of traffic analysis against anonymity networks using flow records
]</ref>. Supposons que vous téléchargiez vraiment un gros fichier, genre un film de 2h30 en full HD de 10Go sur youtube via le logiciel youtube-dl, et que ça prenne, mettons, 5 heures. Pendant 5 heures, vous allez garder le même circuit (Exemple quasi réel : j’ai déjà de cette façon réalisé des téléchargements qui ont duré plus de 10 minutes). Si un attaquant qui controle des relais Tor voit que le serveur de youtube fait rentrer par un relai un énorme fichier pendant 5 heures, et qu’à un autre endroit, un autre relai envoie à un utilisateur un autre gros fichier pendant 5 heures, il peut raisonnablement en conclure que vous êtes en train de télécharger un film sur youtube (sans pour autant avoir accès au fichier en question). Quant à vous, vous êtes grillés !
]</ref>. Supposons que vous téléchargiez vraiment un gros fichier, genre un film de 2h30 en full HD de 10Go sur youtube via le logiciel youtube-dl, et que ça prenne, mettons, 5 heures. Pendant 5 heures, vous allez garder le même circuit (Exemple quasi réel : j’ai déjà de cette façon réalisé des téléchargements qui ont duré plus de 10 minutes). Si un attaquant qui controle des relais Tor voit que le serveur de youtube fait rentrer par un relai un énorme fichier pendant 5 heures, et qu’à un autre endroit, un autre relai envoie à un utilisateur un autre gros fichier pendant 5 heures, il peut raisonnablement en conclure que vous êtes en train de télécharger un film sur youtube (sans pour autant avoir accès au fichier en question). Quant à vous, vous êtes grillés !


Ligne 249 : Ligne 245 :
Il existe des tas et des tas d’autres façon de faire de l’analyse de traffic. Je terminerai en expliquant une dernière attaque très compromettante. Il s’agit d’imprimer activement des perturbations de débit dans les connexions à destination ou en provenance d’un serveur (comme un site web) en détournant le traffic avant qu’il n’entre dans le réseau Tor. Il suffit de voir ensuite où est ce que ces perturbations se retrouvent pour desanonymiser les gens qui ont contacté ce serveur, y compris à travers Tor. C’est de cette façon que 81% des utilisateurs de Tor peuvent être desanonymisés avec un taux de faux positifs de 6%<ref name="Chakravarty et al."/>.
Il existe des tas et des tas d’autres façon de faire de l’analyse de traffic. Je terminerai en expliquant une dernière attaque très compromettante. Il s’agit d’imprimer activement des perturbations de débit dans les connexions à destination ou en provenance d’un serveur (comme un site web) en détournant le traffic avant qu’il n’entre dans le réseau Tor. Il suffit de voir ensuite où est ce que ces perturbations se retrouvent pour desanonymiser les gens qui ont contacté ce serveur, y compris à travers Tor. C’est de cette façon que 81% des utilisateurs de Tor peuvent être desanonymisés avec un taux de faux positifs de 6%<ref name="Chakravarty et al."/>.


C’est réellement un problème car les solutions qui permettraient de fixer ce problème risquent de gravement nuire à l’utilisabilité de Tor. Par exemple on pourrait imaginer introduire du traffic “parasite” qui serait trié de façon transparente directement par le client et le serveur, mais on augmenterait alors drastiquement la bande passante de Tor. On pourrait également introduire des perturbations aléatoires de débit, mais celà ralentirait considérablement les connexions Tor qui sont déjà réputées être lentes. Cependant, le TorProject a mitigé les résultats de l’analyse par perturbation de traffic en argumentant que 6% de faux positifs, celà peu sembler peu, mais c’est en réalité énorme, suffisemment pour rendre l’attaque inexploitable en tant que tel <ref name="Tor blog">[https://blog.torproject.org/blog/traffic-correlation-using-netflows Traffic correlation using netflows]</ref>.
C’est réellement un problème car les solutions qui permettraient de fixer ce problème risquent de gravement nuire à l’utilisabilité de Tor. Par exemple on pourrait imaginer introduire du traffic “parasite” qui serait trié de façon transparente directement par le client et le serveur, mais on augmenterait alors drastiquement charge sur la bande passante de Tor. On pourrait également introduire des perturbations aléatoires de débit, mais celà ralentirait considérablement les connexions Tor qui sont déjà réputées être lentes. Cependant, le TorProject a mitigé les résultats de l’analyse par perturbation de traffic en argumentant que 6% de faux positifs, celà peu sembler peu, mais c’est en réalité énorme, suffisemment pour rendre l’attaque inexploitable en tant que tel <ref name="Tor blog">[https://blog.torproject.org/blog/traffic-correlation-using-netflows Traffic correlation using netflows]</ref>.


C’est précisément pour cette raison qu’il est dangereux d’utiliser un VPN en entrée du réseau Tor. Malgré ce que peuvent dire les conditions d’utilisation et la politique de confidentialité des prestataires de VPN, vous n’avez que leur seule parole qu’ils ne conservent pas de logs et qu’ils n’analysent pas votre traffic. Tor est un logiciel open source maintenu par le Torproject, une association à but non-lucratif. De plus, le TorProject fait activement la chasse aux relais qui analysent ou interagissent avec le traffic comme on l’a vu dans la rubrique “Noeuds sortants”, et l’analyse de traffic nécessite justement bien souvent de controller au préalable des relais (idéalement, les deux tiers, c’est à dire les relais d’entrée et de sortie). Or les VPN échappent complètement à la surveillance du TorProject et n’ont de compte à rendre qu’à ceux qui font pression sur eux. Le VPN devient donc de fait le maillon faible de la chaîne, ce qui réduit le nombre de relais Tor à controller. Si on prend l’attaque par injection de pattern temporel dans le débit et qu’il y a un VPN en entrée, il n’y a même pas besoin de controller un seul relai pour desanonymiser.
C’est précisément pour cette raison qu’il est dangereux d’utiliser un VPN en entrée du réseau Tor. Malgré ce que peuvent dire les conditions d’utilisation et la politique de confidentialité des prestataires de VPN, vous n’avez que leur seule parole qu’ils ne conservent pas de logs et qu’ils n’analysent pas votre traffic. Tor est un logiciel open source maintenu par le Torproject, une association à but non-lucratif. De plus, le TorProject fait activement la chasse aux relais qui analysent ou interagissent avec le traffic comme on l’a vu dans la rubrique “Noeuds sortants”, et l’analyse de traffic nécessite justement bien souvent de controller au préalable des relais (idéalement, les deux tiers, c’est à dire les relais d’entrée et de sortie). Or les VPN échappent complètement à la surveillance du TorProject et n’ont de compte à rendre qu’à ceux qui font pression sur eux. Le VPN devient donc de fait le maillon faible de la chaîne, ce qui réduit le nombre de relais Tor à controller. Si on prend l’attaque par injection de pattern temporel dans le débit et qu’il y a un VPN en entrée, il n’y a même pas besoin de controller un seul relai pour desanonymiser.


=== Fingerprinting de la souris ===
=== Fingerprinting de la souris ===


Lorsque vous naviguez sur internet, votre façon de cliquer, de scroller et de déplacer la souris est unique. Ceci est particulièrement vrai lorsqu’on utilise un pavé tactile. Une part dépend de votre matériel (toutes les souris n’ont pas le même nombre de boutons, petit clin d’oeil aux gamers (-; ), et une pârt dépend purement de vous.
Lorsque vous naviguez sur internet, votre façon de cliquer, de scroller et de déplacer la souris est unique. Ceci est particulièrement vrai lorsqu’on utilise un pavé tactile. Une part dépend de votre matériel (toutes les souris n’ont pas le même nombre de boutons, petit clin d’oeil aux gamers (-; ), et une part dépend purement de vous.


Un chercheur a récemment mis en évidence qu’il était possible de récupérer les données relatives à la souris, à ses mouvements et à sa façon d’interagir avec l’unité centrale<ref name="Carlos Norte">[http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html Advanced Tor Browser Fingerprinting]</ref><ref name="Softpedia news">[http://news.softpedia.com/news/tor-users-can-be-tracked-based-on-their-mouse-movements-501602.shtml Tor users can be tracked based on their mouse movements]</ref><ref name="Question more">[https://www.rt.com/viral/335112-tor-mouse-movements-fingerprint/ Click bait: Tor users can be tracked by mouse movements]</ref>
Un chercheur a récemment mis en évidence qu’il était possible de récupérer les données relatives à la souris, à ses mouvements et à sa façon d’interagir avec l’unité centrale<ref name="Carlos Norte">[http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html Advanced Tor Browser Fingerprinting]</ref><ref name="Softpedia news">[http://news.softpedia.com/news/tor-users-can-be-tracked-based-on-their-mouse-movements-501602.shtml Tor users can be tracked based on their mouse movements]</ref><ref name="Question more">[https://www.rt.com/viral/335112-tor-mouse-movements-fingerprint/ Click bait: Tor users can be tracked by mouse movements]</ref>
Ligne 277 : Ligne 272 :


Il est donc extrêmement important d’interdire le Javascript à chaque fois que c’est possible, et systématiquement sur le Deep Web.
Il est donc extrêmement important d’interdire le Javascript à chaque fois que c’est possible, et systématiquement sur le Deep Web.


=== Faiblesse des clés d’authentification ===
=== Faiblesse des clés d’authentification ===
Ligne 300 : Ligne 294 :
=== Chine ===
=== Chine ===


La Chine est certainement un des cas les plus extrême de censure. Déjà, il faut savoir qu’il n’y a pas que Tor qui est concerné. La Chine dispose d’un système appellé le “grand pare-feu chinois” qui bloque des pans entiers d’internet en bloquant de grosses plages d’adresses IP. http://www.greatfirewallofchina.org/ permet de tester l’accessibilité de sites web depuis la Chine. Parmis les sites censurés, on trouve évidemment tout ce qui est “politiquement sensible” là bas comme tout ce qui a trait de près ou de loin avec le Tibet. Ainsi, si vous testez le site officiel du Dalai Lama (https://www.dalailama.com/), vous verrez qu’il n’est pas accessible. La Chine a également blacklisté la plupart des réseaux sociaux comme facebook et twitter, ainsi que des services comme gmail ou wikipedia.
La Chine est certainement un des cas les plus extrême en matière de censure. Déjà, il faut savoir qu’il n’y a pas que Tor qui est concerné. La Chine dispose d’un système appellé le “grand pare-feu chinois” qui bloque des pans entiers d’internet en bloquant de grosses plages d’adresses IP. http://www.greatfirewallofchina.org/ permet de tester l’accessibilité de sites web depuis la Chine. Parmis les sites censurés, on trouve évidemment tout ce qui est “politiquement sensible” là bas comme tout ce qui a trait de près ou de loin avec le Tibet. Ainsi, si vous testez le site officiel du Dalai Lama (https://www.dalailama.com/), vous verrez qu’il n’est pas accessible. La Chine a également blacklisté la plupart des réseaux sociaux comme facebook et twitter, ainsi que des services comme gmail ou wikipedia.


En ce qui concerne Tor, l’utilisation est bloquée et la Chine est vraiment à la pointe en ce qui concerne le blocage de Tor, plus que les autres pays. Déjà, étant donné que la liste de tous les relais Tor est publique via le consensus, il est facile de tous les bloquer. Le problème, c’est que la Chine est en mesure de détecter les bridges. Pour ce faire, elle envoie régulièrement sur des plages entières d’IP du protocole Tor. Toutes les IPs qui répondent se trahissent en tant que bridges et sont bloquées
En ce qui concerne Tor, l’utilisation est bloquée et la Chine est vraiment à la pointe en ce qui concerne le blocage de Tor, plus que les autres pays. Déjà, étant donné que la liste de tous les relais Tor est publique via le consensus, il est facile de tous les bloquer. Le problème, c’est que la Chine est en mesure de détecter les bridges. Pour ce faire, elle envoie régulièrement sur des plages entières d’IP du protocole Tor. Toutes les IPs qui répondent se trahissent en tant que bridges et sont bloquées
Ligne 318 : Ligne 312 :
La loi n’interdit pas Tor explicitement. Cependant, la loi dit ceci :
La loi n’interdit pas Tor explicitement. Cependant, la loi dit ceci :


''« Quiconque utilise une adresse IP frauduleuse en recourant à une fausse adresse ou une adresse tierce par n’importe quel moyen dans le but de commettre un crime ou d’empêcher sa découverte, sera puni d’un emprisonnement temporaire et d’une amende d’au moins 500 000 dirhams [environ 120 000 euros] et jusqu’à 2 000 000 de dirhams [près de 490 000 euros] ou bien de ces deux sanctions. »'' http://www.lemonde.fr/pixels/article/2016/08/01/aux-emirats-arabes-unis-les-utilisateurs-de-vpn-risquent-desormais-des-peines-de-prison_4977057_4408996.html
''« Quiconque utilise une adresse IP frauduleuse en recourant à une fausse adresse ou une adresse tierce par n’importe quel moyen dans le but de commettre un crime ou d’empêcher sa découverte, sera puni d’un emprisonnement temporaire et d’une amende d’au moins 500 000 dirhams [environ 120 000 euros] et jusqu’à 2 000 000 de dirhams [près de 490 000 euros] ou bien de ces deux sanctions. »''<ref name="Censure EAU">[http://www.lemonde.fr/pixels/article/2016/08/01/aux-emirats-arabes-unis-les-utilisateurs-de-vpn-risquent-desormais-des-peines-de-prison_4977057_4408996.html Le Monde : Aux Emirats arabes unis, les utilisateurs de VPN risquent désormais des peines de prison]</ref>


Or la censure sur internet est également très présente là bas. De nombres services sont censurés tel que les sites parlant de la drogue, les sites de rencontre, les sites pornographiques, les sites politiquement sensibles, les sites critiquant l’Islam, les sites qui portent atteinte à “l’éthique”, etc... Donc le fait d’accéder à des services censurés via Tor ou via un VPN tombe sous le coup de cette loi.
Or la censure sur internet est également très présente là bas. De nombres services sont censurés tel que les sites parlant de la drogue, les sites de rencontre, les sites pornographiques, les sites politiquement sensibles, les sites critiquant l’Islam, les sites qui portent atteinte à “l’éthique”, etc... Donc le fait d’accéder à des services censurés via Tor ou via un VPN tombe sous le coup de cette loi<ref name="Censure EAU"/>.
http://www.lemonde.fr/pixels/article/2016/08/01/aux-emirats-arabes-unis-les-utilisateurs-de-vpn-risquent-desormais-des-peines-de-prison_4977057_4408996.html


Il est d’ailleurs intéressant de noter que c’est aux Emirats Arabes Unis que les bridges sont le plus utilisés. D’après le site de Tor Metrics, Les émirats arabes Unis serait le deuxième pays ou Tor serait le plus utilisé avec 320490 utilisateurs par jour, totalisant 14,67% du total des utilisateurs de Tor par jour (statistique consultée le 18/07/2017) https://metrics.torproject.org/userstats-relay-table.html . De plus, c’est aux EAU que les bridges sont le plus utilisés avec 13682 utilisateurs journaliers, totalisant 21,65%  des utilisateurs journaliers de bridges dans le monde entier (statistique consultée le 18/07/2017)https://metrics.torproject.org/userstats-bridge-table.html .
Il est d’ailleurs intéressant de noter que c’est aux Emirats Arabes Unis que les bridges sont le plus utilisés. D’après le site de Tor Metrics, Les Emirats Arabes Unis serait le deuxième pays ou Tor serait le plus utilisé avec 320490 utilisateurs par jour, totalisant 14,67% du total des utilisateurs de Tor par jour<ref name="tormetrics1"/> (statistique consultée le 18/07/2017). De plus, c’est aux EAU que les bridges sont le plus utilisés avec 13682 utilisateurs journaliers, totalisant 21,65%  des utilisateurs journaliers de bridges dans le monde entier<ref name="tormetrics2">[https://metrics.torproject.org/userstats-bridge-table.html Tor Metrics, Top-10 countries by bridges users]</ref> (statistique consultée le 18/07/2017).
 
=== Ailleurs ===
 
Tor est également partiellement bloqué en Iran<ref name="Iran1">[https://blog.torproject.org/blog/february-2012-progress-report Tor blog : February 2012 progress report]</ref><ref name="Iran2">[https://blog.torproject.org/blog/iran-blocks-tor-tor-releases-same-day-fix Tor blog : Iran blocks Tor; Tor releases same-day fix]</ref><ref name="Iran3">[http://www.lemonde.fr/pixels/article/2016/02/26/iran-le-regime-multiplie-les-tentatives-de-blocage-des-outils-anti-censure-sur-internet_4872387_4408996.html Le Monde : Iran : le régime multiplie les tentatives de blocage des outils anti-censure sur Internet]</ref> et en Turquie<ref name="Turquie">[https://motherboard.vice.com/en_us/article/9a3gqp/turkey-doubles-down-on-censorship-with-block-on-vpns-tor Motherboard : Turkey Doubles Down on Censorship With Block on VPNs, Tor]</ref>. Il est d'ailleurs intéressant de noter que, comme aux Emirats Arabes Unis, le nombre d'utilisateurs de Tor en Turquie a dramatiquement augmenté lors de l’interdiction du réseau Tor. Le nombre d’utilisateur est passé de 25000 à 70000 en l’espace de deux semaines lorsque le blocage a été mis en place.<ref name="Turquie2">[
https://www.slate.fr/monde/85437/turquie-internet-censure-tor Slate.fr : C'est en regardant le trafic de Tor que l'on mesure la censure d'Internet en Turquie]</ref>


== Annexe : protocole cryptographique ==
== Annexe : protocole cryptographique ==
=== Notions de Cryptographie ===
Chiffrer un message/document/fichier/whatever, c'est le rendre illisible sauf pour qui de droit. Prenons un exemple tout bête. Voici un message que j'ai chiffré en utilisant une méthode toute simple :
"fh phvvdjh hvw fkliiuh"
Le message est incompréhensible. Pour le déchiffrer, il vous faut une information secrète que vous partagerez avec votre correspondant. Cette information s'appelle une clé (Retenez bien ce terme, c'est un concept fondamental en cryptographie). En l'occurence c'est vraiment un truc ultra simple, certains d'entres vous l'auront peut être tout de suite vu : il s'agit d'un bête décalage dans les lettres de l'alphabet, en l'occurence +3 (c'est à dire que A devient D, B devient E, C devient F, etc...). En inversant le processus, on tombe sur le message original :
"ce message est chiffre"
Concrètement, dans un ordinateur, un fichier, quel qu'il soit, n'est qu'une suite de 0 et de 1 (des bits). Chiffrer un documents consiste donc à modifier sa séquence de bits en une autre séquence illisible par l'ordinateur (Par exemple 01101101 (lisible) --> chiffrement --> 10101110 (illisible)).
Il existe deux types de cryptographie :
* La cryptographie symétrique
* La cryptographie assymétrique
La cryptographie est qualifiée de symétrique quand la même clé est utilisée à la fois pour le chiffrement et le déchiffrement. Par exemple, le chiffre de César mentionné ci dessus est un exemple de cryptographie symétrique : La connaissance de la clé (en l'occurence, 3) vous permet à la fois de chiffrer ou de déchiffrer. Aujourd'hui, avec l'avènement de l'informatique, un tel algorithme est devenu bien sûr complètement obsolète. Aujourd'hui, nous disposons d'algorithmes bien plus performant tel qu’AES (Advanced Encryption Standard) qui est l’algorithme symétrique utilisé par Tor et qui sera explicité un peu plus loin.
La cryptographie assymétrique repose sur la séparation du processus de chiffrement et de déchiffrement. Le processus implique cette fois non plus une, mais deux clés possédant les deux propriétés suivantes :
- Ce qui est chiffré par une clé peut être déchiffré par l’autre
- En aucun cas une des deux clés ne peut déchiffrer ce qu’elle a chiffré
Du coup, une dés clés servira pour le chiffrement et sera déclarée publique, et l’autre clé sera déclarée privée et ne devra jamais être communiquée à quiconque.
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 :
* L’authentification du serveur
* La négociation sécurisée d’une clé symétrique
* L’échange de données chiffré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.


==== Courbes Elliptiques ====
L’algorithme majoritairement utilisé est l’algorithme RSA et la taille de la clé fait 1024 bits<ref name="Tor Protocol Specification"/>. Cependant, Tor est actuellement en train de migrer vers les courbes elliptiques qui sont plus sécurisées.
*A VENIR*


=== Echange de Diffie-Hellman ===
=== Echange de Diffie-Hellman ===
*A VENIR*
 
Tor utilise le chiffrement symétrique pour protéger les informations qu’il véhicule pour des raisons de rapidité. Or comme on l'a vu, le chiffrement symétrique souffre d’un gros problème de sécurité, car il nécessite que les deux parties souhaitant communiquer se mettent d’accord sur une clé sans qu’elle ne soit interceptée, c’est à dire sur un secret partagé. Or, le problème, c’est qu’il n’est pas possible de faire circuler cette clé sur le canal de communication puisque je suppose par définition qu’il n’est pas sécurisé et donc susceptible d’être écouté. Et s’il était sécurisé, le recours au chiffrement serait inutile : autant s’échanger les données directement.
 
Nous avons vu également qu'il n'est pas possible d'utiliser le chiffrement assymétrique exclusivement pour s'échanger les données, toujours à cause de problèmes de rapidité. Donc pour répondre au problème de l’échange des clés symétriques, il y a 2 solutions :
 
* Une des parties peut créer une clé symétrique et l’envoyer à l’autre en la chiffrant à l’aide du chiffrement assymétrique. Le problème, c’est qu’on pourrait immaginer qu’un attaquant intercepte l’échange de la clé et tous les échanges chiffrés symétriquement qui s’ensuivent, et stocke tout ça en attendant que les progrès technologiques et l’évolution de la puissance de calcul des ordinateurs lui permettent de déchiffrer l’échange de la clé symétrique plus tard. Une fois que la clé symétrique est déchiffrée, il peut déchiffrer toutes les communications qu’il aura préalablement stocké.
 
* Une autre solution, plus sécurisée, est d’avoir recours au protocole de Diffie-Hellman, du nom de ses créateurs [https://fr.wikipedia.org/wiki/Whitfield_Diffie Whitfield Diffie] et [https://fr.wikipedia.org/wiki/Martin_Hellman Martin Hellman].
 
Prenons un exemple concret. Supposons que je veuille communiquer avec le serveur hébergeant www.psychoactif.org. Etant donné que ce site est en https, il est nécessaire de négocier une clé de chiffrement.
 
* Etape 1 : Psychoactif et moi commençons par nous mettre d’accord sur un nombre quelconque. Par exemple 5. Cette partie de la négociation n’a pas besoin d’être sécurisée.
{| class="wikitable centre" width="100%"
|-
! width="33%" | Moi
! width="33%" | Attaquant
! width="33%" | www.psychoactif.org
|-
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|<span style="color: blue;">'''5'''</span>
|-
|}
 
 
* Etape 2 : Psychoactif et moi même choisissons chacun de notre côté un nombre secret quelconque.
{| class="wikitable centre" width="100%"
|-
! width="33%" | Moi
! width="33%" | Attaquant
! width="33%" | www.psychoactif.org
|-
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|<span style="color: blue;">'''5'''</span>
|-
|align="center"|<span style="color: red;">'''3'''</span>
|align="center"|<span style="color: blue;">''' '''</span>
|align="center"|<span style="color: green;">'''4'''</span>
|-
|}
 
 
* Etape 3 : Psychoactif et moi élevons à la puissance choisie le nombre premier choisi en étape 1 :
{| class="wikitable centre" width="100%"
|-
! width="33%" | Moi
! width="33%" | Attaquant
! width="33%" | www.psychoactif.org
|-
|align="center"|'''<span style="color: blue;">5</span><span style="color: red;"><sup>3</sup></span> = <span style="color: purple;">125</span>'''
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|'''<span style="color: blue;">5</span><span style="color: green;"><sup>4</sup></span> = <span style="color: orange;">625</span>'''
|-
|}
 
 
* Etape 4 : Psychoactif et moi nous échangeons ces deux nombres. Cet échange n’a pas besoin d’être sécurisé. En pratique, il peut être chiffré et signé de façon assymétrique.
{| class="wikitable centre" width="100%"
|-
! width="33%" | Moi
! width="33%" | Attaquant
! width="33%" | www.psychoactif.org
|-
|align="center"|'''<span style="color: blue;">5</span><span style="color: red;"><sup>3</sup></span> = <span style="color: purple;">125</span>'''
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|'''<span style="color: blue;">5</span><span style="color: green;"><sup>4</sup></span> = <span style="color: orange;">625</span>'''
|-
|align="center"|'''<span style="color: orange;">625</span>'''
|align="center"|'''<span style="color: orange;">625</span> <span style="color: purple;">125</span>'''
|align="center"|'''<span style="color: purple;">125</span>'''
|}
 
 
Etape 5 : Psychoactif et moi même élevons le nombre échangé à la puissance secrète choisie à l’étape 2. Et ô magie des mathématiques, on tombe sur le même nombre sans se l’être échangé.
{| class="wikitable centre" width="100%"
|-
! width="33%" | Moi
! width="33%" | Attaquant
! width="33%" | www.psychoactif.org
|-
|align="center"|'''<span style="color: blue;">5</span><span style="color: red;"><sup>3</sup></span> = <span style="color: purple;">125</span>'''
|align="center"|<span style="color: blue;">'''5'''</span>
|align="center"|'''<span style="color: blue;">5</span><span style="color: green;"><sup>4</sup></span> = <span style="color: orange;">625</span>'''
|-
|align="center"|'''<span style="color: orange;">625</span><span style="color: red;"><sup>3</sup></span> = <span style="color: brown;">244140625</span>'''
|align="center"|'''<span style="color: orange;">625</span> <span style="color: purple;">125</span>'''
|align="center"|'''<span style="color: purple;">125</span><span style="color: green;"><sup>4</sup></span> = <span style="color: brown;">244140625</span>'''
|}
 
Quant à l’attaquant, le seul moyen qu’il aurait éventuellement pour casser la clé serait de retrouver les deux puissances secrètes à partir de 5, 125 et 625. Sauf qu’ici, j’ai pris un exemple simplifié. En réalité, les opérations de mise à la puissances sont réalisé dans ce qu’on appelle en mathématiques un “corps fini”. Un corps fini, on peu l’appréhender pour vulgariser un peu comme un ensemble fini d’entiers dans lequel le décompte est periodique.
 
Par exemple si vous comptez l’ensemble des heures de la journée, c’est un ensemble comptant 24 élément allant de 0 à 23. Dans cet ensemble, “l’heure 27“ est équivalente à 3 heures du matin (1 tour de cadran de 24 heures, plus 3 heures) et on note 27 ≡ 3 mod(24) (27 équivaut à 3 plus ou moins (modulo) 24)
 
C’est un peu de cette façon là qu’on compte dans un corps fini.
 
Dans l’échange de Diffie Hellmann, l’étape 1 consiste en réalité à se mettre d’accord sur un nombre quelconque (en l'occurence <span style="color: blue;">'''5'''</span>), mais aussi sur un corps fini qui servira de base pour compter. Par exemple 17. Donc lorsqu’on calculera '''<span style="color: blue;">5</span><span style="color: red;"><sup>3</sup></span>''' dans la base 17, on trouve que c’est égal à '''<span style="color: purple;">6</span>''' modulo 17. Pour reprendre l’exemple de l’horloge, qui est cette fois un peu particulière puisque c’est une horloge à 17 subdivisions, si vous comptez jusqu’à '''<span style="color: purple;">125</span>''', vous faites 7 fois le tour de l’horloge, et à la fin, il vous reste '''<span style="color: purple;">6</span>''' ('''<span style="color: purple;">125</span>''' = 7*17 + '''<span style="color: purple;">6</span>'''). En suivant le même raisonnement, '''<span style="color: blue;">5</span><span style="color: green;"><sup>4</sup></span>''' ≡ '''<span style="color: orange;">13</span>''' mod(17). Pour un attaquant, ça devient extrèmement compliqué de retrouver les puissances parce qu’il ne dispose que du résultat final, c’est à dire 6 et 13, et qu’il ne sait pas combien de “tours de cadran” ont été fait. Or il y a une infinités de puissances possibles qui donneront comme résultat 6 ou 13 (Par exemple 5<sup>19</sup> ≡ 6 mod(17). C’est ce qui fait toute la force de l’échange de Diffie Hellman.


=== Advanced Encryption Standard ===
=== Advanced Encryption Standard ===
*A VENIR*


L'algorithme symétrique utilisé par Tor pour protéger les données est l'Advanced Encryption Standard, plus communément appellé AES. C'est l'un des algorithmes les plus robustes qui existe à ce jour. Accessoirement, c'est aussi l'algorithme qui sécurise vos échanges de données quand vous allez sur Psychoactif. AES fonctionne de la façon suivante. Supposons que je veuille chiffrer le mot suivant : "Acide Lysergique". Les caractères en informatique sont codés via la [http://www.asciitable.com/ table ASCII] qui permet d'associer des nombres (de 0 à 255) à 256 symboles, ces nombres étant codés sur 8 bits (1 octet). Par exemple le L majuscule correspond à 76 (01001100 en binaire) dans la table ASCII. Donc :
{| class="wikitable centre" width="100%"
|-
! width="6.25%" | <span style="color: blue;">A</span>
! width="6.25%" | <span style="color: green;">c</span>
! width="6.25%" | <span style="color: red;">i</span>
! width="6.25%" | <span style="color: brown;">d</span>
! width="6.25%" | <span style="color: orange;">e</span>
! width="6.25%" | 
! width="6.25%" | <span style="color: HotPink;">L</span>
! width="6.25%" | <span style="color: purple;">y</span>
! width="6.25%" | <span style="color: cyan;">s</span>
! width="6.25%" | <span style="color: orange;">e</span>
! width="6.25%" | <span style="color: magenta;">r</span>
! width="6.25%" | <span style="color: SpringGreen;">g</span>
! width="6.25%" | <span style="color: red;">i</span>
! width="6.25%" | <span style="color: DodgerBlue;">q</span>
! width="6.25%" | <span style="color: RosyBrown;">u</span>
! width="6.25%" | <span style="color: orange;">e</span>
|-
|align="center"|'''<span style="color: blue;">65</span>'''
|align="center"|'''<span style="color: green;">99</span>'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''<span style="color: brown;">100</span>'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''<span style="color: grey;">32</span>'''
|align="center"|'''<span style="color: HotPink;">76</span>'''
|align="center"|'''<span style="color: purple;">121</span>'''
|align="center"|'''<span style="color: cyan;">115</span>'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''<span style="color: magenta;">114</span>'''
|align="center"|'''<span style="color: SpringGreen;">103</span>'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''<span style="color: DodgerBlue;">113</span>'''
|align="center"|'''<span style="color: RosyBrown;">117</span>'''
|align="center"|'''<span style="color: orange;">101</span>'''
|-
|}
L'algorithme AES travaille sur des blocs de 4*4 éléments qui font 128 bits (126/16 = 8 bits, on retrouve bien nos 8 bits qui codent les lettres). Là, j'ai bien choisi mon mot pour qu'il y aie pile poil 16 caractères. Mais si il faut chiffrer plus de données, AES crée d'autre blocs à la suite et remplit les blocs incomplets avec des données bidon.
Du coup, voici mon bloc :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: blue;">65</span>'''
|align="center"|'''<span style="color: green;">99</span>'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''<span style="color: brown;">100</span>'''
|-
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''<span style="color: grey;">32</span>'''
|align="center"|'''<span style="color: HotPink;">76</span>'''
|align="center"|'''<span style="color: purple;">121</span>'''
|-
|align="center"|'''<span style="color: cyan;">115</span>'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''<span style="color: magenta;">114</span>'''
|align="center"|'''<span style="color: SpringGreen;">103</span>'''
|-
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''<span style="color: DodgerBlue;">113</span>'''
|align="center"|'''<span style="color: RosyBrown;">117</span>'''
|align="center"|'''<span style="color: orange;">101</span>'''
|-
|}
La clé de AES est une clé maîtresse de 128, 192 ou 256 bits en fonction de la force de l'algorithme, et à partir de laquelle seront déduites des sous-clés de 128 bits. Ces sous-clés auront le même format qu'un bloc, c'est à dire qu'elles se présenteront sous la forme d'une matrice aléatoire de 4*4.
Et du coup, voici une sous-clé créée pour l'occasion qui est constituée de nombres aléatoires compris entre 0 et 255 :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: DarkGreen;">177</span>'''
|align="center"|'''75'''
|align="center"|'''103'''
|align="center"|'''21'''
|-
|align="center"|'''136'''
|align="center"|'''203'''
|align="center"|'''117'''
|align="center"|'''146'''
|-
|align="center"|'''43'''
|align="center"|'''199'''
|align="center"|'''147'''
|align="center"|'''187'''
|-
|align="center"|'''250'''
|align="center"|'''194'''
|align="center"|'''10'''
|align="center"|'''172'''
|-
|}
Ensuite, AES se déroule "tours" comportant 4 étapes plus un tour préliminaire.
Tour préliminaire (AddRoundKey) :
Il s'agit ici d'appliquer la fonction XOR (OU exclusif) entre chaque nombres du bloc à coder et chaque nombres de la clé. Pour bien comprendre, il faut passer en binaire. La fonction XOR renvoie 1 si les 2 bits en entrée sont différents et 0 s'ils sont identiques. Par exemple prenons notre première lettre (65) et le premier nombre de notre clé (177) :
{| class="wikitable centre" width="30%"
|-
|align="right"|<span style="color: blue;">65</span>
|align="right"|<span style="color: blue;">01000001</span>
|-
|align="right"|XOR <span style="color: DarkGreen;">177</span>
|align="right"|XOR <span style="color: DarkGreen;">10110001</span>
|-
|align="right"|'''= <span style="color: DarkViolet;">240</span>'''
|align="right"|'''<span style="color: DarkViolet;">11110000</span>'''
|-
|}
A ce stade, notre matrice devient donc :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: DarkViolet;">240</span>'''
|align="center"|'''40'''
|align="center"|'''14'''
|align="center"|'''113'''
|-
|align="center"|'''237'''
|align="center"|'''235'''
|align="center"|'''57'''
|align="center"|'''235'''
|-
|align="center"|'''88'''
|align="center"|'''162'''
|align="center"|'''225'''
|align="center"|'''220'''
|-
|align="center"|'''147'''
|align="center"|'''179'''
|align="center"|'''255'''
|align="center"|'''201'''
|-
|}
Tours :
1ère étape (Générique) : SubBytes
On applique à chaque élément du bloc à chiffrer une fonction non-linéaire prédéfinie. L'idée de cette étape, c'est de changer drastiquement tous les éléments du bloc. En cryptographie, on appelle cette propriété la confusion, et les transformations non-linéaires sont parfaites pour ça (si vous voulez les détails technique, ça consiste à prendre l'inverse de ces éléments dans un corps de Galois GF(256) et d'y appliquer une relation affine). Concrètement, étant donné que cette étape est générique, on peut établir une table de conversion qu'on appelle une S-box (Substitution box) et qui est disponible ici en hexadécimal (https://en.wikipedia.org/wiki/Rijndael_S-box). Par exemple, <span style="color: DarkViolet;">240</span> est transformé en <span style="color: red;">140</span>. Du coup, mon bloc devient :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: DarkViolet;">240</span>'''
|align="center"|'''40'''
|align="center"|'''14'''
|align="center"|'''113'''
|-
|align="center"|'''237'''
|align="center"|'''235'''
|align="center"|'''57'''
|align="center"|'''235'''
|-
|align="center"|'''88'''
|align="center"|'''162'''
|align="center"|'''225'''
|align="center"|'''220'''
|-
|align="center"|'''147'''
|align="center"|'''179'''
|align="center"|'''255'''
|align="center"|'''201'''
|-
|}
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''52'''
|align="center"|'''171'''
|align="center"|'''163'''
|-
|align="center"|'''85'''
|align="center"|'''233'''
|align="center"|'''18'''
|align="center"|'''233'''
|-
|align="center"|'''106'''
|align="center"|'''58'''
|align="center"|'''248'''
|align="center"|'''134'''
|-
|align="center"|'''220'''
|align="center"|'''109'''
|align="center"|'''22'''
|align="center"|'''221'''
|-
|}
Deuxième étape (Générique) : ShiftRows :
C'est très simple, on décale les lignes de la matrice suivant l'exemple donné ci dessous. L'idée, cette fois ci, est d'assurer ce qu'on appelle en cryptographie la diffusion. C'est à dire que le moindre changement dans le message de départ se répercutera de façon considérable dans l'algorithme et aboutira à un chiffré radicalement différent.
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''<span style="color: orange;">52</span>'''
|align="center"|'''<span style="color: pink;">171</span>'''
|align="center"|'''<span style="color: purple;">163</span>'''
|-
|align="center"|'''<span style="color: red;">85</span>'''
|align="center"|'''<span style="color: orange;">233</span>'''
|align="center"|'''<span style="color: pink;">18</span>'''
|align="center"|'''<span style="color: purple;">233</span>'''
|-
|align="center"|'''<span style="color: red;">106</span>'''
|align="center"|'''<span style="color: orange;">58</span>'''
|align="center"|'''<span style="color: pink;">248</span>'''
|align="center"|'''<span style="color: purple;">134</span>'''
|-
|align="center"|'''<span style="color: red;">220</span>'''
|align="center"|'''<span style="color: orange;">109</span>'''
|align="center"|'''<span style="color: pink;">22</span>'''
|align="center"|'''<span style="color: purple;">221</span>'''
|-
|}
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''<span style="color: orange;">52</span>'''
|align="center"|'''<span style="color: pink;">171</span>'''
|align="center"|'''<span style="color: purple;">163</span>'''
|-
|align="center"|'''<span style="color: orange;">233</span>'''
|align="center"|'''<span style="color: pink;">18</span>'''
|align="center"|'''<span style="color: purple;">233</span>'''
|align="center"|'''<span style="color: red;">85</span>'''
|-
|align="center"|'''<span style="color: pink;">248</span>'''
|align="center"|'''<span style="color: purple;">134</span>'''
|align="center"|'''<span style="color: red;">106</span>'''
|align="center"|'''<span style="color: orange;">58</span>'''
|-
|align="center"|'''<span style="color: purple;">221</span>'''
|align="center"|'''<span style="color: red;">220</span>'''
|align="center"|'''<span style="color: orange;">109</span>'''
|align="center"|'''<span style="color: pink;">22</span>'''
|-
|}
3ème étape (Générique) : MixColumns
Il s'agit cette fois ci de multiplier chaque colonne de la matrice par une matrice ayant des propriétés mathématiques spéciale appellée MDS (Maximum Distance Separable). Cette matrice a été calculée pour optimiser la propriété de diffusion citée ci dessus. Concrètement, tous les éléments de la colonne vont s'influencer les uns les autres. Cette matrice est la suivante :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|-
|}
Exemple avec la première colonne. La multiplication s'effectue dans un corps de Galois GF(2⁸)
{| class="wikitable centre" width="65%"
|-
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''<span style="color: red;">140</span>'''
|-
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''<span style="color: orange;">233</span>'''
|-
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''<span style="color: pink;">248</span>'''
|-
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''<span style="color: purple;">221</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="left"|(<span style="color: DodgerBlue;">2</span>x<span style="color: red;">140</span> XOR <span style="color: DodgerBlue;">3</span>x<span style="color: orange;">233</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: pink;">248</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: purple;">221</span>) = '''<span style="color: SeaGreen;">50</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="left"|(<span style="color: DodgerBlue;">1</span>x<span style="color: red;">140</span> XOR <span style="color: DodgerBlue;">2</span>x<span style="color: orange;">233</span> XOR <span style="color: DodgerBlue;">3</span>x<span style="color: pink;">248</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: purple;">221</span>) = '''<span style="color: OliveDrab;">139</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="left"|(<span style="color: DodgerBlue;">1</span>x<span style="color: red;">140</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: orange;">233</span> XOR <span style="color: DodgerBlue;">2</span>x<span style="color: pink;">248</span> XOR <span style="color: DodgerBlue;">3</span>x<span style="color: purple;">221</span>) = '''<span style="color: MediumAquamarine;">242</span>'''
|-
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="left"|(<span style="color: DodgerBlue;">3</span>x<span style="color: red;">140</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: orange;">233</span> XOR <span style="color: DodgerBlue;">1</span>x<span style="color: pink;">248</span> XOR <span style="color: DodgerBlue;">2</span>x<span style="color: purple;">221</span>) = '''<span style="color: DarkCyan;">63</span>'''
|-
|}
Donc la matrice devient :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''52'''
|align="center"|'''171'''
|align="center"|'''163'''
|-
|align="center"|'''<span style="color: orange;">233</span>'''
|align="center"|'''18'''
|align="center"|'''233'''
|align="center"|'''85'''
|-
|align="center"|'''<span style="color: pink;">248</span>'''
|align="center"|'''134'''
|align="center"|'''106'''
|align="center"|'''58'''
|-
|align="center"|'''<span style="color: purple;">221</span>'''
|align="center"|'''220'''
|align="center"|'''109'''
|align="center"|'''22'''
|-
|}
{| class="wikitable centre" width="20%"
|-
|align="center"|'''<span style="color: SeaGreen;">50</span>'''
|align="center"|'''4'''
|align="center"|'''106'''
|align="center"|'''142'''
|-
|align="center"|'''<span style="color: OliveDrab;">139</span>'''
|align="center"|'''93'''
|align="center"|'''177'''
|align="center"|'''81'''
|-
|align="center"|'''<span style="color: MediumAquamarine;">242</span>'''
|align="center"|'''78'''
|align="center"|'''21'''
|align="center"|'''184'''
|-
|align="center"|'''<span style="color: DarkCyan;">63</span>'''
|align="center"|'''107'''
|align="center"|'''191'''
|align="center"|'''135'''
|-
|}
4ème étape (Dépendante de la clé) : AddRoundKey
Il s'agit de la même chose que le tour préliminaire avec la fonction XOR, mais à partir d'une nouvelle sous-clé aléatoire déduite de la clé maîtresse (Une sous-clé aléatoire différente par tour), mettons :
{| class="wikitable centre" width="20%"
|-
|align="center"|'''50'''
|align="center"|'''4'''
|align="center"|'''106'''
|align="center"|'''142'''
|-
|align="center"|'''139'''
|align="center"|'''93'''
|align="center"|'''177'''
|align="center"|'''81'''
|-
|align="center"|'''242'''
|align="center"|'''78'''
|align="center"|'''21'''
|align="center"|'''184'''
|-
|align="center"|'''63'''
|align="center"|'''107'''
|align="center"|'''191'''
|align="center"|'''135'''
|-
|}
XOR
{| class="wikitable centre" width="20%"
|-
|align="center"|'''184'''
|align="center"|'''116'''
|align="center"|'''102'''
|align="center"|'''114'''
|-
|align="center"|'''222'''
|align="center"|'''163'''
|align="center"|'''60'''
|align="center"|'''91'''
|-
|align="center"|'''145'''
|align="center"|'''53'''
|align="center"|'''23'''
|align="center"|'''15'''
|-
|align="center"|'''181'''
|align="center"|'''222'''
|align="center"|'''21'''
|align="center"|'''75'''
|-
|}
=
{| class="wikitable centre" width="20%"
|-
|align="center"|'''138'''
|align="center"|'''112'''
|align="center"|'''12'''
|align="center"|'''252'''
|-
|align="center"|'''85'''
|align="center"|'''254'''
|align="center"|'''113'''
|align="center"|'''10'''
|-
|align="center"|'''99'''
|align="center"|'''123'''
|align="center"|'''2'''
|align="center"|'''183'''
|-
|align="center"|'''138'''
|align="center"|'''181'''
|align="center"|'''170'''
|align="center"|'''204'''
|-
|}
Ensuite, on recommence toutes ces étapes 10, 12 ou 14 fois en fonction de la taille de la clé maîtresse (AES 128/192/256 bits). A cette étape, si on reprend notre table ASCII, notre message initial (Acide Lysergique) ressemblerait à Šp*FF*üUþq*LF*c{*STX*·ŠµªÌ
{| class="wikitable centre" width="100%"
|-
! width="6.25%" | 138
! width="6.25%" | 112
! width="6.25%" | 12
! width="6.25%" | 252
! width="6.25%" | 85
! width="6.25%" | 254
! width="6.25%" | 113
! width="6.25%" | 10
! width="6.25%" | 99
! width="6.25%" | 123
! width="6.25%" | 2
! width="6.25%" | 183
! width="6.25%" | 138
! width="6.25%" | 181
! width="6.25%" | 170
! width="6.25%" | 204
|-
|align="center"|'''Š'''
|align="center"|'''p'''
|align="center"|'''*FF*'''
|align="center"|'''ü'''
|align="center"|'''U'''
|align="center"|'''þ'''
|align="center"|'''q'''
|align="center"|'''*LF*'''
|align="center"|'''c'''
|align="center"|'''{'''
|align="center"|'''*STX*'''
|align="center"|'''.'''
|align="center"|'''Š'''
|align="center"|'''µ'''
|align="center"|'''ª'''
|align="center"|'''Ì'''
|-
|}


== Références ==
== Références ==
<references/>
<references/>
Sécurité
Il existe de nombreuses arnaques (exit scam) sur le réseau Tor.
Les administrateurs d'un site partent avec tous les fonds déposés par les utilisateurs.
Il est donc conseillé d'utiliser un portefeuille (wallet) externe afin de limiter les risques de perte d'argent
De plus, de nombreux produits vendus sur Tor sont des contrefacons
1

modification

Menu de navigation