Referencia de especificaciones de clave - AWS Key Management Service

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 de especificaciones de clave

Cuando crea una clave KMS asimétrica o una clave KMS HMAC, seleccione su especificación de clave. La especificación de clave, que es una propiedad de cada AWS KMS key, representa la configuración criptográfica de su clave KMS. Se selecciona la especificación de clave al crear la clave KMS y no se puede cambiar. Si ha seleccionado una especificación de clave errónea, elimine la clave KMS y cree una nueva.

nota

La especificación de clave para una clave KMS se conocía como “especificación de clave maestra del cliente”. El parámetro CustomerMasterKeySpec de la operación CreateKey está obsoleta. En su lugar, utilice el parámetro KeySpec. La respuesta de las operaciones CreateKey y DescribeKey incluye un miembro KeySpec y CustomerMasterKeySpec con el mismo valor.

La especificación de clave determina si la clave KMS es simétrica o asimétrica, el tipo de material de claves de la clave KMS y los algoritmos de cifrado, algoritmos de firma o algoritmos de código de autenticación de mensajes (MAC) que AWS KMS admite para la clave KMS. La especificación de clave que seleccione suele estar determinada por el caso de uso y los requisitos normativos. Sin embargo, las operaciones criptográficas en las claves KMS con diferentes especificaciones de clave tienen un precio diferente y están sujetas a diferentes cuotas de solicitud. Para obtener más información sobre precios, consulte precios de AWS Key Management Service. Para obtener más información acerca de las cuotas de solicitud, consulte Cuotas de solicitudes.

Para limitar las especificaciones de clave que pueden utilizar las entidades principales al crear las claves KMS, utilice la clave de condición kms:KeySpec. También puede utilizar la clave de condición kms:KeySpec para permitir que las entidades principales llamen a las operaciones de AWS KMS para una clave KMS con una especificación de clave determinada. Por ejemplo, puede denegar permiso para programar la eliminación de cualquier clave KMS con una especificación de clave RSA_4096.

AWS KMS admite las siguientes especificaciones de clave para las claves KMS:

Especificaciones de la clave de cifrado simétricas (predeterminado)
  • SYMMETRIC_DEFAULT

Especificaciones de clave de RSA (cifrado y descifrado o firma y verificación)
  • RSA_2048

  • RSA_3072

  • RSA_4096

Especificaciones de clave de curva elíptica
  • Pares de claves de curva elíptica asimétricas recomendadas por NIST (firma y verificación u obtención de secretos compartidos)

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Otros pares de claves de curva elíptica asimétricas (firma y verificación)

    • ECC_SECG_P256K1 (secp256k1), que se suele utilizar para las criptomonedas.

Especificaciones de clave SM2 (cifrado y descifrado o firma y verificación u obtención de secretos compartidos)
  • SM2 (solo en regiones de China)

Especificaciones de la clave HMAC
  • HMAC_224

  • HMAC_256

  • HMAC_384

  • HMAC_512

Especificación de clave SYMMETRIC_DEFAULT

La especificación de clave predeterminada, SYMMETRIC_DEFAULT, es la especificación de clave para las claves KMS de cifrado simétricas. Cuando selecciona el tipo de clave Symmetric (Simétrica) y Encrypt and decrypt (Cifrar y descifrar) en la consola de AWS KMS, esta selecciona la especificación de clave SYMMETRIC_DEFAULT. En la operación CreateKey, si no especifica un valor KeySpec, se selecciona SYMMETRIC_DEFAULT. Si no tiene un motivo para utilizar una especificación de clave diferente, SYMMETRIC_DEFAULT es una buena opción.

SYMMETRIC_DEFAULT representa AES-256-GCM, un algoritmo simétrico basado en el estándar de cifrado avanzado (AES) en el modo de contador Galois (GCM) con claves de 256 bits, un estándar del sector para conseguir un cifrado seguro. El texto cifrado que este algoritmo genera admite datos autenticados adicionales (AAD), como un contexto de cifrado, y GCM ofrece una comprobación de integridad adicional en el texto cifrado.

