IPsec est un protocole
permettant de sécuriser les communications IP grâce à une utilisation de la
cryptographie. Cet article présente les notions nécessaires pour
comprendre les mécanismes mis en œuvre dans IPsec ainsi que les différentes
fonctionnalités offertes par IPsec. Un exemple d'utilisation avec son tp est
aussi présenté.
I-Présentation d’IPSEC :
IPsec (Internet
Protocol Security), défini par l’IETF comme un cadre de standards ouverts
pour assurer des communications privées et protégées sur des réseaux IP, par
l'utilisation des services de sécurité cryptographiques, est un ensemble de
protocoles utilisant des algorithmes permettant le transport de données
sécurisées sur un réseau IP. IPSec se différencie des standards de
sécurité antérieurs en n'étant pas limité à une seule méthode
d'authentification ou d'algorithme et c'est la raison pour laquelle il est
considéré comme un cadre de standards ouverts. De plus IPSec opère à la
couche réseau (couche 3 du modèle OSI) contrairement aux standards antérieurs
qui opéraient à la couche application (couche 7 du modèle OSI), ce qui le
rend indépendant des applications, et veut dire que les utilisateurs n'ont pas
besoin de configurer chaque application aux standards IPSec
II- Les services fournis par IPSEC :
- 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. Nous verrons techniquement comme l'authentification
est effectuée dans les paragraphes suivants.
- 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.
III- le protocole IPSEC :
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, RFC 2402) qui
vise à établir l'identité des extrémités de façon certaine. Il ne garantit
aucune confidentialité (chiffrement) des données. Le deuxième protocole est le
protocole ESP (Encapsulating Security Payload, RFC 2406) 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.
IV-Modes de fonctionnement :
Pour chacun des
mécanismes de sécurité d’Ipsec, il existe deux mode modes de fonctionnement. Ces
deux modes sont choisis en fonction des besoins dans l’entreprise
En mode de transport, seules les données en provenance du protocole de niveau supérieur et
transportées par le datagramme ip sont protégées, c’est-à-dire que les données sont prises au niveau de la couche
transport, elles sont cryptées et signées avant d’être transmise à la couche
IP.
Dans ce mode l’insertion de la couche
ipsec est transparente entre tcp et ip, c.à.d. tcp envoie ses données vers
ipsec comme il les enverrait vers ip4. Ce mode n’est utilisable que sur des
équipements terminaux. Son inconvénient
réside dans le fait que l’entête exterieur est produit par la couche ip
càd sans masquage d’adresses alors que son intérêt réside dans une relative
facilité de mise en œuvre.
Pour bien expliquer le fonctionnement en
mode transport, on va prendre seulement l’exemple du protocole esp appliqué sur
le packet ip, alors comme vous le savez le packet comprend les données
correspondant au segment envoyé par la couche transport et l’entête ajouté par
la couche réseau, le protocole esp fonctionne suivant le principe de
l'encapsulation : les données originales sont chiffrées puis encapsulées c’est
à dire qu’après application du protocole
sur la packet, les données seront chiffrées et encapsulées par trois
champs esp.
En mode tunnel, les données envoyées par l'application traversent la pile de protocole
jusqu'à la couche IP incluse, puis sont envoyées vers le module Ipsec, c.à.d.
que l’insertion s’effectue après la couche ip
Dans ce mode les packet ip sont encapsulés
dans d’autres packets c.à.d, que le packet sera chiffré en entier
Ce mode est utilisable à la fois sur des
équipements terminaux et sur des passerelles de sécurité, il permet d’assurer
une protection importante contre l’analyse du trafic, car il masque les adresse
de l’expéditeur et du destinataire final
Ce mode permet de crypter les données
d'une section non sécurisée d'un réseau. Par exemple, si deux entreprises
associées veulent crypter toutes les données FTP entre leurs bureaux. Dans ce
cas, il est possible de configurer IPSec pour crypter les données uniquement
entre les pare-feu de chaque bureau comme illustré sur le schéma , les données
sont chiffrées ainsi que l’entête qui est remplacé par un nouvel entête, ce
dernier sert à transporter le packet jusqu’à la fin du tunnel, ou l’entête
original est rétabli.