Protocoles utilisés pour réaliser une connexion VPN

By 7 August 2012

2.3 Protocoles utilisés pour réaliser une connexion VPN

2.3.1 Le protocole IPSEC

IPSEC, définit par la RFC 2401 (www.frameip.com/rfc/rfc2401.php), est un protocole qui vise à sécuriser l’échange de données au niveau de la couche réseau. Le réseau IPV4 étant largement déployé et la migration vers IPV6 étant inévitable, mais néanmoins longue, il est apparu intéressant de développer des techniques de protection des données communes à IPV4 et IPV6. Ces mécanismes sont couramment désignés par le terme IPSEC pour IP Security Protocols. IPSEC est basé sur deux mécanismes. Le premier, AH, pour Authentication Header vise à assurer l’intégrité et l’authenticité des datagrammes IP. Il ne fournit par contre aucune confidentialité : les données fournies et transmises par ce protocole ne sont pas encodées. Le second, ESP, pour Encapsulating Security Payload peut aussi permettre l’authentification des données mais est principalement utilisé pour le cryptage des informations. Bien qu’indépendants ces deux mécanismes sont presque toujours utilisés conjointement. Enfin, le protocole IKE permet de gérer les échanges ou les associations entre protocoles de sécurité. Avant de décrire ces différents protocoles, nous allons exposer les différents éléments utilisés dans IPSEC.

Les mécanismes mentionnés ci-dessus font bien sûr appel à la cryptographie et utilisent donc un certain nombre de paramètres (algorithmes de chiffrement utilisés, clefs, mécanismes sélectionnés…) sur lesquels les tiers communicants doivent se mettre d’accord. Afin de gérer ces paramètres, IPSEC a recours à la notion d’association de sécurité (Security Association, SA).

Une association de sécurité IPSEC est une « connexion » simplexe qui fournit des services de sécurité au trafic qu’elle transporte. On peut aussi la considérer comme une structure de données servant à stocker l’ensemble des paramètres associés à une communication donnée.

Une SA est unidirectionnelle; en conséquence, protéger les deux sens d’une communication classique requiert deux associations, une dans chaque sens. Les services de sécurité sont fournis par l’utilisation soit de AH soit de ESP.

Chaque association est identifiée de manière unique à l’aide d’un triplet composé de :
* L’adresse de destination des paquets,
* L’identifiant du protocole de sécurité utilisé (AH ou ESP),
* Un index des paramètres de sécurité (Security Parameter Index, SPI). Un SPI est un bloc de 32 bits inscrit en clair dans l’en-tête de chaque paquet échangé; il est choisi par le récepteur.

Pour gérer les associations de sécurité actives, on utilise une « base de données des associations de sécurité » (Security Association Database, SAD). Elle contient tous les paramètres relatifs à chaque SA et sera consultée pour savoir comment traiter chaque paquet reçu ou à émettre.

Les protections offertes par IPSEC sont basées sur des choix définis dans une « base de données de politique de sécurité » (Security Policy Database, SPD). Cette base de données est établie et maintenue par un utilisateur, un administrateur système ou une application mise en place par ceux-ci. Elle permet de décider, pour chaque paquet, s’il se verra apporter des services de sécurité, s’il sera autorisé à passer ou rejeté.

2.3.2 Principe de fonctionnement du protocole IPSEC

On distingue deux situations :

* Trafic sortant

Lorsque la couche IPSEC reçoit des données à envoyer, elle commence par consulter la base de données des politiques de sécurité (SPD) pour savoir comment traiter ces données. Si cette base lui indique que le trafic doit se voir appliquer des mécanismes de sécurité, elle récupère les caractéristiques requises pour la SA correspondante et va consulter la base des SA (SAD). Si la SA nécessaire existe déjà, elle est utilisée pour traiter le trafic en question. Dans le cas contraire, IPSEC fait appel à IKE pour établir une nouvelle SA avec les caractéristiques requises.

* Trafic entrant

Lorsque la couche IPSEC reçoit un paquet en provenance du réseau, elle examine l’en-tête pour savoir si ce paquet s’est vu appliquer un ou plusieurs services IPSEC et si oui, quelles sont les références de la SA. Elle consulte alors la SAD pour connaître les paramètres à utiliser pour la vérification et/ou le déchiffrement du paquet. Une fois le paquet vérifié et/ou déchiffré, la Spd est consultée pour savoir si l’association de sécurité appliquée au paquet correspondait bien à celle requise par les politiques de sécurité.

