1 Tutorial DNSSEC 22 juin 2009 Tutorial DNSSEC Présenté par : Stéphane Bortzmeyer, AFNIC SARSSI 2009 - Luchon, 22 juin 2009

Slides:



Advertisements
Présentations similaires
Mise en place d’un système de détection d’intrusion Présenté par:  Elycheikh EL-MAALOUM  Zakaria ZEKHNINI  Mohammed RAZZOK Encadré par: : Mr. SEFRAOUI.
Advertisements

Comprendre Internet Bases théoriques et exercices pratiques, pour débutants complets... Et curieux !
1 Tutorial DNSSEC 22 juin 2009 Tutoriel DNSSEC Présenté par : Stéphane Bortzmeyer, AFNIC JRES Nantes, 4 décembre 2009
Copyright © S.Urbanovski1 Domain Name System.
La Neutralité du Net - Net Neutrality -. Principe Fondamental Router sans tenir compte du contenu Ne pas privilégier une adresse Ne pas privilégier un.
V.1a E. Berera1 IPv6 IPv6 et la sécurité: Gestion des clés Objectif: Comment distribuer les clés.
V.1a E. Berera1 IPv6 Nommage Serveur de noms DNS Objectif: Comprendre les modifications de DNS pour supporter IPv6.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
Présentation du programme
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
Adressage IP Page 1 L’adressage IP.
TRAAM Académie de Limoges1 TRAvaux Académiques Mutualisés Comment intégrer à l’enseignement de la technologie les services mis à la disposition des élèves.
MRP Étapes 1/12 Introduction Définitions JP Rennard Objectifs Toute entreprise appelée à fournir des biens et services est amenée à gérer la double contrainte.
Windows NT/2000/XP Enjeux et contraintes techniques
Système d’aide à la décision Business Intelligence
Couche 3.
Rappels et présentation du réseau local
Qu’est-ce un serveur de messagerie?
L’IPv6.
Introduction aux Systèmes de Gestion de Bases de données
Qualité de Web Services (QoS ou QdS)
Introduction à la cryptographie
Javadoc et débogueur Semaine 03 Version A17.
Chiffrement de bout en bout
Séminaire EOLE Dijon Octobre 2010
Sécurité Web Protocole HTTPS.
Profils d’emplois JT du 24 septembre 2001
Les bases de données et le modèle relationnel
Centralisation de logs
Le cryptage B.T.S. S.I.O – SISR3 –
Pile IGMPv3 de Host.
Comment fonctionne RADIUS?
Mathieu GAUTHIER-LAFAYE
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Sécurité des réseaux (gestion et politique de sécurité) Présenté par : - Megherbi Aicha Ahlem 1.
Cours VI – Cryptographie symétrique
Cyril Bras Journée « Sécu »
Windows Server 2012 Objectifs
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Structure D’une Base De Données Relationnelle
la structure de l’entreprise: Définition : La structure organisationnelle d’une entreprise définie le mode d’organisation entre les différentes unités.
Vuibert Systèmes d’information et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Bureau distant sur Windows Vista /2008 Server
DNS ET DHCP SOUS LINUX INSTALLATION ET CONFIGURATIONS EXPOSE GROUPE 2 THEME:THEME: REDIGE PAR IBRAHIMA FAYE.
Plan d'urbanisation Version / 02 / Nov Mai 2013 Passation des marchés Sommaire Une vision unifiée de l'urbanisation et de l'approche.
1 IPSec : IP Security Protocole fournissant un mécanisme de sécurisation au niveau IP. RFC 2401 concernant IPSEC RFC 2402 concernant le mode AH (authentification)
Les protocoles de la couche application Chapitre 7.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Sécurité des réseaux ad hoc
Présentation de la base Frantext
La gestion des habilitations par le partenaire
Formation CCNA 16 - Routage Classless VLSM/CIDR. Sommaire 1)Introduction au routage classless 2)CIDR* 3)VLSM** 4)Configuration * Classless Inter-Domain.
Position, dispersion, forme
Depuis le 5 mai 2018, ce Règlement …
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
La collecte d’informations Présenté par: Boudries. S.
Les liaisons des données Sommaire Principe Les couches de liaison –LLC (Contrôle de Liaison Logique) –MAC (Contrôle d’Acces au Support) Mode de Communication.
Piles et files.
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Tableau de bord d’un système de recommandation
Contenu Systèmes de test parallèles Multithreading Synchronisation
Présentation PISTE pour les partenaires raccordés en API
Qu’est ce qu’une page web? Comment fonctionne un site web?
Dridi Lobna 1 Couche Réseau II Réseau : Gestion de l’accès.
INFRASTRUCTURE À CLÉS PUBLIQUES || PUBLIC KEY INFRASTRUCTURE. | HISSEIN BANAYE HASSAN
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
LES RESEAUX. Besoin de communication LES RESEAUX Pour communiquer via un réseau informatique Support de transmission Carte réseau Éléments de réseau.
Internet Stage – Semaine 5.
Transcription de la présentation:

1 Tutorial DNSSEC 22 juin 2009 Tutorial DNSSEC Présenté par : Stéphane Bortzmeyer, AFNIC SARSSI Luchon, 22 juin 2009

