Fonctionnement du SDK AWS de chiffrement de base de données - AWS SDK 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.

Fonctionnement du 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.

Le SDK AWS Database Encryption fournit des bibliothèques de chiffrement côté client conçues spécifiquement pour protéger les données que vous stockez dans les bases de données. Les bibliothèques incluent les implémentations sécurisées que vous pouvez étendre ou utiliser inchangées. Pour plus d'informations sur la définition et l'utilisation de composants personnalisés, consultez le GitHub référentiel pour l'implémentation de votre base de données.

Les flux de travail présentés dans cette section expliquent comment le SDK AWS Database Encryption chiffre, signe, déchiffre et vérifie les données de votre base de données. Ces flux de travail décrivent le processus de base utilisant des éléments abstraits et les fonctionnalités par défaut. Pour en savoir plus sur le fonctionnement du SDK AWS de chiffrement de base de données avec l'implémentation de votre base de données, consultez la rubrique Qu'est-ce que le chiffrement pour votre base de données ?

Le SDK AWS Database Encryption utilise le chiffrement d'enveloppe pour protéger vos données. Chaque enregistrement est crypté sous une clé de données unique. La clé de données est utilisée pour dériver une clé de chiffrement des données unique pour chaque champ marqué ENCRYPT_AND_SIGN dans vos actions cryptographiques. Ensuite, une copie de la clé de données est chiffrée par les clés d'encapsulation que vous spécifiez. Pour déchiffrer l'enregistrement chiffré, le SDK de chiffrement AWS de base de données utilise les clés d'encapsulation que vous spécifiez pour déchiffrer au moins une clé de données chiffrée. Il peut ensuite déchiffrer le texte chiffré et renvoyer une entrée en texte brut.

Pour plus d'informations sur les termes utilisés dans le SDK de chiffrement AWS de base de données, consultezAWS Concepts du SDK de chiffrement de base de données.

Chiffrer et signer

À la base, le SDK AWS de chiffrement de base de données est un crypteur d'enregistrements qui chiffre, signe, vérifie et déchiffre les enregistrements de votre base de données. Il prend en compte les informations relatives à vos dossiers et les instructions concernant les champs à chiffrer et à signer. Il obtient le matériel de chiffrement et les instructions sur la façon de les utiliser à partir d'un gestionnaire de matériel cryptographique configuré à partir de la clé d'encapsulation que vous spécifiez.

La procédure pas à pas suivante décrit comment le SDK AWS de chiffrement de base de données chiffre et signe vos entrées de données.

  1. Le gestionnaire de matériel cryptographique fournit au SDK AWS Database Encryption des clés de chiffrement de données uniques : une clé de données en texte brut, une copie de la clé de données chiffrée par la clé d'encapsulation spécifiée et une clé MAC.

    Note

    Vous pouvez chiffrer la clé de données sous plusieurs clés d'encapsulation. Chacune des clés d'encapsulation chiffre une copie séparée de la clé de données. Le SDK AWS de chiffrement de base de données stocke toutes les clés de données cryptées dans la description du matériel. Le SDK AWS Database Encryption ajoute un nouveau champ (aws_dbe_head) à l'enregistrement qui contient la description du matériel.

    Une clé MAC est dérivée pour chaque copie cryptée de la clé de données. Les clés MAC ne sont pas enregistrées dans la description du matériau. Au lieu de cela, la méthode de déchiffrement utilise les clés d'encapsulation pour dériver à nouveau les clés MAC.

  2. La méthode de chiffrement chiffre chaque champ marqué comme indiqué ENCRYPT_AND_SIGN dans les actions cryptographiques que vous avez spécifiées.

  3. Le procédé de chiffrement commitKey dérive une de la clé de données et l'utilise pour générer une valeur d'engagement de clé, puis supprime la clé de données.

  4. La méthode de cryptage ajoute une description matérielle à l'enregistrement. La description du matériel contient les clés de données cryptées et les autres informations relatives à l'enregistrement crypté. Pour une liste complète des informations incluses dans la description du matériau, voir Format de description du matériau.

  5. La méthode de chiffrement utilise les clés MAC renvoyées à l'étape 1 pour calculer les valeurs du code d'authentification des messages basé sur le hachage (HMAC) lors de la canonisation de la description du matériel, du contexte de chiffrement et de chaque champ marqué ENCRYPT_AND_SIGNSIGN_ONLY, ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT dans le cadre des actions cryptographiques. Les valeurs HMAC sont stockées dans un nouveau champ (aws_dbe_foot) que la méthode de chiffrement ajoute à l'enregistrement.

  6. La méthode de chiffrement calcule une signature ECDSA lors de la canonisation de la description du matériau, du contexte de chiffrement et de chaque champ marqué ENCRYPT_AND_SIGNSIGN_ONLY, ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT stocke les signatures ECDSA dans le champ. aws_dbe_foot

    Note

    Les signatures ECDSA sont activées par défaut, mais ne sont pas obligatoires.

  7. La méthode de cryptage stocke l'enregistrement crypté et signé dans votre base de données

Déchiffrer et vérifier

  1. Le gestionnaire de matériel cryptographique (CMM) fournit la méthode de déchiffrement avec les matériaux de déchiffrement stockés dans la description du matériel, y compris la clé de données en texte clair et la clé MAC associée.

    1. Le CMM déchiffre la clé de données cryptée à l'aide des clés d'encapsulage du jeu de clés spécifié et renvoie la clé de données en texte brut.

  2. La méthode de déchiffrement compare et vérifie la valeur d'engagement clé dans la description du matériau.

  3. La méthode de déchiffrement vérifie les signatures dans le champ de signature.

    Il identifie les champs marqués ENCRYPT_AND_SIGN ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT ceux figurant dans la liste des champs non authentifiés autorisés que vous avez définis. SIGN_ONLY La méthode de déchiffrement utilise la clé MAC renvoyée à l'étape 1 pour recalculer et comparer les valeurs HMAC des champs marqués, ou. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Il vérifie ensuite les signatures ECDSA à l'aide de la clé publique stockée dans le contexte de chiffrement.

  4. La méthode de déchiffrement utilise la clé de données en texte brut pour déchiffrer chaque valeur marquée. ENCRYPT_AND_SIGN Le SDK AWS de chiffrement de base de données supprime ensuite la clé de données en texte brut.

  5. La méthode de déchiffrement renvoie l'enregistrement en texte brut.