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

m
arnaque contrefacon exit scam
m (arnaque contrefacon exit scam)
 
(18 versions intermédiaires par un autre utilisateur non affichées)
Ligne 20 : Ligne 20 :
=== Circuit Tor ===
=== 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 34 : Ligne 34 :
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 86 : 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 141 : 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 207 : Ligne 207 :
=== Ecoute du noeud de sortie ===
=== Ecoute du 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.
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.
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.
Ligne 216 : Ligne 216 :


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.
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 239 : 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 246 : 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 274 : 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 474 : Ligne 471 :
=== Advanced Encryption Standard ===
=== Advanced Encryption Standard ===


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 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 :
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%"
{| class="wikitable centre" width="100%"
|-
|-
! width="6.25%" | A
! width="6.25%" | <span style="color: blue;">A</span>
! width="6.25%" | c
! width="6.25%" | <span style="color: green;">c</span>
! width="6.25%" | i
! width="6.25%" | <span style="color: red;">i</span>
! width="6.25%" | d
! width="6.25%" | <span style="color: brown;">d</span>
! width="6.25%" | e
! width="6.25%" | <span style="color: orange;">e</span>
! width="6.25%" |   
! width="6.25%" |   
! width="6.25%" | L
! width="6.25%" | <span style="color: HotPink;">L</span>
! width="6.25%" | y
! width="6.25%" | <span style="color: purple;">y</span>
! width="6.25%" | s
! width="6.25%" | <span style="color: cyan;">s</span>
! width="6.25%" | e
! width="6.25%" | <span style="color: orange;">e</span>
! width="6.25%" | r
! width="6.25%" | <span style="color: magenta;">r</span>
! width="6.25%" | g
! width="6.25%" | <span style="color: SpringGreen;">g</span>
! width="6.25%" | i
! width="6.25%" | <span style="color: red;">i</span>
! width="6.25%" | q
! width="6.25%" | <span style="color: DodgerBlue;">q</span>
! width="6.25%" | u
! width="6.25%" | <span style="color: RosyBrown;">u</span>
! width="6.25%" | e
! width="6.25%" | <span style="color: orange;">e</span>
|-
|-
|align="center"|'''65'''
|align="center"|'''<span style="color: blue;">65</span>'''
|align="center"|'''99'''
|align="center"|'''<span style="color: green;">99</span>'''
|align="center"|'''105'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''100'''
|align="center"|'''<span style="color: brown;">100</span>'''
|align="center"|'''101'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''32'''
|align="center"|'''<span style="color: grey;">32</span>'''
|align="center"|'''76'''
|align="center"|'''<span style="color: HotPink;">76</span>'''
|align="center"|'''121'''
|align="center"|'''<span style="color: purple;">121</span>'''
|align="center"|'''115'''
|align="center"|'''<span style="color: cyan;">115</span>'''
|align="center"|'''101'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''114'''
|align="center"|'''<span style="color: magenta;">114</span>'''
|align="center"|'''103'''
|align="center"|'''<span style="color: SpringGreen;">103</span>'''
|align="center"|'''105'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''113'''
|align="center"|'''<span style="color: DodgerBlue;">113</span>'''
|align="center"|'''117'''
|align="center"|'''<span style="color: RosyBrown;">117</span>'''
|align="center"|'''101'''
|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.
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.
Ligne 520 : Ligne 519 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''65'''
|align="center"|'''<span style="color: blue;">65</span>'''
|align="center"|'''99'''
|align="center"|'''<span style="color: green;">99</span>'''
|align="center"|'''105'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''100'''
|align="center"|'''<span style="color: brown;">100</span>'''
|-
|-
|align="center"|'''101'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''32'''
|align="center"|'''<span style="color: grey;">32</span>'''
|align="center"|'''76'''
|align="center"|'''<span style="color: HotPink;">76</span>'''
|align="center"|'''121'''
|align="center"|'''<span style="color: purple;">121</span>'''
|-
|-
|align="center"|'''115'''
|align="center"|'''<span style="color: cyan;">115</span>'''
|align="center"|'''101'''
|align="center"|'''<span style="color: orange;">101</span>'''
|align="center"|'''114'''
|align="center"|'''<span style="color: magenta;">114</span>'''
|align="center"|'''103'''
|align="center"|'''<span style="color: SpringGreen;">103</span>'''
|-
|-
|align="center"|'''105'''
|align="center"|'''<span style="color: red;">105</span>'''
|align="center"|'''113'''
|align="center"|'''<span style="color: DodgerBlue;">113</span>'''
|align="center"|'''117'''
|align="center"|'''<span style="color: RosyBrown;">117</span>'''
|align="center"|'''101'''
|align="center"|'''<span style="color: orange;">101</span>'''
|-
|-
|}
|}
Ligne 549 : Ligne 548 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''177'''
|align="center"|'''<span style="color: DarkGreen;">177</span>'''
|align="center"|'''75'''
|align="center"|'''75'''
|align="center"|'''103'''
|align="center"|'''103'''
Ligne 579 : Ligne 578 :
{| class="wikitable centre" width="30%"
{| class="wikitable centre" width="30%"
|-
|-
|align="right"|65
|align="right"|<span style="color: blue;">65</span>
|align="right"|01000001
|align="right"|<span style="color: blue;">01000001</span>
|-
|-
|align="right"|XOR 177
|align="right"|XOR <span style="color: DarkGreen;">177</span>
|align="right"|XOR 10110001
|align="right"|XOR <span style="color: DarkGreen;">10110001</span>
|-
|-
|align="right"|'''= 240'''
|align="right"|'''= <span style="color: DarkViolet;">240</span>'''
|align="right"|'''11110000'''
|align="right"|'''<span style="color: DarkViolet;">11110000</span>'''
|-
|-
|}
|}
Ligne 594 : Ligne 593 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''240'''
|align="center"|'''<span style="color: DarkViolet;">240</span>'''
|align="center"|'''40'''
|align="center"|'''40'''
|align="center"|'''14'''
|align="center"|'''14'''
Ligne 620 : Ligne 619 :
1ère étape (Générique) : SubBytes
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). Du coup, mon bloc devient :
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%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''240'''
|align="center"|'''<span style="color: DarkViolet;">240</span>'''
|align="center"|'''40'''
|align="center"|'''40'''
|align="center"|'''14'''
|align="center"|'''14'''
Ligne 648 : Ligne 647 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''140'''
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''52'''
|align="center"|'''52'''
|align="center"|'''171'''
|align="center"|'''171'''
Ligne 730 : Ligne 729 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|-
|-
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|-
|-
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|-
|-
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|-
|-
|}
|}
Ligne 754 : Ligne 753 :
Exemple avec la première colonne. La multiplication s'effectue dans un corps de Galois GF(2⁸)
Exemple avec la première colonne. La multiplication s'effectue dans un corps de Galois GF(2⁸)


{| class="wikitable centre" width="100%"
{| class="wikitable centre" width="65%"
|-
|-
|align="center"|''' '''
|align="center"|''' '''
Ligne 760 : Ligne 759 :
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''140'''
|align="left"|'''<span style="color: red;">140</span>'''
|-
|-
|align="center"|''' '''
|align="center"|''' '''
Ligne 766 : Ligne 765 :
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''233'''
|align="left"|'''<span style="color: orange;">233</span>'''
|-
|-
|align="center"|''' '''
|align="center"|''' '''
Ligne 772 : Ligne 771 :
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''248'''
|align="left"|'''<span style="color: pink;">248</span>'''
|-
|-
|align="center"|''' '''
|align="center"|''' '''
Ligne 778 : Ligne 777 :
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="center"|''' '''
|align="left"|'''221'''
|align="left"|'''<span style="color: purple;">221</span>'''
|-
|-
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="left"|(2x140 XOR 3x233 XOR 1x248 XOR 1x221) = '''50'''
|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"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="left"|(1x140 XOR 2x233 XOR 3x248 XOR 1x221) = '''139'''
|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"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="center"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="left"|(1x140 XOR 1x233 XOR 2x248 XOR 3x221) = '''242'''
|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"|'''3'''
|align="center"|'''<span style="color: DodgerBlue;">3</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''1'''
|align="center"|'''<span style="color: DodgerBlue;">1</span>'''
|align="center"|'''2'''
|align="center"|'''<span style="color: DodgerBlue;">2</span>'''
|align="left"|(3x140 XOR 1x233 XOR 1x248 XOR 2x221) = '''63'''
|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>'''
|-
|-
|}
|}
Ligne 810 : Ligne 809 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''140'''
|align="center"|'''<span style="color: red;">140</span>'''
|align="center"|'''52'''
|align="center"|'''52'''
|align="center"|'''171'''
|align="center"|'''171'''
|align="center"|'''163'''
|align="center"|'''163'''
|-
|-
|align="center"|'''233'''
|align="center"|'''<span style="color: orange;">233</span>'''
|align="center"|'''18'''
|align="center"|'''18'''
|align="center"|'''233'''
|align="center"|'''233'''
|align="center"|'''85'''
|align="center"|'''85'''
|-
|-
|align="center"|'''248'''
|align="center"|'''<span style="color: pink;">248</span>'''
|align="center"|'''134'''
|align="center"|'''134'''
|align="center"|'''106'''
|align="center"|'''106'''
|align="center"|'''58'''
|align="center"|'''58'''
|-
|-
|align="center"|'''221'''
|align="center"|'''<span style="color: purple;">221</span>'''
|align="center"|'''220'''
|align="center"|'''220'''
|align="center"|'''109'''
|align="center"|'''109'''
Ligne 834 : Ligne 833 :
{| class="wikitable centre" width="20%"
{| class="wikitable centre" width="20%"
|-
|-
|align="center"|'''50'''
|align="center"|'''<span style="color: SeaGreen;">50</span>'''
|align="center"|'''4'''
|align="center"|'''4'''
|align="center"|'''106'''
|align="center"|'''106'''
|align="center"|'''142'''
|align="center"|'''142'''
|-
|-
|align="center"|'''139'''
|align="center"|'''<span style="color: OliveDrab;">139</span>'''
|align="center"|'''93'''
|align="center"|'''93'''
|align="center"|'''177'''
|align="center"|'''177'''
|align="center"|'''81'''
|align="center"|'''81'''
|-
|-
|align="center"|'''242'''
|align="center"|'''<span style="color: MediumAquamarine;">242</span>'''
|align="center"|'''78'''
|align="center"|'''78'''
|align="center"|'''21'''
|align="center"|'''21'''
|align="center"|'''184'''
|align="center"|'''184'''
|-
|-
|align="center"|'''63'''
|align="center"|'''<span style="color: DarkCyan;">63</span>'''
|align="center"|'''107'''
|align="center"|'''107'''
|align="center"|'''191'''
|align="center"|'''191'''
Ligne 976 : Ligne 975 :
== 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