2 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS ­ Historique ­ Architecture ­ Entités ­ Information ­ Fonctionnement Vulnérabilités du DNS La sécurisation du DNS : les extensions DNSSEC

3 Tutorial DNSSEC 22 juin 2009 Historique Jusqu'en 1984 : réseau restreint militaire/universitaire/recherche ­ Hôtes de l'ARPAnet/Internet dans un fichier hosts.txt ­ Mis à jour et diffusé par le SRI-NIC A partir de 1984 : croissance importante du nombre d'hôtes connectés ­ Limites du modèle précédent ­ Un système de nommage distribué : le DNS (RFC 1034/1035, Paul Mockapetris) ­ Objectifs: performances et robustesse 1995 : généralisation du réseau et multiplication des usages ­ Le DNS : un des piliers du fonctionnement de l'Internet ­ 1999 : Extensions de sécurité au protocole DNS, DNSSEC (RFC 2535) 2003 : ­ Premières expérimentations et retours d'expérience ­ Réécriture du protocole menant à DNSSEC bis

4 Tutorial DNSSEC 22 juin 2009 Historique récent 2007 ­ Premier domaine de tête signé,.SE, en février ­ 2008 ­ Faille Kaminsky (janvier -> août) 2009 ­ Plusieurs TLD signés dont.ORG ­ BIND ajoute le support NSEC3

5 Tutorial DNSSEC 22 juin 2009 Le modèle DNS Architecture client/serveur La base de données DNS contient les associations entre les noms de domaine et un certain nombre d'informations (adresses IP, relais de courrier, serveurs de nom, etc.) ­ Hiérarchique ­ Distribuée ­ Redondante

6 Tutorial DNSSEC 22 juin 2009 L'arbre DNS (domaines vs zones)

7 Tutorial DNSSEC 22 juin 2009 L'information DNS Les enregistrements DNS (Resource Records : RRs) Les RRsets Les fichiers de zone Les messages DNS La durée de vie de l'information DNS : ­ Sur les serveurs faisant autorité : tant que la zone est chargée ­ Sur les serveurs cache : notion de TTL

8 Tutorial DNSSEC 22 juin 2009 Exemple de fichier de zone (sans DNSSEC)

9 Tutorial DNSSEC 22 juin 2009 La résolution DNS

10 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS Vulnérabilités du DNS ­ Les vulnérabilités de l'architecture ­ Le but des attaques ­ Un exemple d'attaque La sécurisation du DNS : les extensions DNSSEC

11 Tutorial DNSSEC 22 juin 2009 Les failles de sécurité Nature publique des données / accès universel : pas de notion de confidentialité a priori DNS : omniprésent mais invisible lors d'une utilisation « humaine » de l'Internet Failles spécifiques / non spécifiques au DNS (ex : DoS) Disponibilité des données Authenticité et intégrité des données

12 Tutorial DNSSEC 22 juin 2009 Vulnérabilités de l'architecture DNS

13 Tutorial DNSSEC 22 juin 2009 But des attaques Perturber ou bloquer le service DNS Empêcher l'accès à certains équipements ­ Raisons économiques, politiques ou simple vandalisme Rediriger les utilisateurs à leur insu : préambule à une attaque plus grave Récupérer des informations critiques (mots de passe, courriers,...)

14 Tutorial DNSSEC 22 juin 2009 Le « DNS Spoofing » Spoofer = usurper l'dentité de quelqu'un Principe : l'attaquant répond à la place du serveur interrogé pour tromper un utilisateur ou polluer un serveur cache Nécessité de connaître la question posée et l'ID associé (2 octets), plusieurs modes opératoires : ­ Man in the middle : sniffer les informations sur le réseau local ­ Attaques plus évoluées s'appuyant par exemple sur des failles d'implémentation des serveurs. Ex: dans Bind4x, les IDs sont incrémentaux - Attaque Kaminsky: varier les noms demandés pour pouvoir multiplier les requêtes (cela permet de trouver le bon Query ID)

15 Tutorial DNSSEC 22 juin 2009 Un exemple d'attaque Attaque de type « Birthday attack » ­ Paradoxe de l'anniversaire : sur une classe de 23 élèves ou plus, la probabilité que 2 élèves soient nés le même jour est supérieure à ½

16 Tutorial DNSSEC 22 juin 2009 Un exemple d'attaque (2) Mode opératoire ­ (1): envoi de N requêtes à un serveur cache portant sur associées à N IDs différents ­ (2): transfert des N requêtes vers le serveur faisant autorité de example.com ­ (3): N réponses forgées associées à N IDs différents sont envoyées par l'attaquant ­ (3bis): DoS sur le serveur faisant autorité pour le ralentir N=300, probabilité de succès de l'imposture >1/2 RFC 5452 pour les calculs détaillés

17 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS Vulnérabilités du DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

18 Tutorial DNSSEC 22 juin 2009 Les services rendus par DNSSEC Sécurité des données Architecture de distribution des clés ­ Clés utilisées par DNSSEC ­ Clés stockées dans le DNS sécurisé utilisées pour d'autres applications (IPsec, SSH) Outils basés sur la cryptographie

19 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS Vulnérabilités du DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

