Aller au contenu principal

6. Sécurité (Security)

La sécurité de HMAC repose sur des hypothèses raisonnables concernant la fonction de hachage sous-jacente H. En particulier, la force de HMAC dépend de l'hypothèse selon laquelle H est une fonction de hachage cryptographique forte (c'est-à-dire qu'elle possède une résistance aux préimages et aux collisions).

Les analyses de [BCK1] et [BCK2] montrent que HMAC est sûr en tant que fonction de hachage à clé sous l'hypothèse selon laquelle H est « proche d'une fonction pseudo-aléatoire (PRF) ». Cette hypothèse est considérée comme raisonnablement valide pour les fonctions de hachage largement utilisées telles que MD5 et SHA-1.

Concernant la longueur de la clé, comme indiqué à la section 3, il est recommandé d'utiliser une clé d'au moins L octets. Une clé de moins de L octets réduit la force de sécurité de la fonction.

Concernant la troncature, comme indiqué à la section 4, il est recommandé d'utiliser une sortie d'au moins 10 octets (80 bits). Une troncature inférieure à 10 octets peut ne pas fournir une force suffisante contre les attaques par force brute.

Pour MD5, des attaques par collision récentes [Dobb] sont connues, mais cette attaque ne compromet pas l'utilisation de MD5 dans la construction de HMAC. Cela est dû au fait que HMAC utilise une construction à deux étages (hachage interne et externe) et une clé secrète, de sorte qu'une simple attaque de collision ne permet pas de contrefaire la sortie de HMAC. Néanmoins, pour les applications nécessitant une sécurité plus forte, l'utilisation de HMAC avec SHA-1 ou RIPEMD-160 est recommandée.

Les implémenteurs doivent prêter attention aux éventuelles avancées de cryptanalyse concernant la fonction de hachage sous-jacente et remplacer la fonction de hachage si nécessaire.