530 likes | 712 Views
Migration vers DNSSEC avec OpenDNSSEC. Claude Gross GIP RENATER. Plan. Rappels sur DNSSEC La gestion des clés et des signatures Architecture sécurisée pour DNSSEC OpenDNSSEC Conclusion. Généralités. DNSSEC : But : améliorer la sécurité du DNS Comment ?
E N D
Migration vers DNSSECavec OpenDNSSEC Claude Gross GIP RENATER
Plan • Rappels sur DNSSEC • La gestion des clés et des signatures • Architecture sécurisée pour DNSSEC • OpenDNSSEC • Conclusion
Généralités • DNSSEC : • But : améliorer la sécurité du DNS • Comment ? • En signant les données distribuées par les serveurs DNS faisant autorité • Assurance de l’origine et de l’intégrité des données
Clés DNSSEC • Cryptographie asymétrique • Une (ou deux) paire(s) de clés par zones DNS • Clés publiques et signatures dans les fichiers de zones • Nouveaux types d’enregistrements : DNSKEY, RRSIG, …
Clés DNSSEC • Validation en utilisant la hiérarchie du DNS • Pour une zone DNS : • Confiance dans la clé publique de la racine • Toutes les zones entre elle et la racine sont signées (DNSKEY + RRSIG) • Chaque zone a une empreinte de la clé publique de la zone fille (DS) pour former la chaîne de confiance
Clés DNSSEC • En fait, souvent 2 paires de clés par zones • Parce qu’il est recommandé de renouveler les clés périodiquement • Parce que changer les clés implique une interaction avec la zone parente
Clés DNSSEC • Une paire ZSK (Zone Signing Key) qui signe les RRSet de la zone • Cette paire de clés est utilisée uniquement en interne • Aucune interaction avec la zone parente • Une paire KSK (Key Signing Key) qui signe la ZSK • C’est l’empreinte de la clé publique KSK qui sera donnée à la zone parente
Clés DNSSEC • Utilisation de 2 paires de clés : • Avantages • La paire ZSK peut être changée souvent et donc avoir une longueur plus courte • Moins d’impact sur les performances • La paire KSK peut avoir une longueur plus longue et être changée beaucoup moins souvent • Peu d’impact sur les performances puisqu’elle ne signe que la ZSK • Inconvénients • C’est plus compliqué
Clés DNSSEC • Pour valider la signature d’un enregistrement DNS pour une zone donnée, il faut donc : • Faire confiance à la clé KSK de la zone root • Obtenir toutes les clés publiques (KSK et ZSK) des zones concernées avec leursignature • Obtenir les enregistrements DS correspondants • Vérifier toutes les signatures en descendant dans l’arbre DNS jusqu’à l’enregistrement à valider.
Qui fait la validation DNSSEC ? • Résolveurs DNS • Configuration Bind • Charger la clé publique de la racine (fichier bind.keys) • Paramètres : options { ... dnssec-validation yes; };
Fichier de zone non signé $ORIGIN . $TTL 5400 ; 1 hour 30 minutes educ-rech.fr IN SOA ns.educ-rech.fr. hostmaster.educ-rech.fr. ( 2013111901 ; serial 21600 ; refresh (6 hours) 3600 ; retry (1 hour) 3600000 ; expire (5 weeks 6 days 16 hours) 172800 ; minimum (2 days) ) NS ns.educ-rech.fr. $ORIGIN educ-rech.fr. ns IN A 193.49.159.1
Fichier de zone signé educ-rech.fr. 3600 IN SOA educ-rech.fr. hostmaster.educ-rech.fr. 2013070622 21600 3600 3600000 3600 educ-rech.fr. 3600 IN RRSIG SOA 8 2 3600 20131128133650 20131121034407 12513 educ-rech.fr. IceScwur9NtT2eRiGXi4NH4t6dIiZO3 hTsGr3YxIrh/inX8PdDNET+JjOApvw4rnPJY8f8LEDpMSZA4eIwgn1zDhJSHJBtM9h3F76MQkVbrgMaw/pAN/xH2 hvsGDpxzT+X9aJqGHyWZ1RhGjvoavdDkVLPNx2TC/oSctw38YaaA= educ-rech.fr. 5400 IN A 193.49.159.110 educ-rech.fr. 5400 IN RRSIG A 8 2 5400 20131127013830 20131120114406 12513 educ-rech.fr. TUu2/jr3IWl7VmFeoH6hW8dUfQlunbVgj SxFdXlcsAf1XibufFOa+2G9MO1RvzIAF6s6456q7+pCCbeuOJXqWNapNCbipQ7SSPpwzhB0X7AwDxyGNkAAFta MNMxiIG057b1RGE3aeZLQai1tBcrPFjtENPIjdVYlYVgkDaeoJvM= educ-rech.fr. 5400 IN NS ns.educ-rech.fr. educ-rech.fr. 5400 IN RRSIG NS 8 2 5400 20131127112958 20131120134406 12513 educ-rech.fr. JVipK9ptkd3lksT58TuTurz8tFYL gu4l9gjDXp1RVnJPBfoUfMSkd/CmtU9fMZ221ZY1kbS8zz5deS4M/OsHywmAGuF3IO8mMxYlfUnpF1/1IVw WjRoNBHG9C/7hiZbpEOmcKRFxB2XUMvlsP70X+/Q0iJzpPT1F7Nm6O0wPfrY= educ-rech.fr. 3600 IN DNSKEY 256 3 8 AwEAAaft/ohq96xlTeztoDuz7Synvf/fP8ePlcBdQGBtdLumFF5WEgUCXtqXOT+I4p09heYx0plHVGMdaPWA6 W5yxW88yR3xt2Js3w6kTAU7PHC/Lxpd1NGARt0VKlKXx1lTUKSVmm/EYb5mhOEHA3D3LoGWRM9Mpywa6cVQAT/ YeL9d ;{id = 12513 (zsk), size = 1024b} educ-rech.fr. 3600 IN DNSKEY 257 3 8 AwEAAcJm9kAnERB2/1XCH/ZuyZ2lna1RWT881XvyiE3l5Ly07mBWOMMlNtdggTENQoNKZ7HYTCKBI/ILWzs 3a0DIwfnLhMaTqjIpfDWtyPdLvApqKuAdiydSOgjKoG4aOpyY5xIe6GjFwAEbtmWXgrRWxPVLdP+Ngr3ces9DC5i7OwC9F ufJUpcoCzW8g9Tj3MKUsMzQva6z++wjPh5+7mFQhyUHmEm7lUArsA4DiKQ9yv2jQbT9WIxmgVNxqJA5hHOYeMVte hoHJ9XsOeEaZQxBAMnpZQ2SXWR7pAlTnQYUBd3r/RDFqTFgI7pAA4t2igaHb8nysNOfdxLAX4BzwB35uwM= ;{id = 54 (ksk), size = 2048b} educ-rech.fr. 3600 IN RRSIG DNSKEY 8 2 3600 20131125034831 20131118091408 54 educ-rech.fr. YRNrgfgznWsYbekfpm21Bma8YU +EJbfatPnFeRmdx6u7c3KF8wQ2ucS5xy1OJgTtM4ChK9TWAqCtf7ylwrNQ8CwwoEY0wJoRbmsnmrh6nIj5TOu +y2MGauep2Kag1kmL5YJfwUu9Xjt8+OWd27Me92JZmEf9y7qbCNifnSAbIRCoFLBvTjNQvoIjDC5cPhsuVoD FDdfsZtBVQk++YrMEQ0HJs3uwQntyWZADXD5xfQczSka5hkKKfAytlD/LF62voQ1whpeRNOOOc3sarJqZIn8cVJ8K/tkWc+ +6xfLJvoQO7x8lP8B4bCpyACUvoBg7ph+oPEK2uULE6FellvV28g== educ-rech.fr. 3600 IN NSEC3PARAM 1 0 5 7da94e8af47db591 educ-rech.fr. 3600 IN RRSIG NSEC3PARAM 8 2 3600 20131125010219 20131117131407 12513 educ-rech.fr. CdNwDYKpmCwcqPkRQIoocCgb8VZLSPV5FTKTyr9JWQjRXfmKE3B78C0076PgtVmEYSwTftIqT/ jpCLEhzbdP7LHwuI77dJrkl8kGUzA1b757oFHRMOaail3aCF2UwC2XRBsHWFU3eTGUTFOubkQcF0DsUQ0HPZvSmx/fPEizkKI= fred3gek0pmrvlp10mfc25t7tre3es0p.educ-rech.fr. 3600 IN NSEC3 1 0 5 7da94e8af47db591 itblbgd9grice8erun87fgjlc64im48d A NS SOA RRSIG DNSKEY NSEC3PARAM fred3gek0pmrvlp10mfc25t7tre3es0p.educ-rech.fr. 3600 IN RRSIG NSEC3 8 3 3600 20131126002032 20131118211408 12513 educ-rech.fr. VxQbolArcrkuQaLfXO79oJ/ K56mO6/LhX6xz9Vc1XkXFbnY4EzwGVhIUfXoqPR532+2vFcsbSkrBCM6LJiWXHWZtO+u8BjWDqxLijkUXdc2XZHqnRkGh8z4rag1soJIstSpV51a n3i0NR8ZONx0VEJqbxm5MS0uyjLbxlR6Ovr8= ns.educ-rech.fr. 5400 IN A 193.49.159.110 ns.educ-rech.fr. 5400 IN RRSIG A 8 3 5400 20131128110822 20131121074407 12513 educ-rech.fr. jdW+9ulekczChOZtWu+fkoJhd621Ps5etAz2frGYtD5EwG 0jVFOllwmiaVUe/o6Yg49m03IZLIptXuE6UjFbG0lHGKAwf6Sen+ah8ZCKGvEssCW7NtVvfw14iDk9yIjNYM+/F7d5fExHzgbqt1t0t7BJPj0VIBP +tLxsTSxXsxI= 7ke29gaamtri62n9h1ktpqsrifehq71m.educ-rech.fr. 3600 IN NSEC3 1 0 5 7da94e8af47db591 fred3gek0pmrvlp10mfc25t7tre3es0p A RRSIG 7ke29gaamtri62n9h1ktpqsrifehq71m.educ-rech.fr. 3600 IN RRSIG NSEC3 8 3 3600 20131127151649 20131121014407 12513 educ-rech.fr. k5nVnabv2GDDNt9ozS +D4EP2cV6nACHEdZk0GvBLSz4IPqT08nwkX+OVxle4E+SdvXEH3gDS35SXxJQrlwjNeSmIYa6n3mxSc0A9QLepzYcJfAkmh4YnT96Yj +wx0wIzV4i7yl9TXcxIeSn6pKuc6LgFxMt8KiMUIrMa6QRN4vg=
Plan • Rappels sur DNSSEC • La gestion des clés et des signatures • Architecture sécurisée pour DNSSEC • OpenDNSSEC • Conclusion
Gestion DNSSEC • Les signatures • ont un début et une fin de validité • nécessité de re-signer les données périodiquement • Les clés • deviennent « fragiles » avec le temps • il est recommandé de les renouveler • d’autres évènements peuvent impliquer leur renouvellement • Choix de paramètres temporels
Gestion DNSSEC • Relation avec différents paramètres temporels du DNS • TTL des RRSets d’une zone (résolveurs) • refresh des zones (serveurs secondaires) • … • Impératif : une réponse DNS signée doit pouvoir être validée à tout instant et quel que soit la manière dont elle a été obtenue (directement d’un DNS primaire, d’un DNS secondaire ou à partir du cache d’un résolveur) • Pré-requis : avoir des serveurs à l’heure
Renouvellement des signatures • Les RRSet sont signés • À chaque modification de la zone • Avant la fin de validité de leur signature
Renouvellement des signatures • Validité des signatures (rfc 6781)
Renouvellement des signatures • Quelle période de validité ? • Contraintes : • Ne pas les rendre trop vulnérables • éviter les problèmes opérationnels • Au minimum : Durée de vie > TTL RRSIG + paramètre refresh de la zone + temps nécessaire pour faire le transfert • Recommandation => 1 mois
Roulement des clés • 2 méthodes principales (RFC 6781) • Pré-publication • Création de la nouvelle clé et publication dans le DNS mais sans l’utiliser (DNSKEY publié) • Publication du DS après le temps nécessaire pour diffusion dans tous les caches • Utilisation de la nouvelle clé (publication des RRSIG) • Suppression de l’ancienne clé quand toutes les signatures concernées ont expirées dans tous les caches • Double signature • On crée la nouvelle clé et on l’utilise tout de suite en même temps que l’ancienne (DNSKEY et RRSIG publiés avant le DS) • Après le temps nécessaire de diffusion, publication du DS • Suppression de l’ancienne clé après le temps nécessaire pour diffusion dans tous les caches
Changement d’état et roulement des clés (pré-publication) DNSSEC Key Timing Considerations», http://tools.ietf.org/html/draft-ietf-dnsop-dnssec-key-timing-03
Roulement des clés • La double signature a des conséquences • Sur la taille des fichiers de zones • Sur la charge des serveurs • Utilisation pour les KSK (une seule signature en plus par zone) • La pré-publication est utilisée pour les ZSK
Quand changer les clés ? • Compromis entre • Risques d’exposition trop longue • Risques induits par l’opération de roulement • Recommandations • Clés ZSK • Uniquement internes => roulement automatisable • Roulement tous les mois • Clés KSK • Interaction avec zone parente • Clé plus longue • Roulement tous les ans • Prévoir une procédure de roulement en urgence
Plan • Rappels sur DNSSEC • La gestion des clés et des signatures • Architecture sécurisée pour DNSSEC • OpenDNSSEC • Conclusion
Architecture • Nécessité de sécuriser le service DNS • Les clés privées • Mais aussi les données • Bien séparer les rôles • Serveurs faisant autorité • Serveurs caches récursifs (résolveurs)
Protection des données • Gestion du DNS • Sur des serveurs sécurisés • Sur des réseaux sécurisés
Protection des clés privées • Différentes solutions • Fichiers sur serveurs sécurisés • HSM « logiciel » • HSM matériel • Dépend du niveau de sécurité exigé, des ressources disponibles et du budget
Migration vers DNSSEC • Mettre en place une architecture adaptée • Choisir des outils pour l’automatisation • Tester (et re-tester) • Mettre en place des procédures rigoureuses et documentées • Mettre en place une supervision du système
Plan • Rappels sur DNSSEC • La gestion des clés et des signatures • Architecture sécurisée pour DNSSEC • OpenDNSSEC • Conclusion
Outils DNSSEC • Intégrés dans les logiciels DNS (Bind) • Outils d’automatisation libres • DNSSEC-Tools (www.dnssec-tools.org/) • OpenDNSSEC • … • Produits commerciaux • IPAM
OpenDNSSEC • Logiciel libre • Testé sur la plupart des systèmes Linux • Utilisable avec la plupart (tous ?) des logiciels DNS • Clés sur HSM (logiciel ou matériel)
OpenDNSSEC : fonctions • Ce que fait OpenDNSSEC • Fonctions automatisées : • Reçoit les zones non signées depuis des fichiers ou par transfert XFR • Gestion des changements d’état des clés : génération, publication, suppression des clés • Signature et re-signature des zones • Fournit les zones signés dans des fichiers ou par transfert XFR • Fonctions manuelles : • Ajout ou suppression de zones • Sauvegarde et exportation des clés • Roulement manuelle des clés • Supervision de base
OpenDNSSEC : fonctions • Ce que ne fait pas OpenDNSSEC • Transfert de l’empreinte de la clé publique à la zone parente
Schéma fonctionnel • En entrée : • Fichiers de zoneou • Transfert XFR • En sortie • Fichiers de zoneou • Transfert XFR
Schéma fonctionnel • Composants • Fichiers de configuration • Inclus la politique de gestion desclés et des signatures • 2 processus • Enforcer • Responsable de l’application de la politique de gestion des cléset des signatures • Signer • Responsable de la signature des zones selon les instructions de Enforcer
OpenDNSSEC : initialisation • Démarrage # ods-control start • Démarrage des 2 processus : ods-enforcerdet ods-signerd • Création des clés et signature de la zone
OpenDNSSEC : initialisation • Etape 1 : • Publication des clés dans le DNS # ods-ksmutilkeylist Keys: Zone: Keytype: State: Date of next transition: educ-rech.fr KSK publish 2013-11-05 11:15:00 educ-rech.fr ZSK active 2013-11-05 13:08:00
OpenDNSSEC : initialisation • Etape 2 • Clé KSK prête à être utilisée # ods-ksmutilkeylist Keys: Zone: Keytype: State: Date of next transition: educ-rech.frKSK readywaiting for ds-seen educ-rech.frZSK active 2013-11-05 13:08:00
OpenDNSSEC : initialisation • Etape 3 • Diffusion du DS à la zone parente # ods-ksmutilkey export –zone educ-rech.fr --keystateready --ds ;ready KSK DS record (SHA1): educ-rech.fr. 60 IN DS 42607 8 1 e3a09a742a195593dc5dc5041b8ad9b5ace2127f ;ready KSK DS record (SHA256): educ-rech.fr. 60 IN DS 42607 8 2 6a1448ecc94b91fcd10d71e8ae2c50579b24e51ee2b3b9adc1d92ed9fbc2e468
OpenDNSSEC : initialisation • Etape 4 • On attend que le DS soit diffusé # dig@d.ext.nic.freduc-rech.fr DS ;; QUESTION SECTION: ;educ-rech.fr. IN DS ;; ANSWER SECTION: educ-rech.fr. 172800 IN DS 54 8 2 264DF9086290454F3D45275E60F70A1273AAFD614E551BAE5C4E3D6C DC6F3B81
OpenDNSSEC : initialisation • Etape 5 • On indique à OpenDNSSEC que la clé est diffusée # ods-ksmutilkeyds-seen –zone educ-rech.fr --keytag 42607 Foundkeywith CKA_ID 0bdb802ed3eb751d0e53cde45206782f Key 0bdb802ed3eb751d0e53cde45206782f made active Notifyingenforcer of new database… • La clé change d’état : # ds-ksmutilkeylist Keys: Zone: Keytype: State: Date of next transition: educ-rech.fr KSK active 2014-10-09 14:56:38 educ-rech.fr ZSK active 2013-11-05 13:08:00
OpenDNSSEC : initialisation • Etape 6 : la zone DNS est maintenant signée # digeduc-rech.fr +dnssec ;; … ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42051 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1 ;; … ;; ANSWER SECTION: educ-rech.fr. 5400 IN A 193.49.159.110 educ-rech.fr. 5400 IN RRSIG A 8 2 5400 20131111012334 20131104072841 34440 educ-rech.fr. Y5X+R9UQ9ft…BuRTAFfHFDCUBvb1Xo3 I8M= ;; AUTHORITY SECTION: educ-rech.fr. 5400 IN NS dnssec2.renater.fr. educ-rech.fr. 5400 IN NS dnssec.renater.fr. educ-rech.fr. 5400 IN RRSIG NS 8 2 5400 20131110140751 20131103112840 34440 educ-rech.fr. Nj0F4B5QJsE/Nl…xmQy6iHKXx h/E=
OpenDNSSEC : et après ? • (Presque) toutes les opérations sont automatisées • Re-signature • Après maj • Avant date d’expiration • Roulement des clés ZSK • Régénération des clés KSK (pas la maj du DS lors du roulement des clés KSK)
OpenDNSSEC : et après ? • Le jour arrive : # ods-ksmutilkeylist --verbose SQLitedatabase set to: /var/lib/opendnssec/kasp.db Keys: Zone: Keytype: State: Date of next transition (to): Size: Algorithm: CKA_ID: Repository: Keytag: educ-rech.fr KSK active 2014-10-09 14:56:38 (retire) 2048 8 94bcccd6f8d4809e1c44fb223a4e2e67 SoftHSM 42487 educ-rech.fr KSK ready waiting for ds-seen (active) 2048 8 fbe46037037928b33c509d04708d72bd SoftHSM 33182 educ-rech.fr ZSK active 2014-09-26 15:42:13 (retire) 1024 8 26f40ec6c1f66383e2620c4074c89773 SoftHSM 20164 • On exporte le nouveau DS
Vérification • Outils de validation DNSSEC • ZoneCheck • DNSSEC Analyzer http://dnssec-debugger.verisignlabs.com/ • DNSViz http://dnsviz.net/ http://dnsviz.net/ • DNS Check http://dnscheck.iis.se/
Vérification • Extension navigateurs • DNSSEC Validator • Firefox • Chrome • IE
Plan • Rappels sur DNSSEC • La gestion des clés et des signatures • Architecture sécurisée pour DNSSEC • OpenDNSSEC • Conclusion
Conclusion • DNSSEC est une solution pour l’amélioration nécessaire de la sécurité du DNS • Le contexte technique est aujourd’hui favorable à la mise en œuvre de DNSSEC • Racine signée • TLDs signés • Implémentations logicielles disponibles
Conclusion • Mais la mise en œuvre de DNSSEC • Crée des risques opérationnels nouveaux • Implique donc une sécurisation adaptée de l’ensemble du service • Mettre en place une architecture adaptée • Choisir des outils pour l’automatisation • Mettre en place des procédures rigoureuses et documentées • Mettre en place une supervision du système • Impact important (technique et organisationnel)