Code d'authentification des messages (MAC)

La primitive MAC vous permet de vérifier que personne ne falsifie vos données. Un expéditeur qui partage une clé symétrique avec un destinataire peut calculer un tag d'authentification pour un message donné, ce qui lui permet de vérifier qu'un message provient bien de l'expéditeur attendu et qu'il n'a pas été modifié.

MAC a les propriétés suivantes:

  • Authenticité : le seul moyen de créer une balise MAC vérifiable est de connaître la clé.
  • Symétrique: le calcul et la vérification du tag nécessitent la même clé.

La MAC peut être déterministe ou randomisée, selon l'algorithme. Tink n'implémente pas d'algorithmes MAC non déterministes pour le moment. Vous ne devez utiliser MAC que pour l'authentification des messages, et non à d'autres fins, telles que la génération d'octets pseudo-aléatoires (voir PRF).

Si vous avez besoin d'une primitive asymétrique, consultez la page Signature numérique.

Sélectionnez un type de clé

Nous vous recommandons d'utiliser HMAC_SHA256 dans la plupart des cas, mais il existe également d'autres options.

En général, les affirmations suivantes s'appliquent:

  • HMAC_SHA512 peut être plus rapide en fonction de la taille de votre message et des spécificités du matériel que vous utilisez.
  • HMAC_SHA512 est le mode le plus conservateur pouvant être utilisé pour un nombre pratiquement illimité de messages.
  • AES256_CMAC est le plus rapide sur les systèmes compatibles avec l'accélération matérielle AES-NI.

Garanties de sécurité minimales

  • Niveau d'authentification d'au moins 80 bits
  • Protection contre la falsification existentielle lors d'une attaque en texte brut choisi
  • Sécurité d'au moins 128 bits contre les attaques de récupération de clé, ainsi que dans les scénarios multi-utilisateurs (lorsqu'un pirate informatique ne cible pas une clé spécifique, mais toute clé issue d'un ensemble de 232 clés maximum)

Exemple d'utilisation

Consultez la section Je veux protéger mes données contre la falsification.