Conjuntos de algoritmos compatibles en el cifrado de AWS bases de datos SDK - 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.

Conjuntos de algoritmos compatibles en el cifrado de AWS bases de datos SDK

Nuestra biblioteca de cifrado del lado del cliente pasó a llamarse AWS Database Encryption. SDK En esta guía para desarrolladores, se sigue proporcionando información sobre el cliente de cifrado de DynamoDB.

Un conjunto de algoritmos es un conjunto de algoritmos criptográficos y sus valores relacionados. Los sistemas criptográficos utilizan la implementación del algoritmo para generar el texto cifrado.

El cifrado AWS de bases de datos SDK utiliza un conjunto de algoritmos para cifrar y firmar los campos de la base de datos. Todos los conjuntos de algoritmos compatibles utilizan el algoritmo Advanced Encryption Standard (AES) con Galois/Counter Mode (GCM), conocido como AES -GCM, para cifrar los datos sin procesar. El cifrado de AWS bases de datos SDK admite claves de cifrado de 256 bits. La longitud de la etiqueta de autenticación es siempre de 16 bytes.

AWS Paquetes de algoritmos de cifrado de bases de SDK datos
Algoritmo Algoritmo de cifrado Longitud de la clave de datos (en bits) Algoritmo de derivación de clave Algoritmo de firma simétrica Algoritmo de firma asimétrica. Compromiso clave
Predeterminado AES-GCM 256 HKDFcon SHA -512 HMAC- -384 SHA ECDSAcon P-384 y -384 SHA HKDFcon -512 SHA
AES- GCM sin firmas ECDSA digitales AES-GCM 256 HKDFcon SHA -512 HMAC- -384 SHA Ninguna HKDFcon -512 SHA
Algoritmo de cifrado

El nombre y el modo del algoritmo de cifrado que se utilizó. Los conjuntos de algoritmos del cifrado de AWS bases de datos SDK utilizan el algoritmo Advanced Encryption Standard (AES) con Galois/Counter Mode (). GCM

Longitud de la clave de datos

La longitud de la clave de datos en bits. El cifrado de la AWS base de datos SDK admite claves de datos de 256 bits. La clave de datos se utiliza como entrada para una función de derivación de extract-and-expand claves HMAC basada (). HKDF La salida de HKDF se utiliza como clave de cifrado de datos en el algoritmo de cifrado.

Algoritmo de derivación de clave

La función de derivación de extract-and-expand claves HMAC basada (HKDF) utilizada para derivar la clave de cifrado de datos. El cifrado AWS de la base de datos SDK utiliza lo HKDF definido en RFC5869.

  • La función hash utilizada es -512 SHA

  • Para el paso de extracción:

  • Para el paso de expansión:

    • La clave pseudoaleatoria de entrada es el resultado del paso de extracción.

    • La etiqueta clave son los bytes UTF codificados en -8 de la DERIVEKEY cadena en orden de bytes endiano grande.

    • La información de entrada es una concatenación del ID de algoritmo seguido de la etiqueta de clave (en ese orden).

    • La longitud del material de salida para las claves es la Longitud de la clave de datos. Este resultado se utiliza como clave de cifrado de datos en el algoritmo de cifrado.

Algoritmo de firma simétrica

El algoritmo del código de autenticación de mensajes basado en hash (HMAC) se utiliza para generar una firma simétrica. Todos los conjuntos de algoritmos compatibles incluyen HMAC la verificación.

El cifrado AWS de la base de datos SDK serializa la descripción del material y todos los campos marcados con ENCRYPT_AND_SIGNSIGN_ONLY, oSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. A continuación, utiliza un algoritmo HMAC de función hash criptográfica (SHA-384) para firmar la canonicalización.

La HMAC firma simétrica se almacena en un campo nuevo (aws_dbe_foot) que el cifrado de la AWS base de datos añade al registro. SDK

Algoritmo de firma asimétrica.

El algoritmo de firma utilizado para generar una firma digital asimétrica.

El cifrado AWS de la base de datos SDK serializa la descripción del material y todos los campos marcados con ENCRYPT_AND_SIGN o. SIGN_ONLY SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT A continuación, utiliza el algoritmo de firma digital de curva elíptica (ECDSA) con las siguientes especificaciones para firmar la canonicalización:

  • La curva elíptica utilizada es la P-384, tal como se define en el Estándar de firma digital () (186-4). DSS FIPS PUB

  • La función hash utilizada es -384. SHA

La ECDSA firma asimétrica se almacena junto con la HMAC firma simétrica en el campo. aws_dbe_foot

