DNSSEC, securizando las comunicaciones en la web (II)
¿Por qué implementar DNSSEC?
En la primera parte se vió que el protocolo DNS adolece de algunas debilidades estructurales que lo hacen vulnerable a ciertos tipos de ataques y por eso se debió definir las extensiones de DNSSEC que permiten solventar estas debilidades sin forzar a un reemplazo inmediato de todos los servidores DNS existentes. El despliegue de DNSSEC es gradual a medida que los diferentes operadores van firmando zonas.¿En qué consiste la firma de zonas?
Se genera un par de claves (pública y su correspondiente privada) para cada zona:- El par de claves es propio de cada zona y no del servidor autoritativo.
- La parte privada se debe mantener bajo custodia:
- La privada firma los RRSets de la zona.
- La pública se debe publicar en DNS mediante un registro DNSKEY:
- La privada permite verificar las firmas de los RRSets.
- Un RRSet puede tener múltiples firmas generadas con diferentes claves.
¿Como puede un cliente verificar un RRSet de una cierta zona?
La manera de realizarlo es haciendo una consulta por el DNSKEY correspondiente o realizando los cálculos correspondientes y comparar con el RRSIG. Si coinciden la firma verifica, de lo contrario, noPero para confiar en la DNSKEY que sale de la misma zona que queremos verificar necesitamos verificar la cadena de confianza. Para ello con el registro DS “Delegation Signature”:
- Los registros DS “firman” claves de zonas hijas
- De esta forma uno puede verificar el DNSKEY de una zona buscando un registro DS en la zona padre
Por otra parte, la zona raíz no tiene "padre" a quien ir a pedirle un registro DS.
¿Cómo se verifica la autenticidad del root Trust-Anchor (TA)?
El TA de la zona raíz se publica fuera de banda, por ello la validación debe ser diferente:- Se puede bajar por HTTP/HTTPS
- Se puede verificar por otros mecanismos (certificados, firmas PGP)
- Similar a lo que pasa con la zona raíz misma, se debe cargar manualmente
¿Qué necesito para firmar mis zonas?
Se necesita trabajar en dos niveles:- Instalar y operar software que soporte el firmado de zonas.
- Definir los procedimientos y políticas de gestión y, manejo de claves y firmas.
- BIND
- OpenDNSSEC
- Otros...
Cadena de confianza
Los datos de una zona serán confiables si:- Se encuentran firmados por la llave de la zona zone-signing-key (zsk), mediante los respectivos RRs RRSIG.
- La zone-signing-key de la zona será confiable si está firmada por la llave key-signing-key (ksk), ambos RRs DNSKEY.
- La key-signing-key será confiable si está siendo apuntado por su respectivo RR DS del padre.
- Está firmado por la zone-signing-key del padre, o;
- Los records DS o DNSKEY fueron intercambiados fuera de banda y almacenados localmente ("Secure entry point").
¿Qué necesito para validar respuestas DNS?
A nivel de servidores DNS recursivos es posible validar respuestas de DNS de inmediato. Para lograrlo, se deben seguir los pasos especificados por el fabricante del software.Por ejemplo:
BIND 9.7 y superior:
- https://dnssec.surfnet.nl/?p=402
- http://www.isc.org/community/blog/201007/using-root-dnssec-key-bind-9-resolvers
- Unbound: https://dnssec.surfnet.nl/?p=212
DNSSEC vs. PKI
DNSSEC no implementa una PKI sobre DNS aunque se parecen.Los procedimientos de gestión de claves están basados en políticas locales y no hay “certificate authority”. Además, si todo un dominio y subdominios están bajo una administración única, entonces se puede aplicar más estrictamente un conjunto de políticas. Además, no hay CRL (“Certificate Revocation List”).
Procedimiento básico de firma de zona
Generación de un par de claves- Incluir el DNSKEY creado en la zona
- Si lo hacemos con BIND esto dispara:
- El ordenamiento de la zona
- Inserción de los registros RRSIG
- Generación de registros DS:
- Recordar que van en el padre
El Rol de Google en la implementación de DNSSEC
Google ha lanzado hace tres años Google Public DNS al igual que OpenDNS, para ayudar a hacer Internet más rápido y seguro. Actualmente, están avanzando con el proyecto para hacer la validación de los DNS resolvers totalmente compatible con DNSSEC . Anteriormente, se han aceptado y se ha enviado mensajes con DNSSEC, pero no validaba. Con esta nueva característica de seguridad, se puede proteger a las personas de los ataques, identificando y rechazando las respuestas no válidas de DNSSEC.Para contrarrestar los ataques de envenenamiento de caché, resolvers debe ser capaz de verificar la autenticidad de la respuesta. DNSSEC resuelve el problema mediante la autenticación de las respuestas DNS que utilizan las firmas digitales y la criptografía de clave pública. Cada zona DNS mantiene un conjunto de pares de claves públicas / privadas, y para cada registro de DNS, una firma digital única se genera y se cifra con la clave privada. La clave pública correspondiente se verifica a través de una cadena de confianza con las teclas de las zonas de nivel superior. DNSSEC previene eficazmente la respuesta de manipulación porque en la práctica, las firmas son casi imposible de falsificar sin acceso a las claves privadas. Además, los dispositivos de resolución rechazará las respuestas correctas sin firmas.
Actualmente Google Public DNS está atendiendo, en promedio, más de 130 mil millones de consultas DNS de más de 70 millones de direcciones IP cada día. Sin embargo, sólo el 7% de las consultas client-side se realizan con DNSSEC habilitado y el 1% de las respuestas DNS del server-side están firmadas. En general, DNSSEC se encuentra todavía en una fase inicial y se espera que con este apoyo se acelere la implementación.
Para obtener más información acerca de Google Public DNS, siga el siguiente enlace: https://developers.google.com/speed/public-dns.
¿Dónde obtengo información sobre DNSSEC?
Existe gran cantidad de información disponible sobre DNSSEC. Algunos de ellos son:- Introducción a DNSSEC (LACNIC Labs, en español y en inglés).
- Tutoriales de Registro.BR (en portugués).
- DNSSEC HOWTO (en inglés).
Video: Cómo funciona DNSSEC
Fuentes:
- SecurityWeek
- Lacnic
- http://www.labs.lacnic.net/site/sites/default/files/dnssec-citel-generalidades-ES-01.pdf
0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!