Conjuntos de algoritmos admitidos en el AWS Encryption SDK - AWS Encryption 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 admitidos en el AWS Encryption SDK

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 mensaje de texto cifrado.

Para cifrar los datos sin procesar, el conjunto de algoritmos del AWS Encryption SDK usa el algoritmo Advanced Encryption Standard (AES) en Galois/Counter Mode (GCM), denominado AES-GCM. El AWS Encryption SDK admite claves de cifrado de 256, 192 y 128 bits. La longitud del vector de inicialización (IV) es siempre de 12 bytes. La longitud de la etiqueta de autenticación es siempre de 16 bytes.

De forma predeterminada, el AWS Encryption SDK utiliza un conjunto de algoritmos con AES-GCM con una función de derivación de clave de extracción y expansión basada en HMAC (HKDF), la característica de firma y una clave de cifrado de 256 bits. Si la política de compromiso requiere un compromiso clave, AWS Encryption SDK selecciona un conjunto de algoritmos que también admita el compromiso clave; de lo contrario, selecciona un conjunto de algoritmos con derivación y firma de claves, pero no un compromiso clave.

Se AWS Encryption SDK recomienda un conjunto de algoritmos que obtenga una clave de cifrado AES-GCM mediante el suministro de una clave de cifrado de datos de 256 bits a la función de extracción y expansión de claves (HKDF) basada en HMAC. El AWS Encryption SDK agrega una firma de Algoritmo de firma digital de curva elíptica (ECDSA). Para respaldar el compromiso de claves, este conjunto de algoritmos también deriva una cadena de compromiso de clave (un identificador de clave de datos no secreto) que se almacena en los metadatos del mensaje cifrado. Esta cadena de compromiso clave también se obtiene a través de la HKDF mediante un procedimiento similar al de la obtención de la clave de cifrado de datos.

Conjunto de algoritmos del AWS Encryption SDK
Algoritmo de cifrado Longitud de la clave de cifrado de datos (en bits) Algoritmo de derivación de clave Algoritmo de firma Compromiso clave
AES-GCM 256 HKDF con SHA-384 ECDSA con P-384 y SHA-384 HKDF con SHA-512

La HKDF ayuda a evitar la reutilización accidental de una clave de cifrado de datos.

Para la firma, este conjunto de algoritmos utiliza el ECDSA con un algoritmo de función hash criptográfica (SHA-384). ECDSA se utiliza de forma predeterminada, aunque no se especifique en la política de la clave maestra subyacente. La firma de mensajes verifica que el remitente del mensaje estaba autorizado a cifrar los mensajes y no los repudia. Resulta especialmente útil cuando la política de autorización de una clave maestra permite que un conjunto de usuarios cifre los datos y otro conjunto diferente de usuarios los descifre.

Los conjuntos de algoritmos con un compromiso clave garantizan que cada texto cifrado se descifre en un solo texto simple. Para ello, validan la identidad de la clave de datos utilizada como entrada en el algoritmo de cifrado. Al cifrar, estos conjuntos de algoritmos obtienen una cadena de compromiso clave. Antes de descifrar, validan que la clave de datos coincida con la cadena de compromiso de la clave. En caso contrario, el comando de descifrado genera un error.

Otros conjuntos de algoritmos admitidos

El AWS Encryption SDK admite los siguientes conjuntos de algoritmos alternativos con fines de compatibilidad con versiones anteriores. En general, no se recomiendan estos conjuntos de algoritmos. Sin embargo, reconocemos que la firma puede afectar considerablemente el rendimiento, por lo que ofrecemos un conjunto de compromisos de claves con derivación de claves para esos casos. En el caso de las aplicaciones que deben hacer concesiones de rendimiento más significativas, seguimos ofreciendo paquetes que no cuentan con la firma, el compromiso y la derivación de claves.

AES-GCM sin un compromiso clave

Los conjuntos de algoritmos sin compromiso de clave no validan la clave de los datos antes de descifrarlos. Como resultado, estos conjuntos de algoritmos pueden descifrar un único texto cifrado en diferentes mensajes de texto simple. Sin embargo, dado que los conjuntos de algoritmos con compromiso de claves generan un mensaje cifrado un poco más grande (+30 bytes) y tardan más en procesarse, es posible que no sean la mejor opción para todas las aplicaciones.

AWS Encryption SDKAdmite un conjunto de algoritmos con derivación, compromiso y firma de claves y otro con derivación y compromiso de claves, pero sin firma. No recomendamos utilizar un conjunto de algoritmos sin un compromiso clave. Si es necesario, le recomendamos un conjunto de algoritmos con derivación y compromiso de claves, pero sin firma. Sin embargo, si el perfil de rendimiento de su aplicación admite el uso de un conjunto de algoritmos, se recomienda utilizar un conjunto de algoritmos con compromiso, derivación y firma de claves.

AES-GCM sin firma

Los conjuntos de algoritmos sin firma carecen de la firma ECDSA, que proporciona autenticidad y no repudio. Este conjunto se utiliza cuando los usuarios que cifran los datos y aquellos que los descifran son merecedores de la misma confianza.

Si utiliza un conjunto de algoritmos sin firmar, le recomendamos que elija uno con derivación y compromiso de claves.

AES-GCM solo con derivación de clave

Este conjunto de algoritmos utiliza la clave de cifrado de datos como clave de cifrado AES-GCM, en lugar de utilizar una función de derivación de clave para obtener una clave única. Desaconsejamos el uso de este conjunto para generar texto cifrado, pero el AWS Encryption SDK lo admite por motivos de compatibilidad.

Para obtener más información acerca de cómo se representan y utilizan estos conjuntos en la biblioteca, consulte AWS Encryption SDK referencia de algoritmos.