L'intégrité et l'authentification du trafic VPN sont gérés par des algorithmes de hachage. Les hachages assurent l'intégrité et l'authentification des données en empêchant aux personnes non autorisées d'altérer les messages transmis. Un hachage, également appelé Message Digest, est un nombre généré à partir d'une chaîne de texte. Il est plus petit que le texte lui-même. Le hachage est généré au moyen d'une formule de telle sorte qu'il est extrêmement peu probable qu'un autre texte produise la même valeur de hachage.
L'expéditeur d'origine génère un hachage du message et l'envoie avec le message lui-même. Le destinataire analyse le message ainsi que le hachage, génère un autre hachage à partir du message reçu, puis compare les deux hachages. S'ils sont identiques, le destinataire peut être raisonnablement sûr de l'intégrité du message d'origine.
Comme le montre la figure, Gail a envoyé à Alex un EFT de 100 €. Jeremy a intercepté et modifié cet EFT de manière à apparaître lui-même en tant que destinataire, et ce, pour un montant de 1000 €. Dans un tel cas, si un algorithme d'intégrité des données avait été utilisé, les hachages n'auraient pas été identiques et la transaction aurait été non valide.
Les données de VPN sont transportées via l’Internet public. Comme l’illustre cette figure, ces données risquent d’être interceptées et modifiées. Pour se prémunir contre cette menace, les hôtes peuvent ajouter un hachage au message. Si le hachage transmis correspond au hachage reçu, l’intégrité du message a été préservée. Dans le cas contraire, le message a été modifié.
Les VPN utilisent un code d'authentification de message permettant de vérifier l'intégrité et l'authenticité d'un message, sans l'utilisation de mécanismes supplémentaires.
Un code d'authentification des messages basé sur le hachage (HMAC) est un mécanisme d'authentification des messages utilisant des fonctions de hachage. Un HMAC à clé est un algorithme d'intégrité des données qui garantit l'intégrité d'un message. Un HMAC possède deux paramètres, à savoir une entrée de message et une clé secrète connue uniquement de l'initiateur du message et des destinataires de celui-ci. L'expéditeur du message utilise une fonction HMAC pour générer une valeur (le code d'authentification du message) qui est formée en associant la clé secrète et l'entrée de message. Le code d'authentification du message est envoyé avec le message. Le destinataire calcule le code d'authentification du message reçu en utilisant la même clé et la même fonction HMAC que celles utilisées par l'expéditeur. Le destinataire compare ensuite le résultat à celui calculé à l'aide du code d'authentification du message reçu. Si les deux valeurs correspondent, le message a été reçu correctement et le destinataire est certain que l’expéditeur est un membre de la communauté d’utilisateurs autorisés à partager la clé. La puissance de chiffrement de la fonction HMAC dépend de celle de la fonction de hachage sous-jacente, de la taille et de la qualité de la clé, et de la longueur de la sortie de hachage en bits.
Il existe deux algorithmes HMAC :
- MD5 : utilise une clé secrète partagée de 128 bits. Le message de longueur variable et la clé secrète partagée de 128 bits sont combinés et soumis à l'algorithme de hachage HMAC-MD5. La sortie est un hachage de 128 bits. Le hachage est ajouté au message original et transféré à l’extrémité distante.
- SHA : l'algorithme SHA-1 utilise une clé secrète de 160 bits. Le message de longueur variable et la clé secrète partagée de 160 bits sont combinés et soumis à l'algorithme de hachage HMAC-SHA1. La sortie est un hachage de 160 bits. Le hachage est ajouté au message original et transféré à l’extrémité distante.
Remarque : Cisco IOS prend également en charge les implémentations SHA de 256, 384 et 512 bits.