web-dev-qa-db-fra.com

Comment check.torproject.org sait-il si vous utilisez Tor?

J'examine les résultats de l'URL suivante et j'aimerais savoir comment le site Web du projet Tor "sait" que Tor est utilisé ou non.

https://check.torproject.org/?lang=en-US&small=1&uptodate=1

Je configurerais un renifleur de paquets, mais comme je ne suis pas un nœud de sortie, je ne sais pas si cela ferait une grande différence.

42

Sur une ligne: ils ont une liste de tous les nœuds de sortie (quelque chose comme that ).

plus détaillé:

J'ai vu cela post montre comment détecter une connexion Tor en php

function IsTorExitPoint(){
    if (gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2") {
        return true;
    } else {
       return false;
    } 
}

function ReverseIPOctets($inputip){
    $ipoc = explode(".",$inputip);
    return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}

De bonnes références expliquent ce qu'il fait sont disponibles ici:

Mise à jour:

De Tor offical doc qui dérive la méthode TorDNSEL qui atténue les inconvénients de l'ancienne méthode de test de la liste ip exitnodes:

Il est utile pour diverses raisons de déterminer si une connexion provient d'un nœud Tor. Les premières tentatives pour déterminer si une adresse IP donnée était une sortie Tor ont utilisé le répertoire pour faire correspondre les adresses IP et les politiques de sortie. Cette approche présentait un certain nombre d'inconvénients, y compris de faux négatifs lorsqu'un routeur Tor quitte le trafic à partir d'une adresse IP différente de celle de son port OR écoute. La liste de sortie basée sur DNS Tor a été conçue pour surmonter ces problèmes et fournir une interface simple pour répondre à la question: est-ce une sortie Tor?

Dans Ruby vous avez un cool Tor.rb gem qui implémente cette technique:

Tor::DNSEL.include?("208.75.57.100")               #=> true
Tor::DNSEL.include?("1.2.3.4")                     #=> false
24
0x90

Ils savent quelles sont les adresses des nœuds de sortie Tor. Donc, ils vérifient simplement votre adresse et voient si elle correspond à l'un des nœuds de sortie.

Les nœuds de sortie sont connus de l'ensemble du réseau Tor, si vous décidez d'exécuter un nœud de sortie, vous devez le publier, non? Ou bien personne ne l'utilisera. Ensuite, les gens sauront que votre IP est un nœud de sortie Tor. Facile.

19
Aki

Vous pouvez vérifier si une connexion est un point de sortie tor en utilisant TorDNSEL ; Ainsi, un script peut être codé pour vérifier chaque connexion.

"TorDNSEL est une implémentation de la liste de sortie basée sur DNS pour les nœuds de sortie Tor."

9
Rick Rhodes