Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
¿Qué campos se cifran y se firman?
Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de AWS bases de datos. En esta guía para desarrolladores, se sigue proporcionando información sobre el cliente de cifrado de DynamoDB. |
El SDK AWS de cifrado de bases de datos para DynamoDB es una biblioteca de cifrado del lado del cliente diseñada especialmente para las aplicaciones de Amazon DynamoDB. Amazon DynamoDB almacena los datos en tablas, que son un conjunto de elementos. Cada elemento es una colección de atributos. Cada atributo tiene un nombre y un valor. El SDK AWS de cifrado de bases de datos para DynamoDB cifra los valores de los atributos. A continuación, calcula una firma sobre los atributos. Puede especificar qué valores de atributo cifrar y cuáles incluir en la firma.
El cifrado protege la confidencialidad del valor de atributo. La firma proporciona integridad de todos los atributos firmados y de sus relaciones entre sí y proporciona autenticación. Le permite detectar cambios no autorizados en el elemento en general, incluida la adición o eliminación de atributos o la sustitución de un valor cifrado por otro.
En un elemento cifrado, algunos datos permanecen en texto no cifrado, incluido el nombre de la tabla, todos los nombres de atributo, los valores de atributo que no cifra y los nombres y valores de los atributos de la clave principal (clave de partición y clave de clasificación). No almacene información confidencial en estos campos.
Para obtener más información sobre el funcionamiento del SDK AWS de cifrado de bases de datos para DynamoDB, consulte. Cómo funciona el SDK AWS de cifrado de bases de datos
Cifrado de valores de atributos
El SDK AWS de cifrado de bases de datos para DynamoDB cifra los valores (pero no el nombre o el tipo de atributo) de los atributos que especifique. Para determinar los valores de atributo que se cifran, utilice acciones de atributo.
Por ejemplo, este elemento incluye los atributos example
y test
.
'example': 'data', 'test': 'test-value', ...
Si cifra el atributo example
, pero no cifra el atributo test
, el resultado tendrá el siguiente aspecto. El valor de atributo example
cifrado son datos binarios, en lugar de una cadena.
'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' ...
Los atributos de clave principal (clave de partición y clave de clasificación) de cada elemento deben permanecer en texto no cifrado porque DynamoDB los utiliza para buscar el elemento en la tabla. Deben estar firmados, pero no cifrados.
El SDK AWS de cifrado de bases de datos para DynamoDB identifica los atributos clave principales y garantiza que sus valores estén firmados, pero no cifrados. Y, si identifica la clave principal y, a continuación, intenta cifrarla, el cliente generará una excepción.
El cliente guarda la descripción del material en un nuevo atributo (aws_dbe_head
) que agrega al elemento. La descripción del material describe cómo se cifró y firmó el elemento. El cliente utiliza esta información para verificar y descifrar el elemento. El campo que almacena la descripción del material no está cifrado.
Firma del elemento
Tras cifrar los valores de los atributos especificados, el SDK de cifrado de AWS bases de datos para DynamoDB calcula los códigos de autenticación de mensajes (HMAC) basados en hash y una firma digital mediante la canonicalización de la descripción del material, el contexto de cifrado y cada campo marcado o en las acciones de los atributos. ENCRYPT_AND_SIGNSIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Las firmas ECDSA están habilitadas de forma predeterminada, pero no son obligatorias. El cliente guarda las HMAC y firmas en un nuevo atributo (aws_dbe_foot
) que agrega al elemento.