Code d'authentification des messages (MAC)

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

Le MAC possède les propriétés suivantes:

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

Le MAC peut être déterministe ou aléatoire, en fonction de l'algorithme. Tink n'implémente pas d'algorithmes MAC non déterministes pour le moment. Vous devez utiliser le code de contrôle d'accès MAC uniquement pour l'authentification des messages, et non à d'autres fins, comme la génération d'octets pseudo-aléatoires (pour cela, consultez la section PRF).

Si vous avez plutôt besoin d'une primitive asymétrique, consultez la section Signature numérique.

Choisir un type de clé

Nous vous recommandons d'utiliser HMAC_SHA256 pour la plupart des cas d'utilisation, mais d'autres options sont également disponibles.

En règle générale, les éléments suivants sont valables:

  • HMAC_SHA512 peut être plus ou moins 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 qui peut ê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 en cas d'attaque par texte clair choisi
  • Sécurité de 128 bits minimum contre les attaques de récupération de clé, et également dans les scénarios multi-utilisateurs (lorsqu'attaquant ne cible pas une clé spécifique, mais n'importe quelle clé d'un ensemble de clés pouvant comporter jusqu'à 232 clés)

Exemple d'utilisation

Consultez Je souhaite protéger les données contre les accès non autorisés.