ECDSALas firmas digitales se incluyen de forma predeterminada, pero no son obligatorias.

Compromiso clave

La función de derivación de extract-and-expand claves HMAC basada (HKDF) utilizada para derivar la clave de confirmación.

  • La función hash utilizada es -512 SHA

  • Para el paso de extracción:

  • Para el paso de expansión:

    • La clave pseudoaleatoria de entrada es el resultado del paso de extracción.

    • La información de entrada son los bytes UTF codificados en -8 de la COMMITKEY cadena en orden de bytes endiano grande.

    • La longitud del material de codificación de salida es de 256 bits. Esta salida se utiliza como clave de confirmación.

La clave de confirmación calcula la confirmación del registro, un hash distinto de 256 bits basado en el código de autenticación de mensajes (HMAC) basado en un hash, sobre la descripción del material. Para obtener una explicación técnica sobre cómo añadir un compromiso clave a un conjunto de algoritmos, consulte Key Committing AEADs in Cryptology Archive. ePrint

De forma predeterminada, el cifrado de AWS bases de datos SDK utiliza un conjunto de algoritmos con AES -GCM, una función de derivación de extract-and-expand claves HMAC basada en (HKDF), HMAC verificación, firmas ECDSA digitales, confirmación de claves y una clave de cifrado de 256 bits.

El conjunto de algoritmos predeterminado incluye la HMAC verificación (firmas simétricas) y las firmas ECDSAdigitales (firmas asimétricas). Estas firmas se almacenan en un campo nuevo (aws_dbe_foot) que el cifrado de la AWS base de datos SDK agrega al registro. ECDSAlas firmas digitales son especialmente útiles cuando la política de autorización permite a un grupo de usuarios cifrar los datos y a otro grupo diferente descifrarlos.

El conjunto de algoritmos predeterminado también deriva de un compromiso clave: un HMAC hash que vincula la clave de datos al registro. El valor de compromiso clave se HMAC calcula a partir de la descripción del material y la clave de confirmación. A continuación, el valor de compromiso clave se almacena en la descripción del material. El compromiso clave garantiza que cada texto cifrado se descifre en un solo texto no cifrado. Para ello, validan la clave de datos utilizada como entrada en el algoritmo de cifrado. Al cifrar, el conjunto de algoritmos obtiene un compromiso clave. HMAC Antes de descifrar, validan que la clave de datos genere el mismo compromiso de clave. HMAC En caso contrario, el comando de descifrado genera un error.

AES- GCM sin firmas ECDSA digitales

Aunque es probable que el conjunto de algoritmos predeterminado sea adecuado para la mayoría de las aplicaciones, puede elegir un conjunto de algoritmos alternativo. Por ejemplo, algunos modelos de confianza quedarían satisfechos con un conjunto de algoritmos sin firmas ECDSA digitales. Utilice este conjunto solo cuando los usuarios que cifran datos y los usuarios que los descifran sean de la misma confianza.

Todos los conjuntos de SDK algoritmos AWS de cifrado de bases de datos incluyen la HMAC verificación (firmas simétricas). La única diferencia es que el AES conjunto de GCM algoritmos sin firma ECDSA digital carece de la firma asimétrica, lo que proporciona una capa adicional de autenticidad y no repudio.

Por ejemplo, si tiene varias claves de empaquetado en su conjunto de claves wrappingKeyAwrappingKeyB, y descifra un registro con wrappingKeyA ellaswrappingKeyC, la firma HMAC simétrica verifica que el registro lo cifró un usuario con acceso a. wrappingKeyA Si usó el conjunto de algoritmos predeterminado, HMACs proporcionan la misma verificación ywrappingKeyA, además, utilizan la firma ECDSA digital para garantizar que el registro lo haya cifrado un usuario con permisos de cifrado para ello. wrappingKeyA

Para seleccionar el AES conjunto de GCM algoritmos sin firmas digitales, incluya el siguiente fragmento en la configuración de cifrado.

Java

En el siguiente fragmento se especifica el conjunto de GCM algoritmos AES - sin firmas digitales. ECDSA Para obtener más información, consulte Configuración de cifrado en el cifrado de AWS bases de datos SDK para DynamoDB.

.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)
C# / .NET

En el siguiente fragmento se especifica el conjunto de GCM algoritmos AES - sin firmas digitales. ECDSA Para obtener más información, consulte Configuración de cifrado en el cifrado de AWS bases de datos SDK para DynamoDB.

AlgorithmSuiteId = DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384