Quels sont les champs chiffrés et signés ? - Client de chiffrement Amazon DynamoDB

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.

Quels sont les champs chiffrés et signés ?

Dans DynamoDB, untableest une collection d'éléments. Chaque élément est une collection d'attributs. Chaque attribut a un nom et une valeur.

Le client de chiffrement DynamoDB chiffre les valeurs des attributs. Puis, il calcule une signature sur les attributs. Vous pouvez spécifier les valeurs d'attribut à chiffrer et celles à inclure dans la signature. Toutefois, le client de chiffrement DynamoDB est conçu pour être implémenté dans de nouvelles bases de données non remplies. Vous devez ajouter les fonctions de chiffrement à vos applications DynamoDB avant d'envoyer des données à DynamoDB.

Le chiffrement protège la confidentialité de la valeur d'attribut. La signature assure l'intégrité de tous les attributs signés et de leurs relations entre eux, et fournit l'authentification. Elle vous permet de détecter les modifications non autorisées sur l'élément comme un tout, y compris l'ajout ou la suppression d'attributs, ou le remplacement d'une valeur chiffrée par une autre.

Dans un élément chiffré, certaines données demeurent en texte brut, y compris le nom de table, tous les noms d'attribut, les valeurs d'attribut que vous ne chiffrez pas, et les noms et valeurs des attributs de la clé primaire (clé de partition et clé de tri). Ne stockez pas les données sensibles dans ces champs.

Chiffrement des valeurs d'attribut

Le client de chiffrement DynamoDB chiffre les valeurs (mais pas les noms) des attributs que vous spécifiez. Pour déterminer quelles sont les valeurs d'attribut chiffrées, utilisez les actions d'attribut.

Par exemple, cet élément inclut les attributs example et test.

'example': 'data', 'test': 'test-value', ...

Si vous chiffrez l'attribut example, mais pas l'attribut test, les résultats se présentent comme suit. La valeur d'attribut example chiffrée est une donnée binaire, et non une chaîne.

'example': Binary(b"'b\x933\x9a+s\xf1\xd6a\xc5\xd5\x1aZ\xed\xd6\xce\xe9X\xf0T\xcb\x9fY\x9f\xf3\xc9C\x83\r\xbb\\"), 'test': 'test-value' ...

Les attributs de clé primaire (clé de partition et clé de tri) de chaque élément doivent rester en texte brut car DynamoDB les utilise pour trouver l'élément dans la table. Ils doivent être signés, mais pas chiffrés.

Avertissement

Ne chiffrez pas les attributs de la clé primaire. Ceux-ci doivent rester en texte brut pour que DynamoDB puisse trouver l'élément sans exécuter une analyse complète de la table.

Les annotations de chaque langage de programmation identifient automatiquement les attributs de clé primaire et garantissent que leurs valeurs sont signées, mais pas chiffrées. Et, si vous identifiez votre clé primaire, puis essayez de la chiffrer, le client lève une exception. Si vous devez chiffrer la clé primaire pour un scénario particulier, utilisez le bas niveauchiffreur d'élémentmais n'oubliez pas que DynamoDB ne pourra pas trouver votre élément sans exécuter une analyse complète de la table.

Le client de chiffrement DynamoDB ne chiffre pas non plus ni ne signe leattribut de description du matériau, qui stocke les informations dont le client de chiffrement DynamoDB a besoin pour vérifier et déchiffrer l'élément.

Signature de l'élément

Après avoir chiffré les valeurs d'attribut spécifiées, le client de chiffrement DynamoDB calcule une signature numérique sur les noms et les valeurs des attributs que vous spécifiez dans leactions d'attributobjet. Le client enregistre la signature dans un attribut qu'il ajoute à l'élément.


        Élément de table chiffré et signé

Si vous fournissez un nom de table, il est inclus dans la signature. Il est vous est ainsi possible de détecter qu'un élément signé a été déplacé vers une autre table, peut-être par malveillance, comme dans le cas du déplacement d'un enregistrement employé de la table AllEmployees vers la table TrustedEmployees. Le client de chiffrement DynamoDB obtient le nom de la table dans leClient de chiffrement DynamoDB, où il est un champ facultatif.

Veillez à inclure la clé primaire dans la signature. Il s'agit du comportement par défaut quand vous utilisez une annotation. La signature capture la relation entre la clé primaire et les autres attributs de l'élément, et la validation de la signature vérifie que la relation n'a pas été modifiée.

L'attribut de description de matériau n'est pas chiffré ou signé.

Élément chiffré et signé

Quand le client de chiffrement DynamoDB chiffre et signe un élément de table, le résultat est un élément de table DynamoDB standard avec les valeurs d'attribut chiffrées.

L'illustration suivante présente une partie d'un exemple d'élément de table chiffré et signé.


        Exemple d'élément de table chiffré et signé

La figure présente les caractéristiques suivantes des éléments de table chiffrés et signés par le client de chiffrement DynamoDB :

  • Tous les noms d'attribut sont en texte brut.

  • Les valeurs des attributs de clé primaire sont en texte brut. Dans cet exemple, le nom de la clé de partition est partition_attribute et le nom de la clé de tri est sort_attribute.

  • Les valeurs des attributs que vous dites au client de ne pas chiffrer demeurent en texte brut. Dans cet exemple, la valeur de l'attribut test est en texte brut.

  • Les valeurs des attributs chiffrés sont des données binaires.

  • Le client ajoute un attribut de signature (*amzn-ddb-map-sig*) à l'élément. Sa valeur est la signature de l'élément.

  • Le client ajoute un attribut de description de matériau (*amzn-ddb-map-desc*) à l'élément. Sa valeur décrit comment l'attribut a été chiffré et signé. Le client utilise ces informations pour vérifier et déchiffrer l'élément. L'attribut de description de matériau n'est pas chiffré ou signé.