Suites d'algorithmes prises en charge dans le SDK AWS de chiffrement des bases de données - AWSSDK de chiffrement de base de données

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 des bases de données

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.

Une suite d'algorithmes est un ensemble d'algorithmes de chiffrement et de valeurs connexes. Les systèmes de chiffrement utilisent l'implémentation de l'algorithme pour générer le message du texte chiffré.

Le SDK AWS Database Encryption utilise une suite d'algorithmes pour crypter et signer les champs de votre base de données. Le SDK AWS Database Encryption prend en charge deux suites d'algorithmes. Toutes les suites prises en charge utilisent l'algorithme AES (Advanced Encryption Standard) en tant qu'algorithme principal et l'associent à d'autres algorithmes et valeurs.

La suite d'algorithmes AWS Database Encryption SDK utilise l'algorithme AES (Advanced Encryption Standard) en mode Galois/Counter (GCM), connu sous le nom d'AES-GCM, pour crypter les données brutes. Le SDK AWS Database Encryption prend en charge les clés de chiffrement 256 bits. La longueur de la balise d'authentification est toujours de 16 octets.

Par défaut, le SDK AWS Database Encryption utilise une suite d'algorithmes avec AES-GCM avec une fonction de dérivation de extract-and-expand clé basée sur le HMAC (HKDF), un engagement de clé, une signature symétrique et asymétrique et une clé de cryptage 256 bits.

Le SDK AWS Database Encryption utilise une suite d'algorithmes qui dérive une clé de données AES-GCM en fournissant une clé de chiffrement de données 256 bits à la fonction de dérivation de clé basée sur extract-and-expand HMAC (HKDF). Il déduit également une clé MAC pour la clé de données. Le SDK AWS de chiffrement de base de données utilise cette clé de données pour obtenir une clé de chiffrement de données unique afin de chiffrer chaque champ. Le SDK AWS de chiffrement de base de données utilise ensuite la clé MAC pour calculer un code d'authentification des messages basé sur le hachage (HMAC) pour chaque copie cryptée de la clé de données et ajoute une signature ECDSA (Elliptic Curve Digital Signature Algorithm) à l'enregistrement. Cette suite d'algorithmes repose également sur un engagement clé : un 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é d'engagement, qui est dérivée via HKDF à l'aide d'une procédure similaire à la dérivation de la clé de cryptage des données. La valeur d'engagement clé est ensuite enregistrée dans la description du matériau.

Algorithme de chiffrement Longueur de la clé de chiffrement des données (en bits) Algorithme de signature symétrique Algorithme de signature asymétrique Engagement clé
AES-GCM 256 HMAC-SHA-384 ECDSA au-dessus de P384 HKDF avec SHA-512

Cette suite d'algorithmes sérialise la description du matériel et tous les champs marqués ENCRYPT_AND_SIGN et SIGN_ONLY dans les actions cryptographiques, puis utilise le HMAC avec un algorithme de fonction de hachage cryptographique (SHA-512) pour signer la canonicalisation. Il calcule ensuite une signature numérique ECDSA. Les signatures HMAC et ECDSA sont stockées dans un nouveau champ (aws_dbe_foot) que le SDK AWS Database Encryption ajoute à l'enregistrement. Les signatures numériques sont particulièrement utiles lorsque la politique d'autorisation permet à un groupe d'utilisateurs de chiffrer des données et à un autre groupe d'utilisateurs de les déchiffrer.

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, ces suites d'algorithmes dérivent d'un engagement clé HMAC. Avant le déchiffrement, ils vérifient que la clé de données produit le même engagement de clé que HMAC. Si ce n'est pas le cas, l'appel de déchiffrement échoue.

AES-GCM sans signature numérique

Bien que la suite d'algorithmes par défaut soit susceptible de convenir à 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 signatures numériques. Utilisez cette suite uniquement lorsque les utilisateurs qui chiffrent les données et ceux qui les déchiffrent bénéficient d'une confiance égale.

Toutes les suites d'algorithmes du SDK AWS Database Encryption prennent en charge la signature symétrique HMAC-SHA-384. La seule différence est que la suite d'algorithmes AES-GCM sans signatures numériques ne dispose pas de la signature ECDSA qui fournit une couche supplémentaire d'authenticité et de non-répudiation.

Par exemple, si votre trousseau de clés contient plusieurs clés d'encapsulation, wrappingKeyAwrappingKeyB, et wrappingKeyC que vous déchiffrez un enregistrement à l'aide dewrappingKeyA, la signature symétrique HMAC-SHA-384 vérifie que l'enregistrement a été chiffré par un utilisateur ayant accès à. wrappingKeyA Si vous avez utilisé les algorithmes par défaut, les HMAC fournissent la même vérification de wrappingKeyA la signature ECDSA et utilisent également la signature ECDSA pour s'assurer que l'enregistrement a été crypté par un utilisateur disposant des autorisations de chiffrement pour. wrappingKeyA

Pour sélectionner la suite d'algorithmes AES-GCM sans signatures numériques, indiquez-la dans votre configuration de chiffrement.