| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
| Proyecto Integral de Ingeniería del Software | |
|---|---|
| Metodologías Ágiles |
| Trabajo Fin De Grado | |
|---|---|
| Guía Memoria TFG |
| Servidores | |
|---|---|
| Minercraft | |
| Knoppia | |
| Omegacraft |
| Base de datos de juegos | |
|---|---|
| GameBoy Advance (GBA) |
Todas las redes de comunicaciones usan direcciones para realizar el enrutamiento de forma que los datos pueden ser transmitidos del origen al destino. Dichas direcciones suelen ser visibles para cualquiera que observer la red. Normalmente estas direcciones son identificadores únicos de forma que todas las transacciones relacionadas con un usuario puedan ser trazadas. Estas direcciones pueden ser asociadas con personas, lo que puede comprometer la privacidad.
Teniendo este en cuenta, anonimizar los canales de comunicación se vuelve algo necesario para poder salvaguardar la privacidad de los usuarios y proteger las comunicaciones contra el análisis de tráfico. Para ello puede ser necesaria la aplicación de técnicas de anonimización sobre la capa de aplicación como autenticación anónima, protocolos de voto anónimos o divisas anónimas.
Un sistema de comunicación anónimo oculta quien se está comunicando con quien y se pueden aplicar diferentes escenarios:
Esot significa que es necesario proveer la capacidad para que los usuarios puedan usar internet sin revelar sus identidades mientras operan con normalidad. El problema es que hay una contradicción entre privacidad personal y la aplicación de las leyes, incluyendo seguridad nacional. Se pueden establecer varios niveles de anonimidad:
Existen varias definiciones que pueden ser aplicadas a los sistemas de comunicación:
Existen varios modelos de ataque sobre redes de comunicaciones:
Requerimientos para la anonimidad en redes de comunicaciones:
El diseño de redes mix fue creado para implemetar sistemas de correo electrónico anónimos.
Esquema basado en criptografía RSA. Cada entrada ($m$) es secuencialmente cifrada usando la clave pública ($K_i$) de cada nodo.
$E_k(m,r) = A_1 || E_{k1}(A_1 || E_{k2}(A3 || ... E_{kn}(A_x || E_{kx}(m) || r_n) ... || r_2) || r_1)$
Donde $A_i$ es la dirección de la etapa $i$ y $r_i$ es una cadena de caracteres aleatoria usada para aleatorizar el cifrado de la capa $i$
$E_kx (m || RPI || K_s^s)$
$E_{k_s^s} [m'] || RPI$
Tipo de red mix basada en el sistema criptográfico ElGamal. El remitente cifra el mensaje $m$ usando la clave pública $K$ de la red mix:
$E_k(m,r) = g^r || (A_x || m)K^r$
Donde $g$ es un generador y $r$ es una cadena aleatoria. La clave pública K puede ser definida como:
$K = ∏^n_{i=1} K_i = Π^n_{i=1} g^{d_i} = g^{Σ^n_{i=1}d_i}$
Donde $K_i = g^{d_i}$ y $d_i$ so las claves públcia y privadas de la etapa i.
| Tipo | Ventajas | Limitaciones |
|---|---|---|
| Cadeba de descifrado | Se pueden incluir direcciones intermedias para el enrutado | El emisor debe realizar mútilples cifrados Todas las etapas deben participar en un orden espcífico. Las entradas pueden ser trazadas por apariencia/tamaño |
| Cadena de Recifrado | El emisor realiza solo un cifrado Las entradas no pueden ser trazadas por tamaño/apariencia No es necesario que todas las etapas participen y el orden no importa | No puede incluir direcciones intermedias para el enrutado Las etapas tienen que colaborar en la fase de descifrado. |
Consiste en una secuencia fija de etapas las cuales son comunes para cada emisor o receptor.
Consiste en una serie de etapas interconectadas que no tienen por que ser dependientes.
Verificar una red ivolucra el análisis de como de correcto es el procedimiento de acuerdo a los siguientes criterios:
La verificación se puede realizar a varios niveles:
Estos mecanismos en general no se pueden aplicar a las redes mix de enrutado libre
Este esquema solo detecta mensajes corruptos en la salida de la red. Para implementar este esquema de verificación el emisor incluye un cheksum con el mensaje:
No detecta la adición de mensajes. La eliminación de mensajes puede ser solo detectada si el emisor revisa si su propio mensaje está presente en la salida de la red. No se pueden identificar las etapas comprometidas.
Cada estapa verifica las salidas de la red usando protocolos adicionales para asegurar que todo se hace de forma correcta.
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:
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:
$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, el tunel de entrada envía la entrada al onion proxy del emisor:
$R0 = E_{sk_1}(E_{sk_2}(... E_{SK_n}(r)))$
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, son usuarios que se unen a la red usando una aplicación. La red opera a través de routers que son proveidos por organizaciones e individuos que donan su capacidad de procesado (nodos) al proyecto.
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:
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.
Una vez se ha construido el circuito y las claves han sido establecidas, se pueden enviar los datos:
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, el server crea un descriptor de servicio oculto mediante una tabla hash entre los routers. La descripción incluye la clave pública del server y la dirección de los routers de introducción. El usuario puede realizar peticiones para un servidor específico a través de su dirección onion, de forma que puede obtener el descriptor de servicio oculto de la red. Una vez se tiene la dirección de los puntos de introducción, se selecciona uno de forma aleatoria.