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é parmi les algorithmes de la Federal Information Processing Standard (FIPSapprouvés) 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 document 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 cryptage authentifié. En plus de chiffrer le texte brut pour produire du texte chiffré, il calcule une balise d'authentification par-dessus 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é n'a pas AAD été modifié.

Il AWS omet souvent d'inclure le AAD dans nos descriptions, en particulier lorsqu'il est fait référence au cryptage des clés de données. Dans ces cas, le texte environnant implique que la structure à chiffrer est partitionnée entre le texte en clair à chiffrer et le texte en clair AAD à 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 crypté à l'aide OAEP de RSAES- pour protéger la clé pendant le transport vers le AWS KMS HSM. Les paires de RSA clés sont générées le 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 AWS KMS API opérations, 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) & RSA - PSS et - RSA PKCS - #1 -v1_5 (pour la signature et la vérification) — Supporte les longueurs de RSA clé (en bits) : 2048, 3072 et 4096 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. Supporte les ECC courbes : NIST P256, P384, P521, 256k1. SECP

  • SM2(Régions chinoises 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é. Supports SM2PKE pour le chiffrement et SM2DSA 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 KDF opérations utilisent le mode compteur KDF en utilisant HMAC [FIPS197] avec SHA256 [FIPS180]. La clé dérivée de 256 bits est utilisée avec AES - GCM pour chiffrer ou 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 possèdent une paire de clés d'algorithme de signature numérique à courbe elliptique (ECDSA). Ils fonctionnent ECDSA comme défini dans Utilisation d'algorithmes de cryptographie à courbe elliptique (ECC) dans la syntaxe des messages cryptographiques (CMS) et X9.62-2005 : Cryptographie à clé publique pour le secteur des services financiers : algorithme de signature numérique à courbe elliptique (). 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 (-P384). NIST

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 en toute sécurité. La clé racine stockée dans AWS KMS, connue sous le nom de AWS KMS keys, ne laisse jamais les modules de sécurité matériels AWS KMS FIPS validés non chiffrés. Pour utiliser une KMS clé, il faut 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 k à plus long terme, et une autre clé est une clé par message msgKey, qui est générée pour chiffrer le message. L'enveloppe est formée en chiffrant le message : ciphertext = Encrypt (msgKey, message). Ensuite, la clé du message est chiffrée avec la clé statique à long terme : encKey = Encrypt (k,msgKey). Enfin, les deux valeurs (encKeytexte chiffré) sont regroupées dans une structure unique, ou un message crypté 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 dans le cadre du AWS KMS service, le service AWS Encryption SDK 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 API opérations qui utilisent des KMS clés pour protéger les données. Comme KMS les clés restent à l'intérieur AWS KMS, vous devez appeler AWS KMS pour utiliser une KMS clé dans une opération cryptographique.

Pour effectuer des opérations cryptographiques avec KMS des clés, utilisez le AWS SDKs, AWS Command Line Interface (AWS CLI) ou le AWS Tools for 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 KMS clés pour les clés 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 KMS les clés dans les magasins de clés personnalisés.

ENCRYPT_DECRYPT
GenerateDataKeyPairWithoutPlaintext Symétrique [1]

Non pris en charge sur KMS les clés 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 KMS clé. 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 protégée par une clé de chiffrement KMS 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 de plus amples informations, veuillez consulter Quotas partagés pour les opérations de chiffrement.