Internet Key Exchange

Ce protocole a pour but dans sa première phase de construction d'un premier tunnel sécurisé entre les 2 hôtes (le tunnel IKE). Il est utilisé pour gérer les tunnels IPSec (la négociation des SAs et leur mise à jour) constituant la deuxième phase du protocole IKE. Ce sont ces tunnels qui serviront aux échanges de données entre les hôtes. Cependant, IPSec offre la possibilité d'opérer une authentification manuelle, sans utiliser IKE.

Il est la combinaison de plusieurs autres protocoles:
ISAKMP, protocole de gestion des clés et des associations de sécurité pour Internet : cadre générique permettant l'utilisation de plusieurs protocoles d'échange de clé
SKEME et Oakley, systèmes d'échange de clés.

Les différentes étapes du protocole IKE :

\includegraphics[width=120mm]{images/protocole_ike.eps}

IKE Phase 1

Cette phase va servir à la création d'une première clé qui va permettre par la suite la génération de 3 autres clés dérivant de celle-ci. Cette clé peut être générée selon 3 modes offerts par IKE. Le mode «secret partagé» implique que les hôtes partagent déjà un secret qui permettra la mise au point de cette clé. Le mode « Chiffrement asymétrique » se base sur les crypto système à clé publique pour échanger les données sensibles et donc établir le secret partagé. Le mode «Signature», quant à lui, se sert du chiffrement asymétrique pour signer et authentifier les hôtes alors que le secret partagé est établi grâce à Diffie-Hellman.

Une fois la première clé générée, elle est dérivée en 3 autres clés qui serviront à la création du tunnel IKE sécurisé entre les hôtes (en faîte une association de sécurité ISAKMP). L'une des clés sera utilisée pour l'authentification, l'autre pour le chiffrement et la dernière sera utilisé lors de la phase 2 du protocole.
Ce canal, sécurisé, est ensuite utilisé pour la deuxième phase IKE.

Plus précisément, lors de cette phase, les échanges permettent de définir l'association de sécurité puis d'établir le secret partagé et enfin d'authentifier les hôtes.

Il faut noter que le mode aggressif permet de limiter les communications en utilisant certains paramètres d'office. D'autre part, les SA ISAKMP utilisent un chiffrement (DES ou 3DES) lors de l'échange des clefs de session.


IKE Phase 2

L'objectif de la deuxième phase à pour objectif de créer les tunnels IPSec (SA) pour les échanges effectifs entre les hôtes : Deux SA par hôtes, un pour chaque sens de communication, conservées dans la SAD (Security Association Database).
C'est lors de cette phase que chaque hôte donne ses préférences en matière d'algorithme et établissent le matériel cryptographique. Les clés de session sont générées à partir de l'une des clés dérivées, générée durant la phase 1 de IKE.
Cependant, lorsque le mode «Perfect Secrecy» est utilisé, les hôtes doivent échanger de nouveaux secrets, ceci afin de couper la relation systématique entre les nouvelles clés générés et la clé de la phase 1 IKE. Cet échange s'effectue via le protocole d'échange Diffie-Hellman.
Cette phase sert aussi à spécifier les échanges devant bénéficier des services IPSec (utilisation de la Security Policy Database),
Rappels sur certains systèmes utilisés :
RSA (Rivest, Shamir, Adleman) :
RSA est un crypto système à clé publique faisant intervenir une paire de clé par intervenant, dans un échange sécurisé :
Une clé privée, utilisée par l'émetteur du message pour chiffrer. Cette clé n'est jamais divulguée.
Une clé publique, utilisée par le destinataire pour déchiffrer le message. Cette clé est divulgué à tous les destinataire via, par exemple, un certificat numérique certifié par un CA.

Cet algorithme s'appuie sur la difficulté de factorisation de deux nombres entiers.

bf Diffie-Hellman :
Il s'agit d'un algorithme d'échange de clefs pour les algorithmes à clefs publiques. Cet algorithme permet un établissement d'un secret partagé entre 2 hôtes, et ce via un réseau non sécurisé.
DH est basé sur les nombres premiers, le modulo et le logarithme discret :
Une fois les paires de clés générées à l'aide des données partagées, les clés publiques sont échangées et vont servir à l'aide des clés privées à générer le secret (une clef de session qui servira au criffrement des messages). Pour cela, chaque hôte utilise sa clef privée et la clé publique de l'hôte distant pour créer la clef de session commune.


root 2004-05-04