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.
Porte-clés AWS KMS ECDH
Notre bibliothèque de chiffrement côté client a été renommée AWS Database Encryption. SDK Ce guide du développeur fournit toujours des informations sur le client de chiffrement DynamoDB. |
Important
Le AWS KMS ECDH porte-clés n'est disponible qu'avec la version 1.5.0 de la bibliothèque des fournisseurs de matériaux.
Un AWS KMS ECDH porte-clés utilise un accord de clé asymétrique AWS KMS keyspour obtenir une clé d'encapsulation symétrique partagée entre deux parties. Tout d'abord, le porte-clés utilise l'algorithme d'accord de clés Diffie-Hellman (ECDH) à courbe elliptique pour dériver un secret partagé à partir de la clé privée contenue dans la paire de clés de l'expéditeur et de la KMS clé publique du destinataire. Le trousseau de clés utilise ensuite le secret partagé pour dériver la clé d'encapsulation partagée qui protège vos clés de chiffrement des données. La fonction de dérivation de clé SDK utilisée par le chiffrement AWS de base de données (KDF_CTR_HMAC_SHA384
) pour dériver la clé d'encapsulation partagée est conforme aux NISTrecommandations relatives à la dérivation de clés
La fonction de dérivation de clés renvoie 64 octets de matériel de saisie. Pour garantir que les deux parties utilisent le bon matériel de saisie, le chiffrement de AWS base de données SDK utilise les 32 premiers octets comme clé d'engagement et les 32 derniers octets comme clé d'encapsulation partagée. Lors du déchiffrement, si le trousseau de clés ne peut pas reproduire la même clé d'engagement et la même clé d'encapsulation partagée que celles stockées dans le champ de description du matériel de l'enregistrement crypté, l'opération échoue. Par exemple, si vous chiffrez un enregistrement avec un trousseau de clés configuré avec la clé privée d'Alice et la clé publique de Bob, un trousseau de clés configuré avec la clé privée de Bob et la clé publique d'Alice reproduira la même clé d'engagement et la même clé d'encapsulation partagée et pourra déchiffrer l'enregistrement. Si la clé publique de Bob ne provient pas d'une paire de KMS clés, Bob peut créer un trousseau de ECDHclés brut pour déchiffrer l'enregistrement.
Le AWS KMS ECDH trousseau de clés chiffre les enregistrements avec une clé symétrique à l'aide de -. AES GCM La clé de données est ensuite cryptée par enveloppe avec la clé d'encapsulation partagée dérivée à l'aide de AES -GCM. Chaque AWS KMS ECDH porte-clés ne peut avoir qu'une seule clé d'emballage partagée, mais vous pouvez inclure plusieurs AWS KMS ECDH porte-clés, seuls ou avec d'autres porte-clés, dans un porte-clés multiple.
Rubriques
Autorisations requises pour les AWS KMS ECDH porte-clés
Le chiffrement AWS de base de données SDK ne nécessite pas de AWS compte et ne dépend d'aucun AWS service. Toutefois, pour utiliser un AWS KMS ECDH trousseau de clés, vous devez disposer d'un AWS compte et disposer des autorisations minimales suivantes sur le trousseau AWS KMS keys de clés. Les autorisations varient en fonction du schéma d'accord clé que vous utilisez.
-
Pour chiffrer et déchiffrer des enregistrements à l'aide du schéma d'accord de
KmsPrivateKeyToStaticPublicKey
clés, vous avez besoin de kms : GetPublicKey et kms : DeriveSharedSecret sur la paire de clés asymétrique KMSde l'expéditeur. Si vous fournissez directement la clé publique DER codée de l'expéditeur lorsque vous instanciez votre trousseau de clés, vous n'avez besoin que de l'DeriveSharedSecretautorisation kms : sur la paire de clés asymétriques de l'expéditeur. KMS -
Pour déchiffrer des enregistrements à l'aide du schéma d'accord de
KmsPublicKeyDiscovery
clés, vous devez disposer des GetPublicKey autorisations kms : DeriveSharedSecret et kms : sur la paire de KMS clés asymétriques spécifiée.
Création d'un AWS KMS ECDH porte-clés
Pour créer un AWS KMS ECDH trousseau de clés qui chiffre et déchiffre des données, vous devez utiliser le schéma d'accord de clés. KmsPrivateKeyToStaticPublicKey
Pour initialiser un AWS KMS ECDH trousseau de clés avec le schéma d'accord de KmsPrivateKeyToStaticPublicKey
clés, fournissez les valeurs suivantes :
-
AWS KMS key Identifiant de l'expéditeur
Doit identifier une ECC paire de KMS clés NIST à courbe elliptique asymétrique recommandée () avec une
KeyUsage
valeur de.KEY_AGREEMENT
La clé privée de l'expéditeur est utilisée pour dériver le secret partagé. -
(Facultatif) Clé publique de l'expéditeur
L' AWS KMS GetPublicKeyopération renvoie la clé publique d'une paire de KMS clés asymétriques dans le DER format codé requis.
Pour réduire le nombre d' AWS KMS appels effectués par votre trousseau de clés, vous pouvez fournir directement la clé publique de l'expéditeur. Si aucune valeur n'est fournie pour la clé publique de l'expéditeur, le keyring appelle AWS KMS pour récupérer la clé publique de l'expéditeur.
-
Clé publique du destinataire
L' AWS KMS GetPublicKeyopération renvoie la clé publique d'une paire de KMS clés asymétriques dans le DER format codé requis.
-
Spécification de la courbe
Identifie la spécification de la courbe elliptique dans les paires de clés spécifiées. Les paires de clés de l'expéditeur et du destinataire doivent avoir la même spécification de courbe.
Valeurs valides:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Facultatif) Une liste de jetons de subvention
Si vous contrôlez l'accès à la KMS clé de votre AWS KMS ECDH trousseau de clés par des autorisations, vous devez fournir tous les jetons de subvention nécessaires lors de l'initialisation du trousseau de clés.
Création d'un porte-clés AWS KMS ECDH Discovery
Lors du déchiffrement, il est recommandé de spécifier les clés que le chiffrement SDK de AWS base de données peut utiliser. Pour suivre cette bonne pratique, utilisez un AWS KMS ECDH trousseau de clés avec le schéma d'accord des KmsPrivateKeyToStaticPublicKey
clés. Toutefois, vous pouvez également créer un trousseau de AWS KMS ECDH découverte, c'est-à-dire un AWS KMS ECDH trousseau de clés capable de déchiffrer tout enregistrement dont la clé publique de la paire de clés spécifiée correspond à la KMS clé publique du destinataire enregistrée dans le champ de description matérielle de l'enregistrement chiffré.
Important
Lorsque vous déchiffrez des enregistrements à l'aide du schéma d'accord de KmsPublicKeyDiscovery
clés, vous acceptez toutes les clés publiques, quel que soit leur propriétaire.
Pour initialiser un AWS KMS ECDH trousseau de clés avec le schéma d'accord de KmsPublicKeyDiscovery
clés, fournissez les valeurs suivantes :
-
AWS KMS key Identifiant du destinataire
Doit identifier une ECC paire de KMS clés NIST à courbe elliptique asymétrique recommandée () avec une
KeyUsage
valeur de.KEY_AGREEMENT
-
Spécification de la courbe
Identifie la spécification de la courbe elliptique dans la paire de KMS clés du destinataire.
Valeurs valides:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Facultatif) Une liste de jetons de subvention
Si vous contrôlez l'accès à la KMS clé de votre AWS KMS ECDH trousseau de clés par des autorisations, vous devez fournir tous les jetons de subvention nécessaires lors de l'initialisation du trousseau de clés.