20 Tutorial DNSSEC 22 juin 2009 Rappels de cryptographie Deux grandes catégories : symétrique/asymétrique Deux services de sécurité possibles : ­ Le chiffrement apporte la confidentialité ­ La signature apporte l'authentification de l'origine et l'intégrité des données

21 Tutorial DNSSEC 22 juin 2009 Cryptographie symétrique Cryptographie à clé secrète (partage d'un secret) Clé de chiffrement = clé de déchiffrement Clé utilisée pour signer = clé utilisée pour vérifier les signatures Quelques algorithmes : ­ Camellia ­ Advanced Encryption Standard (AES)

22 Tutorial DNSSEC 22 juin 2009 Cryptographie asymétrique Basée sur des paires de clés (partie privée/partie publique) La partie publique permet de vérifier les signatures générées avec la partie privée La partie privée permet de déchiffrer les messages chiffrés avec la partie publique Algorithmes ­ RSA (Rivest Shamir Adelman) ­ DSA (Digital Signature Algorithm, FIPS 186) ­ Courbes elliptiques Exemples d'utilisation : PGP (courrier), SSH

23 Tutorial DNSSEC 22 juin 2009 Symétrique vs Asymétrique Cryptographie symétrique : ­ Rapide ­ Nécessité de connaître son correspondant et partager un secret avec lui ­ Autant de clés distinctes que de couples de correspondants : problème de passage à l'échelle Cryptographie asymétrique : ­ Lent pour signer/vérifier et chiffrer/déchiffrer ­ 1 paire de clés par utilisateur ­ La connaissance de la clé publique d'un utilisateur suffit pour communiquer avec lui Le DNS étant public : ­ Besoin de signature essentiellement

24 Tutorial DNSSEC 22 juin 2009 Principe du hachage Notion d'empreinte (hash) : ­ Passer d'un fichier de taille quelconque à une séquence de taille réduite fixe (ex: 128bits) ­ Transformation irréversible ­ Toute modification du fichier génère une empreinte différente ­ Les signatures cryptographiques sont basées sur la signature des empreintes des fichiers Exemples d'algorithmes : ­ Whirlpool ­ SHA (Secure Hash Algorithm, versions 1, 256, etc)

25 Tutorial DNSSEC 22 juin 2009 Rappels de cryptographie à clés publiques (signatures)

26 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS Vulnérabilités du DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

27 Tutorial DNSSEC 22 juin 2009 Sécurité des transactions : motivations Besoin de sécurité spécifique pour : ­ Le transfert de zones ­ Les mises à jour dynamiques (DNS Dynamic Updates) ­ Le dernier canal entre serveur récursif et client resolver (ou résolveur) Déployable indépendamment de DNSSEC

28 Tutorial DNSSEC 22 juin 2009 Sécurité des transactions : TSIG Transaction SIGnature (RFC 2845) : meta RR (généré à la volée juste avant son utilisation et jamais stocké) Secret partagé (cryptographie symétrique) Signature d’un hash (algorithme HMAC-MD5) Fournit l'authenticité et l'intégrité d'un message Protection contre le rejeu par “ Timestamp” (synchronisation NTP nécessaire)

29 Tutorial DNSSEC 22 juin 2009 TSIG : utilisation pour un transfert de zone Le serveur primaire génère une clé ( outil dnssec-keygen). Actuellement le seul type implémenté est HMAC-MD5 L'opérateur transmet cette clé secrète au serveur secondaire (hors- bande, PGP, scp, etc..) Les serveurs doivent être configurés de manière adéquate (cf. transparent suivant)

30 Tutorial DNSSEC 22 juin 2009 TSIG : configuration des serveurs

31 Tutorial DNSSEC 22 juin 2009 Une méthode à clés publiques pour sécuriser les transactions : SIG(0) RFC 2931 Très peu implémentée et utilisée Principalement pour les mises à jour dynamiques Utilise une clé publique stockée dans le DNS Il y a encore d'autres choix comme TKEY (RFC 2930)

32 Tutorial DNSSEC 22 juin 2009 Vulnérabilités résolues par TSIG et SIG(0)

33 Tutorial DNSSEC 22 juin 2009 Autres techniques de sécurisation du canal Pour sécuriser le canal entre deux serveurs, on peut aussi utiliser : IPsec (peu déployé en pratique) DNScurve (non normalisé)

34 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS Vulnérabilités du DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

35 Tutorial DNSSEC 22 juin 2009 Les extensions DNSSEC Historique des extensions DNSSEC : ­ Mars 1999 : RFC 2535, DNSSEC version 1 ­ Septembre 1999 : RFC 2671 (EDNS0) ­ ~2002 : collection d'Internet Drafts pour former à terme une nouvelle version de DNSSEC (DNSSEC bis) ­ Juillet 2003 : L'un de ces Internet-Drafts, DS (Delegation Signer) passe en proposed standard à l'IETF (RFC 3658) ­ Mars 2005 : RFCs 4033 à 4035, DNSSEC bis ­ Mars 2008 : RFC 5155, NSEC3, dernière étape de la normalisation Implémentations actuelles : BIND, nsd, Unbound

36 Tutorial DNSSEC 22 juin 2009 Les extensions DNSSEC (2) Sécurité des données Distribution de clés Besoins ­ Signer les données du DNS (RRsets) ­ Prouver la non existence d'une donnée ­ Vérifier l'authenticité et l'intégrité des données grâce au contrôle des signatures associées ­ DNSSEC authentifie les données, pas le canal. Il peut donc protéger, par exemple, contre un serveur secondaire malhonnête ou piraté.

37 Tutorial DNSSEC 22 juin 2009 Rappels de sécurité dans le contexte DNSSEC Authentification : identité de l'emetteur non usurpée Intégrité : non altération des données garantie Protection contre le déni d'existence : prouver la non- existence d'une donnée Confidentialité : garantir le secret des données transmises (sans objet pour DNSSEC)

38 Tutorial DNSSEC 22 juin 2009 Niveau de sécurité local (côté serveur) Chaque zone génère un ensemble de paires de clés (partie privée/partie publique) Les clés sont associées à la zone et non aux serveurs Les parties privées des clés signent les informations (RRsets) faisant partie intégrante de la zone (c'est-à-dire sur lesquelles le serveur fait autorité) Certaines informations ne sont pas signées : ­ Les points de délégation (mais les DS, eux, sont signés) ­ Les colles (adresses IP des serveurs situés dans le domaine qu'ils servent)

39 Tutorial DNSSEC 22 juin 2009 Nouveaux RRs pour signer les zones Nécessité de créer de nouveaux objets pour signer les zones Ces objets doivent être au format RR pour rester cohérents avec le DNS originel Les signatures sont stockées dans le fichier de zone en compagnie des données qu’elles authentifient : RRSIG Les parties publiques des clés sont publiées dans le fichier de zone et peuvent faire l’objet de requêtes DNS standard : DNSKEY En revanche seul le signataire d'une zone doit avoir connaissance de la partie privée des clés

40 Tutorial DNSSEC 22 juin 2009 Le RR DNSKEY DNSKEY suit le formatage RR traditionnel : ­ Une partie commune à tous les RRs (nom, TTL, type, classe) ­ Une partie spécifique: son RDATA décrit ci-après

41 Tutorial DNSSEC 22 juin 2009 Description du DNSKEY RDATA Flags: permet de distinguer les clés de zone des clés utilisées pour d'autres services DNSSEC (ex : SIG(0)) Protocole : donne la possibilité de stocker des clés utilisées par d'autres protocoles (IPsec par exemple) Algorithme : le seul qui est obligatoirement implémenté est RSA-SHA1 A toute clé est associé un ID ­ Remarque : deux clés distinctes peuvent avoir le même ID

42 Tutorial DNSSEC 22 juin 2009 Format DNSKEY : exemple

43 Tutorial DNSSEC 22 juin 2009 Affichage de DNSKEY avec dig % dig +multi DNSKEY sources.org sources.org IN DNSKEY ( CkoOFAptkq5oqs8hlDf1gYDDpRPrjySc+wjBxLBbQtkX...) ; key id = 14347

44 Tutorial DNSSEC 22 juin 2009 Le RR RRSIG Le contenu du RDATA est décrit ci-après :

45 Tutorial DNSSEC 22 juin 2009 Description du RRSIG RDATA Le RR RRSIG contient la signature d'un RRset dont le type est indiqué dans le champ « type covered » Les champs « signature inception » et « signature expiration » définissent l'intervalle de temps en dehors duquel la signature n'est plus valide Les champs « key tag » (ID de la clé) et « signer's name » permettent d'identifier la clé qui a généré la signature

46 Tutorial DNSSEC 22 juin 2009 Format RRSIG : exemple

47 Tutorial DNSSEC 22 juin 2009 NSEC : nécessité Comment signer les réponses négatives (authentification de la non- existence d’un nom ou enregistrement) puisqu'elles ne contiennent pas de RRs Ordonnancement de la zone et insertion d'enregistrements NSEC entre les noms. Le RR NSEC d'un nom contient tous les types d’enregistrements associés à ce nom ainsi que le prochain nom présent dans la zone

48 Tutorial DNSSEC 22 juin 2009 NSEC : fonctionnement

49 Tutorial DNSSEC 22 juin 2009 NSEC : fonctionnement (2) Méthode d'ordonnancement : exemple ­ idsa.prd.fr idsa.prd.fr ­ *.idsa.prd.fridsa.prd.fr ­ afnic.idsa.prd.fr afnic.idsa.prd.fr ­ *.afnic.idsa.prd.frafnic.idsa.prd.fr ­ 3.afnic.idsa.prd.fridsa.prd.fr ­ irisa.idsa.prd.fr irisa.idsa.prd.fr Remarque: Le NSEC du dernier nom pointe vers le premier nom de la zone (vision circulaire de la zone selon le chaînage NSEC)

50 Tutorial DNSSEC 22 juin 2009 NSEC : fonctionnement (3) Exemples de fonctionnement (cf. schéma précédent) ­ Une requête portant sur afnic.idsa.prd.fr, A (le nom existe mais pas le type) renvoie :afnic.idsa.prd.fr afnic.idsa.prd.fr NSEC ns1.afnic.idsa.prd.fr NS SOA RRSIG DNSKEY NSEC, afnic.idsa.prd.frns1.afnic.idsa.prd.fr ce qui prouve que le type A n'existe pas pour afnic.idsa.prd.frafnic.idsa.prd.fr ­ Une requête portant sur hello.afnic.idsa.prd.fr, A (le nom n'existe pas) renvoie :afnic.idsa.prd.fr afnic.idsa.prd.fr NSEC ns1.afnic.idsa.prd.fr NS SOA RRSIG DNSKEY NSEC, afnic.idsa.prd.fr ce qui prouve qu'il n'existe aucun nom entre afnic.idsa.prd.fr et ns1.afnic.idsa.prd.fr donc hello.afnic.idsa.prd.fr n'existe pasafnic.idsa.prd.frns1.afnic.idsa.prd.fr hello.afnic.idsa.prd.fr

