AWS KMS éléments essentiels de la cryptographie - AWS Key Management Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS KMS éléments essentiels de la cryptographie

AWS KMS utilise des algorithmes cryptographiques configurables afin que le système puisse rapidement passer d'un algorithme ou d'un mode approuvé à un autre. L'ensemble initial d'algorithmes cryptographiques par défaut a été sélectionné dans les algorithmes Federal Information Processing Standard (FIPS Approved) pour leurs propriétés de sécurité et leurs performances.

Entropie et génération de nombres aléatoires

AWS KMS la génération de clés est effectuée dans le AWS KMS HSMs. Ils HSMs implémentent un générateur de nombres aléatoires hybride qui utilise le NIST SP800-90A Deterministic Random Bit Generator (DRBG) CTR_DRBG using AES-256. Il est alimenté par un générateur de bits aléatoires non déterministe avec 384 bits d'entropie et mis à jour avec de l'entropie supplémentaire aux fins de fournir une résistance à la prédiction à chaque appel d'élément cryptographique.

Opérations de clé symétrique (chiffrement uniquement)

Toutes les commandes de chiffrement par clé symétrique utilisées dans ce cadre HSMs utilisent les normes de chiffrement avancées (AES), en mode compteur Galois (GCM) à l'aide de clés de 256 bits. Les appels analogues pour déchiffrer utilisent la fonction inverse.

AES-GCM est un schéma de chiffrement authentifié. En plus de chiffrer le texte brut afin de produire du texte chiffré, il calcule une balise d'authentification sur le texte chiffré et toutes les données supplémentaires pour lesquelles une authentification est requise (données authentifiées supplémentaires, ou AAD). La balise d'authentification permet de s'assurer que les données proviennent de la source présumée et que le texte chiffré et l'AAD n'ont pas été modifiés.

AWS Omet souvent l'inclusion de l'AAD dans nos descriptions, en particulier lorsqu'il s'agit du chiffrement des clés de données. Dans ces cas, le texte environnant laisse entendre que la structure à chiffrer est divisée entre le texte brut à chiffrer et l'AAD en texte clair à protéger

AWS KMS vous offre la possibilité d'importer du matériel clé dans un AWS KMS key au lieu de compter sur AWS KMS celui-ci pour générer le matériel clé. Ce matériel clé importé peut être chiffré à l'aide du protocole RSAES-OAEP pour protéger la clé pendant le transport vers le HSM. AWS KMS Les paires de clés RSA sont générées sur AWS KMS HSMs. Le matériel clé importé est déchiffré sur un AWS KMS HSM et rechiffré sous AES-GCM avant d'être stocké par le service.

Opérations de clés asymétriques (chiffrement, signature numérique et vérification de signature)

AWS KMS prend en charge l'utilisation d'opérations de clé asymétriques pour les opérations de chiffrement, de signature numérique et d'accord de clés. Les opérations de clé asymétrique reposent sur une paire de clés publiques et de clés privées liées mathématiquement que vous pouvez utiliser pour le chiffrement et le déchiffrement, la signature et la vérification des signatures, ou pour obtenir des secrets partagés. La clé privée ne sort jamais AWS KMS non chiffrée. Vous pouvez utiliser la clé publique interne AWS KMS en appelant les opérations de l' AWS KMS API, ou télécharger la clé publique et l'utiliser en dehors de AWS KMS.

AWS KMS prend en charge les chiffrements asymétriques suivants.

  • RSA-OAEP (pour le chiffrement) et RSA-PSS et RSA-PKCS- #1 -v1_5 (pour la signature et la vérification) – Prend en charge les longueurs de clés RSA (en bits) : 2 048, 3 072 et 4 096 pour différentes exigences de sécurité.

  • Courbe elliptique (ECC) : utilisée pour signer et vérifier ou pour obtenir des secrets partagés, mais pas les deux. Prend en charge les courbes ECC : NIST P256, P384, P521, SECP 256k1.

  • SM2 (Régions de Chine uniquement) — Utilisé pour le chiffrement et le déchiffrement, la signature et la vérification, ou pour la dérivation de secrets partagés, mais vous devez choisir une seule utilisation de clé. Supporte le SM2 protocole PKE pour le chiffrement et le protocole SM2 DSA pour la signature.

