Fournisseur de matériaux encapsulé - AWS Chiffrement des bases SDK

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.

Fournisseur de matériaux encapsulé

Note

Notre bibliothèque de chiffrement côté client a été renommée AWS Database Encryption SDK. La rubrique suivante fournit des informations sur les versions 1. x —2. x du client de chiffrement DynamoDB pour Java et versions 1. x —3. x du client de chiffrement DynamoDB pour Python. Pour plus d'informations, consultez le SDK AWS Database Encryption pour connaître la prise en charge des versions de DynamoDB.

Le Wrapped Materials Provider (Wrapped CMP) vous permet d'utiliser des clés d'encapsulation et de signature provenant de n'importe quelle source avec le client de chiffrement DynamoDB. Le Wrapped CMP ne dépend d'aucun AWS service. Cependant, vous devez générer et gérer vos clés d'encapsulation et de signature en dehors du client, y compris la fourniture des clés appropriées pour vérifier et déchiffrer l'élément.

Le fournisseur CMP encapsulé génère une clé de chiffrement d'élément unique pour chaque élément. Il encapsule la clé de chiffrement d'élément avec la clé d'encapsulation que vous fournissez et enregistre la clé de chiffrement d'élément encapsulée dans l'attribut de description de matériau de l'élément. Comme vous fournissez les clés d'encapsulation et de signature, vous déterminez de quelle façon les clés d'encapsulation et de signature sont générées, et si elles sont propres à chaque élément ou sont réutilisées.

Le fournisseur CMP encapsulé constitue une implémentation sécurisée et un bon choix pour les applications qui peuvent gérer les matériaux de chiffrement.

Le Wrapped CMP est l'un des nombreux fournisseurs de matériel cryptographique (CMP) pris en charge par le client de chiffrement DynamoDB. Pour plus d'informations sur les autres CMP, consultez Fournisseur de matériel cryptographique.

Pour obtenir un exemple de code, consultez :

Comment l'utiliser

Pour créer un fournisseur CMP encapsulé, spécifiez une clé d'encapsulation (requise au chiffrement), une clé de désencapsulation (requise au déchiffrement) et une clé de signature. Vous devez fournir les clés lorsque vous chiffrez et déchiffrez les éléments.

Les clés d'encapsulation, de désencapsulation et de signature peuvent être des clés symétriques ou des paires de clés asymétriques.

Java
// This example uses asymmetric wrapping and signing key pairs final KeyPair wrappingKeys = ... final KeyPair signingKeys = ... final WrappedMaterialsProvider cmp = new WrappedMaterialsProvider(wrappingKeys.getPublic(), wrappingKeys.getPrivate(), signingKeys);
Python
# This example uses symmetric wrapping and signing keys wrapping_key = ... signing_key = ... wrapped_cmp = WrappedCryptographicMaterialsProvider( wrapping_key=wrapping_key, unwrapping_key=wrapping_key, signing_key=signing_key )

Comment ça marche

Le fournisseur CMP encapsulé génère une nouvelle clé de chiffrement d'élément pour chaque élément. Il utilise les clés d'encapsulation, de désencapsulation et de signature que vous fournissez, comme illustré dans le schéma suivant.

Entrée, traitement et sortie du fournisseur de matériaux encapsulés dans le client de chiffrement DynamoDB

Obtention des matériaux de chiffrement

Cette section décrit en détail les entrées, les sorties et le traitement du fournisseur CMP encapsulé quand il reçoit une demande de matériaux de chiffrement.

Entrée (depuis l'application)

  • Clé d'encapsulation : clé symétrique Advanced Encryption Standard (AES) ou clé publique RSA. Obligatoire si les valeurs d'attribut sont chiffrées. Sinon, elle est facultative et ignorée.

  • Clé de désencapsulation : facultative et ignorée.

  • Clé de signature

Entrée (depuis le chiffreur d'élément)

Sortie (vers le chiffreur d'élément) :

  • Clé de chiffrement d'élément en texte brut

  • Clé de signature (inchangée)

  • Description du matériau réel : ces valeurs sont enregistrées dans l'attribut de description du matériau que le client ajoute à l'élément.

    • amzn-ddb-env-key : clé de chiffrement d'élément codée en base64

    • amzn-ddb-env-alg : algorithme de chiffrement utilisé pour chiffrer l'élément. La valeur par défaut est AES-256-CBC.

    • amzn-ddb-wrap-alg : algorithme d'encapsulation utilisé par le fournisseur CMP encapsulé pour encapsuler la clé de chiffrement d'élément. Si la clé d'encapsulation est une clé AES, la clé est encapsulée à l'aide de AES-Keywrap non complétée, comme défini dans RFC 3394. Si la clé d'encapsulation est une clé RSA, la clé est chiffrée à l'aide de RSA OAEP avec remplissage MGF1.

Traitement

Lorsque vous chiffrez un élément, vous transmettez une clé d'encapsulation et une clé de signature. Une clé de désencapsulation est facultative et ignorée.

  1. Le fournisseur CMP encapsulé génère une clé de chiffrement d'élément symétrique unique pour l'élément de table.

  2. Il utilise la clé d'encapsulation que vous spécifiez pour encapsuler la clé de chiffrement d'élément. Puis, il la supprime de la mémoire dès que possible.

  3. Il retourne la clé de chiffrement d'élément en texte brut, la clé de signature que vous avez fournie et une description de matériau réel qui inclut la clé de chiffrement d'élément encapsulé, ainsi que les algorithmes de chiffrement et d'encapsulation.

  4. Le chiffreur d'élément utilise la clé de chiffrement en texte brut pour chiffrer l'élément. Il utilise la clé de signature que vous avez fournie pour signer l'élément. Puis, il supprime les clés en texte brut de la mémoire dès que possible. Il copie les champs de la description du matériel réel, y compris la clé de chiffrement encapsulée (amzn-ddb-env-key), dans l'attribut de la description de matériau de l'élément.

Obtention des matériaux de déchiffrement

Cette section décrit en détail les entrées, les sorties et le traitement du fournisseur CMP encapsulé quand il reçoit une demande de matériaux de déchiffrement.

Entrée (depuis l'application)

  • Clé d'encapsulation : facultative et ignorée.

  • Clé de désencapsulation : la même clé symétrique Advanced Encryption Standard (AES) ou la même clé privée RSA qui correspond à la clé publique RSA utilisée pour chiffrer. Obligatoire si les valeurs d'attribut sont chiffrées. Sinon, elle est facultative et ignorée.

  • Clé de signature

Entrée (depuis le chiffreur d'élément)

Sortie (vers le chiffreur d'élément)

  • Clé de chiffrement d'élément en texte brut

  • Clé de signature (inchangée)

Traitement

Lorsque vous déchiffrez un élément, vous transmettez une clé de désencapsulation et une clé de signature. Une clé d'encapsulation est facultative et ignorée.

  1. Le fournisseur CMP encapsulé obtient la clé de chiffrement d'élément encapsulé depuis l'attribut de description du matériau de l'élément.

  2. Il utilise la clé et l'algorithme de désencapsulation pour désencapsuler la clé de chiffrement d'élément.

  3. Il retourne la clé de chiffrement de l'élément en texte brut, la clé de signature, et les algorithmes de chiffrement et de signature au chiffreur d'élément.

  4. Le chiffreur d'élément utilise la clé de signature pour vérifier l'élément. S'il réussit, il utilise la clé de chiffrement d'élément pour déchiffrer l'élément. Puis, il supprime les clés en texte brut de la mémoire dès que possible.