miércoles, 21 de agosto de 2013

Anexo 17: criptografía del onion routing

En una red que usa encaminamiento de cebolla la decisión más importante es el tipo de criptografía que se usa y la forma en que esta se usa. Esto es debido a que esta decisión será crucial en la eficiencia y en la seguridad del sistema.
onion routing

Criptografía asimétrica tradicional

Sería el enfoque utilizado en la idea primigenia. Este sistema es vulnerable a ataques basados en capturar el tráfico. Efectivamente, supongamos que un atacante puede grabar todos los datos que intercambian los routers. Si finalmente el atacante consigue comprometer todos los routers (acceder a sus claves privadas) entonces este puede descifrar todo el tráfico almacenado anteriormente. Para acotar este problema podríamos cambiar periódicamente las claves (pública y privada) de los routers.

Para ello estableceríamos un periodo de tiempo a la finalización del cual las claves caducarían y sería necesario establecer nuevas claves. La clave pública habría que difundirla y la antigua clave privada se destruiría para que no puediera ser obtenida nunca, asegurando así la persistencia de la seguridad del tráfico que se realizó usando la antigua clave. Serie bueno que el cambio de claves fuera frecuente ya que esto limitaría la cantidad de tiempo que tiene A para comprometer B y C, pero a la vez requeriría que los routers del sistema contactaran frecuentemente con un sistema que les actualizara las nuevas claves lo que llevaría a problemas de escalabilidad.

Claves simétricas de sesión

Este enfoque, utiliza claves simétricas de sesión establecidas desde el primer router. Algunos sistemas, por ejemplo Onion Routing, establecen circuito de claves simétricas, a partir de criptografía de clave pública, mediante una estructura de datos con capas que se pueden representar por el siguiente esquema (suponiendo que estamos en una camino de encaminamiento con tres saltos R1, R2, R3):

EPKR1, (K1, R2, EPKR2, (K2, R3, EPKR3, (K3, Pad)))
Donde:
  • PKRi es la clave pública de Ri
  • Ri es la dirección del nodo Ri
  • Ki es un material que permite establecer la/s clave/s de sesión compartida (puede haber una para cada sentido de la comunicación) entre el origen de la comunicación (el iniciador) y Ri (en inglés se le llama key seed material).

Observar que la capa final se identifica porque no contiene ni dirección destino, ni datos con significado para ser transmitidos. Este sistema es el que se usa por ejemplo en Onion Routing. En este sistema, en las capas de cebolla, aparece lo que se llama key seed material el cual consiste en 128 bits que aplicándole SHA producen las claves simétricas que luego se usan para establecer las claves simétrica. Onion Routing introduce además en su formato de mensaje un campo que permite meter como parámetro el algoritmo de cifrado simétrico que se va a usar en cada sentido de la comunicación. El sistema soportaba DES OFB y RC4. Dependiendo del algoritmo que se seleccione se calcula la clave a partir del key seed material de distinta forma. En este sistema el número de mensajes necesarios para establecer el circuito entre los routers de la red es igual al número de routers que intervienen. Por ejemplo si A se quiere comunicar con B a través de R1,R2 y R3 y en ese orden, son necesarios los siguiente mensajes:
  • A-R1
  • R1-R2
  • R2-R3
La principal desventaja de este enfoque es que no provee de perfect forward secrecy. Supongamos que un circuito se construye desde el iniciador con la secuencia de nodos A,B,C y que A es un router malicioso y por tanto el atacante puede descifrar todo lo que pasa y ha pasado por él. Si A graba todo el tráfico y en el último momento se compromete B (el cual sabe quien es el último nodo C), entonces se compromete C y A puede saber con quien se está comunicando el iniciador.

Una posible mejora para este problema es cambiar frecuentemente las claves públicas de cada nodo. Esto limita la cantidad de tiempo que tiene A para comprometer B y C, pero requiere que los routers del sistema contacten frecuentemente con un sistema que les actualice las nuevas claves lo cual puede tener problemas de escalabilidad.

Enfoque telescópico

Otros sistemas (Ej Tor y Cebolla) realizan una construcción incremental e interactiva del circuito, a la que llaman enfoque telescópico (del inglés telescopic approach).