Fonctions de dérivation de clé

Une fonction de dérivation de clés est utilisée pour dériver des clés supplémentaires à partir d'un secret ou d'une clé initiale. AWS KMS utilise une fonction de dérivation de clés (KDF) pour dériver des clés par appel pour chaque chiffrement effectué sous un. AWS KMS key Toutes les opérations KDF utilisent le KDF en mode compteur en utilisant HMAC [FIPS197] avec SHA256 [FIPS180]. La clé dérivée de 256 bits est utilisée avec AES-GCM aux fins de chiffrer ou de déchiffrer les données et les clés des clients.

AWS KMS utilisation interne de signatures numériques

Les signatures numériques sont également utilisées pour authentifier des commandes et des communications entre AWS KMS entités. Toutes les entités de service disposent d'une paire de clés de l'algorithme de signature numérique à courbe elliptique (ECDSA). Elles exécutent l'ECDSA comme décrit dans Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS) and X9.62-2005: Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA). Les entités utilisent l'algorithme de hachage sécurisé défini dans les publications sur les normes fédérales de traitement de l'information, FIPS PUB 180-4, connu sous le nom de. SHA384 Les clés sont générées sur la courbe secp384r1 (NIST-P384).

Chiffrement d’enveloppe

Lorsque vous chiffrez vos données, celles-ci sont protégées, mais vous devez protéger votre clé de chiffrement. Une stratégie consiste à la chiffrer. Le chiffrement d'enveloppe est la pratique consistant à chiffrer des données en texte brut à l'aide d'une clé de données, puis à chiffrer la clé de données sous une autre clé.

Vous pouvez même chiffrer la clé de chiffrement de données sous une autre clé de chiffrement et chiffrer cette clé de chiffrement sous une autre clé de chiffrement. Toutefois, au final, une clé doit rester en texte brut pour vous permettre de déchiffrer les clés et vos données. Cette clé de chiffrement de clé en texte brut de niveau supérieur porte le nom de clé racine.

Chiffrement d’enveloppe

AWS KMS vous aide à protéger vos clés de chiffrement en les stockant et en les gérant de manière sécurisée. La clé racine stockée dans AWS KMS, connue sous le nom de AWS KMS keys, ne laissez jamais les modules de sécurité matériels validés par la norme de sécurité AWS KMS FIPS 140-3 de niveau 3 non chiffrés. Pour utiliser une clé KMS, vous devez appeler AWS KMS.

Une construction de base utilisée dans de nombreux systèmes cryptographiques est le chiffrement d'enveloppe. Le chiffrement d'enveloppe utilise deux clés cryptographiques ou plus afin de sécuriser un message. Généralement, une clé est dérivée d'une clé statique à plus long terme k, et une autre clé est une clé par message, msgKey, qui est générée pour chiffrer le message. L'enveloppe est constituée en chiffrant le message :texte chiffré = Encrypt(msgKey, message). Ensuite, la clé de message est chiffrée à l'aide de la clé statique à long terme : encKey = Encrypt(k, msgKey). Enfin, les deux valeurs (encKey, texte chiffré) sont empaquetés dans une structure unique, ou dans un message chiffré par enveloppe.

Le destinataire, avec accès à k, peut ouvrir le message enveloppé en déchiffrant d'abord la clé chiffrée, puis en déchiffrant le message.

AWS KMS permet de gérer ces clés statiques à long terme et d'automatiser le processus de chiffrement des enveloppes de vos données.

