TSIG
Le protocole de rĂ©seau TSIG (transaction signature ou signature de transaction) est dĂ©crit dans la RFC 2845[1]. Il est principalement utilisĂ© par le systĂšme des noms de domaine (DNS) pour fournir une forme d'authentification pour les mises Ă jour dynamiques des bases de donnĂ©es DNS, bien qu'il puisse ĂȘtre utilisĂ© entre serveurs pour les requĂȘtes. TSIG utilise un secret partagĂ© et une fonction de hachage unidirectionnelle pour apporter une forme de sĂ©curitĂ© par la cryptographie pour identifier chaque extrĂ©mitĂ© d'une connexion comme ayant droit d'effectuer ou de rĂ©pondre Ă une demande de mise Ă jour DNS.
Bien que les requĂȘtes DNS puissent ĂȘtre anonymes (hormis DNSSEC), les mises Ă jour DNS doivent ĂȘtre authentifiĂ©es car elles modifient la structure de nommage du rĂ©seau (Internet ou rĂ©seau privĂ©). L'utilisation d'un secret partagĂ© entre le client (esclave) qui effectue la mise Ă jour et le serveur DNS qui la lui fournit (maĂźtre) assure l'authentification du client. Cependant, la demande de mise Ă jour peut ĂȘtre effectuĂ©e au travers d'un rĂ©seau non sĂ»r (Internet). Une fonction de hachage unidirectionnelle est utilisĂ©e pour empĂȘcher un tiers de prendre connaissance de la clĂ© en Ă©coutant le trafic sur le rĂ©seau puis de l'utiliser pour faire ses propres modifications sur le serveur DNS client.
L'utilisation d'un Ă©lĂ©ment horaire (timestamp) dans le protocole permet d'Ă©viter une attaque par rejeu. Ainsi, l'utilisation de TSIG nĂ©cessite une synchronisation des serveurs sur une mĂȘme source horaire. L'utilisation du protocole NTP par exemple, offre ce service.
Implémentation
Une mise Ă jour DNS (RFC 2136[2]) est un ensemble d'instructions destinĂ©es Ă un serveur DNS. Elle contient un en-tĂȘte, la zone Ă mettre Ă jour, les prĂ©requis qui doivent ĂȘtre satisfaits et les enregistrements (RR) qui doivent ĂȘtre mis Ă jour. TSIG ajoute un dernier enregistrement qui comprend l'Ă©lĂ©ment horaire (timestamp), un hash de la requĂȘte et le nom de la clĂ© secrĂšte utilisĂ©e pour signer la requĂȘte. La RFC 2535[3] propose un format de nom qu'il est recommandĂ© d'utiliser.
La rĂ©ponse aprĂšs une mise Ă jour signĂ©e TSIG rĂ©ussie sera Ă©galement signĂ©e d'un enregistrement TSIG. Les Ă©checs ne sont pas signĂ©s pour Ă©viter qu'un attaquant puisse apprendre quoi que ce soit de la clĂ© en utilisant des requĂȘtes de mise Ă jour fabriquĂ©es spĂ©cialement dans ce but.
Le programme nsupdate permet d'utiliser TSIG pour effectuer des mises Ă jour. Le programme dig permet d'utiliser TSIG pour effectuer des requĂȘtes ou des transferts de zone authentifiĂ©es.
L'enregistrement TSIG est dans le mĂȘme format que les autres enregistrements d'une requĂȘte de mise Ă jour. La signification des champs est dĂ©crite dans le RFC 1035[4].
Champs | Bytes | Description |
---|---|---|
NAME | max 256 | Nom de la clĂ© TSIG qui doit ĂȘtre unique entre le client et le serveur |
TYPE | 2 | TSIG (250) |
CLASS | 2 | ANY (255) |
TTL | 4 | 0 (l'enregistrement TSIG ne doit pas ĂȘtre stockĂ© en mĂ©moire tampon (cache)) |
RDLENGTH | 2 | Longueur du champ RDATA |
RDATA | variable | Structure comprenant l'élément horaire (timestamp), l'algorithme et le hash. |
Alternatives Ă TSIG
Bien que TSIG soit largement employé, ce protocole pose de nombreux problÚmes:
- il nécessite de déployer un secret partagé pour chaque serveur ayant besoin de mises à jour,
- le condensat HMAC-MD5 n'est que de 128 bits,
- il n'a pas de hiérarchie des autorités : chaque client en possession d'une clé secrÚte peut mettre à jour n'importe quel enregistrement de la zone.
Ainsi, divers alternatives ou extensions ont vu le jour.
- La RFC 2137[5] spĂ©cifie une mĂ©thode de mise Ă jour utilisant une clĂ© publique dans l'enregistrement DNS spĂ©cifique "SIG". Un client dĂ©tenant la clĂ© privĂ©e correspondante peut signer les requĂȘtes de mises Ă jour. Cette mĂ©thode est compatible avec la mĂ©thode des requĂȘtes sĂ©curisĂ©es de DNSSEC. Cependant, cette mĂ©thode est dĂ©prĂ©ciĂ©e par la RFC 3007[6].
- La RFC 3645[7] propose une extension au TSIG pour permettre l'utilisation de la mĂ©thode d'Ă©change de clĂ©s secrĂštes GSS, Ă©liminant la nĂ©cessitĂ© de dĂ©ployer manuellement les clĂ©s sur l'ensemble des clients TSIG. La mĂ©thode de distribution de clĂ©s publiques avec GSS dans un enregistrement ressource DNS (RR) est spĂ©cifiĂ©e dans la RFC 2930[8]. Une mĂ©thode GSS-TSIG modifiĂ©e appelĂ©e "Algorithme du service de sĂ©curitĂ© gĂ©nĂ©rique pour les Ă©changes de secrets partagĂ©s" (Generic Security Service Algorithm for Secret Key Transaction) est basĂ©e sur le serveur Kerberos de Windows appelĂ©e "mise Ă jour dynamique sĂ©curisĂ©e" (Secured Dynamic Update) a Ă©tĂ© implĂ©mentĂ©e dans les serveurs et clients Microsoft Windows Active Directory. UtilisĂ© en combinaison avec un DNS configurĂ© sans rĂ©solution inverse utilisant l'adressage de la RFC 1918[9], les serveurs DNS utilisant ce systĂšme d'authentification redirigent un volume important de requĂȘtes vers les serveurs DNS racine[10]. Il existe un groupe anycast chargĂ© de traiter ce trafic en dehors des serveurs DNS racine[11].
- La RFC 2845[1], base du TSIG, n'autorise qu'une fonction de hachage unique : HMAC-MD5 qui n'est plus considĂ©rĂ©e trĂšs robuste. En 2006, des propositions Ă©mergent pour autoriser l'utilisation du SHA1 RFC 3174[12] en remplacement du MD5. Le condensat de 160 bits gĂ©nĂ©rĂ© par SHA1 devrait ĂȘtre plus robuste que celui de 128 bits gĂ©nĂ©rĂ© par le MD5.
- La RFC 2930[8] définit TKEY, une liste d'enregistrements DNS utilisés pour distribuer automatiquement des clés depuis le serveur vers les clients.
- La RFC 3645[7] qui définit GSS-TSIG utilisant GSS-API et TKEY pour distribuer des clés automatiquement.
- La proposition DNSCurve a de nombreuses similitudes avec TSIG.
Voir aussi
Notes et références
- (en) « Secret Key Transaction Authentication for DNS (TSIG) », Request for comments no 2845, .
- (en) « Dynamic Updates in the Domain Name System (DNS UPDATE) », Request for comments no 2136, .
- (en) « Domain Name System Security Extensions », Request for comments no 2535, .
- (en) « DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION », Request for comments no 1035, .
- (en) « Secure Domain Name System Dynamic Update », Request for comments no 2137, .
- (en) « Secure Domain Name System (DNS) Dynamic Update », Request for comments no 3007, .
- (en) « Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS-TSIG) », Request for comments no 3645, .
- (en) « Secret Key Establishment for DNS (TKEY RR) », Request for comments no 2930, .
- (en) « Address Allocation for Private Internets », Request for comments no 1918, .
- (en) Broido, Nemeth, claffy. Spectroscopy of DNS Update Traffic , CAIDA, 2002
- (en)
- (en) « US Secure Hash Algorithm 1 (SHA1) », Request for comments no 3174, .
Liens externes
- RFC 2136 Dynamic Updates in the Domain Name System (mises Ă jour DNS)
- RFC 2845 Secret Key Transaction Authentication for DNS (TSIG)
- RFC 2930 Secret Key Establishment for DNS (TKEY RR)
- RFC 3645 Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS-TSIG)
- RFC 3174 US Secure Hash Algorithm 1
- RFC 4635 HMAC SHA TSIG Algorithm Identifiers