Articulo de referencia

Curva DNS

DNSCurve es un protocolo seguro propuesto para el Sistema de nombres de dominio (DNS), diseñado por Daniel J. Bernstein . Encripta y autentica paquetes DNS entre los servidores ...

DNSCurve es un protocolo seguro propuesto para el Sistema de nombres de dominio (DNS), diseñado por Daniel J. Bernstein . Encripta y autentica paquetes DNS entre los servidores de resolución y los servidores autorizados.

DNSCurve afirma tener ventajas sobre los servicios DNS anteriores: [1]

  • Confidencialidad: las solicitudes y respuestas de DNS habituales no están cifradas y se transmiten a cualquier atacante.
  • Integridad: el DNS habitual tiene cierta protección, pero con paciencia y rastreo, los atacantes pueden falsificar registros DNS; esto se evita mediante la autenticación criptográfica DNSCurve.
  • Disponibilidad: el DNS habitual no tiene protección contra la denegación de servicio (DoS) por parte de un atacante que envía unos pocos paquetes falsificados por segundo. DNSCurve reconoce y descarta los paquetes DNS falsificados, lo que proporciona cierta protección, aunque SMTP , HTTP y HTTPS también son vulnerables a la DoS .

Estructura

DNSCurve utiliza la criptografía de curva elíptica Curve25519 para establecer la identidad de los servidores autorizados. [2] Las claves públicas de los servidores autorizados remotos se colocan en registros NS, de modo que los solucionadores recursivos sepan si el servidor admite DNSCurve. Las claves comienzan con la cadena mágica y van seguidas de una codificación Base32 de 51 bytes de la clave pública de 255 bits del servidor. Por ejemplo, en formato BIND : uz5

ejemplo.com. EN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.ejemplo.com.   

La identidad se utiliza para establecer claves utilizadas por un esquema de cifrado autenticado que consta de Salsa20 y Poly1305 . La configuración criptográfica se denomina "caja criptográfica", específicamente crypto_box_curve25519xsalsa20poly1305. [3]

La herramienta de "caja criptográfica" utilizada en DNSCurve es la misma que se utiliza en CurveCP , un protocolo basado en UDP que es similar a TCP pero utiliza criptografía de curva elíptica para cifrar y autenticar datos. Una analogía es que mientras DNSSEC es como firmar una página web con Pretty Good Privacy (PGP), CurveCP y DNSCurve son como cifrar y autenticar el canal utilizando Transport Layer Security (TLS). Así como las páginas web firmadas con PGP se pueden enviar a través de un canal cifrado utilizando SSL, los datos de DNSSEC se pueden proteger utilizando DNSCurve. [4]

Operación

El solucionador primero recupera la clave pública del registro NS, consulte § Estructura más arriba.

A continuación, el solucionador envía al servidor un paquete que contiene su clave pública DNSCurve, un nonce de 96 bits y una caja criptográfica que contiene la consulta. La caja criptográfica se crea utilizando la clave privada del solucionador, la clave pública del servidor y el nonce. La respuesta del servidor contiene un nonce de 96 bits diferente y su propia caja criptográfica que contiene la respuesta a la consulta.

Seguridad

DNSCurve utiliza criptografía de curva elíptica de 256 bits, que el NIST estima que es aproximadamente equivalente a RSA de 3072 bits. [5] ECRYPT informa una equivalencia similar. [6] Utiliza criptografía de clave pública por consulta (como SSH y SSL) y nonces de 96 bits para protegerse contra ataques de repetición. Adam Langley, responsable de seguridad de Google, dice: "Con una probabilidad muy alta, nadie resolverá jamás una sola instancia de Curve25519 sin una gran computadora cuántica". [7]

Velocidad

Adam Langley ha publicado pruebas de velocidad en su sitio web personal que muestran que Curve25519, utilizado por DNSCurve, es el más rápido entre las curvas elípticas probadas. [8] Según la Agencia de Seguridad Nacional de los Estados Unidos (NSA), la criptografía de curva elíptica ofrece un rendimiento muy superior al de RSA y Diffie–Hellman a una tasa geométrica a medida que aumentan los tamaños de clave. [9]

Implementaciones

DNSCurve obtuvo por primera vez soporte recursivo en dnscache a través de un parche [10] de Matthew Dempsky. Dempsky también tiene un repositorio en GitHub que incluye herramientas de búsqueda de DNS en Python y un reenvío en C. [11] Adam Langley también tiene un repositorio en GitHub. [12] Hay un reenvío autorizado llamado CurveDNS [13] que permite a los administradores de DNS proteger las instalaciones existentes sin aplicar parches.

