Anonimato y DeepWeb

Juan Vera del Campo - juan.vera@professor.universidadviu.com

Como decíamos ayer...

Servicios de seguridad:

  • Los clásicos: confidencialidad, autenticidad, integridad, no repudio
  • Auxiliares: acuerdos de clave, anonimato...

En este tema veremos cómo usar la criptografía para ofrecer el servicio de anonimato. Así aprendemos un nuevo servicio, afianzamos conceptos que ya sabemos, conoceremos nuevos protocolos y exploramos qué capacidades tienen los adversarios

Hoy hablamos de...

  1. Comunicaciones anónimas
  2. Enrutamiento onion
  3. Servicios onion
  4. Referencias

Comunicaciones anónimas

center

El protocolo TLS asegura que nadie que escuche pasivamente una comunicación (confidencialidad). También evita ataques activos man-in-the-middle (integridad, autenticación)

TLS no evita que se sepa quién habla con quién: el cifrado se aplica en la capa de aplicación, no estamos cifrando los paquetes de red que incluyen IP origen e IP destino

Anonimato: impide que un tercero sepa quién está hablando con quién

Recordatorio: un paquete IP

center

  • Un paquete IP incluye obligatoriamente las direcciones IP reales de origen y destino
  • Todos los routers en el camino tienen que conocer estas direcciones para poder enrutar un mensaje
  • Todos los routers en el camino saben quién habla con quién

Estructura de Internet

Los usuarios nos conectamos a un servidor ISP... ¿y después qué?

Los ISPs se conectan entre ellos en puntos neutros nacionales (IXP, Internet Exchange Point)

Los IXP se conectan entre ellos con cables submarinos (entre otros)

Los servidores normalmente están "en la nube"

Puntos neutros: https://es.wikipedia.org/wiki/Punto_neutro
Ejemplo: Espanix https://www.espanix.net/es/trafico/

Los puntos neutros se conectan entre ellos a través de (entre otros) cables submarinos

Muchos de estos cables submarinos son propiedad de Google

Gran parte de la cloud pertenece a Amazon (AWS), o a Microsoft (Azure), o a Google (GCP), o Alibaba

¿Quién sabe a dónde te conectas?

  • Tu ISP lo sabe
  • Tu servidor de DNS lo sabe
  • Tu gobierno, en el punto neutro, sabe todo lo que tenga que salir de tu ISP
  • Google, en el cable submarino, sabe todo lo que salga del país
  • El gobierno de destino, en su puntro neutro, sabe quién se está conectando
  • Amazon, propietaria de la cloud en el servidor destino sabe quién se conecta
  • El servidor destino sabe quién se conecta y qué se está diciendo

Todos estos actores tienen la posibilidad de saber con quién te conectas, pero... ¿lo están haciendo realmente? Great Chinese Firewall, ECHELON, Data Retention Directive...

https://euobserver.com/opinion/146376
https://www.eff.org/nsa-spying
https://ssd.eff.org/en

Anonimato en Internet, ¿sí o no?

A favor del anonimato:

  • Querer intimidad NO equivale a tener algo que ocultar
  • Nada que ocultar... mientras estés 100% de acuerdo con la visión y las políticas de tu gobierno
  • Esta gente está buscando delincuentes. Podrías ser la persona más inocente del mundo, pero si alguien programado para ver patrones de delincuencia analiza tus datos, no va a encontrarte a ti: va a encontrar a un delincuente. Edward Snowden
  • Si no tenemos nada que ocultar, ¿por qué estamos bajo vigilancia? La privacidad debería ser un derecho a menos que se haga algo que levante sospechas legítimas
  • La intimidad no es para esconderse; la intimidad es para protegerse
  • Si se prohíben las comunicaciones anónimas... los malos seguirán usándolas igualmente como usan armas prohibidas

En contra del anonimato:

  • Controlar quién se conecta con quién permite a nuestros gobiernos detectar terroristas o pederastas
  • Las tecnologías de comunicaciones anónimas realmente ayudan a los terroristas y pederastas
  • La identificación de las personas puede rebajar el ciberacoso en Internet
  • La identificación de las personas impide que los niños accedan a contenido inadecuado

https://www.es.amnesty.org/en-que-estamos/blog/historia/articulo/siete-razones-por-las-que-no-tengo-nada-que-ocultar-es-la-respuesta-equivocada-a-la-vigilancia-mas/
https://www.bbc.com/future/article/20170529-the-reasons-you-can-never-be-anonymous-again
https://www.pewresearch.org/internet/2017/03/29/the-future-of-free-speech-trolls-anonymity-and-fake-news-online/

¿Quién es el adversario?

  • No quiero que los malos sepan que les estoy investigando
  • No quiero que Google sepa que fumo
  • No quiero que mis compañeros de trabajo conozcan mi orientación sexual
  • No quiero que el jefe sepa que estoy buscando trabajo
  • No quiero que mis clientes encuentren fotos de la fiesta de anoche
  • No quiero que el gobierno conozca mis ideas políticas
  • No legítimo: no quiero que la policía sepa qué he hecho
  • No legítimo: no quiero que X sepa que soy yo quien le acosa

Solución 1: servidores anónimos y adversarios