Dans le cas où le paquet reçu est un paquet IP classique, la SPD permet de savoir s’il a néanmoins le droit de passer. Par exemple, les paquets IKE sont une exception. Ils sont traités par IKE, qui peut envoyer des alertes administratives en cas de tentative de connexion infructueuse.

2.3.3 Le protocole AH « Authentication Header »

L’absence de confidentialité permet de s’assurer que ce standard pourra être largement répandu sur Internet, y compris dans les endroits où l’exportation, l’importation ou l’utilisation du chiffrement dans des buts de confidentialité est restreint par la loi.

Son principe est d’adjoindre au datagramme IP classique un champ supplémentaire permettant à la réception de vérifier l’authenticité des données incluses dans le datagramme. Ce bloc de données est appelé « valeur de vérification d’intégrité » (Integrity Check Value, ICV). La protection contre le rejet se fait grâce à un numéro de séquence.

2.3.4 Le protocole ESP « Encapsulating Security Payload »

ESP peut assurer au choix, un ou plusieurs des services suivants :

* Confidentialité (confidentialité des données et protection partielle contre l’analyse du trafic si l’on utilise le mode tunnel).
* Intégrité des données en mode non connecté et authentification de l’origine des données, protection contre le rejeu.

La confidentialité peut être sélectionnée indépendamment des autres services, mais son utilisation sans intégrité/authentification (directement dans ESP ou avec AH) rend le trafic vulnérable à certains types d’attaques actives qui pourraient affaiblir le service de confidentialité.

Le champ bourrage peut être nécessaire pour les algorithmes de chiffrement par blocs ou pour aligner le texte chiffré sur une limite de 4 octets. Les données d’authentification ne sont présentes que si ce service a été sélectionné.

Voyons maintenant comment est appliquée la confidentialité dans ESP.

L’expéditeur :

* Encapsule, dans le champ « charge utile » d’ESP, les données transportées par le datagramme original et éventuellement l’en-tête IP (mode tunnel).
* Ajoute si nécessaire un bourrage.
* Chiffre le résultat (données, bourrage, champs longueur et en-tête suivant).
* Ajoute éventuellement des données de synchronisation cryptographiques (vecteur d’initialisation) au début du champ « charge utile ».

2.3.5 La gestion des clefs pour IPSEC : ISAKMP et IKE

Les protocoles sécurisés présentés dans les paragraphes précédents ont recours à des algorithmes cryptographiques et ont donc besoin de clefs. Un des problèmes fondamentaux d’utilisation de la cryptographie est la gestion de ces clefs. Le terme « gestion » recouvre la génération, la distribution, le stockage et la suppression des clefs.

IKE (Internet Key Exchange) est un système développé spécifiquement pour IPSEC qui vise à fournir des mécanismes d’authentification et d’échange de clef adaptés à l’ensemble des situations qui peuvent se présenter sur l’Internet. Lorsqu’il est utilisé pour IPSEC, IKE est de plus complété par un « Domaine d’interprétation » pour IPSEC.

2.3.5.1 ISAKMP (Internet Security Association and Key Management Protocol)

ISAKMP a pour rôle la négociation, l’établissement, la modification et la suppression des associations de sécurité et de leurs attributs. Il pose les bases permettant de construire divers protocoles de gestion des clefs (et plus généralement des associations de sécurité). Il comporte trois aspects principaux :

Il définit une façon de procéder, en deux étapes appelées phase 1 et phase 2 : dans la première, un certain nombre de paramètres de sécurité propres à ISAKMP sont mis en place, afin d’établir entre les deux tiers un canal protégé; dans un second temps, Ce canal est utilisé pour négocier les associations de sécurité pour les mécanismes de sécurité que l’on souhaite utiliser (AH et Esp par exemple).

Il définit des formats de messages, par l’intermédiaire de blocs ayant chacun un rôle précis et permettant de former des messages clairs.

Il présente un certain nombre d’échanges types, composés de tels messages, qui permettant des négociations présentant des propriétés différentes : protection ou non de l’identité, perfect forward secrecy…

2.3.5.2 IKE (Internet Key Exchange)