51 Tutorial DNSSEC 22 juin 2009 NSEC : pour aller plus loin Protection contre le rejeu et contre le déni d'existence Attention : perte de confidentialité. Possibilité de récupérer tous les noms (ainsi que leurs RRs associés) de la zone (parcours de zone ou « DNS walking », trivialement mis en oeuvre) Détection des wildcards possible : Si une réponse correspond à une wildcard étendue, le NSEC prouvant que le nom demandé n'existe pas explicitement est ajouté dans la réponse

52 Tutorial DNSSEC 22 juin 2009 Problème d'énumération avec NSEC Beaucoup de zones DNS ne sont pas distribuées publiquement, seulement accessibles si on connait un nom de domaine. Autrement, la zone est vendue, avec un contrat, et des conditions d'utilisation. Exemple :.FR ( euros par an) Donc, pas question de laisser faire des récupérations gratuites avec « zone walking »

53 Tutorial DNSSEC 22 juin 2009 NSEC3 NSEC3 (RFC 5155) résout le problème : le chaînage n'est plus entre noms mais entre hachages des noms. Si la question est le nom D1, et que le résolveur reçoit : H0 NSEC3 H2... H0 RRSIG... Il doit calculer H1, le hachage de D1 et vérifier que H0 < H1 < H2. Ainsi, on peut prouver la non-existence, mais sans pouvoir suivre la chaîne. NSEC3 est aujourd'hui mis en oeuvre dans BIND, NSD et Unbound.

