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.
Referencia
Nuestra biblioteca de cifrado del cliente pasó a llamarse SDK de cifrado de bases de datos de AWS. En esta guía para desarrolladores, se sigue proporcionando información sobre el cliente de cifrado de DynamoDB. |
En los temas siguientes, se proporcionan detalles técnicos del SDK de cifrado de bases de datos de AWS.
Formato de descripción del material
La descripción del material sirve como encabezado de un registro cifrado. Al cifrar y firmar campos con el SDK de cifrado de bases de datos de AWS, el encriptador registra la descripción del material a medida que reúne los materiales criptográficos y almacena la descripción del material en un nuevo campo (aws_dbe_head
) que el encriptador agrega al registro. La descripción del material es una estructura de datos con formato portátil que contiene la clave de datos cifrados e información sobre cómo se cifró y firmó el registro. En la siguiente tabla, se describen los valores que forman la descripción del material. Los bytes se anexan en el orden mostrado
Valor | Longitud en bytes |
---|---|
Versión | 1 |
Firmas habilitadas | 1 |
ID de registro | 32 |
Cifra la leyenda | Variable |
Longitud del contexto de cifrado | 2 |
Contexto de cifrado | Variable |
Encrypted Data Key Count | 1 |
Claves de datos cifrados | Variable |
Compromiso de registro | 1 |
- Versión
-
La versión de este
aws_dbe_head
formato de campo. - Firmas habilitadas
-
Codifica si las firmas están habilitadas para este registro.
Valor de byte Significado 0x01
Firmas habilitadas (predeterminado) 0x00
Firmas deshabilitadas - ID de registro
-
Valor de 256-bits generado de manera aleatoria que identifica el registro. El ID del registro:
-
Identifica de forma única el registro cifrado.
-
Vincula la descripción del material al registro cifrado.
-
- Cifra la leyenda
-
Una descripción serializada de los campos autenticados que se cifraron. La leyenda de cifrado se utiliza para determinar qué campos debe intentar descifrar el método de descifrado.
Valor del byte Significado 0x65
ENCRYPT_AND_SIGN
0x73
SIGN_ONLY
La leyenda de cifrado se serializa de la siguiente manera:
-
Lexicográficamente mediante la secuencia de bytes que representa su ruta canónica.
-
Para cada campo, en orden, agregue uno de los valores de bytes especificados anteriormente para indicar si ese campo debe cifrarse.
-
- Longitud del contexto de cifrado
-
La longitud del contenido cifrado. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits. La longitud máxima es de 65.535 bytes.
- Contexto de cifrado
-
Un conjunto de pares de nombre-valor que contienen datos autenticados adicionales no secretos y arbitrarios.
Cuando las firmas digitales están habilitadas, el contexto de cifrado contiene el par clave-valor
{"aws-crypto-footer-ecdsa-key": Qtxt}
.Qtxt
representa el punto de la curva elípticaQ
comprimido según la versión 2.0 de la SEC 1y, a continuación, codificado en base64. - Encrypted Data Key Count
-
El número de claves de datos cifradas. Se trata de un valor de 1-byte interpretado como un entero sin signo de 8-bits que especifica el número de claves de datos cifradas. El número máximo de claves de datos cifrados en cada registro es 255.
- Claves de datos cifrados
-
Una secuencia de claves de datos cifradas. La longitud de la secuencia se determina según el número de claves de datos cifradas y la longitud de cada una de ellas. La secuencia contiene al menos una clave de datos cifrada.
En la siguiente tabla se describen los campos que componen cada clave de datos cifrada. Los bytes se anexan en el orden mostrado
Encrypted Data Key StructureCampo Longitud en bytes Key Provider ID Length 2 Key Provider ID Variable. Equivalente al valor especificado en los últimos 2 bytes (Key Provider ID Length). Key Provider Information Length 2 Key Provider Information Variable. Equivalente al valor especificado en los últimos 2 bytes (Key Provider Information Length). Encrypted Data Key Length 2 Encrypted Data Key Variable. Equivalente al valor especificado en los últimos 2 bytes (Encrypted Data Key Length). - Key Provider ID Length
-
La longitud del identificador del proveedor de claves. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen el ID del proveedor de claves.
- Key Provider ID
-
El identificador del proveedor de claves. Se utiliza para indicar el proveedor de la clave de datos cifrada y está previsto que sea extensible.
- Key Provider Information Length
-
La longitud de la información del proveedor de claves. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen la información del proveedor de claves.
- Key Provider Information
-
La información del proveedor de claves. Viene determinada por el proveedor de claves.
Cuando está utilizando un AWS KMSllavero, este valor contiene el Nombre de recurso de Amazon (ARN) de la AWS KMS key.
- Encrypted Data Key Length
-
La longitud de la clave de datos cifrada. Se trata de un valor de 2 bytes interpretado como un entero sin signo de 16 bits que especifica el número de bytes que contienen la clave de datos cifrada.
- Encrypted Data Key
-
La clave de datos cifrada. Se trata de la clave de datos cifrada por el proveedor de claves.
- Compromiso de registro
-
Un hash distinto del código de autenticación de mensajes basado en hash (HMAC) de 256-bits que se calcula sobre todos los bytes de descripción del material anteriores mediante la clave de compromiso.
AWS KMS Detalles técnicos del llavero jerárquico
El AWS KMS llavero jerárquico utiliza una clave de datos única para cifrar cada campo y cifra cada clave de datos con una clave de empaquetado única derivada de una clave de rama activa. Utiliza una derivación de claves
-
Una sal de asignación al azar de 16 bytes
-
La clave de rama activa
-
El valor codificado en UTF-8
para el identificador del proveedor de claves «aws-kms-hierarchy»
El llavero jerárquico utiliza la clave de empaquetado derivada para cifrar una copia de la clave de datos de texto no cifrado mediante el AES-GCM-256 con una etiqueta de autenticación de 16 bytes y las siguientes entradas.
-
La clave de empaquetado derivada se utiliza como clave de cifrado AES-GCM
-
La clave de datos se utiliza como mensaje AES-GCM
-
Se utiliza un vector de inicialización aleatoria (IV) de 12 bytes como AES-GCM IV
-
Datos autenticados adicionales (AAD) que contienen los siguientes valores serializados.
Valor Longitud en bytes Interpretado como «aws-kms-hierarchy» 17 Codificado con UTF-8 El identificador de la clave de la rama Variable Codificado con UTF-8 La versión de clave de la rama 16 Codificado con UTF-8 Contexto de cifrado Variable Pares de valores de clave con codificación UTF-8