DNSCrypt es un protocolo de red que autentica y cifra el tráfico del Sistema de nombres de dominio (DNS) entre la computadora del usuario y los servidores de nombres recursivos . Fue diseñado originalmente por Frank Denis y Yecheng Fu.
Aunque existen múltiples implementaciones de cliente y servidor, el protocolo nunca fue propuesto al Grupo de Trabajo de Ingeniería de Internet (IETF) por medio de una Solicitud de Comentarios (RFC).
DNSCrypt envuelve el tráfico DNS sin modificar entre un cliente y un resolutor de DNS en una construcción criptográfica para detectar falsificaciones. Aunque no proporciona seguridad de extremo a extremo, protege la red local contra ataques de intermediarios . [1]
También mitiga los ataques de amplificación basados en UDP al requerir que una pregunta sea al menos tan grande como la respuesta correspondiente. Por lo tanto, DNSCrypt ayuda a prevenir ataques de amplificación de DNS .
Despliegue
Además de las implementaciones privadas, el protocolo DNSCrypt ha sido adoptado por varios solucionadores de DNS públicos, la gran mayoría miembros de la red OpenNIC , así como servicios de red privada virtual (VPN).
OpenDNS (ahora parte de Cisco ) anunció el primer servicio público de DNS compatible con DNSCrypt el 6 de diciembre de 2011, seguido poco después por CloudNS Australia. [2]
El 29 de marzo de 2016, Yandex anunció la compatibilidad con el protocolo DNSCrypt en sus servidores DNS públicos, así como en el navegador Yandex . [ cita requerida ]
El 14 de octubre de 2016, AdGuard agregó DNSCrypt a su módulo de filtrado de DNS para que los usuarios pudieran pasar de sus ISP a los servidores DNS personalizados o propios de AdGuard para la privacidad en línea y el bloqueo de anuncios . [3] [4]
El 10 de septiembre de 2018, el servicio público de resolución recursiva sin fines de lucro Quad9 anunció la compatibilidad con DNSCrypt. [5]
Otros servidores que admiten el protocolo seguro se mencionan en la lista de creadores de DNSCrypt. [6]
Protocolo
DNSCrypt se puede utilizar sobre UDP o sobre TCP . En ambos casos, su puerto predeterminado es 443 . Aunque el protocolo difiere radicalmente de HTTPS , ambos tipos de servicios utilizan el mismo puerto . Sin embargo, aunque DNS sobre HTTPS y DNSCrypt son posibles en el mismo puerto, deben ejecutarse por separado en diferentes servidores. Dos aplicaciones de servidor no pueden ejecutarse simultáneamente en el mismo servidor si ambas utilizan el mismo puerto para la comunicación; aunque teóricamente es posible un enfoque de multiplexación.
En lugar de confiar en las autoridades de certificación confiables que se encuentran comúnmente en los navegadores web, el cliente debe confiar explícitamente en la clave de firma pública del proveedor elegido. Esta clave pública se utiliza para verificar un conjunto de certificados, recuperados mediante consultas DNS convencionales. Estos certificados contienen claves públicas a corto plazo que se utilizan para el intercambio de claves, así como un identificador del conjunto de cifrado que se utilizará. Se anima a los clientes a generar una nueva clave para cada consulta, mientras que se anima a los servidores a rotar los pares de claves a corto plazo cada 24 horas.
El protocolo DNSCrypt también se puede utilizar para control de acceso o contabilidad, aceptando solo un conjunto predefinido de claves públicas. Los servicios de DNS comerciales pueden utilizarlo para identificar a los clientes sin tener que depender de las direcciones IP. [ cita requerida ]
Las consultas y respuestas se cifran utilizando el mismo algoritmo y se rellenan a un múltiplo de 64 bytes para evitar fugas de tamaño de paquete. A través de UDP, cuando una respuesta sería mayor que la pregunta que la conduce, un servidor puede responder con un paquete corto cuyo bit TC (truncado) se ha establecido. A continuación, el cliente debe volver a intentar utilizar TCP y aumentar el relleno de las consultas posteriores.
Las versiones 1 y 2 del protocolo utilizan el algoritmo X25519 para el intercambio de claves, EdDSA para las firmas, así como X Salsa20 - Poly1305 o X ChaCha20 -Poly1305 para el cifrado autenticado.
A partir de 2020, no hay vulnerabilidades conocidas en el protocolo DNSCrypt ni ataques prácticos contra sus construcciones criptográficas subyacentes.
DNSCrypt anonimizado
DNSCrypt anonimizado es una extensión de protocolo propuesta en 2019 para mejorar aún más la privacidad del DNS. [7]
En lugar de responder directamente a los clientes, un resolutor puede actuar como un proxy transparente para otro resolutor, ocultando la IP real del cliente a este último. DNSCrypt anónimo es una alternativa ligera a los proxies Tor y SOCKS, diseñada específicamente para el tráfico de DNS. [7]
La implementación de DNSCrypt anónimo comenzó en octubre de 2019, y la adopción del protocolo fue rápida, con 40 relés de DNS configurados solo dos semanas después de la disponibilidad pública de las implementaciones de clientes y servidores. [8]
Ver también
Referencias
- ^ "DNSCrypt / dnscrypt-proxy: dnscrypt-proxy 2 - Un proxy DNS flexible, compatible con protocolos DNS cifrados" . GitHub . DNSCrypt. Archivado desde el original el 20 de enero de 2016 . Consultado el 29 de enero de 2016 .
- ^ Ulevitch, David (6 de diciembre de 2011). "DNSCrypt - Crítico, fundamental y sobre el tiempo" . Cisco Umbrella . Archivado desde el original el 1 de julio de 2020 . Consultado el 1 de julio de 2020 .
- ^ "AdGuard DNS ahora es compatible con DNSCrypt" . Blog de AdGuard . Archivado desde el original el 12 de septiembre de 2017 . Consultado el 11 de septiembre de 2017 .
- ^ "Filtrado de DNS" . Base de conocimientos de AdGuard . Archivado desde el original el 11 de septiembre de 2017 . Consultado el 11 de septiembre de 2017 .
- ^ "DNSCrypt ahora en prueba" . Blog de Quad9 . Archivado desde el original el 28 de diciembre de 2019 . Consultado el 1 de julio de 2020 .
- ^ "DNSCrypt - Lista de servidores públicos DoH y DNSCrypt" . DNSCrypt . Archivado desde el original el 19 de junio de 2020 . Consultado el 1 de julio de 2020 .
- ^ a b "Especificación DNSCrypt anonimizada" . GitHub . DNSCrypt. Archivado desde el original el 25 de octubre de 2019 . Consultado el 1 de julio de 2020 .
- ^ "Relés DNS anonimizados" . GitHub . DNSCrypt. 1 de noviembre de 2019. Archivado desde el original el 1 de julio de 2020 . Consultado el 1 de julio de 2020 .
enlaces externos
- Página web oficial
- Especificación del protocolo DNSCrypt