54 Tutorial DNSSEC 22 juin 2009 Fichier signé avec NSEC3

55 Tutorial DNSSEC 22 juin 2009 Requête NSEC3 [Le résumé de foobar.example est RG2LAVDHFJ9DET479MSDUQ5Q0N3DRT99.] ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: ● ;; QUESTION SECTION: ● ;foobar.example.INAAAA ●... ● JKNM5TRUGDISFPUU0CCLEMG2GTGOD2IP.example. ● IN NSEC BABECAFE ● O7FU7992IPFEUUUVC1A8NAF4255JF7JI ● NS SOA MX TXT RRSIG DNSKEY ● NSEC3PARAM

56 Tutorial DNSSEC 22 juin 2009 Niveau de sécurité local (côté client) La connaissance de la clé publique d'une zone permet de vérifier les signatures et donc l'authenticité et l’intégrité des informations contenues dans la zone Concept de clé de confiance Limitations : nécessite la connaissance des clés de toutes les zones avec lesquelles le resolver est susceptible de communiquer

57 Tutorial DNSSEC 22 juin 2009 Sécurité locale: exemple

58 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS : Vulnérabilités du protocole DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

59 Tutorial DNSSEC 22 juin 2009 Niveau de sécurité global Principe : authentification des clés en cascade si alors Structure arborescente du DNS idéale

60 Tutorial DNSSEC 22 juin 2009 Notions de délégations sécurisées et chaînes de confiance Délégation : présence dans la zone parente d'un point de délégation qui indique le nom des serveurs faisant autorité sur la zone fille (la zone parente est responsable de la délégation : existence et véracité) Délégation sécurisée : d'une manière ou d'une autre la zone parente authentifie la clé utilisée par la zone fille. Avoir confiance en la clé de la zone parent implique la confiance en la clé de la zone fille Une chaîne de confiance est un chemin dans l'arbre DNS qui relie un certain nombre de zones séparées par des délégations sécurisées

61 Tutorial DNSSEC 22 juin 2009 Mise en place des DS Transmission de la clé publique de la zone fille à la zone parente Génération du DS (hash de la clé) et signature de celui-ci dans la zone parente Le DS devient le maillon de confiance entre zone parent et zone fille

62 Tutorial DNSSEC 22 juin 2009 Délégations sécurisées avec DS Dans la zone parente, pour tout point de délégation, ­ La présence d’un DS signé prouve l’existence d'une délégation sécurisée vers la zone fille et authentifie la clé associée au DS ­ L'absence de DS, prouvée par le contenu du NSEC, lui même signé, prouve qu'aucune délégation sécurisée n'a été établie vers la zone fille.

63 Tutorial DNSSEC 22 juin 2009 Le RR DS RR de sécurisation d'une délégation (les RR NS n'étant pas signés) DS = Delegation Signer (RFC 4034) Format des RDATA :

