Cómo funciona el SDK AWS de cifrado de bases de datos - AWS SDK de cifrado de bases de datos

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.

Cómo funciona el SDK AWS de cifrado de bases de datos

Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de bases de datos. AWS 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 proporciona bibliotecas de cifrado del lado del cliente diseñadas específicamente para proteger los datos que se almacenan en las bases de datos. Las bibliotecas incluyen implementaciones seguras que puede ampliar o utilizar sin hacer ningún cambio. Para obtener más información sobre la definición y el uso de componentes personalizados, consulte el GitHub repositorio de la implementación de la base de datos.

Los flujos de trabajo de esta sección explican cómo el SDK AWS de cifrado de bases de datos cifra, firma, descifra y verifica los datos de la base de datos. Estos flujos de trabajo describen el proceso básico mediante elementos abstractos y las características predeterminadas. Para obtener más información sobre cómo funciona el SDK AWS de cifrado de bases de datos con la implementación de la base de datos, consulte el tema Qué se cifra en la base de datos.

El SDK AWS de cifrado de bases de datos utiliza el cifrado de sobres para proteger sus datos. Cada registro se cifra con una clave de datos única. La clave de datos se utiliza para obtener una clave de cifrado de datos única para cada campo marcado ENCRYPT_AND_SIGN en sus acciones criptográficas. A continuación, las claves de encapsulación que especifique cifran una copia de la clave de datos. Para descifrar el registro cifrado, el SDK de cifrado de AWS bases de datos utiliza las claves de empaquetado que especifique para descifrar al menos una clave de datos cifrada. A continuación, puede descifrar el texto cifrado y devolver una entrada de texto no cifrado.

Para obtener más información sobre los términos utilizados en el SDK de cifrado de AWS bases de datos, consulte. AWS Conceptos del SDK de encriptación de bases

Cifra y firma

En esencia, el SDK de cifrado de AWS bases de datos es un cifrador de registros que cifra, firma, verifica y descifra los registros de la base de datos. Recibe información acerca de los registros e instrucciones sobre qué elementos hay que cifrar y firmar. Obtiene los materiales de cifrado, y las instrucciones sobre su uso, desde un administrador de materiales criptográficos configurado a partir de la clave de encapsulación que especifique.

En el siguiente tutorial se describe cómo el SDK de cifrado de AWS bases de datos cifra y firma las entradas de datos.

  1. El administrador de materiales criptográficos proporciona al SDK de cifrado de AWS bases de datos claves de cifrado de datos únicas: una clave de datos en texto plano, una copia de la clave de datos cifrada con la clave de empaquetado especificada y una clave MAC.

    nota

    Puede cifrar la clave de datos con varias claves de encapsulación. Cada una de las claves de encapsulación cifra una copia independiente de la clave de datos. El SDK AWS de cifrado de bases de datos almacena todas las claves de datos cifrados en la descripción del material. El SDK de cifrado de bases de datos de AWS agrega un nuevo campo (aws_dbe_head) al registro que almacena la descripción del material.

    Se obtiene una clave MAC para cada copia cifrada de la clave de datos. Las claves MAC no se almacenan en la descripción del material. En su lugar, el método de descifrado utiliza las claves de encapsulación para volver a derivar las claves MAC.

  2. El método de cifrado cifra cada campo marcado como ENCRYPT_AND_SIGN en las acciones criptográficas especificadas.

  3. El método de cifrado deriva un commitKey de la clave de datos y lo utiliza para generar un valor de compromiso de clave y, a continuación, descarta la clave de datos.

  4. El método de cifrado agrega una descripción del material al registro. La descripción del material contiene las claves de datos cifrados y la información adicional sobre el registro cifrado. Para obtener una lista completa de la información incluida en la descripción del material, consulte Formato de la descripción del material.

  5. El método de cifrado utiliza las claves MAC devueltas en el paso 1 para calcular los valores del código de autenticación de mensajes basado en hash (HMAC) mediante la canonicalización de la descripción del material, el contexto de cifrado y cada campo marcado o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT las ENCRYPT_AND_SIGN acciones SIGN_ONLY criptográficas. Los valores del HMAC se almacenan en un campo nuevo (aws_dbe_foot) que el método de cifrado agrega al registro.

  6. El método de cifrado calcula una firma ECDSA mediante la canonicalización de la descripción del material, el contexto de cifrado y cada campo marcado ENCRYPT_AND_SIGN o, y almacena las firmas ECDSA en el campo. SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT aws_dbe_foot

    nota

    Las firmas ECDSA están habilitadas de forma predeterminada, pero no son obligatorias.

  7. El método de cifrado almacena el registro cifrado y firmado en la base de datos

Descifrado y verificación

  1. El administrador de materiales criptográficos (CMM) proporciona el método de descifrado con los materiales de descifrado almacenados en la descripción del material, incluida la clave de datos de texto no cifrado y la clave MAC asociada.

    1. El CMM descifra la clave de datos cifrada mediante las claves de encapsulación del conjunto de claves especificado y devuelve la clave de datos en texto no cifrado.

  2. El método de descifrado compara y verifica el valor de compromiso clave en la descripción del material.

  3. El método de descifrado verifica las firmas en el campo de la firma.

    Identifica los campos que están marcados ENCRYPT_AND_SIGN o los que aparecen en la lista SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT de campos no autenticados permitidos que haya definido. SIGN_ONLY El método de descifrado utiliza la clave MAC devuelta en el paso 1 para volver a calcular y comparar los valores HMAC de los campos marcados, o. ENCRYPT_AND_SIGN SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT A continuación, verifica las firmas del ECDSA mediante la clave pública almacenada en el contexto de cifrado.

  4. El método de descifrado usa la clave de datos en texto no cifrado para descifrar cada valor marcado ENCRYPT_AND_SIGN. A continuación, el SDK AWS de cifrado de bases de datos descarta la clave de datos de texto simple.

  5. El método de descifrado devuelve el registro en texto no cifrado.