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.
Conjunto de claves AWS KMS ECDH
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. |
importante
El AWS KMS ECDH anillo de claves solo está disponible en la versión 1.5.0 de la biblioteca de proveedores de materiales.
Un conjunto de AWS KMS ECDH claves utiliza un acuerdo de claves asimétrico AWS KMS keyspara obtener una clave de ajuste simétrica compartida entre dos partes. En primer lugar, el conjunto de claves utiliza el algoritmo de acuerdo de claves Diffie-Hellman (ECDH) de curva elíptica para obtener un secreto compartido a partir de la clave privada del par de claves del remitente y la KMS clave pública del destinatario. A continuación, el conjunto de claves utiliza el secreto compartido para obtener la clave de empaquetado compartida que protege las claves de cifrado de datos. La función de derivación de claves que SDK utiliza el cifrado de AWS bases de datos (KDF_CTR_HMAC_SHA384
) para derivar la clave de empaquetado compartida se ajusta a NISTlas recomendaciones de derivación de
La función de derivación de claves devuelve 64 bytes de material de codificación. Para garantizar que ambas partes utilicen el material de codificación correcto, el cifrado de la AWS base de datos SDK utiliza los primeros 32 bytes como clave de compromiso y los últimos 32 bytes como clave de empaquetado compartida. Al descifrar, si el conjunto de claves no puede reproducir la misma clave de compromiso y la misma clave de empaquetado compartida que están almacenadas en el campo de descripción del material del registro cifrado, la operación no se realizará correctamente. Por ejemplo, si cifra un registro con un conjunto de claves configurado con la clave privada de Alice y la clave pública de Bob, un conjunto de claves configurado con la clave privada de Bob y la clave pública de Alice reproducirá la misma clave de compromiso y clave de empaquetado compartida y podrá descifrar el registro. Si la clave pública de Bob no proviene de un par de KMS claves, entonces Bob puede crear un conjunto de ECDHclaves Raw para descifrar el registro.
El conjunto de AWS KMS ECDH claves cifra los registros con una clave simétrica utilizando -. AES GCM A continuación, la clave de datos se cifra sobre con la clave de empaquetado compartida derivada mediante -. AES GCM Cada AWS KMS ECDH llavero solo puede tener una clave de empaquetado compartida, pero puedes incluir varios AWS KMS ECDH llaveros, solos o con otros, en un conjunto de varios llaveros.
Temas
Permisos necesarios para los conjuntos de claves de AWS KMS ECDH
El cifrado AWS de bases de datos SDK no requiere una AWS cuenta y no depende de ningún servicio. AWS Sin embargo, para usar un AWS KMS ECDH conjunto de claves, necesita una AWS cuenta y los siguientes permisos mínimos AWS KMS keys en su conjunto de claves. Los permisos varían en función del esquema de acuerdo de claves que utilices.
-
Para cifrar y descifrar registros mediante el esquema de acuerdo de
KmsPrivateKeyToStaticPublicKey
claves, necesita kms: GetPublicKey y kms: DeriveSharedSecret en el par de claves asimétricas KMSdel remitente. Si proporciona directamente la clave pública DER codificada del remitente al crear una instancia de su conjunto de claves, solo necesitará el DeriveSharedSecret permiso kms: en el par de claves asimétricas del remitente. KMS -
Para descifrar registros mediante el esquema de acuerdo de
KmsPublicKeyDiscovery
claves, necesita los GetPublicKey permisos kms: DeriveSharedSecret y kms: en el par de KMS claves asimétricas especificado.
Creación de un conjunto de claves de AWS KMS ECDH
Para crear un conjunto de AWS KMS ECDH claves que cifre y descifre los datos, debe utilizar el esquema de acuerdo de claves. KmsPrivateKeyToStaticPublicKey
Para inicializar un conjunto de AWS KMS ECDH claves con el esquema de acuerdo de KmsPrivateKeyToStaticPublicKey
claves, proporcione los siguientes valores:
-
ID del remitente AWS KMS key
Debe identificar un ECC par de KMS claves NIST de curva elíptica () recomendado asimétrico con un
KeyUsage
valor de.KEY_AGREEMENT
La clave privada del remitente se utiliza para obtener el secreto compartido. -
(Opcional) Clave pública del remitente
La AWS KMS GetPublicKeyoperación devuelve la clave pública de un KMS key pair asimétrico en el formato DER codificado requerido.
Para reducir el número de AWS KMS llamadas que realiza tu llavero, puedes proporcionar directamente la clave pública del remitente. Si no se proporciona ningún valor para la clave pública del remitente, el llavero llama AWS KMS para recuperar la clave pública del remitente.
-
La clave pública del destinatario
La AWS KMS GetPublicKeyoperación devuelve la clave pública de un KMS key pair asimétrico en el formato DER codificado requerido.
-
Especificación de curva
Identifica la especificación de la curva elíptica en los pares de claves especificados. Los pares de claves del remitente y del destinatario deben tener la misma especificación de curva.
Valores válidos:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Opcional) Una lista de tokens de concesión
Si controlas el acceso a la KMS clave de tu AWS KMS ECDH llavero mediante concesiones, debes proporcionar todas las fichas de concesión necesarias al inicializar el llavero.
Crear un llavero de AWS KMS ECDH descubrimiento
Al descifrar, se recomienda especificar las claves que SDK puede utilizar el cifrado de la AWS base de datos. Para seguir esta práctica recomendada, utilice un AWS KMS ECDH anillo de claves con el esquema de acuerdo de KmsPrivateKeyToStaticPublicKey
claves. Sin embargo, también puede crear un conjunto de claves de AWS KMS ECDH detección, es decir, un conjunto de AWS KMS ECDH claves que pueda descifrar cualquier registro en el que la clave pública del par de claves especificado coincida con la KMS clave pública del destinatario almacenada en el campo de descripción del material del registro cifrado.
importante
Al descifrar los registros mediante el esquema de acuerdo de KmsPublicKeyDiscovery
claves, acepta todas las claves públicas, independientemente de quién sea su propietario.
Para inicializar un conjunto de AWS KMS ECDH claves con el esquema de acuerdo de KmsPublicKeyDiscovery
claves, proporcione los siguientes valores:
-
ID del destinatario AWS KMS key
Debe identificar un ECC par de KMS claves NIST de curva elíptica () recomendado asimétrico con un
KeyUsage
valor de.KEY_AGREEMENT
-
Especificación de curva
Identifica la especificación de la curva elíptica en el KMS key pair del destinatario.
Valores válidos:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Opcional) Una lista de tokens de concesión
Si controlas el acceso a la KMS clave de tu AWS KMS ECDH llavero mediante concesiones, debes proporcionar todas las fichas de concesión necesarias al inicializar el llavero.