¿Cómo un nodo de salida Tor conoce la clave pública del cliente?

3

Cuando el nodo de salida de Tor ejecuta la solicitud del cliente y recibe una respuesta del servidor, debe crear una celda de cebolla que se pueda descifrar a la inversa a lo largo de un circuito a través de la red de Tor. Por lo tanto, el cliente debe ser el último en descifrar, de lo contrario, el contenido de la solicitud se puede vincular de nuevo a la IP del cliente mediante el primer nodo intermedio (puente), rompiendo el anonimato. Por lo tanto, parece que el nodo de salida tendría que cifrar primero la respuesta del servidor de destino con la clave pública del cliente; por lo tanto, el cliente será el único que pueda descifrar y obtener la respuesta de texto simple.

Sin embargo, ¿cómo puede el nodo de salida cifrar con la clave pública del cliente? Si tuviera este conocimiento, ¿no sería capaz de determinar la identidad del cliente?

    
pregunta gratsby 30.04.2015 - 01:56
fuente

2 respuestas

1

El cliente utiliza Diffie-Hellman para negociar una clave de sesión con cada nodo al establecer un circuito. Esto se hace de forma incremental, por lo que cada saludo de DH (después del primero) se enruta a través del circuito parcial existente.

enlace

Entonces, el nodo de salida tiene una clave de sesión compartida con alguien, pero no sabe quién.

Tenga en cuenta también que el nodo de salida no agrega varias capas de cifrado a la respuesta como lo hace el cliente para la solicitud. Más bien, la salida encripta la respuesta con la clave de sesión para el cliente y la envía de vuelta al nodo anterior en el circuito, que repite el proceso. Cuando finalmente llega al cliente, se ha agregado una capa de cifrado en cada nodo, por ese nodo . El cliente tiene una clave de sesión compartida con cada nodo, por lo que puede retirar todas las capas.

    
respondido por el John Morahan 04.05.2015 - 00:31
fuente
1

El nodo de salida no necesita conocer la clave pública del cliente, ya que funcionan con claves simétricas.

El documento de diseño de Tor tiene una sección donde describe cómo se construyen los circuitos .

  1. El cliente (llamado cebolla proxy) envía un paquete CREATE (o celda en términos Tor) al primer relevo. Utiliza el intercambio de claves Diffie-Hellman para construir una clave simétrica.
  2. El primer relé finaliza el intercambio de claves y envía una celda CREATED .
  3. El proxy de cebolla usa el primer relé para extender el circuito a un segundo relé y envía una celda RELAY EXTEND . Esto también contiene información para un intercambio de claves DH.
  4. El segundo relé envía una celda CREATED de vuelta y la cebolla proxy / segundo relé comparte una clave simétrica
  5. Lo mismo se hace con el siguiente relevo.

Al final, el proxy de cebolla comparte diferentes claves simétricas con los tres relés. Cuando el relé de salida recibe los datos destinados al proxy cebolla, los cifra con la clave compartida. Lo envía al relé anterior, que también comparte una clave, etc.

    
respondido por el qbi 04.05.2015 - 16:26
fuente

Lea otras preguntas en las etiquetas