top of page
Le Protocole IPsec

IPSec (Internet Protocol Security) est un protocole de la couche 3 du modèle OSI, tout comme IP; il fut à l'origine développé dans le cadre de la version future de ce dernier protocole, à savoir IPv6. Maisil a été porté vers la version IPv4 et est maintenant disponible pour tous. IPsec, également appelé protocole de sécurité du protocole Internet.

Présentation

IPSec est un protocole destiné à fournir différents services de sécurité. Il propose ainsi plusieurs choix et options qui lui permettent de répondre de façon adaptée aux besoins des entreprises, nomades, extranets, particuliers, etc... Néanmoins, son intérêt principal reste sans conteste son mode dit de tunneling, c'est-à-dire d'encapsulation d'IP qui lui permet entre autres choses de créer des réseaux privés virtuels (ou VPN en anglais). Cette technologie à pour but d'établir une communication sécurisée (le tunnel) entre des entités éloignées, séparées par un réseau non sécurisé voir public comme Internet, et ce de manière quasi-transparente si on le désire.

Dans ce cours c'est ce mode d'IPSec, le mode tunneling, qui sera décrit en priorité.

Quelques propriétés générales des tunnels destinés aux VPNs :

  • Les données transitant sont chiffrées (confidentialité) et protégées (intégrité)

  • Les 2 extrémités sont authentifiées

  • Les adresses sources et destinations sont chiffrées, avec IPSec (IP dans IPSec)

  • Ils peuvent présenter, suivant le protocole, des qualités anti-rejeux ou empêcher les attaques type man-in-the-middle.

Il est important de ne pas négliger les aspects tel que la charge processeur due au chiffrement, le débit théorique possible, et donc le débit effectif... De plus IPsec n'est pas le seul protocole permettant d'établir des tunnels.

D'un point de vue pratique, IPSec est un protocole relativement difficile à implémenter d'une part à cause de sa complexité intrinsèque (multiples sous-protocoles...) et d'autre part à cause de ses interactions avec les processus réseau courants. S'il a été conçu avec des critères tel que la compatibilité en tête, IPSec n'en reste pas moins un protocole de niveau 3 qui ne supporte aucune modification ni altération à ce niveau (ou supérieur) une fois ses paquets créés.

Ainsi, de nombreux points restent problématiques comme la compatibilité avec le NAT (modifications de niveau 3).

Les services proposés par IPSec

Revenons-en au protocole en lui-même. Nous avons cité précédemment quelles étaient les propriétés basiques des tunnels de chiffrement, et ce indépendamment du protocole utilisé.

Citons à présent quels sont les services de sécurité proposés par IPSec, services qui permettent notamment d'assurer les propriétés des tunnels et VPNs citées précédemment : 

  • Authentification des extrémités : cette authentification mutuelle permet à chacun de s'assurer de l'identité de son interlocuteur. Rappelons tout de même qu'IPSec est un protocole de niveau 3 et qu'il ne fournit donc qu'une authentification de niveau égal, c'est-à-dire une authentification des machines mettant en oeuvre le protocole plutôt que des personnes utilisant réellement la machine. 

  • Confidentialité des données échangées : IPSec 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 : IPSec 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 : IPSec permet de s'assurer qu'aucun paquet n'a subit de modification quelconque (attaque dite active) durant son trajet.

  • Protection contre les écoutes et analyses de trafic : IPSec permet de chiffrer les adresses IP réelles de la source et de la destination, ainsi que 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'IPSec, sur l'application utilisant le tunnel (timing-attacks et autres)...

  • Protection contre le rejeu : IPSec 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.

Description des sous-protocoles

IPSec repose en fait sur plusieurs protocoles différents dont certains existent à part entière hors d'IPSec, ce qui lui offrent en retour une grande souplesse d'utilisation.

Le proctocole initial et principal est le protocole IKE (Internet Key Exchange). Appliqué à IPSec, ce protocole a pour objectif dans un premier temps d'établir un premier tunnel entre les 2 machines (le tunnel IKE), que l'on pourra qualifier de "tunnel administratif". C'est la phase 1 du protocole IKE. Ce protocole est dit administratif car il ne sert pas à la transmission des données utilisateur; il est utilisé pour gérer les tunnels secondaires, leur création, le rafraîchissement des clés, etc... La phase 2 du protocole IKE consiste en effet à établir autant de tunnels secondaires que nécessaire pour la transmission des données utilisateur entre les 2 machines. Notez qu'il est possible de recourir à une authentification manuelle à la place d'IKE, mais comme ce dernier permet bien plus de choses que de l'authentification, cela s'avère beaucoup plus difficile à utiliser.

Les tunnels destinés aux échanges de données vont s'appuyer sur 2 protocoles différents suivant les besoins en sécurité des utilisateurs. Le premier est le protocole AH (Authentication Header) qui vise à établir l'identité des extrémités. Il ne garantit aucune confidentialité (chiffrement) des données. Le deuxième protocole est le protocole ESP (Encapsulating Security Payload) qui a pour but de chiffrer les données, avec ou sans les entêtes des paquets si l'on souhaite le mode tunneling. Il garantit également l'authenticité des données et, à ce niveau, peut introduire de la redondance par rapport à AH. Les aspects cryptographiques de ces protocoles seront décrits dans un paragraphe dédié.

Ces 2 protocoles, AH et ESP, peuvent d'autre part être utilisés séparément ou combinés, comme expliqué ci-dessous. 

Conclusion

IPSec est comme nous l'avons vu un assemblage de plusieurs protocoles et mécanismes ce qui le rend techniquement très complexe. Je vous invite à consulter les RFCs correspondantes pour toute question précise à son sujet.
IPSec est d'autre part en constante évolution car il est soutenu par une grande population technique et scientifique.
Rappelons enfin qu'un des objectifs de ce cours est également de soulever les limites de ce protocole; il est bon de savoir par exemple qu'IPSec ne permet pas véritablement d'authentifier des personnes et ne peut donc pas servir à sécuriser des transactions. De ce point de vue, ce n'est pas un concurrent de SSL. 

bottom of page