64 Tutorial DNSSEC 22 juin 2009 Description du DS RDATA Les champs ID de la clé et algorithme identifient la clé pointée par ce DS Le champ «digest type » indique le type d'algorithme utilisé pour réaliser le hash (actuellement on utilise SHA1)

65 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS : Vulnérabilités du protocole DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC : le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

66 Tutorial DNSSEC 22 juin 2009 Classification des informations DNS Classification objective ­ zone non sécurisée (non signée) ­ sécurisée localement (signée mais la délégation depuis la zone parente n'est pas sécurisée) ­ sécurisée globalement (signée, et on peut l'atteindre en parcourant une chaîne de confiance depuis une zone ancêtre) Sécurisation progressive de l'arbre et îlots sécurisés ­ Un îlot sécurisé rassemble toutes les zones accessibles en établissant des chaînes de confiance depuis une zone signée au sommet de l'îlot ­ Le but ultime de DNSSEC : la simple connaissance des clés de la racine permettra d'accéder à une zone quelconque de manière sécurisée en parcourant les chaînes de confiance.

67 Tutorial DNSSEC 22 juin 2009 Classification des informations DNS (2) Classification subjective : ­ dépendante du resolver en fonctions des clés de confiance dont il dispose ­ “ verifiable secure”, “ verifiable insecure”, “ wrong” Notions de point d’entrée sécurisé et clé de confiance

68 Tutorial DNSSEC 22 juin 2009 Arbre DNS partiellement sécurisé

69 Tutorial DNSSEC 22 juin 2009 DLV DNSSEC Lookaside Validation permet de séparer la racine de résolution (contrôlée par le gouvernement états-unien, via Verisign) et la racine de validation. Un résolveur DLV ne demande pas les DS à la racine mais à dlv.example.org. Si sources.org est signé, le DS (en fait, un enregistrement DLV) sera en sources.org.dlv.example.org. DLV permet donc de démarrer DNSSEC sans gérer à la main des clés et sans attendre la signature de la racine et de tous les TLD. Aujourd'hui, le plus gros registre DLV est à l'ISC (Internet Systems Consortium, les auteurs de BIND).

70 Tutorial DNSSEC 22 juin 2009 Arbre sécurisé avec DLV

71 Tutorial DNSSEC 22 juin 2009 Caractéristiques des clés en fonction de leur taille Clé courte : ­ Plus facile à casser ­ Temps de signature plus court ­ Temps de vérification des signatures par les utilisateurs plus court ­ Taille de zone réduite Clé longue : ­ Plus difficile à casser ­ Temps de signature et de vérification des signatures plus longs ­ Zone plus grosse

72 Tutorial DNSSEC 22 juin 2009 Importance d’un modèle à deux clés Les clés n'ont pas de durée de vie intrinsèque, elle doivent être changées régulièrement. La longueur de la clé ne doit pas handicaper la sécurité : ­ Une clé courte devra être associée à une fréquence de roulement élevée ­ Une clé longue pourra être changée moins souvent Les besoins DNSSEC rendent le compromis difficile entre clé courte et clé longue : ­ Signer les zones et vérifier les signatures devrait être rapide, ce qui implique l'utilisation d'une clé courte ­ On doit limiter au maximum les interactions entre zone fille et zone parente, ce qui implique l'utilisation d'une clé longue (roulement moins fréquent)

73 Tutorial DNSSEC 22 juin 2009 Distinction ZSK/KSK Utilisation de deux clés: ZSK (Zone Signing Key) et KSK (Key Signing Key) Séparer les rôles : ­ ZSK : Clé qui signe les enregistrements d’une zone. C'est une clé de taille réduite que l'on changera fréquemment. ­ KSK : Clé qui fait office de maillon de confiance. Elle ne signe que le DNSKEY RRset donc elle peut être de taille plus longue, ce qui permet de limiter sa fréquence de renouvellement (roulement). Solution pour différencier leur structure : ajout d'un flag dans le RDATA (RFC 3757 : SEP) Flexibilité accrue dans la relation zone parente / zone fille

74 Tutorial DNSSEC 22 juin 2009 Authentifications en cascade dans une chaîne de confiance

75 Tutorial DNSSEC 22 juin 2009 Indication du support DNSSEC Cohabitation entre entités supportant et ne supportant pas DNSSEC ­ Indiquer le support DNSSEC ­ Normaliser le comportement envers les données signées et les RRs de sécurité ­ Gérer les requêtes et réponses nécessitant ou pas des RRs relatifs à la sécurité (DNSKEY, RRSIG, NSEC, DS) Création de 3 flags (DO, AD, CD) décrits ci-après

76 Tutorial DNSSEC 22 juin 2009 Les extensions EDNS0 (flag DO) EDNS0 est un OPT pseudo RR ajouté dans la section additionnelle qui contient un certain nombre d'informations : ­ La longueur maximale supportée pour un paquet UDP (permet d'oublier la limite des 512 octets) ­ Le flag DO (DNSSEC OK) positionné indique le support DNSSEC

