mercredi 7 mai 2014

Utilisation d'une session sécurisée via IPSEC

                  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.