Internet Tunneling Protocol
828438
31305598
2008-07-04T19:37:48Z
Mro
335458
en->fr [[:en:Internet key exchange]]->[[Internet Key Exchange]]
{{ébauche|cryptologie|sécurité informatique}}
ITP ('''Internet Tunneling Protocol''') est un protocole ([[Couche de réseau|couche 3]] du [[modèle OSI]]) permettant le transport de données sécurisées sur un réseau [[Protocole Internet|IP]].
==Description==
Evolution du protocole [[IPsec]], il prend contrairement à lui en charge la notion de [[Network address translation|Nat]]/[[Port address translation|Pat]]<ref>{{en}} [[:en:Port address translation|Port address translation]]</ref>, 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 [[Réseau privé virtuel|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 [[User Datagram Protocol|UDP]] depuis et vers le port 500 (''ISAKMP'' pour ''Internet Security Association and Key Management Protocol''<ref>{{en}} [[:en:Internet Security Association and Key Management Protocol|Internet Security Association and Key Management Protocol]]</ref>), défini dans la RFC 2408.
Sous Windows, IKE<ref>[[Internet Key Exchange|Internet key exchange]]</ref> est en charge 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.
==Les services proposés par ITP==
*''Identification des extrémités'' : cette identification mutuelle repose sur des [[Certificat électronique|certificat]]s 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ême 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 ([[Network address translation|NAT]]) et de port ([[Port address translation|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 [[Cryptographie asymétrique|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 [[Access Control List|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.
==En-tête ITP==
''A compléter''
==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 [[Transport Layer Security|SSL (maintenant TLS)]].
== Voir aussi ==
=== Articles connexes ===
* [[Redirection de ports]]
=== Références ===
<references/>
{{Portail|informatique|cryptologie|sécurité informatique}}
[[Catégorie:Protocole réseau]]
[[Catégorie:Protocole de communication chiffrée]]