Proveedor de materiales encapsulado - AWS Cifrado de bases SDK

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.

Proveedor de materiales encapsulado

nota

Nuestra biblioteca de cifrado del cliente pasó a llamarse SDK de cifrado de bases de datos de AWS. En el siguiente tema, se presenta información sobre las versiones 1.x—2.x del cliente de cifrado de DynamoDB para Java y versiones 1.x—3.x del cliente de cifrado de DynamoDB para Python. Para obtener más información, consulte el SDK de cifrado de bases de datos de AWS para la compatibilidad de la versión de DynamoDB.

El proveedor de materiales encapsulado (CMP encapsulado) le permite utilizar las claves de encapsulación y de firma desde cualquier fuente con el cliente de cifrado de DynamoDB. El CMP encapsulado no depende de ningún servicio de AWS. Sin embargo, debe generar y administrar las claves de encapsulación y de firma fuera del cliente, incluida la entrega de las claves correctas para verificar y descifrar el elemento.

El CMP encapsulado genera una clave de cifrado de elemento única para cada elemento. Encapsula la clave de cifrado del elemento con la clave de encapsulación que proporcione y guarda la clave de cifrado de elemento encapsulado en el atributo de descripción de materiales del elemento. Dado que suministra las claves de encapsulación y de firma, determina cómo se generan las claves de firma y encapsulación y si son únicas para cada elemento o si se reutilizan.

El CMP encapsulado es una implementación segura y supone una buena opción para aplicaciones que puedan administrar materiales criptográficos.

El CMP encapsulado es uno de los diversos proveedores de materiales criptográficos (CMP) que admite el cliente de cifrado de DynamoDB. Para obtener información acerca de otros CMP, consulte Proveedor de materiales criptográficos.

Para ver código de ejemplo, consulte:

Modo de uso

Para crear un CMP encapsulado, especifique una clave de encapsulación (requerida durante el cifrado), una clave de desencapsulación (requerida durante el descifrado) y una clave de firma. Debe proporcionar las claves al cifrar y descifrar elementos.

Las claves de encapsulación, desencapsulación y firma pueden ser claves simétricas o pares de claves asimétricas.

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 )

Cómo funciona

El CMP encapsulado genera una clave de cifrado de elemento nueva para cada elemento. Utiliza las claves de encapsulación, desencapsulación y firma que proporcione, tal y como se muestra en el siguiente diagrama.

La entrada, el procesamiento y la salida del proveedor de materiales encapsulado en el cliente de cifrado de DynamoDB

Obtener los materiales de cifrado

En esta sección se describen en detalle las entradas, las salidas y el procesamiento del proveedor de materiales encapsulado (CMP encapsulado) cuando recibe una solicitud para materiales de cifrado.

Entrada (desde la aplicación)

  • Clave de encapsulación: una clave simétrica Advanced Encryption Standard (AES) o una clave pública RSA. Obligatorio si los valores de atributos están cifrados. De lo contrario, es opcional y se pasa por alto.

  • Clave de desencapsulación: opcional y se pasa por alto.

  • Clave de firma

Entrada (desde el encriptador de elementos)

Salida (al encriptador de elementos):

  • Clave de cifrado de elemento de texto no cifrado

  • Clave de firma (sin cambios)

  • Descripción de material real: estos valores se guardan en el atributo de descripción de material que el cliente añade al elemento.

    • amzn-ddb-env-key: clave de cifrado de elemento encapsulado cifrado en Base64

    • amzn-ddb-env-alg: algoritmo de cifrado utilizado para cifrar el elemento. El valor predeterminado es AES-256-CBC.

    • amzn-ddb-wrap-alg: el algoritmo de encapsulación que utilizó el CMP encapsulado para encapsular la clave de cifrado del elemento. Si la clave de encapsulación es una clave AES, la clave se encapsula utilizando AES-Keywrap no rellenado, tal como se define en RFC 3394. Si la clave de encapsulación es una clave RSA, la clave se cifra utilizando RSA OAEP con relleno MGF1.

Processing

Cuando se cifra un elemento, transfiere una clave de encapsulación y una clave de firma. Una clave de desencapsulación es opcional y se pasa por alto.

  1. El CMP encapsulado genera una clave de cifrado de elemento simétrica única para el elemento de tabla.

  2. Utiliza la clave de cifrado que especifica para encapsular la clave de cifrado del elemento. A continuación, lo elimina de la memoria lo antes posible.

  3. Devuelve la clave de cifrado del elemento con texto no cifrado, la clave de firma que suministró y una descripción de material real que incluye la clave de cifrado del elemento encapsulado y los algoritmos de cifrado y encapsulación.

  4. El encriptador de elementos utiliza la clave de cifrado de texto no cifrado para cifrar el elemento. Utiliza la clave de firma que suministró para firmar el elemento. A continuación, elimina las claves de texto no cifrado de la memoria lo antes posible. Copia los campos en la descripción de material real, incluida la clave de cifrado encapsulada (amzn-ddb-env-key), en el atributo de descripción de material del elemento.

Obtener los materiales de descifrado

En esta sección se describen en detalle las entradas, las salidas y el procesamiento del proveedor de materiales encapsulado (CMP encapsulado) cuando recibe una solicitud para materiales de descifrado.

Entrada (desde la aplicación)

  • Clave de encapsulación: opcional y se pasa por alto.

  • Clave de encapsulación: la misma clave simétrica Advanced Encryption Standard (AES) o clave privada RSA que corresponde a la clave pública RSA utilizada para cifrar. Obligatorio si los valores de atributos están cifrados. De lo contrario, es opcional y se pasa por alto.

  • Clave de firma

Entrada (desde el encriptador de elementos)

Salida (al encriptador de elementos)

  • Clave de cifrado de elemento de texto no cifrado

  • Clave de firma (sin cambios)

Processing

Cuando se descifra un elemento, transfiere una clave de desencapsulación y una clave de firma. Una clave de encapsulación es opcional y se pasa por alto.

  1. El CMP encapsulado obtiene la clave de cifrado del elemento encapsulado desde el atributo de descripción de material del elemento.

  2. Utiliza la clave de desencapsulación y el algoritmo para desencapsular la clave de cifrado del elemento.

  3. Devuelve la clave de cifrado del elemento con texto no cifrado, la clave de firma y los algoritmos de cifrado y de firma al encriptador de elementos.

  4. El encriptador de elementos utiliza la clave de firma para verificar el elemento. Si se realiza correctamente, utiliza la clave de cifrado de elementos para descifrar el elemento. A continuación, elimina las claves de texto no cifrado de la memoria lo antes posible.