Come vengono ricevuti i pacchetti da un nodo di uscita Tor attraverso il circuito Tor?

2

Cosa succede ai pacchetti che il nodo di uscita invia / riceve dal server Web desiderato?

Ogni pacchetto di risposta viene reindirizzato attraverso il circuito Tor (crittografando sulla strada) individualmente? In tal caso, il cliente deve inviare conferma di ricezione di questi pacchetti al server web originale (reindirizzato nuovamente attraverso il circuito Tor)?

O il nodo di uscita completa semplicemente la normale comunicazione con il server web desiderato e quindi invia i (interi) dati ricevuti attraverso il circuito Tor in qualche modo?

Se questo è il caso, ogni relay riceve tutti i dati e quindi invia tutti quei dati al nodo successivo solo dopo aver ricevuto anche tutto?

    
posta user54840 02.09.2014 - 18:34
fonte

2 risposte

1

Tor funziona come una catena di proxy, in cui ogni proxy conosce solo l'hop successivo e l'hop precedente.

Semplificando molto, quando il tuo computer invia i dati usando Tor, il tuo client tor crittograferà il carico utile e lo inoltrerà a un altro nodo. Il nodo successivo fa lo stesso, e dopo alcune iterazioni il pacchetto raggiunge il nodo di uscita, viene completamente decrittografato e inviato al server web di destinazione.

Il server web invia il pacchetto al nodo di uscita, poiché il nodo di uscita era il computer che si collegava al server web. Il nodo di uscita utilizza una tabella (sembra la tabella NAT, ma con maggiori informazioni) per decidere dove inviare la risposta. Quindi crittograferà nuovamente il pacchetto e lo invierà al nodo successivo, che farà lo stesso, fino a quando il pacchetto raggiungerà il tuo computer, verrà decrittografato localmente e inviato all'applicazione.

I nodi intermedi non devono attendere tutti i dati prima di inviarli all'hop successivo, oppure scaricare file di dimensioni diverse da MB sarebbe una seccatura. Invece, hanno uno spazio buffer limitato, e ogni volta che il buffer si riempie (o si verifica un timeout), lo crittografano e lo inviano in anticipo.

La tua applicazione penserà che il server remoto sia il tuo client tor, quindi deve solo riconoscere il trasferimento del pacchetto fino al primo nodo. Il server Web di destinazione ritiene che il nodo di uscita sia il client e tutti i nodi intermedi riconosceranno i pacchetti tra di loro, poiché tra di essi esiste una connessione point-to-point.

    
risposta data 02.09.2014 - 20:22
fonte
0

Ricorda che Tor non semplicemente proxy HTTP; funziona a un livello più basso e assegna connessioni TCP arbitrarie, il che significa che il nodo non può sapere quando ha "tutti i dati", perché potrebbe esserci sempre di più.

Anche HTTP 1.1 consente più richieste per connessione, e hai HTTPS con l'handshake TLS che coinvolge diversi roundtrips, e poi ci sono protocolli che sono progettati per comandi multipli & risposte (ad esempio SMTP o IMAP) e allora ci sono protocolli in cui entrambe le parti possono inviare dati in qualsiasi momento (ad esempio SSH o IRC) ...

Pertanto lo scambio continuo di singoli pezzi è l'unico modo sensato.

    
risposta data 02.09.2014 - 19:32
fonte

Leggi altre domande sui tag