it-swarm.dev

Come fa check.torproject.org a sapere se stai usando Tor?

Sto guardando i risultati dal seguente URL e vorrei sapere come fa il sito Web Tor Project a "sapere" che Tor viene utilizzato o meno.

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

Avrei impostato uno sniffer di pacchetti, ma dal momento che non sono un nodo di uscita non sono sicuro che ciò possa fare molta differenza.

42

In una riga: hanno un elenco di tutti i nodi di uscita (qualcosa come quello ).

più dettagliato:

Ho visto questo post dimostra come rilevare una connessione Tor in 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];
}

Un buon riferimento spiega cosa è disponibile qui:

Aggiornamento:

Da Tor offical doc che discende il metodo TorDNSEL che mitiga gli svantaggi del vecchio metodo di test dell'elenco IP di exitnodes:

È utile per una serie di motivi per determinare se una connessione proviene da un nodo Tor. I primi tentativi di determinare se un determinato indirizzo IP fosse un'uscita Tor utilizzavano la directory per abbinare indirizzi IP e criteri di uscita. Questo approccio presentava una serie di inconvenienti, tra cui i falsi negativi quando un router Tor esce dal traffico da un indirizzo IP diverso rispetto alla sua porta OR è in ascolto. L'elenco di uscite basato su DNS Tor è stato progettato per superare questi problemi e forniscono una semplice interfaccia per rispondere alla domanda: si tratta di un'uscita Tor?

In Ruby hai una bella gemma Tor.rb che implementa questa tecnica:

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

Sanno quali sono gli indirizzi dei nodi di uscita Tor. Quindi controllano semplicemente il tuo indirizzo e vedono se corrisponde a uno dei nodi di uscita.

I nodi di uscita sono noti all'intera rete Tor, se decidi di eseguire un nodo di uscita, devi pubblicizzarlo nel modo giusto? Altrimenti nessuno lo userà. Quindi le persone sapranno che il tuo IP è un nodo di uscita Tor. Semplice.

19
Aki

È possibile verificare se una connessione è un punto di uscita tor utilizzando TorDNSEL ; Quindi uno script può essere codificato per controllare ogni connessione.

"TorDNSEL è un'implementazione del test attivo, elenco di uscite basato su DNS per nodi di uscita Tor."

9
Rick Rhodes