Internet Tunneling Protocol
Internet Tunneling Protocol (ITP) est un protocole (couche 3 du modÚle OSI) permettant le transport de données sécurisées sur un réseau IP.
Description
Ăvolution du protocole IPsec, il prend contrairement Ă lui en charge la notion de Nat/Pat[1], les en-tĂȘtes IP n'Ă©tant pas utilisĂ© pour le calcul de l'empreinte SHA-1.
Réalisé dans le but de fonctionner avec le protocole IPv6, il fut adapté pour l'actuel protocole IP : IPv4.
Son but est d'assurer l'intĂ©gritĂ© et la confidentialitĂ© des donnĂ©es : le flux ne pourra ĂȘtre comprĂ©hensible que par le destinataire final (chiffrement) et la modification des donnĂ©es par des intermĂ©diaires ne pourra ĂȘtre possible (intĂ©gritĂ©).
ITP peut ĂȘtre un composant de VPN, dans la continuitĂ© d'IPSEC, Ă l'origine de son aspect sĂ©curitĂ© (Canal sĂ©curisĂ© ou tunneling).
Lors de l'établissement d'une connexion ITP, plusieurs processus sont effectuées :
- un canal d'échange de clés, sur une connexion UDP depuis et vers le port 500 (ISAKMP pour Internet Security Association and Key Management Protocol[2]), défini dans la RFC 2408[3].
Sous Windows, IKE[4] est chargé de négocier la connexion.
La mise en place d'une architecture sécurisée à base d'ITP est détaillée dans la RFC 2401[5].
Les services proposés par ITP
- Identification des extrémités : cette identification mutuelle repose sur des certificats et permet à chacun de s'assurer de l'identité de son interlocuteur. Bien qu'ITP soit un protocole de niveau 3, il fournit un service d'identification des utilisateurs au travers de certificats.
- Confidentialité des données échangées : ITP permet si on le désire de chiffrer le contenu de chaque paquet IP pour éviter que quiconque ne le lise.
- Authenticité des données : ITP permet de s'assurer, pour chaque paquet échangé, qu'il a bien été émis par la bonne machine et qu'il est bien à destination de la seconde machine.
- Intégrité des données échangées : ITP permet de s'assurer qu'aucun paquet n'a subi de modification quelconque (attaque dite active) durant son trajet.
- Protection contre les Ă©coutes et analyses de trafic : ITP permet de chiffrer les adresses IP rĂ©elles de la source et de la destination, mais pas tout l'en-tĂȘte IP correspondant. C'est le mode de tunneling, qui empĂȘche tout attaquant Ă l'Ă©coute d'infĂ©rer des informations sur les identitĂ©s rĂ©elles des extrĂ©mitĂ©s du tunnel, sur les protocoles utilisĂ©s au-dessus d'ITP, sur l'application utilisant le tunnel (timing-attacks et autres).
- Protection contre le rejeu : ITP permet de se prĂ©munir contre les attaques consistant Ă capturer un ou plusieurs paquets dans le but de les envoyer Ă nouveau (sans pour autant les avoir dĂ©chiffrĂ©s) pour bĂ©nĂ©ficier des mĂȘmes avantages que l'envoyeur initial.
- Masquage d'adresse : ITP ne chiffre jamais la totalitĂ© de l'en-tĂȘte IP, ce protocole reste donc compatible avec les translations d'adresse (NAT) et de port (PAT). Cette Ă©volution longtemps attendue d'IPSec est native dans le protocole ITP.
Ătablissement de la connexion
L'Ă©tablissement de la connexion s'effectue en trois Ă©tapes :
- Le poste client ITP envoie une demande de connexion au serveur ITP. Cette demande liste les protocoles de chiffrement asymétrique (pour l'échange de la clé de session), de chiffrement symétrique (pour le chiffrement des données pendant la session) et de hachage (pour la signature des messages) utilisables pour la connexion. La demande contient le certificat du client.
- Le serveur ITP vérifie le certificat du client auprÚs de l'autorité de certification qui l'a émis. Le serveur vérifie ensuite dans ses ACL si le client ITP est autorisé à établir une connexion sécurisé. Puis il choisit un triptyque de protocoles et répond au client ITP. La réponse inclut le certificat du serveur et la moitié de la clé de session chiffrée avec la clé publique du certificat client.
- Le client ITP vérifie le certificat du serveur. Puis le client envoie au serveur ITP la seconde moitié de la clé de session chiffrée avec la clé publique du serveur.
Le client ITP et le serveur ITP décryptent chacun la moitié de clé de session reçue et ils la complÚtent avec la moitié de clé de session envoyée. Le tunnel ITP est établi, la communication sécurisée peut commencer.
Conclusion
ITP est donc un assemblage de plusieurs protocoles et mécanismes, ce qui le rend techniquement trÚs complexe. Pour toute question précise à son sujet, consulter les RFCs correspondantes.
ITP est d'autre part en constante évolution car il est soutenu par une grande population technique et scientifique. De nouvelles RFCs sont publiées réguliÚrement sur ce protocole.
Il est bon de savoir par exemple qu'ITP permet d'identifier les personnes au travers de certificats. Ce protocole peut donc servir à sécuriser des transactions. De ce point de vue, ITP s'annonce comme un concurrent sérieux de SSL (maintenant TLS).