Por si no lo sabías todavía, Cloudflare lanzó un servicio de resolutor de DNS con la privacidad como prioridad el 1 de abril. ¡Va muy en serio! El servicio, el primero que orientamos al consumidor, es compatible con estándares emergentes de DNS, como DNS mediante HTTPS:443 y TLS:853, además de protocolos tradicionales mediante UDP:53 y TCP:53, todo en una dirección fácil de recordar: 1.1.1.1.

Como se mencionó en el post original del blog, nuestra política es que nunca jamás se escriban las direcciones IP de los clientes en el disco y que se limpien todos los registros en 24 horas. Aún así, la gente más consciente con respecto a su privacidad no desea revelar su dirección IP al resolutor en ningún caso, y es algo que respetamos. Por ello, vamos a lanzar un servicio onion de Tor para nuestro resolutor en dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion, accesible a través de Tor.CloudFlare-dns.com.

NOTA: el resolutor oculto es todavía un servicio experimental y no debería utilizarse en producción o para usos de vital importancia hasta que se haya probado más.

Curso intensivo de Tor

¿Qué es Tor?

Imaginemos un Internet alternativo donde, para conectarte a www.cloudflare.com, en lugar de delegar la tarea de encontrar un camino hacia nuestros servidores a tu proveedor de Internet, tuvieras que seguir estos pasos para llegar a Cloudflare:

  1. Calculas una ruta a tu destino así:
    Tú -> Tu proveedor de servicios de Internet -> X -> Y -> Z -> www.cloudflare.com.
  2. Cifras tu paquete con la clave pública de Z, luego con la de Y, y finalmente con la de X.
  3. Envías el resultado a X, que lo descifra con su clave privada;
  4. X envía el resultado a Y, que lo descifra con su clave privada;
  5. Y envía el resultado a Z, que lo descifra con su clave privada para obtener el paquete original;
  6. Z envía el paquete a www.cloudflare.com.

Si cada uno realiza sus funciones correctamente, es posible garantizar que solo el repetidor de entrada X sepa tu dirección IP y solo el de salida Z sepa el sitio web al que te conectas, proporcionándote así privacidad y anonimato. Esta es una versión simplificada de Tor: una colección de equipos de voluntarios y servidores de todo el mundo actúan como repetidores para una red enorme, construida sobre Internet, donde cada salto de un repetidor a otro quita una capa de encriptación. De ahí su nombre: el enrutador onion (cebolla).

¿Qué son los servicios onion de Tor?

Mantener el anonimato de los usuarios de Internet no es la única función de la red Tor. En particular, una salvedad con respecto al procedimiento anterior es que el repetidor de salida y cualquiera entre este y el destino, incluidos los proveedores de red, aún pueden acceder a la conexión. Para resolver este problema y también proporcionar anonimato a los editores de contenido, Tor da paso a los servicios onion. Los servicios onion son nodos de Tor que anuncian su clave pública, codificada como una dirección con TLD .onion y establecen todas sus conexiones dentro de la red de Tor:

¿Cómo se resuelve un dominio cuando se usa Tor?

El proceso de devolver una dirección IP dado un nombre de dominio se conoce como resolución DNS. Como Tor todavía utiliza direcciones IP, aún hay que hacer resolución DNS para navegar por la web mediante Tor. Hay dos métodos comunes para resolver un nombre de dominio cuando se usa Tor:

  1. Resolver el nombre directamente, luego dirigirse a la dirección IP a través de Tor;
  2. Solicitar a un repetidor de salida de Tor que resuelva el nombre públicamente y conectarse a la IP.

Claramente, la primera opción filtra tu IP a tu resolutor de DNS y, a menos que tu cliente utilice DNS mediante HTTPS o DNS mediante TLS, se filtra el nombre de tu destino a tu proveedor de servicios de Internet. Lo que resulta menos evidente es que la segunda opción puede hacerte vulnerable a ataques de manipulación como envenenamiento de DNS o sslstrip de repetidores malos. Aquí es donde interviene nuestro servicio:

3.  ¡Pide un servicio de resolutor basado en .onion!

¿Cómo funciona el resolutor oculto de Cloudflare?

Sintetizando, nuestro servicio de resolutor basado en .onion es un servicio de onion de Tor que reenvía todas las comunicaciones de puertos DNS a los puertos correspondientes de 1.1.1.1, y así la IP del cliente que aparece es una IP interna en lugar de la tuya. Hay, sin embargo, más de lo que parece.