ProtonMail es un servicio de correo anónimo: nunca le dirá a las autoridades quién envió un correo. PERO alguien controlando las comunicaciones sabe quién estaba conectado a ProtonMail a la hora de envío de un correo.

  • ¿El adversario es tu pareja? Es suficiente el modo seguro del navegador
  • ¿Es tu empresa? La empresa tendrá acceso al firewall y sabe que te has conectado a Protonmail
  • ¿Es un gobierno? ProtonMail no enviará registros a ningún juez

ProtonMail puede ser perfectamente válido para tus seguridad: es necesario "identificar a tú adversario" para decidir el mejor método de protección.

Solución 2: CROWDS y k-anonimato

  1. Organízate con amigos para crear una red de personas (tú y 5 más).
  2. Si quieres descargar algo, con probabilidad le pides el favor a un amigo, y con probabilidad lo haces tú.
  3. El amigo hace lo mismo: con probabilidad le pasa el favor a otro (¡puedes ser tú!), y con probabilidad lo hace él.
  4. Así hasta que alguien hace la petición.

El servidor no sabe quién de las personas ha hecho la petición: k-anonimato.

Michael Reiter and Aviel Rubin (June 1998). "Crowds: Anonymity for Web Transactions" (PDF). ACM Transactions on Information and System Security.

Solución 3: Mix Networks y VPN

center

  1. Contrata los servicios de alguien que hace las peticiones por ti: Mix Network. Por ejemplo: una VPN
  2. La VPN hace las peticiones en nombre de sus clientes: -anonimato para un observador externo
  3. 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

center

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.

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
  • Si usamos HTTPS, nadie sabe qué transmitimos
  • Pero hay muchos actores que saben que estoy hablando con un servidor
  • Y el servidor lo sabe todo

https://www.eff.org/pages/tor-and-https

  • El servidor no sabe qué IP ha realizado la petición
  • Nuestro ISP sabe que estamos usando Tor
  • Los actores saben que alguien está usando Tor
  • Todos saben qué servidor está respondiendo

https://www.eff.org/pages/tor-and-https

  1. Alice conoce una lista de enrutadores Tor
  2. Alice crea una cadena (circuito) de enrutadores: 1, 2, 3
  3. Alice envía a el mensaje:
  4. descifra el mensaje, y se encuentra que es un mensaje cifrado para . Lo reenvía
  5. descifra el mensaje, y se encuentra que es un mensaje cifrado para . Lo reenvía
  6. descifra el mensaje, y se encuentra que es un mensaje para . Lo reenvía

center

https://www.wordfence.com/learn/the-tor-network-faq/

Enrutamiento "cebolla", en detalle

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

https://en.wikipedia.org/wiki/Onion_routing

center

https://es.wikipedia.org/wiki/Encaminamiento_cebolla

center

Ejemplo: visitando google.com con el navegador Tor (navegador basado en Firefox)

Observa:

  • El circuito de relays es de cuatro eslabones
  • Google se piensa que estamos en Suiza porque el nodo de salida está en Suiza
  • Curiosidad: ¡el nodo de entrada (Guard) cambia solo cada 2 o 3 meses!

Tor Browser
Why is the first IP address in my relay circuit always the same?

Servicios onion

Servicios .onion

  • 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

center

Creación de un servicio oculto en Tor

center

  1. Crea un par de claves público/privada
  2. Crea dirección .onion (hash de la clave pública)
  3. Escoge un intermediario
  4. Publica en base de datos distribuida dirección .onion e intermediario
  5. Pregunta periódicamente al intermediario si hay mensajes para ti
  6. Cuando llegue un mensaje (intento de conexión y punto de encuentro), crea un canal Tor hasta el punto de encuentro

https://medium.com/axon-technologies/hosting-anonymous-website-on-tor-network-3a82394d7a01

  • 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
  • La dirección .onion y el nodo intermediario se publican en una tabla de hash distribuida

  • Cuando alguien quiere usar el servicio, tiene que conocer de antemano la dirección .onion
  • En el ejemplo, Alice escoge un lugar de encuentro (rendezvous) y envía un mensaje a Bob a través de alguno de los intermediarios

  • Bob establece una conexión Tor con el rendezvous
  • Alice también
  • El rendezvous conecta las dos conexiones Tor

https://2019.www.torproject.org/docs/onion-services.html.en

DuckDuck Go

center

https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/

¿Dónde encuentro direcciones .onion?

¿Pero quién mantiene los nodos de Tor?

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!

center

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

https://www.dan.me.uk/tornodes
https://metrics.torproject.org/networksize.html

Recomendaciones de uso

¡Tor no te protege de todo! El servidor destino aún sabe qué datos estás enviando... y eso puede ser suficiente para identificarte.

center

https://www.eff.org/pages/tor-and-https

  1. No envíes información personal
    1. No uses Tor para conectarte a Facebook, Google, Twitter...: ¡te estás identificando!
    2. No uses Tor para búsquedas Google (o cosas similares): te perfilarán
  2. Mantén Tor actualizado
  3. Evita que te perfilen (fingerprinting). Tor está diseñado para que todos sus usuarios tengan el mismo perfil. ¡No hagas nada que cambie el perfil!
    1. No cambies tamaño de ventana, ni la maximices
    2. No instales plugins nuevos
    3. Borra cookies y otros datos

The Web Never Forgets ACM SIGSAC Conference on Computer and Communications Security November 2014
Photo: https://unsplash.com/photos/RLw-UC03Gwc

Referencias

Referencias

¡Gracias!

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!