Intégrité ET authenticité

Un simple hachage ne suffit pas

Le hachage cryptographique offre l'intégrité : la moindre modification du message change complètement l'empreinte. Mais cette garantie a une limite que l'on oublie souvent.

Ce que le hachage protège vraiment

Une fonction de hachage comme SHA-256 est publique. N'importe qui peut l'appliquer à n'importe quel message. C'est justement sa force pour vérifier un téléchargement : vous comparez l'empreinte affichée sur le site à celle que vous calculez chez vous.

Mais cette ouverture est aussi sa faiblesse dès qu'un attaquant actif entre en scène, c'est-à-dire quelqu'un capable non seulement d'écouter le canal, mais de modifier ce qui y transite.

L'attaque contre « message + empreinte »

Imaginons qu'Alice envoie à Bob son message accompagné de son empreinte, sans aucun secret :

Alice  --->  [ message M ] [ H(M) ]  --->  Bob

        Mallory intercepte au milieu
        et remplace tout par M' :

Alice  --->  Mallory  --->  [ M' ] [ H(M') ]  --->  Bob

Mallory forge un faux message M', recalcule lui-même H(M') avec la même fonction publique, et transmet le couple à Bob. Ce dernier vérifie : l'empreinte reçue correspond bien au message reçu. Tout semble intact. Pourtant le message a été entièrement remplacé.

Le hachage seul a échoué non pas parce qu'il est cassé, mais parce que rien ne lie l'empreinte à l'identité d'Alice. Tout le monde sait calculer H.

Il manque une clé

La solution est d'introduire un secret partagé entre Alice et Bob, une clé que Mallory ne connaît pas. Si l'empreinte ne peut être calculée qu'avec cette clé, alors Mallory ne peut plus la reforger.

On distingue ainsi deux propriétés :

Propriété Question posée Assurée par
Intégrité Le message a-t-il été modifié ? hachage
Authenticité Vient-il bien du bon émetteur ? clé secrète

Un simple hachage donne l'intégrité contre les accidents (erreurs de transmission, disque corrompu), mais pas contre un adversaire déterminé. Pour résister à un attaquant actif, il faut les deux propriétés à la fois, et cela impose une clé partagée entre les deux correspondants.

Autrement dit, le hachage répond à la question « ce message est-il cohérent ? », mais pas à la question « ce message vient-il vraiment d'Alice ? ». Seul un secret connu d'elle seule (et de Bob) permet de répondre à la seconde.

En résumé

Une empreinte seule ne prouve rien sur l'origine du message : la fonction de hachage étant publique, un attaquant actif qui modifie le message peut recalculer l'empreinte correspondante. Il faut distinguer l'intégrité (message non modifié) de l'authenticité (bon émetteur). Garantir les deux face à un adversaire exige un secret partagé : c'est l'objet du MAC.