Enrutamiento de cebolla

El enrutamiento cebolla es una técnica para la comunicación anónima a través de una red informática. En una red de cebolla, los mensajes se encapsulan en capas de cifrado, de forma análoga a las capas de una cebolla. 

Existe un amplio conjunto de medidas de precaución y mejores prácticas para que la navegación web sea más segura para los usuarios. Digamos que envía una solicitud HTTPS a un servidor y alguien intercepta esa solicitud, pero esa persona no puede saber qué dice ese mensaje porque está encriptado. Pero aún no está satisfecho con este nivel de seguridad y desea llevar esto al siguiente nivel, es decir, ni siquiera desea que nadie que husmee en su red sepa con qué servidor se está comunicando y si está realizando alguna solicitud o no. Aquí es donde entra en juego el enrutamiento de cebolla. 

El programa Onion Routing consta de estudios que investigan, diseñan, construyen y analizan redes de comunicación anónimas. La atención se centra en soluciones realistas para conexiones basadas en Internet de baja latencia que puedan soportar análisis de tráfico, escuchas ilegales y otros ataques tanto de personas externas (como enrutadores de Internet) como internas (como piratas informáticos) (servidores de Onion Routing). Onion Routing oculta quién se comunica con quién desde el medio de transporte; la red simplemente sabe que se está produciendo la comunicación. Además, hasta que la transmisión sale de la red OR, el contenido de la conversación permanece oculto a los intrusos.

Consulte esta imagen para obtener más detalles. 

¿Cómo funciona el enrutamiento de cebolla?

Si está navegando por Internet en un navegador web normal como Chrome, Firefox, etc., solicita páginas web mediante requests GET simples a servidores sin ningún intermediario. Es solo una conexión única entre un cliente y un servidor y alguien que husmea en su red puede saber con qué servidor se está contactando su computadora. 

  • El enrutamiento de cebolla hace esto de manera diferente. En el enrutamiento cebolla, la conexión se mantiene entre diferentes Nodes, es decir, la conexión salta de un servidor a otro y cuando llega al último servidor en este circuito, es el servidor con el que queríamos contactar y procesará nuestra solicitud y nos servirá lo deseado. página web que se nos devuelve utilizando la misma red de Nodes.
  • Ahora debes pensar por qué se llama enrutador de cebolla. Esto se debe a que el mensaje que enviamos y las respuestas que recibimos están encriptados con claves diferentes, con una clave única de encriptación para cada salto diferente o visita al servidor.
  • El cliente tiene acceso a todas las claves, pero los servidores solo tienen acceso a las claves específicas para el cifrado/descifrado de ese servidor.
  • Dado que este proceso envuelve su mensaje bajo capas de encriptación que deben despegarse en cada salto diferente como una cebolla, es por eso que se llama enrutador de cebolla.

Comprender el concepto de enrutamiento de cebolla un ejemplo

Ahora suponga que está navegando por Internet usando Tor (el enrutador de cebolla), que es un navegador especial que le permite usar los enrutadores de cebolla. Quiere acceder a YouTube, pero vive en China y, dado que YouTube está prohibido en China, no quiere que su gobierno sepa que está visitando YouTube, por lo que decide usar Tor. Su computadora necesita comunicarse con un servidor en particular para obtener la página de inicio de YouTube, pero no se comunica directamente con ese servidor. Lo hace a través de 3 Nodes/servidores/enrutadores (voluntarios mantienen estos servidores en todo el mundo) antes de ese servidor para que nadie pueda rastrear su conversación con ese servidor. Para simplificar este ejemplo, estoy usando 3 Nodes, pero una red Tor real puede tener cientos de Nodes en el medio. 

Circuito de enrutamiento de cebolla (hecho usando un gráfico lúcido)

  1. El cliente con acceso a todas las claves de encriptación, es decir , clave 1, clave 2 y clave 3, encripta el mensaje (obtener solicitud) tres veces envolviéndolo en 3 capas como una cebolla que debe pelar una a la vez.
  2. Este mensaje triple cifrado se envía al primer servidor, es decir, el Node 1 (Node de entrada).
  3. El Node 1 solo tiene la dirección del Node 2 y la Clave 1 . Entonces, descifra el mensaje usando la Clave 1 y se da cuenta de que no tiene ningún sentido ya que todavía tiene 2 capas de cifrado, por lo que lo pasa al Node 2.
  4. El Node 2 tiene la clave 2 y las direcciones de los Nodes de entrada y salida. Entonces, descifra el mensaje usando la Clave 2 , se da cuenta de que todavía está encriptado y lo pasa al Node de salida .
  5. El Node 3 (Node de salida) quita la última capa de cifrado y encuentra una solicitud GET para youtube.com y la pasa al servidor de destino
  6. El servidor procesa la solicitud y muestra la página web deseada como respuesta.
  7. La respuesta pasa a través de los mismos Nodes en sentido inverso, donde cada Node aplica una capa de cifrado utilizando su clave específica.
  8. Finalmente llega al cliente en forma de una respuesta triplemente cifrada que se puede descifrar ya que el cliente tiene acceso a todas las claves.

¿Cómo proporciona anonimato?

Imagínese si hay un sniffer escuchando en la primera conexión (cliente – Node de entrada) todo lo que puede saber es la dirección del Node de entrada y un mensaje cifrado tres veces que no tiene sentido. Así que todo el atacante/olfateador sabe que estás navegando por tor. 
De manera similar, si el rastreo comienza en el Node de salida, todo lo que ve el rastreador es un servidor que se comunica con otro servidor, pero no puede rastrear al cliente o la fuente de la solicitud generada. 
Pero ahora puede pensar que si alguien está escuchando en el Node 2, sabrá la dirección de entrada y salida y podrá rastrear el cliente y el servidor de destino. Pero no es tan simple, cada uno de estos Nodes tiene cientos de conexiones simultáneas y saber cuál conduce al origen y al destino correctos no es tan fácil. En nuestro circuito, el Node 2 es un Node medio, pero puede ser parte de otro circuito en una conexión diferente donde actúa como el Node de entrada que recibe requests o como un Node de salida que ofrece páginas web desde varios servidores. 

Vulnerabilidad en el enrutamiento de cebolla

La única falla de seguridad en el enrutamiento de cebolla es que si alguien está escuchando en un servidor al mismo tiempo y hace coincidir la solicitud en el destino con una solicitud realizada por un cliente en el otro lado de una red mediante el análisis de la longitud y la frecuencia de los caracteres encontrados en la solicitud o respuesta interceptada en el servidor de destino y usarlos para hacer coincidir con la misma solicitud realizada por un cliente una fracción de segundo (las marcas de tiempo en requests y respuestas también pueden ser útiles para deducir eso) y luego rastrear derribarlos y conocer su actividad en línea y romper la idea del anonimato. Esto es bastante difícil de hacer, pero no imposible. Pero eliminar esta falla de Tor es virtualmente imposible. 

Referencias: Computerphile 

Este artículo es una contribución de Palash Nigam . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *