Académique Documents
Professionnel Documents
Culture Documents
IPSec Techniques
IPSec Techniques
Fiche technique
Bénoni MARTIN
Degré de difficulté
I
PSec a été développé par l'IETF dans le but IPSec permet donc principalement :
de sécuriser TCP/IP au niveau de la couche
3 (couche réseau du modèle OSI), contrai- • l’authentification – cette fonctionnalité re-
rement à SSL/TLS ou SSH qui sécurisent res- pose entre autres sur le concept de cookie
pectivement les couches 6 et 7 (ce qui évite de comme nous le verrons par la suite et est
rattacher IPSec à un port donné -22 pour SSH basée sur des clés prépartagées, adres-
ou 443 pour HTTPs-). Il peut être implémenté ses IP, noms FQDN, certificats X.509, ...,
sur des connexions hôte vers hôte, hôte vers • l’intégrité des données – via l’utilisation
passerelle ou passerelle vers passerelle. Le d’algorithmes de hachage, nous pouvons
premier type requiert soit le mode transport, vérifier que les données n’ont pas été
soit le mode tunnel, tandis que les deux der- altérées entre le départ et l’arrivée.
niers cas demandent forcément un mode tun- Cette intégrité repose sur deux types
nel. Par l'authentification et le chiffrement des particuliers de fonctions de hachage :
paquets IP, IPSec permet de sécuriser toute les MACs -cf. Encadré- et les HMACs -cf.
transmission de données reposant sur TCP. Encadré-,
Nous présenterons donc IPSec comme :
paquets pouvant être envoyés latives, ce qui permettra de savoir Voici comment il fonctionne : une
sur le futur tunnel, comment traiter chaque paquet à largeur de fenêtre est établie au dé-
• lien vers la SPD. C'est l'identi- envoyer. C’est une simple base de part (lors des négociations de la SA).
fiant qui va permettre de trouver données qui va être consultée par Le récepteur connaît cette fenêtre
la correspondance dans la SPD la SPD. Cette base de données qui est un nombre maximum W de
à partir de la SAD (cf. ci-dessous). contient toutes les informations de paquets IPSec (64 par défaut) car
la SA dont la liste a été donnée plus c'est un des renseignements donnés
Remarques : haut. dans la SA correspondante de sa
SAD. Cette fenêtre est représentée
• nous parlons d’une SA en gé- La base de politique de en vert sur la Figure 1. A un temps t,
néral. Il existe des SA IPSec, sécurité (SPD -Security le récepteur va positionner sa fenêtre
ISAKMP, TLS…, la SA ISAKMP Political Database-) de manière à ce que celle-ci ait à son
par exemple n’étant définie que On définit aussi une base de politi- extrémité droite ce dernier paquet
par le SPI et le SPId, que de sécurité (SPD -Security Poli- reçu (noté N sur la Figure 1). Pour
• si ESP et AH sont employés, tical Database-), qui va permettre de un paquet arrivant à ce moment-là,
alors deux SA seront nécessai- décider pour chaque paquet entrant nous aurons 3 cas de figure selon
res, une pour chaque type, ou sortant s’il va se voir attribuer des son numéro de séquence (appelons
• en général, on n'attend pas la fin règles de sécurité et même s’il sera ce dernier n) :
d'une SA pour commencer à en autorisé à passer.
négocier une nouvelle : le début • soit n < (N - W). Dans ce cas,
de cette nouvelle négociation se La sécurité avec le mécanisme il est détruit et déclenche éven-
fait un peu avant la fin de négo- anti-rejeu tuellement un audit si le champ
ciation de l'ancienne (c'est ce qui Une attaque par rejeu est une at- correspondant dans la SA le
est fait dans les routeurs CISCO, taque dans laquelle un attaquant requiert,
dans les Firewalls NetASQ ou obtient une copie d’un paquet, le • s oit (N - W) < n < N. Dans ce
encore dans le démon IKE Pluto modifie et le renvoie au destinataire cas, il est tout simplement pris en
de FreeS/WAN via le paramètre initial. Cette réception peut avoir compte et traité (authentification,
rekeymargin). La version 2 de des effets indésirables, provoquer décryptage, …),
IKE intègre cette fonctionalité en des perturbations, ou au pire des • soit n > N. Dans ce cas, la fenê-
standard (CREATE_CHILD_SA). cas être même pris en compte par tre avance de manière à que ce
le destinataire. Pour éviter cela, si dernier paquet se retrouve à son
La base des associations l’option anti-rejeu est sélectionnée, extrémité droite, c'est ce qui est
de sécurité (SAD -Security l’émetteur doit s’assurer qu’il n’y a représenté sur la figure ci-des-
Association Database-) pas de bouclage des numéros de sus, dans la partie du bas.
Chaque SA va être contenue dans séquence (i.e. dès que le numéro
ce que l’on appelle une base des de séquence atteint à 232-1, une La sécurité avec l'option PFS
associations de sécurité (SAD - nouvelle SA est négociée au lieu de L'option PFS -Perfect Forward Secu-
Security Association Database-). revenir à 0 avec la même SA). Le rity- est la propriété que la découverte
Cette base va contenir pour chaque mécanisme anti-rejeu est donné à la d'un secret à long terme ne compro-
SA les informations qui lui sont re- figure ci-dessous : mettra pas les clefs de session qui
Pour l'authentification et l'intégrité, Dans la Figure 3, nous voyons les récepteur que si ce dernier le
les algorithmes possibles sont champs suivants : souhaite (donc si cette option est
en général HMAC-RIPEMD-160, choisie de son côté). En pratique,
HMAC-MD5, HMAC-SHA-1, HMAC- • SPI (32 bits). Nous en avons durant la phase d'échange de
DES, Keyed MD5, ... parlé plus haut. Il est sélectionné paramètres de SA, le récepteur
par le système de destination car peut dire à l'émetteur s'il a activé
Le « sous-protocole » ESP c'est ce dernier qui va en avoir l'option anti-rejeu, ce qui évite
-Encryption Security Payload- besoin pour savoir comment à l'émetteur de faire du travail
Cette transformation offre en plus traiter le paquet qui lui arrive. Ce inutile. D'autre part, cette option
ceux de AH, les services suivants : champ est toujours présent, ne peut être activée que si la non
• sequence Number (32 bits). Cha- répudiation l'est aussi. Ce champ
• confidentialité grâce au cryptage que paquet est numéroté par ce est toujours présent,
des données. Remarquons la champ de 32 bits. Ce champ est • payload Data (0-255 bits). Nous
possibilité de choisir un algo- initialisé à 0 dès qu'une nouvelle trouvons dans ce champ, si
rithme de chiffrement nul, ce qui SA est établie, et le premier pa- l'algorithme choisi le nécessite
revient à ne faire aucun cryptage quet envoyé sur le réseau aura (DES par exemple), le paramè-
et qui est donc très dangereux, un numéro de séquence de 1. In- tre IV -Initialization Vector-. Ce
• protection des identités. Cette crémenté de 1 à chaque nouveau champ est toujours présent,
option ne peut être opération- paquet envoyé, sa limite sera • padding (0-255 bits). La néces-
nelle qu'en mode tunnel, et en donc de 232. Deux cas apparais- sité du bourrage intervient lors
mode autre que le mode agressif sent alors quand cette limite est de l'utilisation d'algorithmes de
lors de la phase I ISAKMP. atteinte : soit la protection anti- cryptage nécessitant des chif-
rejeu est activée par le récepteur frement par blocs comme DES
Remarques : auquel cas une nouvelle SA est par exemple. Dans ce cas, il ar-
générée avant que ne numéro de rive souvent que la longueur des
• les fonctionnalités intégrité et non- séquence maximum de 232 est données à chiffrer ne soit pas un
répudiation vont de pair, ce qui fait atteint et le compteur du numéro multiple entier de cette longueur
que des fois on appelle authenti- de séquence est réinitialisé à 0 ; de bloc, on rajoutera du bourrage
fication l'ensemble de ces deux soit cette protection n'est pas ac- de manière à avoir une longueur
fonctionnalités. Cette dernière tivée et dans ce cas, on reprend à crypter qui soit un multiple en-
fonctionnalité est assurée via le la numérotation des paquets à 1 tier de la longueur du bloc. Ce
champ ICV -Integrity Check Value- avec la même SA. Cette option champ est …très souvent pré-
comme nous allons le voir, est toujours mise en place par sent !
• la fonctionnalité de anti-rejeu l'émetteur, mais ne sera véri- • pad Lengh. Dans ce champ, nous
ne peut être sélectionnée que fiée et prise en compte par le trouvons la longueur du champ
si la non-répudiation l'est. Cette
Tableau 4. Récapitulation des fonctionnalités des modes transport et tunnel
dernière est choisie ou non par le
récepteur des paquets (en clair Mode transport Mode tunnel
comme nous le verrons plus bas, AH Authentifie la charge Authentifie le paquet
les paquets IPSec contiennent utile IP et certains IP tout entier (en-tête
toutes les informations néces- champs de l'en-tête IP plus certaines informa-
saires via le champ Sequence et les en-têtes d'exten- tions IP) plus certains
Number pour pouvoir faire la sion IPv6. champs de l'en-tête IP
vérification anti-rejeu, mais cette externe et des en-tê-
vérification n'est faite que si le tes d'extension IPv6
récepteur l'a décidé), externes.
• avec ESP, même si authentifica- ESP (chiffrement seul) Chiffre la charge utile Chiffre le paquet IP
tion et confidentialité sont toutes IP et tout en-tête d'ex- tout entier.
les deux des options, au moins tension IPv6 suivant
l'une des deux doit être sélec- l'en-tête ESP.
tionnée (en effet, même si ESP
ESP (chiffrement & Chiffre a charge utile Chiffre le paquet IP
demande forcément de choisir
authentification) IP et tout en-tête d'ex- tout entier. Authentifie
un algorithme de cryptage, on a
tension IPv6 suivant le paquet IP.
toujours la possibilité de choisir
l'en-tête ESP. Authen-
l'algorithme nul… ce qui revient
tifie la charge utile IP
à ne pas appliquer de confiden-
mais pas l'en-tête IP.
tialité).
Récapitulation des
fonctionnalités des modes
transport et tunnel
En utilisant ESP, il est possible quoi-
que non recommandé d'utiliser le
cryptage sans authentification.
Figure 10. Gestion du trafic entrant avec IPSec
La configuration avancée de
IPSec : strict, claim, exact et
obey
On peut aussi conditionner le
comportement du serveur IPSec
en phase 1 lors de la négociation Figure 11. Contiguïté en mode transport
des options PFS et durée de vie
de SA (dans le but d'accélérer les élevée, durée de vie de SA plus • exact. Ce mode n'accepte que les
négociations en les restreignant par courte), options aussi strictes que les sien-
exemple) : • claim. Ce mode n'accepte que nes (même niveau de PFS, durée
les options égales ou moins stric- de vie de SA strictement égale),
• strict. Ce mode n'accepte que tes que les siennes (PFS moins • obey. Ce mode accepte les options
les options égales ou plus stric- élevée, durée de vie de SA plus quelles qu'elles soient (niveau de
tes que les siennes (PFS plus longue), PFS, durée de vie de SA).
• destruction. Le paquet est tout HASH C’est la charge utile du hachage : HASH_I précise que
simplement détruit, c’est le hachage envoyé par l’Initiateur et HASH_R
• transmission sans sécurisation. celle envoyée par le Récepteur. Elle authentifie la
Le paquet est transmis sans ap- charge utile IP mais pas l'en-tête IP.
pliquer de politique de sécurité, gxi, gxr Ce sont les valeurs publiques de Diffie-Hellman, res-
• transmission avec sécurisation. pectivement de l’Initiateur et du Récepteur.
Le noyau applique une politique gxy C’est la clé secrète obtenue par échange Diffie-Hell-
de sécurité. man.
No_I, No_R Ce sont les aléas, respectivement générés par I et R.
Dans tous les cas, c'est la SPD qui
ID_I, ID_R Ce sont les identités utilisées pour l’authentification,
gère cela : elle prend le numéro de
respectivement de I et de R.
SA correspondant et va en chercher
les caractéristiques dans la SAD. Si X* Signifie que le champ X est crypté
la SA existe déjà, le trafic se voit
appliquer ces mécanismes, si la les règles pour le paquet corres- dante dans la SAD, on va ensuite
SA n'existe pas encore, IPSec fera pondant : soit il est détruit, soit il chercher dans cette dernière les
appel à IKE pour établir une nou- est transmis sans faire intervenir options de transfert (algorithmes
velle SA avec les caractéristiques IPSec, soit il est traité avec IP- de cryptage, authentification, du-
demandées. Sec. Dans ce dernier cas, nous rée de vie de la SA, …),
Nous avons donc dans l'ordre savons aussi le sous-protocole • compression éventuelle-. La
les étapes suivantes pour traiter un (AH/ESP) et le mode (tunnel/ compression (avec le protocole
paquet sortant : transport) à utiliser, ainsi que la IPComp) doit être faite avant tout
SA correspondante. S'il n'y a pas traitement IP (authentification,
• lecture de la SPD-. En fonction de SA correspondante, on passe cryptage, fragmentation,…),
des adresses source et desti- le relais à IKE pour en créer une, • cryptage-. Avec les informations
nation, et des ports source et • lecture de la SAD-. La SPD in- précédentes de la SAD, on peut
destination, la SPD nous donne diquant aussi la SA correspon- maintenant crypter la partie de la
Exemple de montage
d'un tunnel IPSec
classique
Ce processus se compose de 2
phases. Nous les presenterons ci-
dessous.