Jan Mojžíš ha lanzado curveprotect, [14] un paquete de software que implementa la protección DNSCurve y CurveCP para servicios comunes como DNS, SSH, HTTP y SMTP.

DNSCurve.io (2023) recomienda dos implementaciones: dqcache de Jan Mojžíš para resolutores recursivos y CurveDNS para servidores autorizados. [15]

Despliegue

OpenDNS , que tiene 50 millones de usuarios, anunció el soporte para DNSCurve en sus resolutores recursivos el 23 de febrero de 2010. En otras palabras, sus resolutores recursivos ahora usan DNSCurve para comunicarse con servidores autorizados si están disponibles. [16] El 6 de diciembre de 2011, OpenDNS anunció una nueva herramienta, llamada DNSCrypt . [17] DNSCrypt se basa en herramientas criptográficas similares a DNSCurve, pero en cambio protege el canal entre OpenDNS y sus usuarios. [18]

Ningún proveedor de DNS igualmente autorizado y de gran tamaño ha implementado aún DNSCurve.

Véase también

DNSCurve está pensado para proteger la comunicación entre un solucionador y un servidor autorizado. Para proteger la comunicación entre los clientes DNS y los solucionadores, existen varias opciones:

Notas

  1. ^ ab "Introducción a DNSCurve". DNSCurve . 22 de junio de 2009 . Consultado el 16 de marzo de 2016 .
  2. ^ DJ Bernstein. «Curve25519: criptografía de curva elíptica de alta velocidad» . Consultado el 30 de enero de 2013 .
  3. ^ "Cifrado autenticado con clave pública: crypto_box". nacl.cr.yp.to . crypto_box es curve25519xsalsa20poly1305, una combinación particular de Curve25519, Salsa20 y Poly1305 especificada en "Criptografía en NaCl". Se supone que esta función cumple con las nociones estándar de privacidad e imposibilidad de falsificación por parte de terceros.
  4. ^ "CurveCP: Seguridad utilizable para Internet" . Consultado el 18 de enero de 2024 .
  5. ^ "Recomendaciones del NIST (2011)".
  6. ^ "Informe anual de ECRYPT II sobre algoritmos y tamaños de clave (2010-2011)" (PDF) . Archivado desde el original (PDF) el 2 de junio de 2012.
  7. ^ "Adam Langley sobre la seguridad de curve25519".
  8. ^ "Adam Langley: Qué diferencia hace un número primo".
  9. ^ "El caso de la criptografía de curva elíptica". NSA . Archivado desde el original el 17 de enero de 2009 . Consultado el 17 de enero de 2009 .
  10. ^ "Parche DNSCurve para dnscache". Archivado desde el original el 28 de diciembre de 2012.
  11. ^ "Repositorio DNSCurve de Matthew Dempsky en GitHub". GitHub . 13 de agosto de 2019.
  12. ^ "Repositorio DNSCurve de Adam Langley". GitHub . 13 de agosto de 2019.
  13. ^ "CurveDNS: un servidor de nombres de reenvío de DNSCurve". GitHub .
  14. ^ "curveprotect, una compleja colección de herramientas para proteger una amplia gama de servicios de Internet". Archivado desde el original el 26 de mayo de 2013. Consultado el 9 de mayo de 2012 .
  15. ^ "DNSCurve.io - Una comunidad para DNSCurve". dnscurve.io .
  16. ^ "OpenDNS adopta DNSCurve". Archivado desde el original el 26 de febrero de 2010. Consultado el 13 de abril de 2010 .
  17. ^ "OpenDNS presenta DNSCrypt". Archivado desde el original el 3 de febrero de 2013.
  18. ^ "net/dnscrypt-proxy: dnscrypt-proxy-1.4.3 – comunicaciones seguras entre un cliente DNS y un solucionador". Puertos OpenBSD . 2015-01-06 . Consultado el 2015-02-09 .
  • Sitio web oficial
  • DNSCurve.io: una comunidad para usuarios de DNSCurve
  • Criptografía de alta velocidad y DNSCurve, presentación del autor en junio de 2009
  • DNSCurve: Seguridad utilizable para DNS, una presentación del autor en agosto de 2008
  • Propuesta de estándar "DNSCurve: Link-Level Security for the Domain Name System", enviada por M. Dempsky (de OpenDNS ) a IETF (actualizada en febrero de 2010)
  • OpenDNS adopta DNSCurve Archivado el 26 de febrero de 2010 en Wayback Machine , entrada oficial del blog de OpenDNS
  • CurveDNS, servidor de nombres de reenvío DNSCurve
  • Biblioteca de NaCl, redes y criptografía
Obtenido de "https://es.wikipedia.org/w/index.php?title=CurvaDNSC&oldid=1260327194"