En concreto Tor se apoya en el Tor Authentication Protocol (siglas TAP), cuya seguridad fue probada en el modelo de oráculo aleatorio. Tor lo que hace es realizar una ejecución secuencial de múltiples instancias de TAP. Para establecer el circuito realiza una autenticación RSA (criptografía de clave pública) de un solo sentido (ya que el iniciador nunca se autentica) y se aprovecha el protocolo de establecimiento de claves de Diffie-Hellman para establecer una clave simétrica entre cada router de la ruta y el iniciador de la comunicación. Para ello se utiliza el circuito parcialmente construido hasta ese momento.
Podemos decir que en cada tramo sucesivo del circuito se realiza una negociación interactiva de claves (protocolo de establecimiento de claves de Diffie-Hellman). Por ejemplo, cuando se establece una clave para el primer salto, el iniciador de la conexión tunela a través de esa conexión para establecer otra clave de sesión con el segundo router y así sucesivamente. Cuando el circuito ya no se usa, las claves de sesión se destruyen.

En el TAP la clave pública del nodo sólo se utiliza para iniciar la comunicación durante la cual se establece la clave temporal de sesión vía el protocolo de establecimiento de claves de Diffie-Hellman. Las claves se forman a partir del intercambio de mensajes en lugar de ser enviadas de forma cifrada. Por tanto, una vez que la sesión finalice (el circuito ha dejado de usarse) y se destruyan las claves de sesión, si se compromete un router (se obtiene su clave privada) esto no permite al adversario recuperar las claves de sesión eliminadas y descifrar así el tráfico cifrado bajo esa clave que pudiera tener almacenado. Por tanto tenemos perfect forward secrecy.


Por otra parte ya no es necesario almacenar hashes de las estructuras de datos previamente procesadas para evitar ataques de replay. Reinyectando uno de los mensajes del handshake del protocolo de establecimiento de claves de Diffi-Hellman provoca unos resultados de clave de sesión diferentes y por tanto ya no es un ataque efectivo.

Otra ventaja de estos sistemas es que son más robustos frente a nodos que no acepten conexiones, siendo la información que tiene que aportar el sistema, por ejemplo mediante un servicio de directorio, menos importante. Por ejemplo si el tercer router intermedio está caído durante el establecimiento del circuito, los dos primeros y el iniciador sólo tienen que escoger un nodo alternativo para sustituirlo.
En este sistema el número de mensajes necesarios para establecer el circuito entre los routers de la red es de complejidad O(n2). Por ejemplo si A se quiere comunicar con B a través de R1,R2 y R3 y en ese orden, son necesarios los siguiente mensajes:
  • A-R1
  • A-R1 (tunelado de conexión con R2)
  • R1-R2
  • A-R1 (tunelado de conexión con R3)
  • R1-R2 (tunelado de conexión con R3)
  • R2-R3

Observar que el establecimiento de la conexión tiene una complejidad O(n2) para el número de mensajes transmitidos como para el número de cifrados/descifrados. Esta forma de trabajar en sistemas de baja latencia suele ser sólo viable si el número de nodos intermedios se mantiene bajo. Por ejemplo cuando se usa Tor se suele restringir el número de nodos intermedios a 3.

Øverlier and Syverson mejoran la eficiencia de Tor usando un protocolo de establecimiento de clave Diffie-Hellman medio certificada. Para ello confía en parámetros de Diffie-Hellman precalculados cuyos componentes públicos son publicados y actualizados regularmente por cada router en el servicio de directorio. Los clientes pueden entonces generar sus propios parámetros de Diffie-Hellman y, usando la información publicada por los routers, calcular las claves de sesión que se compartirán con los routers en los circuitos. Estas propuestas reducen el coste de computación pero mantienen la complejidad de comunicación en O(n2).

Criptografía asimétrica no basada en PKI

Se han hecho diversas propuestas que persiguen establecer los circuitos en un solo paso para reducir la sobrecarga de coste de computación y de comunicaciones que tienen los sistemas que se basan en establecer circuitos en varios pasos (Enfoque telescópico).

Sin embargo el enfoque telescópico proporciona buenas propiedades como el secreto-hacia-adelante (en inglés forward-secrecy). Informalmente, se dice que esta propiedad es la que se da cuando se garantiza que las propiedades de seguridad permanecen incluso si el adversario puede corromper todas las partes que intervienen y aprender sus claves secretas después de que éstas hayan caducado.

En base a esta propiedad podemos precisar aún más y diferenciar así entre dos propiedades:
  • Se dice que hay secreto-hacia-adelante inmediato (en inglés immediate forward-secrecy) si se mantiene el secreto-hacia-adelante de todas las sesiones pasadas que han finalizado incluso si un adversario compromete un router. Observar que el secreto permanece aunque las claves privadas no hayan cambiado porque están en su periodo de validez. Este tipo de propiedad es satisfecha por Tor usando su Enfoque telescópico.
  • Se dice que hay secreto-hacia-adelante eventual (en inglés eventual eventual forward-secrecy) si se mantiene el secreto-hacia-adelante aunque un adversario pueda corromper un router después de un específico periodo de tiempo (después de que las claves privadas de los routers hayan cambiado).