77 Tutorial DNSSEC 22 juin 2009 Deux nouveaux flags : AD et CD Le flag AD (Authentic Data) : permet à un serveur récursif validant de spécifier à son client que les données qu'il lui transmet ont été vérifiées Si le canal entre le client et serveur récursif/cache n'est pas sécurisé, le client peut choisir de ne pas tenir compte de ce flag Le flag CD (Checking Disabled) : permet à un « stub » résolveur de spécifier à son serveur récursif qu'il désire faire les vérifications lui-même

78 Tutorial DNSSEC 22 juin 2009 Scénarios de cohabitation

79 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS : Vulnérabilités du protocole DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSSEC: le déploiement ­ Les aspects opérationnels ­ Les expérimentations en cours

80 Tutorial DNSSEC 22 juin 2009 Nouveaux problèmes émergents Nécessité d'un niveau de sécurité intrinsèque des serveurs. Le déploiement de DNSSEC devrait donc indirectement augmenter le niveau de sécurité des serveurs Nouveaux enjeux : maintenance ­ Automatisation des procédures ­ Surveillance ­ Responsabilité dans les chaînes de confiance ­ Précautions pour la gestion des clés Procédure la plus délicate : le roulement des clés

81 Tutorial DNSSEC 22 juin 2009 Le roulement des clés Key Rollover Possibilité de compromission des clés ­ perte ou vol de la partie privée ­ attaques cryptanalytiques Roulement planifié/ roulement d'urgence Efficacité du modèle ZSK/KSK Précautions concernant les temps caractéristiques (validité des RRSIGs, intervalle de resignature, TTLs)

