El Comité IETF (Internet Engineering Task Force), que se ocupa del desarrollo de protocolos y arquitecturas de internet, ha completado la creación de un RFC para el sistema de nombres de dominio GNS (GNU Name System), promovido por el proyecto GNUnet como una alternativa totalmente descentralizada y resistente a la censura al DNS. La especificación, publicada como RFC-9498, ha recibido el estatus de 'Estándar propuesto'. La implementación de GNS, que cumple completamente con el RFC publicado, forma parte de la plataforma GNUnet 0.20.0 y está también disponible en la base de código del proyecto GNUnet-Go.
GNS puede utilizarse junto al DNS y en aplicaciones tradicionales, como navegadores web. La integridad e inalterabilidad de los registros se garantiza mediante el uso de mecanismos criptográficos. A diferencia del DNS, GNS utiliza un gráfico dirigido en lugar de una jerarquía en árbol. servidores La conversión de nombres es similar a la del DNS, pero las solicitudes y respuestas se realizan manteniendo la privacidad: el nodo que procesa la solicitud no sabe a quién se le envía la respuesta, y los nodos de tránsito y observadores externos no pueden descifrar las solicitudes y respuestas.
La zona DNS en GNS se define mediante un par de claves pública y privada ECDSA basadas en la curva elíptica Curve25519. El uso de Curve25519 es considerado por algunos como un paso bastante extraño, ya que para ECDSA se utilizan otros tipos de curvas elípticas, y normalmente se usa el algoritmo de firma digital Ed25519 junto con Curve25519, que es más moderno, más seguro y más rápido que ECDSA. Desde el punto de vista de la resistencia criptográfica, también plantea dudas la elección del tamaño de la clave: 32 bytes en lugar de los 64 bytes que se utilizan normalmente para Ed25519, así como la aplicación de cifrado simétrico en cascada utilizando los algoritmos AES y TwoFish en modo CFB.
Este enfoque se explica por la necesidad de implementar claves jerárquicas, que permiten utilizar la clave pública raíz para extraer la clave pública hija, aprovechando la propiedad de linealidad de la curva Curve25519. Esta característica permite generar claves públicas hijas sin necesidad de conocer las claves privadas raíz. Esta técnica también se utiliza en Bitcoin. El tamaño de la clave de 32 bytes se eligió para que quepa en un solo registro DNS.
Fuente: opennet.ru