Los datos cifrados con AES-256-GCM están protegidos ahora y en el futuro. Los criptógrafos consideran que este algoritmo es resistente a la informática cuántica. Los futuros e hipotéticos ataques de informática cuántica a gran escala a textos cifrados creados con claves AES-GCM de 256 bits reducen la seguridad nominal de la clave a 128 bits. No obstante, este nivel de seguridad es suficiente para hacer inviables los ataques de fuerza bruta en los textos cifrados de AWS KMS.

La única excepción es en las regiones de China, donde SYMMETRIC_DEFAULT representa una clave simétrica de 128 bits que utiliza el cifrado SM4. Solo puede crear una clave SM4 de 128 bits dentro de las regiones de China. No puede crear una clave KMS con cifrado AES-GCM de 256 bits en las regiones de China.

Puede utilizar una clave de KMS de cifrado simétrica en AWS KMS para cifrar, descifrar y volver a cifrar los datos y para proteger claves de datos y pares de claves de datos generados. Los servicios de AWS que están integrados con AWS KMS utilizan claves de KMS de cifrado simétricas para cifrar los datos en reposo. Puede importar su propio material de claves en una clave KMS de cifrado simétrica y crear claves KMS de cifrado simétricas en almacenes de claves personalizadas. Para obtener una tabla en la que se comparan las operaciones que puede realizar en las claves de KMS simétricas y asimétricas, consulte Comparación de claves de KMS simétricas y asimétricas.

Puede utilizar una clave KMS de cifrado simétrica en AWS KMS para cifrar, descifrar y volver a cifrar datos, generar claves de datos y pares de claves de datos. Puede crear claves KMS de cifrado simétricas de varias regiones, importar su propio material de claves en una clave KMS de cifrado simétrica y crear claves KMS de cifrado simétricas en almacenes de claves personalizadas. Para obtener una tabla en la que se comparan las operaciones que puede realizar con claves KMS de diferentes tipos, consulte Referencia de tipos de claves.

Especificaciones de clave de RSA

Cuando utiliza una especificación de clave de RSA, AWS KMS crea una clave KMS asimétrica con un par de claves de RSA. La clave privada nunca deja AWS KMS sin cifrar. Puede utilizar la clave pública en AWS KMS o descargarla para utilizarla fuera de AWS KMS.

aviso

Cuando cifre datos fuera de AWS KMS, asegúrese de que puede descifrar el texto cifrado. Si utiliza la clave pública de una clave KMS que se ha eliminado de AWS KMS, la clave pública de una clave KMS configurada para firma y verificación o un algoritmo de cifrado que no es compatible con la clave KMS, los datos son irrecuperables.

En AWS KMS, puede utilizar las claves KMS asimétricas con pares de claves de RSA para el cifrado y el descifrado o para la firma y la verificación, pero no para ambas acciones. Esta propiedad, conocida como uso de la clave, se determina independientemente de la especificación de clave, pero tiene que tomar esta decisión antes de seleccionar una especificación de clave.

AWS KMS admite las siguientes especificaciones de clave de RSA para el cifrado y el descifrado o para la firma y la verificación:

  • RSA_2048

  • RSA_3072

  • RSA_4096

Las especificaciones de clave de RSA varían en la longitud de la clave de RSA en bits. La especificación de clave de RSA que seleccione puede estar determinada por las normas de seguridad o los requisitos de la tarea. Por regla general, utilice la clave más grande que sea práctica y asequible para la tarea. Las operaciones criptográficas en claves KMS con diferentes especificaciones de clave de RSA tienen un precio diferente. Para obtener información acerca de los precios de AWS KMS, consulte Precios del servicio de gestión de claves de AWS. Para obtener más información acerca de las cuotas de solicitud, consulte Cuotas de solicitudes.

Especificaciones de clave de RSA para el cifrado y el descifrado

Cuando se utiliza una clave KMS asimétrica de RSA para el cifrado y el descifrado, se cifra con la clave pública y se descifra con la clave privada. Cuando llama a la operación Encrypt en AWS KMS para una clave KMS de RSA, AWS KMS utiliza la clave pública del par de claves de RSA y el algoritmo de cifrado que especifique para cifrar los datos. Para descifrar el texto cifrado, llame a la operación Decrypt y especifique la misma clave KMS y el mismo algoritmo de cifrado. AWS KMS utiliza la clave privada del par de claves de RSA para descifrar los datos.

