Siento un poco de inercia visceral de que esto no es lo suficientemente bueno para 2017
La inercia intestinal no suele ser el mejor barómetro de seguridad real. :-) Pero, entiendo a qué te refieres. Te estás preguntando si algo que ha existido por un tiempo es lo suficientemente fuerte como para estar seguro en la era actual de ataques, ataques e infracciones constantes. Es una pregunta razonable, y pedir una aclaración nunca duele.
Las alternativas
Primero, el DNS no está encriptado de manera predeterminada. Por lo tanto, si no está ejecutando DNS Crypt, o enrutando su DNS a través de una VPN, está básicamente desnudo, lo cual (según el "estándar de tripa" y el estándar real no es lo suficientemente bueno para 2017.
Sí ... incluso a través de una VPN. Esa solicitud solo se cifra hasta que salga del punto final de VPN. Entonces, está desnudo de nuevo.
DNSCrypt Security
El protocolo DNSCrypt es bastante bueno y utiliza la criptografía moderna. Una sesión comienza con un paquete sin cifrar, que codifica información sobre el criptográfico que tiene a su disposición (certificados, etc.)
El servidor responde con certificados firmados para que los utilice el cliente. El cliente luego verifica los certificados utilizando claves públicas previamente distribuidas (bien conocidas / confiables) para ese proveedor.
Junto con su elección de clave pública, el cliente también elegirá qué clave va a utilizar según sus propias capacidades y luego (según ese certificado y sus propias capacidades) ejecutará un intercambio de claves con el proveedor (servidor DNS ).
Cuando se realiza la solicitud cifrada al proveedor (servidor DNS), la clave pública del cliente y un número mágico (que corresponde al certificado que eligió el cliente) se transmiten junto con la respuesta del cliente.
... y hubo mucho regocijo cifrado ...
Este es un patrón muy similar a cómo otras formas de cifrado establecen la comunicación (como SSL / TLS).
Se autentica
El protocolo DNSCrypt no solo se encripta, sino que también se autentica. Requiere autenticación antes del descifrado, que es el orden correcto de las cosas.
Si una solicitud está encriptada, pero no puede autenticarse (la firma no funciona) la solicitud se descarta silenciosamente.
Te permitirá aleatorizar tus claves
El protocolo admite claves de corto plazo y genera una nueva clave para cada solicitud, lo que hace que sea muy difícil para el seguimiento y registro de cualquier solicitud o actividad en términos de solicitudes.
Es moderno
El protocolo DNS Crypt usa Curve25119 elíptica en forma de Montgomery y hsalsa20 hash para el intercambio de claves. Este es el mismo material creado por Dan Berstein en su biblioteca de sodio .
¿Dónde está el punto débil?
Al igual que con la mayoría de criptografía, la debilidad está en la implementación. Se puede confiar en que OpenDNS, Google y algunas otras personas que realmente saben lo que están haciendo para hacerlo bien.
Configurar uno propio o usar uno al azar puede no ser una buena idea.
Otro punto débil es el registro (¿el proveedor registra lo que está haciendo? ¿Asegura los registros)? Además, si el implementador estaba usando claves comprometidas, eso también sería un problema.
Referencia