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.
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