Se ha demostrado que es imposible obtener secreto-hacia-adelante inmediato usando establecimiento de circuito con un sólo paso (de un modo no interactivo). Por tanto lo que intentamos buscar es secreto-hacia-adelante eventual.

Es evidente que es posible conseguir secreto-hacia-adelante eventual cambiando frecuentemente las claves asimétricas de los routers (criptografía asimétrica) de forma que se minimice el periodo de tiempo, y por tanto el impacto, de que se comprometiera la clave de un router. Una vez que se tiene la clave privada de un router entonces el atacante sólo puede violar la seguridad de la comunicación en el periodo de validez de esa clave. Implementar esta idea usando una PKI tradicional (cambiando las claves privada/pública asociada a cada router) es muy complicado en la práctica ya que fuerza a los router a generar nuevas claves, a generar su correspondiente certificado válido, a publicar dicho certificado y a que los usuario repetidamente obtengan dicho certificado.

Para conseguir secreto-hacia-adelante eventual de una forma más eficiente se han hecho varias propuestas usando criptografía asimétrica que no usa PKI: criptografía basada en identidad, criptografía sin certificado.

Criptografía basada en identidad

Aniket Kate y otros han propuesto usar esquemas de criptografía basada en identidad para construir un protocolo con encaminamiento de cebolla al que han llamado PB-OR (del inglés pairing-based onion routing). En la criptografía basada en identidad las claves públicas y las claves privadas de las partes se obtienen a través de un confiable Centro de Generación de Claves o KGC (del inglés Key Generation Center) que suministra claves con un periodo de validez determinado.
PB-OR usa la idea original del encaminamiento de cebolla para cifrar mensajes usando la clave pública del router, con la peculiaridad de que en este caso las claves son suministradas mediante el KGC y tienen asociadas el periodo de validez. Este sistema tiene dos problemas:
  • La existencia de un KGC confiable hace que este pueda descifrar cualquier mensaje de la red (key scrow problem). Esto puede ser resuelto utilizando por ejemplo un KGC distribuido. Construir este sistema no es para nada trivial y tiene sus propios problemas.
  • Se requiere que los routers interactúen con el KGC para obtener las nuevas claves secretas cada vez que acaba el periodo de validez. Aunque tienen la ventaja de no tener que gestionar y verificar certificados.

Mario Catalano, Mario Di Raimondo, Dario Fiore, Rosario Gennaro y Orazio Puglisi han propuesto un sistema, al que llaman fs-ID-OR, que usa un sistema de cifrado basado en identidad seguro hacia adelante (siglas fs-IBE) para las claves públicas de los routers. El circuito se forma de forma no interactiva y en un sólo paso. Este sistema logra eventual forward secrecy sin tener que usar KGC (como necesitabla PB-OR), ni tiene que comunicar ninguna clave pública ya que permanece estática (como necesitaban PB-OR o CL-OR). Al no ser interactivo, tampoco tiene una complejidad cuadrática sino lineal (como tenía el enfoque telescópico). El problema que tiene este sistema es que la KGC tiene que ser confiable ya que puede descifrar cualquier mensaje (key scrow problem). Para resolver este problema propone hacer modificaciones al esquema usando Criptografía sin certificados o PKI.

Criptografía sin certificados

Catalano y otros, han sugerido usar criptografía sin certificados y han definido dos protocolos con encaminamiento de cebolla (CL-OR y 2-CL-OR). Sin embargo este sistema resucita los problemas de escalabilidad que tenían los sistemas que usaban PKI con claves cambiantes. En efecto, cada router tiene que generar una clave asimétrica y comunicarse con otra entidad, por ejemplo un servidor de directorio, para que publique la parte pública y que pueda ser descargada por el resto de usuarios para su uso.

Clasificación

Los distintos sistemas que implementan este tipo de encaminamiento se distinguen por cómo se gestionan las claves, en cómo se construyen y procesan los mensajes, en cómo los nodos se conocen entre sí, en cómo se eligen los caminos o paths que recorren los mensajes, en si hay retardos intencionados y de qué tipo, en si hay tráfico de relleno, en el protocolo al que dan servicio (Ej IP, TCP, HTTP), etcétera.

Según los retardos