También puede descargar la clave pública y utilizarla para cifrar los datos fuera de AWS KMS. Asegúrese de utilizar un algoritmo de cifrado que AWS KMS admita para las claves KMS de RSA. Para descifrar el texto cifrado, llame a la función Decrypt con la misma clave KMS y el mismo algoritmo de cifrado.

AWS KMS admite dos algoritmos de cifrado para las claves KMS con especificaciones de clave de RSA. Estos algoritmos, que se definen en PKCS #1 v2.2, difieren en la función hash que utilizan de forma interna. En AWS KMS, los algoritmos RSAES_OAEP siempre utilizan la misma función hash para los fines de hash y para la función de generación de máscaras (MGF1). Tiene que especificar un algoritmo de cifrado cuando llame a las operaciones Encrypt y Decrypt. Puede elegir un algoritmo diferente para cada solicitud.

Algoritmos de cifrado compatibles con las especificaciones de clave de RSA
Algoritmo de cifrado Descripción del algoritmo
RSAES_OAEP_SHA_1 PKCS #1 v2.2, sección 7.1. Cifrado de RSA con relleno OAEP mediante SHA-1 para la función de generación de máscaras MGF1 y hash, junto con una etiqueta vacía.
RSAES_OAEP_SHA_256 PKCS #1, sección 7.1. Cifrado de RSA con relleno OAEP mediante SHA-256 para la función de generación de máscaras MGF1 y hash, junto con una etiqueta vacía.

No puede configurar una clave KMS para utilizar un algoritmo de cifrado específico. No obstante, puede utilizar la condición de política kms:EncryptionAlgorithm para especificar los algoritmos de cifrado que las entidades principales pueden utilizar con la clave KMS.

Para obtener los algoritmos de cifrado de una clave KMS, consulte la configuración criptográfica de la clave KMS en la consola de AWS KMS o utilice la operación DescribeKey. AWS KMS también ofrece la especificación de clave y los algoritmos de cifrado cuando descarga la clave pública, ya sea en la consola de AWS KMS o mediante la operación GetPublicKey.

Puede elegir una especificación de clave de RSA en función de la longitud de los datos de texto no cifrado que puede cifrar en cada solicitud. En la siguiente tabla se muestra el tamaño máximo, en bytes, del texto no cifrado que puede cifrar en una única llamada a la operación Encrypt. Los valores varían en función de la especificación de clave y el algoritmo de cifrado. Para realizar una comparación, puede utilizar una clave KMS de cifrado simétrica para cifrar hasta 4096 bytes a la vez.

Para calcular la longitud de texto no cifrado máxima en bytes para estos algoritmos, utilice la siguiente fórmula: (key_size_in_bits / 8) - (2 * hash_length_in_bits/8) - 2. Por ejemplo, para RSA_2048 con SHA-256, el tamaño máximo de texto no cifrado en bytes es (2048/8) - (2 * 256/8) -2 = 190.

Tamaño máximo de texto no cifrado (en bytes) en una operación de cifrado
Algoritmo de cifrado
Especificación de clave RSAES_OAEP_SHA_1 RSAES_OAEP_SHA_256
RSA_2048 214 190
RSA_3072 342 318
RSA_4096 470 446

Especificaciones de clave de RSA para la firma y la verificación

Cuando se utiliza una clave KMS asimétrica de RSA para la firma y la verificación, genera la firma para un mensaje con la clave privada y verifica la firma con la clave pública.

Cuando llama a la operación Sign en AWS KMS para una clave KMS asimétrica, AWS KMS utiliza la clave privada del par de claves de RSA, el mensaje y el algoritmo de firma que especifique para generar una firma. Para verificar la firma, llame a la operación Verify. Especifique la firma, la misma clave KMS, el mismo mensaje y el mismo algoritmo de firma. A continuación, AWS KMS utiliza la clave pública del par de claves de RSA para verificar la firma. También puede descargar la clave pública y utilizarla para verificar la firma fuera de AWS KMS.

