Contrata los servicios de alguien que hace las peticiones por ti: Mix Network. Por ejemplo: una VPN
La VPN hace las peticiones en nombre de sus clientes: -anonimato para un observador externo
Ningún observador externo puede correlar peticiones que entran en el Mix y las que salen (¡siempre que haya suficientes entradas!)
Problema: ¿seguro que la VPN no está logueando qué hacemos?
Enrutamiento onion
Anonimato de cliente
Solución completa: Tor
Tor (sigla de The Onion Router - El Enrutador Cebolla) es un proyecto con el objetivo de crear una red de comunicaciones de baja latencia y superpuesta sobre internet, en la que el encaminamiento de los mensajes intercambiados entre los usuarios no revela su identidad (dirección IP) y que mantiene la integridad y el secreto de la información que viaja por ella, y que además sea muy sencillo de utilizar.
Tor Relays, ejecutados por voluntarios en Internet
Usos
Navegación anónima: "Web normal"
Para el usuario: anónimo
Para el servidor: nada especial, el servidor no tiene por qué saber que el usuario es anónimo (pero ojo: algunos servidores detectan y expulsan a los usuarios que vienen de Tor)
Navegación .onion: "Dark web"
Para el usuario: anónimo
Para el servidor: anónimo
Si eres un investigador analizando malware, no querrás que los malos te identifiquen: ¡utiliza navegación anónima!
Surface, deep and dark web
Surface web: la web visible por Google
Deep web: no visible por Google o similares. Parte privada de foros, correos electrónicos, intranets de empresa, bases de datos...
Dark web: solo accesible con navegadores especiales y conociendo el enlace .onion
Navegación normal
Si usamos HTTPS, nadie sabe qué transmitimos
Pero hay muchos actores que saben que estoy hablando con un servidor
Alice escoge un nodo para que reenvíe un mensaje a Bob, y lo cifra con la clave pública de :
Solo puede descifrar , ya que solo tiene su clave privada.
sabe que el mensaje es para Bob, y conoce el mensaje a menos que Alice use TLS para comunicarse con Bob, lo que es obligatorio.
Si Alice le enviase directamente a Bob, Bob sabría que el mensaje viene de Alice
Para evitar que la identifique, Alice envía a diciendo que se lo reenvía a :
sabe que el mensaje viene de Alice, pero no sabe a dónde va: solo sabe que el siguiente paso es
Nadie más que puede descifrar
Alice puede hacer esto varias veces para mejorar su anonimato: Alice envía un mensaje a para que lo abra y se lo reenvíe a , que lo abrirá y lo reenviará a , que lo abrirá y lo reenviará a Bob.
A veces, los servidores también quieren permanecer anónimos: que nadie sepa dónde están ni qué IP tienen. De esta manera evitan que puedan cerrarse o atacarse
En realidad el ejemplo de Breaking Bad ilustraría un mal uso de Tor: Gus controla el punto de encuentro, así que puede conocer a Walter sin que Walter lo reconozca (como pasó en la serie)
Walter debería haber escogido él mismo el punto de encuentro, como en Tor
Creación de un servicio oculto en Tor
Crea un par de claves público/privada
Crea dirección .onion (hash de la clave pública)
Escoge un intermediario
Publica en base de datos distribuida dirección .onion e intermediario
Pregunta periódicamente al intermediario si hay mensajes para ti
Cuando llegue un mensaje (intento de conexión y punto de encuentro), crea un canal Tor hasta el punto de encuentro
Cuando un servidor quiere ofrecer un servicio, crea una dirección .onion (ejemplo: https://www.bbcnewsv2vjtpsuy.onion/) y se escoge un nodo intermediario
La dirección .onion está relacionadac con el hash de una clave pública creada ad-hoc por el servidor, y podemos validar que el servidor que nos responde es el que buscamos
Los nodos al final enrutaran mensajes que es muy posible que sean ilegales. ¿Quién querría hacer algo así?
Gente que quiere apoyar el proyecto
Gente que piensa que quiere apoyar el proyecto, pero venderá tu información ante cualquier problema
Universidades haciendo investigación
La policía intentando obtener información
La NSA, o el equivalente europeo, ruso o chino
Atacantes
No deberías fiarte de un nodo Tor. El sistema asume que los nodos Tor no son fiables. Si fuesen fiables, ¡serían suficientes circuitos de un solo relay!
¿Qué pasa si hay nodos Tor comprometidos?
Imagina un circuito con tres nodos Tor 1-2-3:
Si un adversario controla los tres nodos, nadie que use ese circuito es anónimo
Si un adversario controla el 1 y 3 (nodos de entrada y salida), puede intentar correlar entradas y salidas: puede (probabilidad) que descubra identidades
Si un adversario controla un nodo, aprende datos estadísticos, pero es poco probable que aprenda identidades
¡Cuantos más uses, menos probable es que un solo adversario los controle todos!
La lista de nodos Tor es conocida aunque cambiante: es "fácil" para un servidor detectar si sus clientes están usando Tor
De hecho, si "un trabajador" intenta entrar en la VPN empresarial usando Tor... ¡muy probablemente es un atacante! Las VPN empresariales suelen detectar y bloquear las entradas desde Tor
No es el objetivo de este curso no es evangelizar sobre la conveniencia del anonimato en Internet. Ahí tienes algunos argumentos a favor y en contra y enlaces con discusiones y propuestas
Vamos de describir unas tecnologías que pueden usarse para objetivos terriblemente perversos pero también para proteger la libertad de las personas y para saber cómo trabajan los ciberdelincuentes. El uso que les des es responsabilidad tuya
Hay mucha razones para querer anonimato en internet
Un investigador de ciberseguridad usará constantemente redes anónimas para que los atacantes no sepan quién los está investigando
Ojo: decidir la potencia que tiene tu adversario sirve para todos los sistemas de seguridad que hemos visto.
OJO: esto funciona si confiamos en todos los amigos. Ellos colaborarán porque les conviene, pero hay que estar seguros de que ninguno de ellos es realmente "un topo". En este caso, el k-anonimato se reduce
CROWDS fue un sistema teórico, nunca se ha implementado como tal. Pero esta idea de k-anonimato se aprovecha en muchos otros sistemas. Además, el sistema de CROWDS es óptimo: no se puede tener más anonimato que el ofrecido por CROWDS.
Problema principal de CROWDS: no es posible predecir cuánto tiempo tardará un mensaje en salir de la red. ¡Un mensaje puede estar rebotando dentro de CROWDS para siempre!
Aparte de las razones que hemos visto para utilizar navegación anónima, hay una más: si eres "de los buenos", a veces querrás visitar las webs "de los malos". Y casi nunca querrás avisar de que estás investigándoles.
- Descarga del malware que están usando, sin avisarles de qué país vienes y por tanto sin avisarles de que los has descubierto: si un malo sabe que los has descubierto, puede explotar "la bomba" ransomware inmediatamente. Durante una investigación conviene que los malos no sepan quién eres.
- Visita a sus páginas web, a ver si realmente tienen información de tus clientes
- ...
Image: https://www.silicon.es/wp-content/uploads/2013/10/Fuente-Shutterstock_Autor-Tomas-Urbelionis_anonimato-anonimo.jpg
Deep y dark web a veces se confunden. Esta es una propuesta de definiciones muy utilizada en la literatura para distinguie la web normal que no puedes encontrar en Google, porque es privada, de la web que no puede ser accedida con normalidad.
Como hemos estado viendo en todas estas sesiones, HTTPS ofrece confidecialidad, autenticidad e integridad: nadie sabe qué noticia estoy leyendo de elpais.com
- Excepto elpais.com, que sabe qué IP tengo y qué leo, y lo puede compartir con cualquiera
- Mi ISP también sabe que estoy conectándome a elpais.com
- Y los IXP, servidores de cloud, ISP destino... tienen que saber que yo estoy conectándome con elpais.com para poder enrutar mis mensajes. Auque no sepan qué página descargo, todo ellos saben que alguna página será. Incluso pueden sospechar cuál es midiendo tamaño de la conexión, tiempos de lectura...
- Si usamos comunicaciones anónimas como Tor, todo el mundo verás que hay alguien en Tor intentando conectarse a algún sitio. Pero ningún actor conoce todos los datos: la IP del cliente y la IP del servidor.
- OJO: si utilizamos un usuario y contraseña... elpais.com sabe quiénes somos aunque no sepa en qué IP estamos, y se lo puede contar a cualquiera
Fíjate que en este ejemplo el usuario es anónimo, pero el servidor no: veremos cómo anonimizar al servidor en el siguiente capítulo
Este esquema se parece un poco a CROWDS, pero Alice puede controlar la longitud del circuito. Normalmente es 3 ó 4 saltos. Alice cambiará el circuido cada 10 minutos, aproximadamente. O más bien: el servicio de Tor de Alice cambiará el circuito automáticamente, sin que Alice tenga que hacer nada
Alice debería buscar relays en países bien diferenciados, y quizá aquellos entre los que no haya "buen intercambio de datos", es decir, entre diferentes "bloques mundiales"
Una explicación más detallada de la transparencia anterior: el enrutamiento onion es como un ogro, tiene capas. También es como las muñecas rusas, una dentro de otra.
Esta es la transparencia anterior, pero con explicación gráfica del enrutamiento "cebolla"
El sistema funciona también como una mix network: hay mucha gente usándolo a la vez, así que no es fácil correlar las entradas y las salidas de la red ni siquiera para un adversario muy poderoso que sea capaz de monitorizar varios nodos (gobiernos)
¿Qué pasaría si el sistema solo tuviese un usuario? ¡Un adversario que vea un mensaje en Tor sabría de quién es!
Image: https://contribute.geeksforgeeks.org/wp-content/uploads/Onion-Routing-Page-1.png
Piensa en la temporada 2 de Breaking Bad, cuanto Walter quiere hablar con un traficante (que no sabe que es Gus):
- Walter utiliza a Saul para contactar con el traficante. En realidad Saul "conoce a alquien que conoce a alguien", pero no conoce directamente a Gus. Esto es un servicio de directorio, y "alquien que conoce a alquien" las personas que aceptan mensajes en nombre de Gus.
- Cuando le vuelve el mensaje a Walter, Gus y Walter quedan en un sitio "neutral": Los Pollos Hermanos. Este es el rendezvous
Las direcciones .onion tiene normalmente algunos caracteres al azar detrás de ellas. Eso es porque los servicios de directorio en realidad están distribuidos (tablas de hash distribuidas) y las direcciones .onion se comportan como un hash. Normalmente, creas una dirección .onion que empiece con un nombre identificable, como bbcnewsXXXXXXX, mediante la tarea laboriosa de crear pares de claves publico/privada cuyo hash tengan la cadena que buscamos. No siempre tendremos tiempo ni recursos para esto.
Ejemplos de relays Tor existentes cuando preparaba estas transparencias. La mayoría de relays Tor están en Europa, siempre ha sido así. Otros países tienen o bien poco interés de mantener nodos, o bien es peligroso hacerlo, o bien esos nodos pueden ser sospechosos de estar controlados por sus gobiernos.
De nada sirve que tus comunicaciones sean perfectamente anónimas con Tor si al final te logueas en Facebook y vas dejando comentarios en Internet con tu usuario
Hay muchos sistemas para perfilar: no hay mucha gente en el mundo que tenga una pantalla de 800x600, con un navegador con soporte de AVI345 y que use Linux Debian 9. Un navegador envía toda esta información al servidor nada más presentarse!
El navegador Tor intenta no enviar nada de esto, y utiliza un User-Agent cambiante. Pero eso no evita que la web pueda identificarte por los plugins que tengas instalados o el tamaño de tu ventana. ¡No cambies estas cosas!