Podemos clasificar las redes que usan encaminamiento de cebolla según los retardos que introducen los routers desde que el mensaje llega a un nodo hasta que ese mensaje sale del nodo. Podemos distinguir dos tipos:
  • De alta latencia. Este tipo de redes introducen de forma intencionada retardos comparativamente largos y variables. Son más resistentes a ataques pero introducen demasiados retardo para tráfico interactivo (Ej navegación web, chat o conexiones SSH). Ejemplos de este tipo de redes son MixMaster, Babel y Mixminion
  • De baja latencia. Este tipo de redes son adecuadas a tráfico interactivo. Debido a esta restricción no introducen retardos artificiales o los introducen pero son de muy pequeña duración. Este tipo de redes tienen dificultades en contrarrestar ataques:
    • Basados en escuchar los dos extremos de la comunicación y hacer correlaciones de tiempo y volumen de tráfico
    • Que introducen tráfico entrante con patrones de tiempo y buscan patrones relacionados con ellos en el tráfico de salida.
Ejemplos de este tipo de redes son Freedom Network, Onion Routing y Tor.

Según los circuitos

Podemos clasificar las redes de cebolla atendiendo a si se establecen o no circuitos desde el origen al destino, también llamados caminos o túneles, por los que circulan mensajes. De esta forma podemos distinguir:
  • Redes en las que se establecen circuitos. La mayoría de redes de cebolla funcionan de esta manera. A su vez podemos dividir este tipo de redes según el número de pasos realizados para eligir el circuito:
    • Redes en las que el camino que tiene que recorrer un mensaje se decide en un solo paso. Ejemplos de este tipo de redes son Freedom Network y Onion Routing.
    • Redes en las que el camino se va decidiendo poco a poco en varios pasos. Ejemplo de este tipo de redes es Tor.
  • Redes es las que no se establecen circuitos. Se trata del llamado Encaminamiento de cebolla de caminos dinámicos (en inglés Dynamic Multipath Onion Routing). En estas redes cada paquete desde el origen al destino puede elegir un camino diferente. Ejemplo de este tipo de redes es MORE.

Según la naturaleza de los routers

Marc Rennhard propone clasificar las redes con encaminamiento de cebolla en función de la naturaleza de los nodos. Basándose en esto distingue entre:

  • Redes estáticas: Estos sistemas tienen unos relativamente escasos y bien conocidos routers de cebolla que son usados por un número mucho más grande de usuarios. Por eso decimos que son estáticas. Ejemplos de este tipo de sistemas son Onion Routing, Freedom Network y Tor. Este tipo de redes se pueden clasificar a su vez en función de quien proporciona los routers. Podemos distinguir:
    • Redes estáticas con routers proporcionados por voluntarios. En muchas redes estáticas los onion routers son proporcionados por voluntarios individuales o entidades colaboradoras. Es difícil encontrar voluntario o entidades independientes que aporten sus recursos para proporcionar desinteresadamente onion routers a la red. En especial en este tipo de redes que proporcionan cierto grado de anonimato y que pueden ser usadas como soporte para actividades controvertidas (Ej. publicación de información comprometida) o simplemente delictivas (Ej. tráfico de drogas). Ejemplo de este tipo de redes son MixMaster o Tor.
    • Redes estáticas con routers proporcionados como un servicio comercial. En estos sistemas una compañía proporciona un servicio de anonimato para el que es necesario el pago de cierta cantidad para usarlo. Para realizar el servicio la empresa realiza unas inversiones y proporciona el servicio directamente o a través subcontratas. La ventaja de este tipo de sistemas es que el servicio está controlado por una sola organización y se pueden tomar medidas centralizadas para paliar cualquier problema que pudiera haber. La gran desventaja de estos sistemas es que, debido al gran control que ejerce la organización, es necesario tener confianza en que ella misma no va a comprometer nuestra privacidad. Otra desventaja es que estos sistemas stán enfocados a ser rentables y proporcionar un alto grado de anonimato suele estar reñido con la rentabilidad (necesitaría mucho tráfico de relleno). Un problema para el éxito de este tipo de redes es que es difícil vender una servicio de anonimato no confiable al 100%. Un ejemplo de este tipo de sistemas fue la red Freedom Network cerrada en 2001.
  • Redes dinámicas: Estos sistemas están compuestos por onion routers que aparecen y desaparecen una y otra vez. Por eso decimos que son dinámicas. Ejemplos de este tipo de sistemas son los sistemas peer-to-peer Tarzan y MorphMix en los que cada usuario es al mismo tiempo un onion router.

0 comentarios:

Publicar un comentario