AWS KMS admite los siguientes algoritmos de firma para todas las claves KMS con una especificación de clave de RSA. Tiene que especificar un algoritmo de firma cuando llame a las operaciones SignVerify. Puede elegir un algoritmo diferente para cada solicitud. Al firmar con pares de claves de RSA, se prefieren los algoritmos RSASSA-PSS. Incluimos los algoritmos RSASSA-PKCS1-v1_5 para garantizar la compatibilidad con las aplicaciones existentes.

Algoritmos de firma compatibles con las especificaciones de clave de RSA
Algoritmo de firma Descripción del algoritmo
RSASSA_PSS_SHA_256 PKCS #1 v2.2, sección 8.1, firma de RSA con relleno PSS mediante SHA-256 para la función de generación de máscaras MGF1 y resumen de mensaje, junto con una sal de 256 bits.
RSASSA_PSS_SHA_384 PKCS #1 v2.2, sección 8.1, firma de RSA con relleno PSS mediante SHA-384 para la función de generación de máscaras MGF1 y resumen de mensaje, junto con una sal de 384 bits.
RSASSA_PSS_SHA_512 PKCS #1 v2.2, sección 8.1, firma de RSA con relleno PSS mediante SHA-512 para la función de generación de máscaras MGF1 y resumen de mensaje, junto con una sal de 512 bits.
RSASSA_PKCS1_V1_5_SHA_256 PKCS #1 v2.2, sección 8.2, firma de RSA con relleno PKCS #1 v1.5 y SHA-256
RSASSA_PKCS1_V1_5_SHA_384 PKCS #1 v2.2, sección 8.2, firma de RSA con relleno PKCS #1 v1.5 y SHA-384
RSASSA_PKCS1_V1_5_SHA_512 PKCS #1 v2.2, sección 8.2, firma de RSA con relleno PKCS #1 v1.5 y SHA-512

No puede configurar una clave de KMS para utilizar algoritmos de firma específicos. No obstante, puede utilizar la condición de política kms:SigningAlgorithm para especificar los algoritmos de firma que las entidades principales pueden utilizar con la clave KMS.

Para obtener los algoritmos de firma de una clave KMS, consulte la configuración criptográfica de la clave KMS en la consola de AWS KMS o mediante la operación DescribeKey. AWS KMS también ofrece la especificación de clave y los algoritmos de firma cuando descarga la clave pública, ya sea en la consola de AWS KMS o mediante la operación GetPublicKey.

Especificaciones de clave de curva elíptica

Cuando utiliza una especificación de clave de curva elíptica (ECC), AWS KMS crea una clave KMS asimétrica con un par de claves de ECC para la firma y la verificación o la obtención de secretos compartidos (pero no ambos). La clave privada que genera firmas u obtiene secretos compartidos nunca deja AWS KMS sin cifrar. Puede utilizar la clave pública para verificar firmas en AWS KMS o descargar la clave pública para utilizarla fuera de AWS KMS.

AWS KMS es compatible con las siguientes especificaciones de clave de ECC para las clave KMS asimétricas.

  • Pares de claves de curva elíptica asimétricas recomendadas por NIST (firma y verificación u obtención de secretos compartidos)

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Otros pares de claves de curva elíptica asimétricas (firma y verificación)

    • ECC_SECG_P256K1 (secp256k1), que se suele utilizar para las criptomonedas.

La especificación de clave de ECC que selecciona puede estar determinada por las normas de seguridad o los requisitos de la tarea. Por regla general, utilice la curva con más puntos que sea práctica y asequible para la tarea.

Si va a crear una clave KMS asimétrica para obtener secretos compartidos, utilice una de las especificaciones de clave de curva elíptica recomendadas por NIST. El único algoritmo de acuerdo de claves compatible para obtener secretos compartidos es el cofactor criptográfico de curva elíptica primitivo Diffie-Hellman (ECDH). Para ver un ejemplo sobre cómo obtener secretos compartidos sin conexión, consulte Obtención de secretos compartidos sin conexión.

Si va a crear una clave KMS asimétrica para utilizarla con criptomonedas, utilice la especificación de clave ECC_SECG_P256K1. También puede utilizar esta especificación de clave para otros fines, pero es obligatoria para Bitcoin y otras criptomonedas.

