Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| pan:comunicaciones_anonimas_v2 [2026/01/06 22:43] – thejuanvisu | pan:comunicaciones_anonimas_v2 [2026/01/07 16:53] (actual) – thejuanvisu | ||
|---|---|---|---|
| Línea 143: | Línea 143: | ||
| ====== Onion Routing ====== | ====== Onion Routing ====== | ||
| + | Esquema basado en la idea de enrutado a través de varios nodos con varias capas de cifrado. Un mensaje es cifrado capa por capa usando las calves de todos los nodos que hay en el camino al receptor. Cada nodo deshace una capa descifrandola de forma que la dirección al siguiente salto es revelada y envía el resto del mensaje al siguiente nodo. Es el opuesto a las redes mix, no oculta el tráfico de red mezcalndo mensajes. Este mecanismo está compuesto por las siguientes entidades: | ||
| + | * **Aplicación cliente** (Envía el mensaje) | ||
| + | * **Onion Proxy**: Determina el camino desde el origen hasta el destino (n rutas diferentes), | ||
| + | * **Routers**: | ||
| + | * **Tuneles de entrada y salida**: En tunel de entrada puede ver e interactuar con el emisor mientras que el de salida puede hacerlo con el receptor. | ||
| + | {{drawio> | ||
| + | |||
| + | ===== La Idea Original ===== | ||
| + | El procedimiento es similar al del esquema de cadena de descifrado de las redes mix con la excepción de que el número de nodos usados y su orden no es fijo: | ||
| + | <WRAP box> | ||
| + | $O = A_1 || E_{k_1} (A_2 || E_{K_2}(A_3 || ... E_{k_n}(A_x || m)))$ | ||
| + | </ | ||
| + | Donde $A_i$ es la dirección del router $i$. En este caso, si el receptor responde al mensaje, la red es capaz de mantener un estado que permita enrutar de vuelta la respuesta al mensaje a través del mismo camino. La respuesta es construida por todos los routers, que añaden una capa de cifrado en cada paso usando sus claves privadas. Una vez que todos los routers han completado sus operaciones, | ||
| + | <WRAP box> | ||
| + | $R0 = E_{sk_1}(E_{sk_2}(... E_{SK_n}(r)))$ | ||
| + | </ | ||
| + | |||
| + | ===== TOR ===== | ||
| + | La implementación más popular del Onion Routing es TOR, que es considerada una versión evolucionada de la idea original, incluyendo algunas mejoras y mecanismos que lo hacen utilizable en aplicaciones reales. No es una red P2P, los usuarios no actuan independientemente, | ||
| + | |||
| + | Algunos routers también pueden actuar como directorios que muestran el estado de la red. No es seguro contra ataques de punto a punto, si la misma entidad contral el primer y último nodo de un camino puede inferir el emisor, el receptor y el contenido del mensaje. Tampoco oculta la identidad del emisor a nivel de aplicación. Construye los circuitos de forma diferente a la idea original: | ||
| + | * Los circuitos de TOR son siempre de 3 nodos: | ||
| + | * Primero se selecciona el tunel de salida ya que algunos pueden filtrar tráfico específico o puede no tener capacidad suficiente | ||
| + | * Un nodo se selecciona solo una vez. | ||
| + | * Para evitar que una entidad controle el túnel de entrada y el de salida, se aplican algunas reglas. | ||
| + | * El primer nodo es un "Nodo Guardia" | ||
| + | * Los circuítos son rotados periódicamente. | ||
| + | |||
| + | Cada router tiene una clave de identidad de largo plazo y una clave onion de corto plazo. La clave de largo plazo se usa para firmar certificados TLS que se usan para comunicarse con otros routers Onion y proxies. La clave de corto plazo es rotada periódicamente y se usa para construir circuitos y negociar claves para el cifrado y descifrado de los mensajes. | ||
| + | |||
| + | La red TOR construye los circuitos de una forma diferente a la idea original. El camino $A$ -> $C$ es creado siguiendo una aproximación interactive e incremental. | ||
| + | * Cada segmento del camino es construido o destruido progresivamente usando mensajes de control para crear, extender o eliminar el circuito. | ||
| + | * Cada segmento es identificado de forma indemendiente a trawvés de un identificador de circuito: | ||
| + | {{drawio> | ||
| + | * Durante la creación del circuito, se negocia una clave simétrica entre el emisor y cada router usando el protocolo Diffie-Hellman según se van construyendo los segmentos. | ||
| + | |||
| + | Una vez se ha construido el circuito y las claves han sido establecidas, | ||
| + | * El Onion Proxy cifra el mensaje usando las claves negociadas | ||
| + | * Los paquetes tienen un tamaño fijo de 512B y contienen una cabecera (Información de enrutado) y la carga (el mensaje). | ||
| + | * Usando la información identificativa del circuito, los routers pueden enviar los paquetes de forma apropiada por el caminio. | ||
| + | * En cada salto, los routers descifran una capa de cifrado usando la clave compartida | ||
| + | * En el caso de las respuestas, se realiza un cifrado en vez de un descifrado en cada capa. | ||
| + | |||
| + | ===== Servicios ocultos ===== | ||
| + | La idea es que tanto usuarios como el servidor no se conozcan (No conocen sus direcciones IP). Para conseguir esto, el servidor solicita diferentes routers (Normalmente 3) para actuar como punto de introducción. Una vez seleccionados los puntos de introducción, | ||
| + | - En vez de abrir la conexión directamente, | ||
| + | - El cliente envía la petición al punto de encuento preguntando por el servidor oculto. | ||
| + | - El punto de encuentro crea un circuito hasta el punto de introducción para enviar los datos al servidor oculto que los puede aceptar o rechazar. | ||
| + | - Si la petición es aceptada, el servicio oculto crea un circuito diferente hasta el punto de encuentro, donde conecta el cliente y el servicio. | ||