¿Es seguro el resolutor oculto?

Una diferencia evidente entre el uso de 1.1.1.1 y este servicio es que la dirección .onion consta de "dns4tor" además de 49 caracteres alfanuméricos aparentemente aleatorios. Esta cadena de 56 caracteres, de hecho, contiene una clave pública completa de Ed25519 que se utiliza para asegurar la comunicación con el servicio de onion. Eso plantea una serie de desafíos en cuanto la seguridad utilizable:

  1. ¿Cómo pueden los usuarios estar seguros de que la dirección sea correcta?

Simplemente compramos un certificado con tor.cloudflare-dns.com como título del asunto y la dirección .onion como un título alternativo para el asunto. Así, si estás en el lugar correcto, verás esto:

 2.  ¿Cómo pueden recordar los usuarios esta dirección?

No creemos que sea necesario recordar esta dirección. Idealmente, lo único que tendrías que hacer es ir a https://tor.cloudflare-dns.com y que el navegador dirija tu petición a la dirección .onion. Puede hacerse usando el encabezado HTTP "Alt-Svc", un encabezado opcional que notifica al explorador que se puede acceder a los recursos desde una ubicación de red alternativa, posiblemente usando un protocolo diferente. Gracias a Mozilla, usar direcciones de .onion como servicios alternativos es posible ahora en Firefox Nightly.

Piensa en esta función como un cifrado oportunista: una vez que el navegador recibe un encabezado Alt-Svc que indica que una dirección .onion está disponible para tor.cloudflare-dns.com, si sabe que se puede acceder a las direcciones .onion (por ejemplo a través de un proxy SOCKS), intenta comprobar que el nivel de seguridad del servicio alternativo es el mismo o mayor. Esto incluye asegurarse de que es posible conectar con el servicio onion utilizando el mismo certificado y Nombre del servidor. Si ese es el caso, el navegador utiliza el servicio alternativo en su lugar, garantizando que tus peticiones futuras no salgan de la red Tor.

¿Es rápido el resolutor oculto?

Hagamos un experimento mental: supón que entre dos puntos en la tierra hay un cable de fibra óptica, capaz de transmitir paquetes a la velocidad de la luz sin pérdidas.

Con un cálculo aproximado, es fácil ver que, de media, cada paquete recorre una distancia equivalente a un cuarto de la circunferencia de la tierra en unos 33 ms, mientras que cada paquete de Tor tarda aproximadamente 200 ms en dar una vuelta y media alrededor de la Tierra antes de llegar a un servicio onion; eso son tres vueltas para un viaje de ida y vuelta que garantiza el anonimato de ambas partes.

Cloudflare, sin embargo, no requiere anonimato para sus servidores, razón por la cual podemos reducir el número de repetidores a solo tres, habilitando una configuraciónopcional de servicios onion que priorice una menor latencia sobre el anonimato de la ubicación del servicio. Hay que subrayar que esto no afecta en modo alguno a la privacidad o al anonimato. De hecho, como habrás notado, en la primera imagen del servicio onion, el origen está a tres saltos de distancia del punto de encuentro, mientras que nuestro servicio onion solo está a un salto.

Trabajamos activamente en el desarrollo de maneras de hacer este servicio más rápido y garantizar que tiene el menor tiempo de inactividad posible.

¿Por qué debo utilizar el resolutor oculto de Cloudflare?

Ante todo, resolver las consultas DNS a través de la red Tor, por ejemplo mediante la conexión a la resolución 8.8.8.8 de Google, garantiza un nivel significativamente mayor de anonimato que realizar las peticiones directamente. Hacerlo no solo impide que la resolución vea tu dirección IP, sino que incluso tu proveedor de Internet no sabrá que has intentado resolver un nombre de dominio.

Todavía, a menos que el destino sea un servicio de onion, los atacantes pasivos pueden capturar paquetes que salen de la red Tor y los nodos de salida maliciosos pueden envenenar las consultas DNS o degradar la encriptación a través de sslstripping. Incluso si limitas la navegación a sitios HTTPS únicamente los atacantes pasivos pueden averiguar a qué direcciones te has conectado. Es más, hay actores capaces de comparar el tráfico antes de que entre en la red Tor y después de que salga de esta, que potencialmente pueden usar los metadatos (tamaño, tiempo, etc.) para desanonimizar al cliente. La única solución, entonces, es eliminar la necesidad de nodos de salida usando en su lugar servicios de onion. Eso es lo que ofrece nuestro resolutor basada en .onion.

