Come fa un nodo di uscita di Tor a conoscere la chiave pubblica del client?

3

Quando il nodo di uscita Tor esegue la richiesta del client e riceve una risposta dal server, deve creare una cella di cipolla che può essere decifrata in modo inverso lungo un circuito attraverso la rete Tor. Pertanto, il client deve essere l'ultimo a decifrare, altrimenti il contenuto della richiesta può essere collegato all'IP del client dal primo nodo intermedio (bridge), superando l'anonimato. Pertanto, sembra che il nodo di uscita debba prima crittografare la risposta dal server di destinazione con la chiave pubblica del client, pertanto il client sarà l'unico in grado di decodificare e ottenere la risposta in testo non crittografato.

Tuttavia, come può il nodo di uscita criptare con la chiave pubblica del client? Se avesse questa conoscenza non sarebbe in grado di determinare l'identità del cliente?

    
posta gratsby 30.04.2015 - 01:56
fonte

2 risposte

1

Il client usa Diffie-Hellman per negoziare una chiave di sessione con ciascun nodo quando stabilisce un circuito. Questo viene fatto in modo incrementale, quindi ogni handshake DH (dopo il primo) viene instradato attraverso il circuito parziale esistente.

link

Quindi, il nodo di uscita ha una chiave di sessione condivisa con qualcuno, ma non sa chi.

Si noti inoltre che il nodo di uscita non aggiunge più livelli di crittografia alla risposta come fa il client per la richiesta. Piuttosto, l'uscita crittografa la risposta con la chiave di sessione per il client e la invia al nodo precedente nel circuito, che ripete il processo. Quando finalmente raggiunge il client, è stato aggiunto uno strato di crittografia su ciascun nodo, da quel nodo . Il client ha una chiave di sessione condivisa con ciascun nodo, in modo che possa rimuovere tutti i livelli.

    
risposta data 04.05.2015 - 00:31
fonte
1

Il nodo di uscita non ha bisogno di conoscere la chiave pubblica del client, perché funziona su chiavi simmetriche.

Il documento di progettazione di Tor ha una sezione in cui descrive come vengono costruiti i circuiti .

  1. Il client (chiamato proxy cipolla) invia un pacchetto CREATE (o una cella in termini Tor) al primo relay. Utilizza lo scambio di chiavi Diffie-Hellman per costruire una chiave simmetrica.
  2. Il primo relay termina lo scambio di chiavi e invia una cella CREATED .
  3. Il proxy cipolla utilizza il primo relè per estendere il circuito a un secondo relè e invia una cella RELAY EXTEND . Questo contiene anche informazioni per uno scambio di chiavi DH.
  4. Il secondo relè invia una cella CREATED indietro e il proxy cipolla / 2 ° inoltro condividono una chiave simmetrica
  5. Lo stesso è fatto con il prossimo relay.

Alla fine il proxy cipriota condivide chiavi simmetriche diverse con tutti e tre i relè. Quando il relay di uscita riceve i dati destinati al proxy cipolla, lo crittografa con la chiave condivisa. Lo invia al relè precedente che condivide anche una chiave ecc.

    
risposta data 04.05.2015 - 16:26
fonte

Leggi altre domande sui tag