Randomized Tor Circuit Lengths
Moving beyond the 3-hop limit to mitigate end-to-end correlation attacks.
Il design a tre hop di Tor è un compromesso tra **latenza e anonimato**. Sebbene eccellente per il web, servizi asincroni come Email (SMTP) e Usenet (NNTP) possono beneficiare di percorsi più complessi e meno prevedibili.
The "Geometric Distribution" Argument
Come indicato nelle FAQ ufficiali del Tor Project, la lunghezza fissa del percorso rende Tor vulnerabile ad attacchi statistci. L'adozione di una distribuzione geometrica per la scelta degli hop trasforma un attacco deterministico in uno puramente probabilistico.
Technical Implementation: `circuitbuild.c`
Per implementare circuiti a lunghezza variabile, dobbiamo intervenire sulla logica di costruzione dei circuiti nel core di Tor. Il frammento seguente illustra come differenziare il traffico basandosi sul purpose del circuito:
static int get_variable_route_length(int purpose) {
int base = 3;
int extra = 0;
// Applica randomizzazione solo a servizi latency-tolerant
if (purpose == CIRCUIT_PURPOSE_C_GENERAL) {
// Probabilità decrescente di aggiungere hop (Distribuzione Geometrica)
while (crypto_rand_int(100) < 65 && extra < 4) {
extra++;
}
}
return base + extra;
}
Vantaggi Strategici
- Obfuscation: La latenza variabile impedisce il fingerprinting temporale semplice.
- Resilience: Maggiore protezione se uno o più nodi della rete sono controllati dallo stesso avversario (Sybil attack).
Trade-offs
- Network Load: Circuiti più lunghi aumentano il carico complessivo sulla rete Tor.
- Reliability: Ogni hop aggiuntivo aumenta la probabilità che il circuito fallisca prematuramente.
Conclusioni
La randomizzazione della lunghezza dei circuiti non è una "silver bullet", ma per l'utente che gestisce un gateway Usenet o un server email tramite Tor, rappresenta un incremento del livello di sicurezza non trascurabile, spostando l'ago della bilancia a favore della privacy a costo di pochi millisecondi di ritardo.