82 Tutorial DNSSEC 22 juin 2009 Roulement ZSK planifié ZSK de petite taille => Roulement fréquent et régulier Ce roulement est local à la zone (pas d'interactions avec la zone parente) Contraintes à considérer : les TTLs et la propagation des données dans les caches Procédure conseillée : pré-publication de la future clé + post- suppression de l'ancienne clé

83 Tutorial DNSSEC 22 juin 2009 Roulement ZSK planifié : schéma Exemple : ­ on roule la ZSK toutes les semaines (rappel : les durées optimales font l'objet d'un débat. Leur valeur idéale dépend de beaucoup de choses). ­ on resigne tous les jours ­ le TTL est de 2 jours Dans ce cas, une clé reste publiée 11 jours (dont 7 jours où elle signe la zone) Intervalle de resignature KEY TTL Rollover ZSK2 ZSK1 ZSK2 ZSK1 t

84 Tutorial DNSSEC 22 juin 2009 Roulement KSK planifié : Prépublication de la nouvelle KSK (idem procédure ZSK) Transmission de la nouvelle KSK à la zone parente Ne pas rompre la chaîne de confiance : le changement de DS doit être propagé dans les caches. Pendant cette durée, il est souhaitable que la zone fille utilise simultanément les deux KSK ou que la zone parente publie 2 DS Communiquer sur le changement de clé car certains résolveurs avaient configuré l'ancienne clé comme clé de confiance Ce roulement nécessite une bonne synchronisation des zones fille et parente

85 Tutorial DNSSEC 22 juin 2009 Roulement KSK planifié : schéma Exemple: on change la KSK une fois par an, intervalle de resignature égal à 1 jour pour la zone parente et la zone fille (mais la resignature n'intervient pas en même temps) KEY TTL = 2 jours, DS TTL = 1 jour Rollover KSK2 KSK1 KSK2 KSK1 DS1 DS2 DS1 DS2 Parent Fille KSK2 KSK1 KSK2

86 Tutorial DNSSEC 22 juin 2009 Roulements d'urgence Par définition : impossible à préparer, les procédures décrites précedemment ne s'appliquent pas Nécessité d'une politique de sécurité locale Compromis entre rupture de la chaîne de confiance (si changement de clé immédiat) et risque d'attaques si conservation de la clé corrompue le temps de réaliser une procédure décrite dans les transparents précédents Possibilité de publier en permanence dans le DNSKEY RRset une clé qui ne sera utilisée qu'en cas d'urgence

87 Tutorial DNSSEC 22 juin 2009 Considérations opérationnelles Utilisation de BIND et ses outils ­ dnssec-keygen ­ dnssec-signzone Performances ­ Temps de signature reste raisonnable même pour des zones de grande taille (vingt minutes pour.FR sur un Opteron) ­ Taille de la zone signée : multipliée par un facteur 6 à 10 par rapport au fichier non signé (sauf avec NSEC3 et opt-out, où l'augmentation est négligeable) ­ Taille des réponses : pour une même requête, une réponse DNSSEC aura une taille de l'ordre de 5 à 10 fois la taille de la réponse DNS correspondante

88 Tutorial DNSSEC 22 juin 2009 Outils de BIND # Patience, ces outils consomment beaucoup # d'entropie # Faire les clés % dnssec-keygen -a NSEC3RSASHA1 -b 2048 example Kexample # Signer la zone (ne pas oublier de resigner # régulièrement !) % dnssec-signzone -H 3 -3 babecafe -o example \ db.example Kexample

89 Tutorial DNSSEC 22 juin 2009 Bilan opérationnel

90 Tutorial DNSSEC 22 juin 2009 Bilan opérationnel (2) Commentaires sur le schéma précédent: ­ (1) : signataire d'une zone, de préférence non accessible sur le réseau, c'est là que les clés sont générées et stockées et la zone est signée ­ (2) : le fichier de zone est transmis au serveur primaire de manière sécurisée ­ (3) : les délégations sécurisées sont mises en place ­ (4) : transfert de zone entre serveur primaire et secondaire(s) (sécurisé par TSIG par exemple)

91 Tutorial DNSSEC 22 juin 2009 Bilan opérationnel (3) ­ (5) : Les mises à jour dynamiques sont sécurisées grâce à TSIG ou SIG(0) ­ (6) : Les serveurs récursifs sont configurés avec des clés de confiance correspondant à leur(s) point(s) d'entrée(s) sécurisé(s) dans l'arbre DNS ­ (7) : Les résolveurs « stub » communiquent avec leur serveur récursif par défaut au-dessus d'un canal sécurisé (ex: TSIG)

92 Tutorial DNSSEC 22 juin 2009 DNSSEC comme PKI Nécessité de stocker et distribuer les clés publiques utilisées par DNSSEC (RRset DNSKEY) Possibilité de stocker des clés pour d'autres applications (IPSEC, SSH...) Possibilité de stocker des certificats : RR CERT

93 Tutorial DNSSEC 22 juin 2009 DNSSEC vs PKI PKI (IGC): Ensemble des matériels, logiciels, personnes, règles et procédures nécessaires pour créer, gérer, distribuer des certificats X509 Les plus d'une PKI ­ Importance de l'aspect juridique dans les PKI ­ Les procédures de DNSSEC sont basées sur des politiques locales ­ Il n'existe pas de CRL (Certificat Revocation List) dans DNSSEC

94 Tutorial DNSSEC 22 juin 2009 Interactions IPsec/ DNSSEC IPsec peut être utilisé pour sécuriser ­ les transferts de zone ­ le canal entre un résolveur « light » (« stub ») et son serveur récursif (celui qui fait les résolutions DNSSEC pour son compte) Une architecture DNS sécurisée peut être mise à profit pour stocker des clés utilisées pour établir des communications IPsec entre deux entités ne se connaissant pas a priori (IPSECKEY). C'est le cas d'IPsec Opportunistic Encryption ­ Chacune des entités récupère l'IPSECKEY de l'autre par résolution DNS sécurisée, et on peut ainsi établir le canal IPsec

95 Tutorial DNSSEC 22 juin 2009 Plan Rappels synthétiques sur le DNS : Vulnérabilités du protocole DNS La sécurisation du DNS : les extensions DNSSEC ­ Rappels de cryptographie ­ Sécurité des transactions ­ Sécurité locale des données ­ Sécurité globale des données ­ DNSsec: le déploiement ­ Les aspects opérationnels ­ Les déploiements en cours

96 Tutorial DNSSEC 22 juin 2009 Un peu d'histoire : le projet IdsA de 2004 Projet RNRT IDsA (Infrastructure DNSSEC et Applications) : et ftp://ftp.idsa.prd.fr Déploiement d’une plate-forme de tests Développement d’outils de vérification des chaînes de confiance et d’un resolver supportant DNSSEC Développement d’outils d’automatisation des procédures Etude des interactions avec IPsec et Mobile IPv6

97 Tutorial DNSSEC 22 juin 2009 Déploiements DNSSEC Cinq TLD signés sérieusement (.SE,.CZ,.BR,.GOV et.ORG) dont deux en NSEC3 La racine signée « à la fin de l'année » Sécurisation de la zone.FR sur des serveurs non référencés par les serveurs racine Registre DLV à l'ISC opérationnel SHA1 remplacé par SHA256 à l'IETF ? Portail DNSSEC :

98 Tutorial DNSSEC 22 juin 2009 AFNIC et DNSSEC L'AFNIC suit de près le développement de DNSSEC depuis le début. L'étude pratique est actuellement activement menée pour permettre un déploiement en Mais attention ! DNSSEC ne protège pas contre tous les risques (exemple : injection SQL dans un Bureau d'Enregistrement) DNSSEC vient aussi avec ses propres risques (la cryptographie, c'est difficile)

99 Tutorial DNSSEC 22 juin 2009 Conclusion DNSSEC : sécurité contre les attaques spécifiques au DNS en proposant authentification de la source et intégrité des données Déployable dès maintenant et compatible avec le DNS non sécurisé Enjeux : ­ automatisation des procédures ­ résolveur supportant DNSSEC Rôle de PKI pour distribuer les clés d'autres applications

100 Tutorial DNSSEC 22 juin 2009 Références / liens utiles DNSSEC : IETF : Bind : IDsA : AFNIC :

101 Tutorial DNSSEC 22 juin 2009 A propos de ce document Auteurs : {Bertrand.Leonard, Jean-Philippe.Pick, Copyright IDsA : Ce document est la propriété des partenaires du projet RNRT IdsA (Infrastructure DNSSEC et applications, L'utilisation de ce document doit être précédée par l'accord explicite des partenaires IDsA suivants et qui sont joignables sur : - AFNIC - ENST-Bretagne (Rennes) - France Télécom R&D - IRISA Toute exploitation de ce document dans un but commercial est réservée.

102 Tutorial DNSSEC 22 juin 2009 Questions