Clés HMAC dans AWS KMS - AWS Key Management Service

Clés HMAC dans AWS KMS

Les clés KMS du code d'authentification de message utilisant hash (HMAC) sont des clés symétriques que vous utilisez pour générer et vérifier les HMAC dans AWS KMS. Les éléments de clé uniques de chaque clé KMS HMAC fournissent la clé secrète requise par les algorithmes HMAC. Vous pouvez utiliser une clé KMS HMAC avec les opérations GenerateMac et VerifyMac pour vérifier l'intégrité et l'authenticité des données dans AWS KMS.

Les algorithmes HMAC combinent une fonction de hachage cryptographique et une clé secrète partagée. Ils prennent un message et une clé secrète, comme les éléments de clé d'une clé KMS HMAC, et renvoient un code unique de taille fixe ou une balise. Si même un caractère du message change ou si la clé secrète n'est pas identique, la balise obtenue est entièrement différente. En exigeant une clé secrète, HMAC fournit également une authenticité ; il est impossible de générer une balise HMAC identique sans la clé secrète. Les HMAC sont parfois appelés signatures symétriques, car ils fonctionnent comme des signatures numériques, mais utilisent une seule clé à la fois pour la signature et la vérification.

Les HMAC sont généralement utilisés pour déterminer l'authenticité d'un message, comme un jeton Web JSON (JWT), des informations de carte de crédit tokenisée ou un mot de passe envoyé. Ils peuvent également être utilisés comme fonctions de dérivation de clé (KDF) sécurisées, surtout dans les applications nécessitant des clés déterministes.

Les clés KMS HMAC offrent un avantage par rapport aux HMAC des logiciels d'application, car les éléments de clé sont générés et utilisés entièrement dans AWS KMS, sous réserve des contrôles d'accès que vous avez définis sur la clé. Les clés KMS HMAC et les algorithmes HMAC qu'utilise AWS KMS sont conformes aux normes du secteur définies dans RFC 2104. Les clés KMS HMAC sont générées dans des modules de sécurité matérielle AWS KMS certifiés conformément au Programme de validation des modules de chiffrement FIPS 140-2 (sauf dans les régions Chine (Beijing) et Chine (Ningxia), et ne quittent jamais AWS KMS non chiffrées. Pour utiliser une clé KMS HMAC, vous devez appeler AWS KMS.

Astuce

Les bonnes pratiques recommandent de limiter la durée pendant laquelle tout mécanisme de signature, y compris un HMAC, est effectif. Cela dissuade une attaque où l'acteur utilise un message signé pour établir la validité à plusieurs reprises ou longtemps après le remplacement du message. Les balises HMAC n'incluent pas d'horodatage, mais vous pouvez inclure un horodatage dans le jeton ou le message pour vous aider à détecter le moment où il convient d'actualiser le HMAC.

Vous pouvez créer, gérer et utiliser les clés KMS HMAC dans votre compte AWS. Cela comprend l'activation et la désactivation des clés, la définition et la modification d’alias et de balises, ainsi que la suppression de la planification de clés KMS HMAC. Vous pouvez également contrôler l'accès aux clés KMS HMAC à l'aide de politique de clé, de politiques IAM et d'octrois. De plus, vous pouvez auditer toutes les opérations qui utilisent ou gèrent vos clés KMS HMAC dans AWS dans les journaux AWS CloudTrail. Vous pouvez également créer des clés KMS multi-région HMAC qui se comportent comme des copies de la même clé KMS HMAC dans plusieurs Régions AWS.

Les clés HMAC KMS prennent uniquement en charge les opérations de chiffrement GenerateMac et VerifyMac. Vous ne pouvez pas utiliser de clés KMS HMAC pour chiffrer des données ou signer des messages, ni pour utiliser tout autre type de clé KMS dans les opérations HMAC. Lorsque vous utilisez l'opération GenerateMac, vous fournissez un message pouvant atteindre 4 096 octets, une clé KMS HMAC et l'algorithme MAC compatible avec la spécification de clé HMAC, tandis que GenerateMac calcule la balise HMAC. Pour vérifier une balise HMAC, vous devez fournir la balise HMAC, ainsi que le même message, la clé KMS HMAC et l'algorithme MAC que GenerateMac a utilisé pour calculer la balise HMAC d'origine. L'opération VerifyMac calcule la balise HMAC et vérifie qu'elle est identique à la balise HMAC fournie. Si les balises HMAC en entrée et calculées ne sont pas identiques, la vérification échoue.

Les clés KMS HMAC ne prennent pas en charge la rotation automatique des clés ou les éléments de clé importés, et vous ne pouvez pas créer de clé KMS HMAC dans un magasin de clés personnalisé.

Si vous créez une clé KMS pour chiffrer des données dans un service AWS, utilisez une clé de chiffrement symétrique. Vous ne pouvez pas utiliser de clé KMS HMAC.

Régions

Les clés KMS HMAC sont actuellement prises en charge uniquement dans les Régions AWS suivantes.

  • USA Est (Ohio) (us-east-2)

  • USA Est (Virginie du Nord) (us-east-1)

  • USA Ouest (Oregon) (us-west-2)

  • Asie-Pacifique (Osaka) (ap-northeast-3)

  • UE (Milan) (eu-south-1)

  • Europe (Paris) (eu-west-3)

  • Europe (Stockholm) (eu-north-1)

  • Moyen-Orient (Bahreïn) (me-south-1)

  • Amérique du Sud (São Paulo) (sa-east-1)

En savoir plus

Spécifications de clé pour les clés KMS HMAC

AWS KMS prend en charge les clés HMAC symétriques de longueurs variables. La spécification de clé que vous sélectionnez peut dépendre de vos exigences de sécurité, réglementaires ou métier. La longueur de la clé détermine l'algorithme MAC utilisé dans les opérations GenerateMac et VerifyMac. En général, les clés plus longues sont plus sécurisées. Utilisez la clé la plus longue qui est pratique pour votre cas d'utilisation.

Spécification de clé HMAC Algorithme MAC
HMAC_224 HMAC_SHA_224
HMAC_256 HMAC_SHA_256
HMAC_384 HMAC_SHA_384
HMAC_512 HMAC_SHA_512