Outre les fonctionnalités de chiffrement fournies par le AWS KMS service, le SDK de AWS chiffrement fournit des bibliothèques de chiffrement d'enveloppes côté client. Vous pouvez utiliser ces bibliothèques pour protéger vos données et les clés de chiffrement utilisées pour chiffrer ces données.

Chiffrement d'enveloppe avec plusieurs clés de chiffrement de clé

Le chiffrement d'enveloppe offre plusieurs avantages :

  • Protection des clés de données

    Lorsque vous chiffrez une clé de données, vous n'avez pas à vous préoccuper du stockage de la clé de données chiffrée, car cette clé de données est intrinsèquement protégée par chiffrement. Vous pouvez stocker en toute sécurité la clé de données chiffrée avec les données chiffrées.

  • Chiffrement des mêmes données sous plusieurs clés

    Les opérations de chiffrement peuvent exiger beaucoup de temps, notamment lorsque les données en cours de chiffrement sont des objets de grande taille. Au lieu de rechiffrer des données brutes plusieurs fois avec des clés différentes, vous pouvez rechiffrer uniquement les clés de données qui protègent les données brutes.

  • Combinaison des points forts de plusieurs algorithmes

    En général, les algorithmes de clé symétrique sont plus rapides et produisent des textes chiffrés plus petits que les algorithmes de clé publique. Cependant, les algorithmes de clé publique fournissent une séparation inhérente des rôles et facilitent la gestion des clés. Le chiffrement d'enveloppe vous permet d'associer les forces de chaque stratégie.

Opérations cryptographiques

Dans AWS KMS, les opérations cryptographiques sont des opérations d'API qui utilisent des clés KMS pour protéger les données. Comme les clés KMS restent à l'intérieur AWS KMS, vous devez appeler AWS KMS pour utiliser une clé KMS dans le cadre d'une opération cryptographique.

Pour effectuer des opérations cryptographiques avec des clés KMS, utilisez le AWS SDKs, AWS Command Line Interface (AWS CLI) ou le Outils AWS pour PowerShell. Vous ne pouvez pas effectuer d'opérations cryptographiques dans la console AWS KMS . Pour obtenir des exemples d'appel des opérations cryptographiques dans plusieurs langages de programmation, veuillez consulter Exemples de code pour AWS KMS l'utilisation AWS SDKs.

Le tableau suivant répertorie les opérations AWS KMS cryptographiques. Il indique également le type de clé et les exigences d'utilisation des clés KMS utilisées dans l'opération.

Opération Type de clé Utilisation de la clé
Decrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
DeriveSharedSecret Asymétrique KEY_AGREEMENT
Encrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
GenerateDataKey Symétrique ENCRYPT_DECRYPT
GenerateDataKeyPair Symétrique [1]

Non pris en charge sur les clés KMS dans les magasins de clés personnalisés.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Symétrique [1]

Non pris en charge sur les clés KMS dans les magasins de clés personnalisés.

ENCRYPT_DECRYPT
GenerateDataKeyWithoutPlaintext Symétrique ENCRYPT_DECRYPT
GenerateMac HMAC GENERATE_VERIFY_MAC
GenerateRandom N/A. Cette opération n'utilise pas de clé KMS. N/A
ReEncrypt Symétrique ou asymétrique ENCRYPT_DECRYPT
Sign (Signer) Asymétrique SIGN_VERIFY
Vérification Asymétrique SIGN_VERIFY
VerifyMac HMAC GENERATE_VERIFY_MAC

[1] Génère une paire de clés de données asymétriques qui est protégée par une clé KMS de chiffrement symétrique.

Pour plus d'informations sur les autorisations pour les opérations cryptographiques, veuillez consulter AWS KMS autorisations.

Pour que tous les utilisateurs soient AWS KMS réactifs et hautement fonctionnels, AWS KMS établissez des quotas sur le nombre d'opérations cryptographiques appelées par seconde. Pour plus de détails, consultez Quotas partagés pour les opérations de chiffrement.