!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> VPN

Virtual Private Network

IPsec

Présentation

IPSec est un protocole de niveau 3, initialement prévu pour IPv6 mais adapté à IPv4. Il permet la confidentialité des données transmises à l'aide de systèmes de cryptographie et de hachage.

Modes

IPSec peut être utilisé avec 2 modes :
  - transport : dans ce mode, on utilise AH ou ESP ou les deux pour envoyer les données.
  - tunnel : dans ce mode, on choisit entre également l'algorithme AH et ESP mais les données sont encapsulées dans un autre paquets IP pour être transportées.

Protocoles de sécurité

Deux protocoles de sécurités sont utilisées :

  - AH : Authentication Header, ce protocole permet d'assurer l'intégrité des données et donc à la réception, nous sommes sur que c'est bien la bonne personnes qui a envoyée les données. Pour cela, à la manière d'un IDS système, les données sont hashées, le hash obtenu est ensuite placées dans l'en-tete AH. Les algorithmes qui doivent être obligatoirement implémentés pour être conforme à la RFC sont SHA-1 et MD5.

  -ESP : Encapsulating Security Payload, permet lui aussi d'assurer l'intégrité des données mais aussi leur confidentialité. Pour ce qui est de l'intégrité, le principe est différent de celui de AH et fonctionne de la meme manière (avec les memes obligations d'implémentations). Pour l'authentification, un numéro de séquence est généré à partir de la clé secrète utilisée par les deux correspondants. Ainsi le numéro de séquence du prochain paquet expédié est uniquement calculable par les machines connaissants cette clé, ce qui garantit l'authenticité de l'émetteur. Pour la confidentialité, l'implémentation de triple DES est obligatoire, mais d'autres techniques peuvent être utilisées comme DES, RC5, ou autres.

Pour mieux comprendre les différences entre AH et ESP, nous allons voir le schéma suivant :



On peut donc voir tout en haut un paquet IP tout à fait normal, constitué d'une en-tête et des données que ce protocole transporte. En dessous, un paquet IPSec utilisant AH, la couche AH s'intercale entre l'en-tête IP et les données, mais assure l'authenticité de l'ensemble des données, en-tête comprise.

Ceci dit les valeurs variables de l'en-tête ne sont pas authentifiés, tel que le TTL. Évidemment, comme il est amené à changer lors de la transmission (puisqu'au travers d'internet on passe par des routeurs), si ces données étaient authentifiées, les données seraient systématiquement refusées.

En mode tunnel, comme je l'ai dit auparavant, les données qui seront transmises sur le réseaux non fable seront encapsulées dans un autre paquet IP. Cette encapsulation sera réalisée tout au long du tunnel ouvert par le VPN. Comme auparavant, l'ensemble des données visibles en couches 3 sont authentifiées. Pour ce qui est de l'algorithme de sécurité ESP, on a donc une en-tête qui contient le numéro de séquence et des données liées aux paramètres de sécurité utilisés. Ensuite vient un Trailer ESP qui contient éventuellement du bourrage, la longueur de celui-ci et un code spécifiant l'en-tête suivante. On aperçoit après les données utiles des données d'authentification permettant de vérifier l'intégrité des données via un hash de l'ensemble des données.

Cette intégrité est vérifiée avant de décrypter les données puisque cette opération est lourde et coûteuse en terme de temps. Ainsi les données ne sont pas valides, on se passera de les déchiffrer.
L'en-tête ESP n'est, elle non plus, non chiffrée. Etant donné qu'elle contient les données relatives aux algorithme de sécurité employés, si elles étaient chiffrées, il serait impossible au recepteur de pouvoir les déchiffrer.

Dans le cas d'un tunnel, même principe qu'auparavant, l'ensemble des données sont encapsulées dans un autre paquet IP permettant la création d'un tunnel entre les deux entités communicantes.