Las claves KMS con diferentes especificaciones de clave de ECC tienen un precio diferente y están sujetas a diferentes cuotas de solicitud. Para obtener más información acerca de los precios de AWS KMS, consulte Precios de AWS Key Management Service. Para obtener más información acerca de las cuotas de solicitud, consulte Cuotas de solicitudes.

En la siguiente tabla se muestran los algoritmos de firma que AWS KMS admite para cada especificación de clave de ECC. No puede configurar una clave KMS para utilizar algoritmos de firma específicos. No obstante, puede utilizar la condición de política kms:SigningAlgorithm para especificar los algoritmos de firma que las entidades principales pueden utilizar con la clave KMS.

Algoritmos de firma compatibles con las especificaciones de clave de ECC
Especificación de clave Algoritmo de firma Descripción del algoritmo
ECC_NIST_P256 ECDSA_SHA_256 NIST FIPS 186-4, sección 6.4, firma de ECDSA mediante la curva que especifican la clave y SHA-256 para el resumen de mensaje.
ECC_NIST_P384 ECDSA_SHA_384 NIST FIPS 186-4, sección 6.4, firma de ECDSA mediante la curva que especifican la clave y SHA-384 para el resumen de mensaje.
ECC_NIST_P521 ECDSA_SHA_512 NIST FIPS 186-4, sección 6.4, firma de ECDSA mediante la curva que especifican la clave y SHA-512 para el resumen de mensaje.
ECC_SECG_P256K1 ECDSA_SHA_256 NIST FIPS 186-4, sección 6.4, firma de ECDSA mediante la curva que especifican la clave y SHA-256 para el resumen de mensaje.

Especificación de clave SM2 (solo en las regiones de China)

La especificación de clave SM2 es una especificación clave de curva elíptica definida dentro de la serie de especificaciones GM/T publicada por la Oficina de Administración Estatal de Criptografía Comercial de China (OSCCA). La especificación de clave SM2 solo está disponible en las regiones de China. Cuando utiliza una especificación de clave SM2, AWS KMS crea una clave KMS asimétrica con un par de claves SM2. Puede utilizar la clave pública en AWS KMS o descargarla para utilizarla fuera de AWS KMS. Para obtener más información, consulte Verificación sin conexión con pares de claves SM2 (solo en las regiones de China).

Cada clave KMS solo puede tener un uso. Puede utilizar una clave SM2 de KMS para la firma y la verificación, el cifrado y descifrado o la obtención de secretos compartidos. Debe especificar el uso de claves al crear la clave KMS y no se la puede cambiar una vez creada.

Si va a crear una clave KMS asimétrica para obtener secretos compartidos, utilice la especificación de clave SM2. El único algoritmo de acuerdo de claves compatible para obtener secretos compartidos es el cofactor criptográfico de curva elíptica primitivo Diffie-Hellman (ECDH).

AWS KMS admite los siguientes algoritmos de cifrado y firma SM2:

  • Algoritmo de cifrado SM2PKE

    SM2PKE es un algoritmo de cifrado basado en curvas elípticas definido por OSCCA en GM/T 0003.4-2012.

  • Algoritmo de firma SM2DSA

    SM2DSA es un algoritmo de cifrado basado en curvas elípticas definido por OSCCA en GM/T 0003.2-2012. SM2DSA requiere un identificador distintivo que se cifra con hash con el algoritmo hash SM3 y, a continuación, se combina con el mensaje, o resumen del mensaje, que se pasa a AWS KMS. A continuación, este valor concatenado es cifrado con hash y firmado por AWS KMS.

Especificaciones de la clave para las claves KMS HMAC

AWS KMS admite claves HMAC simétricas de diferentes longitudes. La especificación de clave que seleccione puede depender de sus requisitos normativos, de seguridad o empresariales. La longitud de la clave determina el algoritmo MAC que se utiliza en las operaciones GenerateMac y VerifyMac. En general, las claves más largas son más seguras. Utilice la clave más larga que sea práctica para su caso de uso.

Especificación de la clave HMAC Algoritmo MAC
HMAC_224 HMAC_SHA_224
HMAC_256 HMAC_SHA_256
HMAC_384 HMAC_SHA_384
HMAC_512 HMAC_SHA_512