Por otra parte, si tu cliente no admite consultas DNS cifradas, usando un resolutor basada en .onion puedes asegurar la conexión frente a los ataques en la ruta de acceso, incluidos los ataques de secuestro de BGP. Esto implica tener el mismo nivel de seguridad para DNS mediante UDP y TCP mediante DNS que proporcionan DNS mediante HTTPS y DNS mediante TLS.

Sin embargo, el anonimato personal no es la única razón por la que debes utilizar este servicio. La capacidad de Tor para garantizar el anonimato de todo el mundo depende del número de personas que lo utilizan. Si por ejemplo solo usaran la red Tor los denunciantes, entonces cualquier persona que se conectara a la red Tor automáticamente estaría bajo sospecha de ser un denunciante. Por lo tanto, cuanta más gente use Tor para ver memes o vídeos de gatitos en Internet, más fácil será para aquellos que verdaderamente necesitan anonimato mezclarse con el tráfico.

Para muchos usuarios, una barrera para usar Tor es que simplemente es lento, así que podría comprenderse a quienes no sacrifican la rapidez del tiempo de carga de páginas web para ayudar a mantener el anonimato de activistas y disidentes. Dicho esto, las solicitudes DNS son pequeñas en tamaño, y como la mayoría de navegadores y sistemas operativos almacenan los resultados DNS, el tráfico total no es significativo. Como consecuencia, utilizar el resolutor basado en .onion solamente ralentizará un poco tu petición DNS inicial sin frenar nada más, contribuyendo aún al anonimato general de la red Tor y sus usuarios.

¿Por qué debo confiar en el resolutor oculto de Cloudflare?

El uso de un resolutor basado en .onion garantiza que tu proveedor de servicios de Internet no sepa que resuelves un dominio, los nodos de salida no tienen la oportunidad de manipular las respuestas DNS y el resolutor nunca averigua tu dirección IP. Sin embargo, la ventaja especial de utilizar el resolutor basado en .onion de Cloudflare es la combinación de la potencia de Tor con todas las características de protección de la privacidad del resolutor 1.1.1.1, como la disminución de las consultas de nombre. Además, hay un equipo de ingenieros que trabaja para mejorarla en todos los niveles, incluidos estándares tales como DNS mediante HTTPS y DNS mediante TLS.

Como decía el directivo Matthew Prince hace dos años, el anonimato en línea es una causa que valoramos en Cloudflare. Además, cuando anunció el resolutor 1.1.1.1 nos comprometimos a dar todos los pasos técnicos para garantizar que no sabemos lo que haces en Internet. Proporcionar una manera de usar el resolutor a través de la red Tor de la manera más rápida posible es un gran paso en esa dirección.

¿Cómo configurarlo?

El resolutor basado en .onion es compatible con todos los protocolos DNS que funcionan con 1.1.1.1 solo en la red Tor. Sin embargo, puesto que no todos los clientes DNS pueden conectarse a la red Tor, es necesario algo de hackeo para lograr que funcione. Aquí explicaremos cómo configurar DNS mediante HTTPS según el resolutor basado en .onion. Para los demás casos, dirígete a la página de desarrolladores para ver los detalles de cómo utilizar el resolutor basado en .onion.

¿Te acuerdas de Cloudflared?

Aquí puedes ver cómo configurar Cloudflared para iniciar un cliente DNS que utiliza DNS mediante HTTPS, enrutado a través de la red Tor:

  1. En primer lugar, descarga Cloudflared siguiendo la guía general para Operar un cliente DNS mediante HTTPS.
  2. Ejecuta un proxy Tor SOCKS y usa socat para desviar el puerto TCP:443 al localhost:
socat TCP4-LISTEN:443,reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443,socksport=9150

3. Da instrucciones a tu equipo para que trate la dirección .onion como localhost:

cat << EOF >> /etc/hosts 
127.0.0.1 dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion 
128.EOF

4. Por último, inicia un DNS local mediante UDP daemon:

cloudflared proxy-dns --upstream "https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Adding DNS upstream                           url="https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Starting DNS over HTTPS proxy server          addr="dns://localhost:53"
INFO[0000] Starting metrics server                       addr="127.0.0.1:35659"

5. ¡Benefíciate!