tor e perdita dns di widecap

0

Sto usando un programma che ho codificato in C #. Tutto ciò che fa è usare HttpWebRequest per richiedere alcune pagine e leggere le informazioni da loro.
Ho provato a farlo funzionare attraverso Tor. Ho installato il pacchetto Vidalia e Widecap.
Il mio programma è sicuramente eseguito attraverso Tor perché ho controllato il mio IP all'interno del programma.
Ma ricevo questo avviso nel registro dei messaggi di vidalia:

Aug 22 10:40:42.290 [Warning] Your application (using socks5 to port 80) is giving Tor only an IP address. Applications that do DNS resolves themselves may leak information. Consider using Socks4A (e.g. via privoxy or socat) instead. For more information, please see https://wiki.torproject.org/TheOnionRouter/TorFAQ#SOCKSAndDNS.

Ho provato un sacco di metodi per smettere di ricevere questo avviso, ma lo sto ancora ottenendo.
Ho provato ad usare Privoxy ma quando lo avvio non viene scritto nulla nella console, ma non sembra funzionare.
Il pacchetto installa Polipo per impostazione predefinita. Ho provato a eseguirlo e viene visualizzato il seguente messaggio:

DNS: couldn't open /etc/resolv.conf: No such file or directory Disabling disk cache: No such file or directory Disabling local tree: No such file or directory Established listening socket on port 8123.

Se provo a connetterti su 8123 sembra che non ci sia nulla da ascoltare lì.
Ho controllato le FAQ di Tor. Per Windows sembra che ci siano solo TorDNS che non sembrano esistere.
E una macchina virtuale e non credo che ciò mi aiuterà nel mio caso.
Ho anche provato a usare proxyfirewall invece di widecap ma sputa un errore all'avvio e nient'altro accade comunque.

Qualche idea? Grazie.

    
posta Para 22.08.2012 - 10:17
fonte

1 risposta

5

Suppongo che tu stia utilizzando un nome di dominio come target nella tua applicazione, ad es. google.com anziché 173.194.34.69 . La query DNS viene eseguita senza il proxy.

L'implementazione di HttpWebRequest chiama Dns.GetHostEntry , che utilizza l'API Winsock (WSA) per eseguire una query DNS, al di fuori del proxy specificato. Sfortunatamente, questo perde l'IP del server a cui stai tentando di connettersi. Una volta che ha l'indirizzo IP, apre una connessione TCP al tuo proxy SOCKS e passa attraverso il tunnel verso la destinazione.

Il Tor Browser aggira questo facendo in modo che il proxy esegua le query DNS, semplicemente specificando un nome host invece di un indirizzo IP quando si invia il comando connect. Questa è una funzionalità supportata di SOCKS4a. Sono disponibili maggiori informazioni su Domande frequenti su Tor . Avrai bisogno di scrivere la tua implementazione del client proxy in C # per utilizzarla, poiché il framework .NET non offre attualmente un modo per farlo.

Una soluzione alternativa sarebbe sostituire l'URL con un indirizzo IP. Avrai comunque lo stesso avviso, dal momento che Privoxy ti avvisa solo che ti stai connettendo a un indirizzo IP per il quale non hai visto una query DNS, ma in realtà non eseguirai affatto la query DNS.

    
risposta data 22.08.2012 - 10:25
fonte

Leggi altre domande sui tag