Securiteinfo.com
La Sécurité Informatique - La Sécurité des Informations.
Recherche sur le site

Translate Translate
Übersetzung
[ Forum Securiteinfo.com | Les challenges de Hacking | Contactez nous ]


crypto
-----------
> Le tunneling
> IPSec
> Le chiffrement AES
> Les fonctions de hachage
> PGP
> 802.11b ou le WEP remis en cause
> [Suite... (11)]
-----------

cracking
-----------
> Par dictionnaire
> Par dictionnaire
> Résultats du challenge RC5-64
> Le projet NEO
> Site miroir de NEO
-----------

outils
-----------
> WinSSLMiM
> WinTCPKill
> WinDNSSpoof
> ICMP Shell Detect
> Domino Hash Breaker
> EtherIPMac
> [Suite... (7)]
-----------

legislation
-----------
> Projet de Loi sur la Sécurité Intérieure adopté le 17/07/2002
> Directive sur l'harmonisation de certains aspects du droit d'auteur et des droits voisins dans la société de l'information
> Rapport sur l'existence d'un système d'interception mondial des communications privées et économiques (système d'interception Echelon)
> Résolution du Parlement européen sur l'existence d'un système d'interception mondial des communications privées et économiques (système d'interception Echelon)
> Loi modifiant la loi n° 86-1067 du 30 septembre 1986 relative à la liberté de communication
> Décret n° 86-316 du 3 mars 1986 portant création du directoire de la sécurité des systèmes d'information
> [Suite... (35)]
-----------

phreaking
-----------
> Tempest
-----------

nos actions
-----------
> Factorisation de clé RSA (Challenge RSA-576)
> Lutte contre le cancer
> Calcul maths OGR-24
> Calcul maths OGR-25
> Recherche vie extraterrestre
> [Suite... (15)]
-----------

Le tunneling




Background

Le tunneling est une pratique courante visant à transporter un protocole (et ses données) dans un autre. Pour les personnes qui ne sont pas familières avec la notion de couche réseau, le modèle de référence habituel est le modèle OSI de l'ISO qui comporte 7 couches :

Théoriquement, chaque couche se veut indépendante des autres donc le protocole correspondant à chacune de ces couches transporte en fait le protocole de niveau supérieur. Prenons l'exemple d'une stack TCP/IP classique (sur Ethernet, et en faisant abstraction des couches supérieures) :

On a donc bien du TCP sur de l'IP sur de l'Ethernet (en anglais "over", ou "o"). Mais puisqu'il s'agit de l'ordre normal respectant le standard ISO, on ne parle pas alors d'encapsulation à proprement parler; il est par contre tout à fait envisageable de transporter, au moyen d'un protocole donné, d'autres protocoles de niveau équivalent dans le modèle OSI, voir inférieur. Et lorsque le protocole d'encapsulation permet de protéger les données qu'il transporte (d'une manière ou d'une autre, sans parler forcément de chiffrement), on préferera employer le terme de tunnel. Prenons quelques exemples d'encapsulations courantes :
  • Pour établir une liaison point-à-point sur de l'ethernet, on pourra utiliser PPPoE (RFC 2516 : PPP over Ethernet, les 2 étant au même niveau liaison).

  • Pour les utilisateurs de modems ADSL, il est courant de rencontrer PPPoA (RFC 2364 : PPP over ATM-AAL5) qui permet d'obtenir une liaison point-à-point avec le fournisseur d'accès internet.

  • Plus communément, l'ATM requiert une encapsulation particulière pour tous les protocoles (avec AAL5); cette encapsulation est définie dans la RFC 2684.

  • L2TP (Layer 2 Tunneling Protocol, RFC 2661) est un protocole issu de la normalisation de PPTP et L2F, 2 protocoles de tunneling de niveau 2. Bien qu'il soit lui aussi -comme son nom l'indique- un protocole de niveau 2, il est souvent utilisé sur UDP et IP pour transporter du PPP (et un autre protocole au-dessus). On obtient donc :

    .../PPP/L2TP/UDP/IP/...

    Nous verrons plus tard un exemple d'utilisation concret de ce genre de technique.

  • Le dernier cas que nous nous devons d'aborder (sécurité oblige) est celui d'IPSec (voir fiche correspondante). Ce protocole est par définition de niveau 3 (réseau), tout comme IP qu'il sert à protéger. Utilisé en mode tunneling, IPSec encapsule des paquets IP complets et les protège jusqu'à leur destination, où les paquets IP sont "décapsulés" et restitués.




Exemples

