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 claves de AWS KMS ECDH
importante
El AWS KMS ECDH llavero solo está disponible en la versión 4. x de la forma AWS Encryption SDK . NETy versión 3. x del SDK de cifrado de AWS para Java. El AWS KMS ECDH llavero se introdujo 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 envolvente 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 AWS Encryption SDK utiliza (KDF_CTR_HMAC_SHA384
) para derivar la clave de empaquetado compartida cumple con NISTlas recomendaciones de derivación de
La función de derivación de claves devuelve 64 bytes de material de creación de claves. Para garantizar que ambas partes utilicen el material de codificación correcto, AWS Encryption 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 texto cifrado del encabezado del mensaje, la operación no se realizará correctamente. Por ejemplo, si cifra los datos 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 los datos. 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 los datos.
El AWS KMS ECDH anillo de claves cifra los datos 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
AWS Encryption SDK No requiere una AWS cuenta y no depende de ningún servicio. AWS Sin embargo, para usar un AWS KMS ECDH llavero, necesitas una AWS cuenta y los siguientes permisos mínimos AWS KMS keys en el llavero. Los permisos varían en función del esquema de acuerdo de claves que utilices.
-
Para cifrar y descifrar datos 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 los datos 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 AWS Encryption SDK
pueden utilizar. 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 anillo de claves de AWS KMS ECDH detección, es decir, un AWS KMS ECDH anillo de claves que pueda descifrar cualquier mensaje en el que la clave pública del par de claves especificado coincida con la KMS clave pública del destinatario almacenada en el texto cifrado del mensaje.
importante
Al descifrar los mensajes 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.