Pur essendo affascinato da come è possibile creare servizi nascosti con Tor, ci sono alcuni dettagli sul problema di collisione degli indirizzi che non riesco a capire.
Citazione da Nomi dei servizi nascosti sul wiki Tor (il mio accento):
The output of SHA1 has a length of 160 bit. To make handling the URLs more convenient we only use the first half of the hash, so 80 bit remain. Taking advantage of the Birthday Attack, entropy can be reduced to 40 bit. That's why collisions could be found with moderate means. This is not a problem for Tor since all an attacker might be able to do is create two different public keys that match the same .onion name. He would not be able to impersonate already existing hidden services.
Quindi, se dovessi fidarmi solo dell'indirizzo di un servizio nascosto, com'è che non può essere impersonato?
-
Se due servizi si erano annunciati ciascuno con la propria chiave pubblica, con entrambi hash allo stesso indirizzo, come faccio a sapere qual è il servizio desiderato quando cerco di visitare l'indirizzo?
-
In che modo, quindi, la destinazione è stata decisa? Il mio proxy cipriota mi dirà che ci sono 2 servizi per questo indirizzo, presenta ogni chiave pubblica e mi chiedo di scegliere?
-
Se il mio servizio per qualche motivo si è abbassato e un altro si è annunciato, di nuovo la sua chiave pubblica ha lo stesso indirizzo, come faccio a sapere che questo servizio non è quello che intendo visitare? Se l'ho già visitato, il mio proxy cipriota mi avviserà che la chiave è cambiata? Cosa succede se non l'avessi mai visitato?
Mi sembra che per autenticare un servizio, non è sufficiente fidarsi del suo indirizzo, ho bisogno di ottenere e fidarmi della sua chiave pubblica separatamente e prima di cercare il servizio nella rete Tor. Sono errato in questa conclusione?