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.
Suites d'algorithmes prises en charge dans le SDK AWS de chiffrement de base de données
Notre bibliothèque de chiffrement côté client a été renommée SDK de chiffrement de AWS base de données. Ce guide du développeur fournit toujours des informations sur le client de chiffrement DynamoDB. |
Une suite d'algorithmes est un ensemble d'algorithmes de chiffrement et de valeurs connexes. Les systèmes cryptographiques utilisent l'implémentation de l'algorithme pour générer le texte chiffré.
Le SDK AWS Database Encryption utilise une suite d'algorithmes pour chiffrer et signer les champs de votre base de données. Toutes les suites d'algorithmes prises en charge utilisent l'algorithme Advanced Encryption Standard (AES) avec Galois/Counter Mode (GCM), connu sous le nom d'AES-GCM, pour chiffrer les données brutes. Le SDK AWS de chiffrement de base de données prend en charge les clés de chiffrement 256 bits. La longueur de la balise d'authentification est toujours de 16 octets.
Algorithm | Algorithme de chiffrement | Longueur de la clé de données (en bits) | Algorithme de dérivation de clé | Algorithme de signature symétrique | Algorithme de signature asymétrique | Engagement clé |
---|---|---|---|---|---|---|
Par défaut | AES-GCM | 256 | HKDF avec SHA-512 | HMAC-SHA-384 | ECDSA avec P-384 et SHA-384 | HKDF avec SHA-512 |
AES-GCM sans signatures numériques ECDSA | AES-GCM | 256 | HKDF avec SHA-512 | HMAC-SHA-384 | Aucun | HKDF avec SHA-512 |
- Algorithme de chiffrement
-
Nom et mode de l'algorithme de chiffrement utilisé. Les suites d'algorithmes du SDK AWS de chiffrement de base de données utilisent l'algorithme Advanced Encryption Standard (AES) avec le mode Galois/Counter (GCM).
- Longueur de la clé de données
-
Longueur de la clé de données en bits. Le SDK AWS de chiffrement de base de données prend en charge les clés de données 256 bits. La clé de données est utilisée comme entrée dans une fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF). La sortie de la fonction HKDF est utilisée comme la clé de chiffrement des données dans l'algorithme de chiffrement.
- Algorithme de dérivation de clé
-
La fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF) utilisée pour dériver la clé de chiffrement des données. Le SDK AWS de chiffrement de base de données utilise le HKDF défini dans la RFC
5869. -
La fonction de hachage utilisée est SHA-512
-
Pour l'étape d'extraction :
-
Aucune valeur salt n'est utilisée. Selon la RFC, le sel est défini sur une chaîne de zéros.
-
Le matériel de saisie est la clé de données du trousseau de clés.
-
-
Pour l'étape de développement :
-
La clé pseudo aléatoire en entrée est la sortie de l'étape d'extraction.
-
L'étiquette clé correspond aux octets codés en UTF-8 de la
DERIVEKEY
chaîne dans l'ordre des octets en gros endian. -
Les informations d'entrée sont une concaténation de l'identifiant de l'algorithme et de l'étiquette clé (dans cet ordre).
-
La longueur du matériel de saisie de sortie est la longueur de la clé de données. Cette sortie est utilisée comme la clé de chiffrement des données dans l'algorithme de chiffrement.
-
-
- Algorithme de signature symétrique
-
Algorithme HMAC (Hash Based Message Authentication Code) utilisé pour générer une signature symétrique. Toutes les suites d'algorithmes prises en charge incluent la vérification HMAC.
Le SDK AWS Database Encryption sérialise la description du matériel et tous les champs marqués
ENCRYPT_AND_SIGN
SIGN_ONLY
, ou.SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
Ensuite, il utilise HMAC avec un algorithme de fonction de hachage cryptographique (SHA-384) pour signer la canonisation.La signature HMAC symétrique est stockée dans un nouveau champ (
aws_dbe_foot
) que le SDK de chiffrement de AWS base de données ajoute à l'enregistrement. - Algorithme de signature asymétrique
-
Algorithme de signature utilisé pour générer une signature numérique asymétrique.
Le SDK AWS Database Encryption sérialise la description du matériel et tous les champs marqués
ENCRYPT_AND_SIGN
SIGN_ONLY
, ou.SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
Il utilise ensuite l'algorithme de signature numérique à courbe elliptique (ECDSA) avec les spécificités suivantes pour signer la canonicalisation :-
La courbe elliptique utilisée est la P-384, telle que définie dans la norme de signature numérique (DSS) (FIPS PUB 186-4)
. -
La fonction de hachage utilisée est SHA-384.
La signature ECDSA asymétrique est stockée avec la signature HMAC symétrique sur le terrain.
aws_dbe_foot
Les signatures numériques ECDSA sont incluses par défaut, mais elles ne sont pas obligatoires.
-
- Engagement clé
-
La fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF) utilisée pour dériver la clé de validation.
-
La fonction de hachage utilisée est SHA-512
-
Pour l'étape d'extraction :
-
Aucune valeur salt n'est utilisée. Selon la RFC, le sel est défini sur une chaîne de zéros.
-
Le matériel de saisie est la clé de données du trousseau de clés.
-
-
Pour l'étape de développement :
-
La clé pseudo aléatoire en entrée est la sortie de l'étape d'extraction.
-
Les informations d'entrée sont les octets codés en UTF-8 de la
COMMITKEY
chaîne dans l'ordre des octets Big Endian. -
La longueur du matériel de saisie de sortie est de 256 bits. Cette sortie est utilisée comme clé de validation.
-
La clé de validation calcule l'engagement de l'enregistrement, un hachage distinct du code d'authentification des messages basé sur le hachage (HMAC) de 256 bits, par rapport à la description du matériau. Pour une explication technique de l'ajout d'un engagement clé à une suite d'algorithmes, voir Key Commitment AEADs
in Cryptology ePrint Archive. -
Suite d'algorithmes par défaut
Par défaut, le SDK de chiffrement AWS de base de données utilise une suite d'algorithmes avec AES-GCM, une fonction de dérivation de extract-and-expand clé basée sur HMAC (HKDF), une vérification HMAC, des signatures numériques ECDSA, un engagement de clé et une clé de chiffrement 256 bits.
La suite d'algorithmes par défaut inclut la vérification HMAC (signatures symétriques) et les signatures numériques ECDSA (signatures asymétriques). Ces signatures sont stockées dans un nouveau champ (aws_dbe_foot
) que le SDK AWS de chiffrement de base de données ajoute à l'enregistrement. Les signatures numériques ECDSA sont particulièrement utiles lorsque la politique d'autorisation permet à un ensemble d'utilisateurs de chiffrer des données et à un autre ensemble d'utilisateurs de les déchiffrer.
La suite d'algorithmes par défaut déduit également un engagement clé : un hachage HMAC qui lie la clé de données à l'enregistrement. La valeur d'engagement clé est un HMAC calculé à partir de la description du matériau et de la clé de validation. La valeur d'engagement clé est ensuite enregistrée dans la description du matériau. Un engagement clé garantit que chaque texte chiffré est déchiffré en un seul texte clair. Pour ce faire, ils valident la clé de données utilisée comme entrée dans l'algorithme de chiffrement. Lors du chiffrement, la suite d'algorithmes déduit un engagement clé HMAC. Avant le déchiffrement, ils valident que la clé de données produit la même clé d'engagement HMAC. Si ce n'est pas le cas, l'appel de déchiffrement échoue.
AES-GCM sans signatures numériques ECDSA
Bien que la suite d'algorithmes par défaut soit probablement adaptée à la plupart des applications, vous pouvez choisir une autre suite d'algorithmes. Par exemple, certains modèles de confiance seraient satisfaits par une suite d'algorithmes sans signature numérique ECDSA. Utilisez cette suite uniquement lorsque les utilisateurs qui chiffrent les données et ceux qui les déchiffrent jouissent de la même confiance.
Toutes les suites d'algorithmes du SDK de chiffrement de AWS base de données incluent la vérification HMAC (signatures symétriques). La seule différence est que la suite d'algorithmes AES-GCM sans signature numérique ECDSA ne dispose pas de la signature asymétrique qui fournit une couche supplémentaire d'authenticité et de non-répudiation.
Par exemple, si vous avez plusieurs clés d'encapsulage dans votre trousseau de cléswrappingKeyA
, wrappingKeyB
wrappingKeyC
, et que vous déchiffrez un enregistrement à l'aide wrappingKeyA
de la signature symétrique HMAC vérifie que l'enregistrement a été crypté par un utilisateur ayant accès à. wrappingKeyA
Si vous avez utilisé la suite d'algorithmes par défaut, vous devez HMACs fournir la même vérification et utiliser en outre la signature numérique ECDSA pour garantir que l'enregistrement a été crypté par un utilisateur disposant d'autorisations de chiffrement pour. wrappingKeyA
wrappingKeyA
Pour sélectionner la suite d'algorithmes AES-GCM sans signature numérique, incluez l'extrait suivant dans votre configuration de chiffrement.
L'extrait suivant spécifie la suite d'algorithmes AES-GCM sans signatures numériques ECDSA. Pour de plus amples informations, veuillez consulter Configuration du chiffrement dans le chiffrement de AWS base de données SDK pour DynamoDB.
.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)