Aussi étrange que cela puisse paraitre, le tunneling peut s'avérer utile à IPSec lui-même. En effet, nombre de réseaux actuels utilisent des adresses IP dites privées, c'est-à-dire non-routables sur Internet, car cela permet d'augmenter considérablement le nombre d'adresses disponibles. La conséquence directe est le fait que les passerelles qui connectent ces réseaux à Internet implémentent des fonctionalités de NAT (Network Adress Translation) et de PAT (Port Adress Translation), voir les 2, qui permettent aux machines du réseau privé d'accéder au monde extérieur quand le besoin se fait sentir, et ce en utilisant une adresse publique allouée dynamiquement par la passerelle.
Concrètement, ces machines ne sont donc pas visibles à partir d'Internet, et elles n'utilisent jamais leur adresse privée lorsqu'elles accèdent à ce dernier. Il est donc impossible d'utiliser IPSec entre une de ces machines du réseau privé et une autre sur Internet, car le NAT va modifier les adresses IPs et casser ainsi les vérifications d'intégrité inhérentes à IPSec. Ceci est valable pour le mode tunneling d'IPSec (voir article sur IPSec) mais également pour son mode transport car une des particularités de TCP, par exemple, est d'utiliser des checksums englobant le header IP. Le seul mode éventuellement compatible serait le mode nesting, mais il reste plus compliqué à mettre en oeuvre.
C'est pourquoi, nous allons illustrer ici le concept de tunneling en montrant une façon de traverser une passerelle grâce à de l'encapsulation. Tout d'abord, le problème est de faire communiquer 2 machines de manière sécurisée : un tunnel IPSec de bout en bout est requis. D'autre part, il se trouve que la première machine (A) est sur un réseau privé protégé par une passerelle ayant une fonctionnalité de NAT. De son côté, la machine B est reliée au réseau de son fournisseur d'accès Internet qui n'est pas forcément plus sûr que le réseau public, d'où la nécessité d'utiliser IPSec de bout en bout.

Premier exemple, le plus simple : le but est d'établir un tunnel IP entre A et une passerelle C du fournisseur d'accès internet de B. Cette passerelle doit pour cela implémenter cette fonctionnalité. D'autre part, le tunnel IP peut traverser le NAT car il n'applique aucune protection sur les données qu'il transporte (ici IPSec) et la translation d'adresse peut donc être effectuée.
La passerelle C décapsule les paquets IP et route les paquets IPSec vers leur destination finale. Le problème de cette solution est le manque de sécurité du tunnel IP, qui n'offre par définition aucune possibilité d'authentification des tunnels entrants; il faut donc s'appuyer sur des méchanismes annexes (certificats, etc...). La stack de protocoles nécessaire à A pour communiquer avec B sera donc la suivante :

Application / TCP / IPSec / IP / Ethernet

Celle de B reste normale; il doit juste implémenter IPSec.
La deuxième possibilité est d'utiliser L2TP, mentionné précédement, pour créer un tunnel entre A et C. Bien que L2TP et PPP ne permettent pas d'obtenir de forts services de sécurité, il existe néanmoins plusieurs solutions pour authentifier les connexions distantes (provenant ici de A).
Ici encore, le protocole de base est IP car il permet la traversée du NAT; attention, IP est toujours utilisé jusqu'à C bien qu'il ne soit représenté que partiellement car il n'est intéressant que lors de la traversée du NAT. Vient ensuite UDP qui est susceptible de transporter de nombreux protocoles tout en permettant de traverser certains équipements réseau (tout comme des flux DNS). Nous trouvons ensuite PPP sur L2TP qui permettent d'établir un tunnel (connexion point-à-point) avec C. Celui-ci doit donc implémenter la fonctionnalité correspondante (L2TP Network Server ou LNS). Enfin, comme dans le cas précédent, le flux IPSec est routé vers sa destination finale, B. La stack de protocoles nécessaire à A pour communiquer avec B sera donc la suivante :

Application / TCP / IPSec / PPP / L2TP / UDP / IP / Ethernet

Celle de B reste normale; il doit juste implémenter IPSec.
Remarque : ces exemples n'ont pour but que de montrer les possibilités d'encapsulation et l'intérêt de cette technique. La liste n'est bien sûr pas exhaustive. De plus, rappelons tout de même que l'utilisation d'IPSec est habituellement à l'opposé de ce qui a été montré ici : IPSec est normalement le protocole effectuant l'encapsulation et non l'inverse; IPSec est le plus souvent utilisé entre passerelles et non l'inverse. Voir la fiche sur IPSec pour plus de détails.




Conclusion

Bien que complexe, le concept de tunneling et d'encapsulation peut se révéler très utile pour traverser certains équipements réseau de façon transparente, et permettre une connectivité accrue. Néanmoins, il ne faut pas oublier que le fait de sauter un firewall annule purement et simplement la protection que celui-ci procure et peut-même compromettre le réseau privé tout entier, exactement comme une personne utilisant un modem sur son ordinateur professionnel alors que celui-ci est connecté au réseau de l'entreprise...
Le principe d'encapsulation a d'autre part été démocratisé et étendu à d'autres applications; on trouve maintenant des outils de tunneling basés sur HTTP ou UDP (flux DNS) qui permettent aisément de traverser des firewalls.



communication
-----------
> FastBB 1.1.2
> CoolForum 0.5
> Abyss Web Server
> Pablo FTP Server
> KF Web Server 1.0.2
> Cookie Cibleclick.com
> [Suite... (7)]
-----------

hacking
-----------
> Deni de Service Distribué (DDoS)
> Types d'attaque
> Challenges de hacking
> Deni de service
> Buffer Overflow
> Mailbombing
> [Suite... (39)]
-----------

conseils
-----------
> Sécurité et Cookies
> Comment porter plainte ?
> La tanslation d'adresse (NAT)
> Les firewalls
> Les mots de passe
> La biométrie
> [Suite... (22)]
-----------

divers
-----------
> Forum
> Foire Aux Questions
> Ebooks gratuits
> Lexique
> Qui sommes nous ?
> Webcam de SecuriteInfo.com
> [Suite... (11)]
-----------

diverses attaques
-----------
> Chevaux de Troie
> Espiogiciels (Spywares)
> Key Loggers
> Social Engineering
> Stéganographie
> Cartes magnétiques
> [Suite... (8)]
-----------