LE CHIFFREMENT

Les protocoles AH et ESP peuvent être utilisés séparément ou combinés pour obtenir les services de sécurité requis.
AH et ESP sont basés sur l'utilisation d'algorithmes cryptographiques et ne sont pas restreints à un algorithme particulier.
Chaque produit comportant IPSec sera donc livré avec un ensemble d'algorithmes, parmi lesquels l'utilisateur ou l'administrateur du réseau pourront choisir. Cette façon de procéder permet notamment, pour se conformer à des contraintes législatives par exemple, de limiter les algorithmes de chiffrement fournis à une longueur de clef donnée, voire de fournir uniquement des algorithmes d'authentification, sans possibilité de chiffrement.
IPSec comporte une liste d'algorithmes dont l'utilisation est négociable en ligne par le biais d'un protocole appelé IKE (Internet Key Exchange). Le protocole IKE décrit dans la RFC 2408 permet le partage d'une clé de chiffrement entre l'émetteur et le destinataire.

Le chiffrement recommandé par l'IETF est basé sur le standard US, le DES. Celui-ci présente 3 variantes qui se distinguent les unes des autres par le nombre de bits utilisés:
* 56 bits DES: simple, craqué en quelques minutes
* 112 bits DES (double DES): craqué par une attaque en ligne concertée, sans complexité supplémentaire que le 56 bits
* 168 bits DES (triple DES): basé sur 3 clés indépendantes mais pas aussi difficile à craquer qu'un système à clé de longueur triple.

Aucun chiffrement cependant n'est sûr à 100%. Le gouvernement a decidé de relever le seuil de chiffrage dont l'utilisation est libre de 40 bits à 128 bits.

Le protocole DES, quelqu'en soit le type, est symètrique. La même clé de session est utilisée par les 2 entités communicantes. Cette clé est changée de manière aléatoire au bout d'un certain temps qui correspond à la durée de vie de cette clé.
Cependant, le problème réside dans l'échange de la valeur de la clé entre ces deux entités. On utilise pour cela le protocole de Diffie-Hellman. Celui-ci permet la négociation d'une clé unique, de manière commune. Chaque entité détermine une moitié de la clé, et envoie à l'autre entité les paramètres permettant de calculer la moitié manquante.