IKE utilise ISAKMP pour construire un protocole pratique. Il comprend quatre modes :
* Le mode principal (Main mode)
* Le mode agressif (Aggressive Mode)
* Le mode rapide (Quick Mode)
* Le mode nouveau groupe (New Groupe Mode)

Main Mode et Aggressive Mode sont utilisés durant la phase 1, Quick Mode est un échange de phase 2. New Group Mode est un peu à part : Ce n’est ni un échange de phase 1, ni un échange de phase 2, mais il ne peut avoir lieu qu’une fois qu’une SA ISAKMP est établie; il sert à se mettre d’accord sur un nouveau groupe pour de futurs échanges Diffie-Hellman.

Phase 1 : Main Mode et Aggressive Mode

Les attributs suivants sont utilisés par IKE et négociés durant la phase 1 : un algorithme de chiffrement, une fonction de hachage, une méthode d’authentification et un groupe pour Diffie-Hellman.Trois clefs sont générées à l’issue de la phase 1 : une pour le chiffrement, une pour l’authentification et une pour la dérivation d’autres clefs. Ces clefs dépendent des cookies, des aléas échangés et des valeurs publiques Diffie-Hellman ou du secret partagé préalable. Leur calcul fait intervenir la fonction de hachage choisie pour la SA ISAKMP et dépend du mode d’authentification choisi.

Phase 2 : Quick Mode

Les messages échangés durant la phase 2 sont protégés en authenticité et en confidentialité grâce aux éléments négociés durant la phase 1. L’authenticité des messages est assurée par l’ajout d’un bloc Hash après l’en-tête ISAKMP et la confidentialité est assurée par le chiffrement de l’ensemble des blocs du message.Quick Mode est utilisé pour la négociation de SA pour des protocoles de sécurité donnés comme IPSEC. Chaque négociation aboutit en fait à deux SA, une dans chaque sens de la communication.

Plus précisément, les échanges composant ce mode ont le rôle suivant :
* Négocier un ensemble de paramètres IPSEC (paquets de SA)
* Échanger des nombres aléatoires, utilisés pour générer une nouvelle clef qui dérive du secret généré en phase 1 avec le protocole Diffie-Hellman. De façon optionnelle, il est possible d’avoir recours à un nouvel échange Diffie-Hellman, afin d’accéder à la propriété de Perfect Forward Secrecy, qui n’est pas fournie si on se contente de générer une nouvelle clef à partir de l’ancienne et des aléas.
* Optionnellement, identifier le trafic que ce paquet de SA protégera.

Les groupes : New Groupe Mode

Le groupe à utiliser pour Diffie-Hellman peut être négocié, par le biais du bloc SA, soit au cours du Main Mode, soit ultérieurement par le biais du New Group Mode. Dans les deux cas, il existe deux façons de désigner le groupe à utiliser :
* Donner la référence d’un groupe prédéfini : il en existe actuellement quatre, les quatre groupes Oakley (deux groupes MODP et deux groupes EC2N).
* Donner les caractéristiques du groupe souhaité : type de groupe (MODP, ECP, EC2N), nombre premier ou polynôme irréductible, générateurs…

2.3.6 Les deux modes de fonctionnement d’IPSEC

Le mode transport prend un flux de niveau transport du modèle OSI et réalise les mécanismes de signature et de chiffrement puis transmet les données à la couche IP. Dans Ce mode, l’insertion de la couche IPSEC est transparente entre TCP et IP. TCP envoie ses données vers IPSEC comme il les enverrait vers IPv4.

L’inconvénient de ce mode réside dans le fait que l’en-tête extérieur est produit par la couche IP c’est-à-dire sans masquage d’adresse. De plus, le fait de terminer les traitements par la couche IP ne permet pas de garantir la non-utilisation des options IP potentiellement dangereuses. L’intérêt de ce mode réside dans une relative facilitée de mise en œuvre.

Dans le 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. L’encapsulation IPSEC en mode tunnel permet le masquage d’adresses. Le mode tunnel est utilisé entre deux passerelles de sécurité (routeur, firewall www.frameip.com/firewall/, …) alors que le mode transport se situe entre deux hôtes.

Lire le mémoire complet ==> (Sécurité Informatique au sein de l’entreprise)
Mémoire de fin d’études en Informatique