Skip to main content

7. HMAC tronqué

Les suites de chiffrement TLS actuellement définies utilisent la construction MAC HMAC avec MD5 ou SHA-1 [RFC2104] pour authentifier les communications de la couche d'enregistrement. Dans TLS, la sortie entière de la fonction de hachage est utilisée comme balise MAC. Cependant, il peut être souhaitable dans des environnements contraints d'économiser de la bande passante en tronquant la sortie de la fonction de hachage à 80 bits lors de la formation des balises MAC.

Afin de négocier l'utilisation d'un HMAC tronqué à 80 bits, les clients PEUVENT inclure une extension de type "truncated_hmac" dans le client hello étendu. Le champ "extension_data" de cette extension DOIT être vide.

Les serveurs qui reçoivent un hello étendu contenant une extension "truncated_hmac" PEUVENT accepter d'utiliser un HMAC tronqué en incluant une extension de type "truncated_hmac", avec "extension_data" vide, dans le server hello étendu.

Notez que si de nouvelles suites de chiffrement sont ajoutées qui n'utilisent pas HMAC, et que la session négocie l'une de ces suites de chiffrement, cette extension n'aura aucun effet. Il est fortement recommandé que toute nouvelle suite de chiffrement utilisant d'autres MAC considère la taille du MAC comme une partie intégrante de la définition de la suite de chiffrement, en tenant compte à la fois des considérations de sécurité et de bande passante.

Si la troncature HMAC a été négociée avec succès lors d'une poignée de main TLS, et que la suite de chiffrement négociée utilise HMAC, le client et le serveur transmettent ce fait à la couche d'enregistrement TLS avec les autres paramètres de sécurité négociés. Par la suite, pendant la session, les clients et les serveurs DOIVENT utiliser des HMAC tronqués, qui sont calculés comme spécifié dans [RFC2104]. C'est-à-dire que CipherSpec.hash_size est de 10 octets, et seuls les 10 premiers octets de la sortie HMAC sont transmis et vérifiés. Notez que cette extension n'affecte pas le calcul de la fonction pseudo-aléatoire (PRF) dans le cadre de la poignée de main ou de la dérivation de clé.

La taille de troncature HMAC négociée s'applique pendant toute la durée de la session, y compris les reprises de session.