Cada clave de Cloud Key Management Service tiene un propósito, que define las capacidades criptográficas de la clave. El propósito también determina cuáles algoritmos admiten las versiones de claves. Cada algoritmo define cuáles parámetros se deben usar para cada operación criptográfica. Cada clave también tiene un nivel de protección que indica si las operaciones criptográficas se realizan en software o en un módulo de seguridad de hardware (HSM).
Propósitos de clave
Cloud KMS proporciona propósitos de clave para las siguientes situaciones:
| Situación | Propósito clave (SDK) | Propósito de la clave (API) | Métodos admitidos |
|---|---|---|---|
| Encriptación simétrica | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
| Encriptación simétrica sin procesar | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
| Firma asimétrica | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
| Encriptación asimétrica | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
| Mecanismos de encapsulamiento de claves | key-encapsulation |
KEY_ENCAPSULATION |
cryptoKeyVersions.decapsulate, cryptoKeyVersions.getPublicKey |
| Firma de MAC | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Cuando creas una clave, defines el propósito y el algoritmo de esa clave. Puedes cambiar el algoritmo cuando creas versiones de clave nuevas, sujeto al alcance de su propósito. Este último no se puede cambiar.
Dos claves con el mismo propósito pueden usar algoritmos subyacentes diferentes, pero deben admitir el mismo conjunto de operaciones criptográficas.
Algoritmos de encriptación simétrica
El propósito de clave ENCRYPT_DECRYPT habilita la encriptación simétrica. Todas las claves con el propósito de clave ENCRYPT_DECRYPT usan el algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. No se usa ningún parámetro con este algoritmo. Este usa claves del Estándar de encriptación avanzada de 256 bits (AES-256) en modo Galois/contador (GCM), que se rellenó con metadatos internos de Cloud KMS.
En general, se considera que los algoritmos de encriptación simétrica, como AES-256, son seguros para la computación cuántica. Puedes seguir usando la encriptación simétrica.
Algoritmos de firma asimétrica
El propósito de clave ASYMMETRIC_SIGN habilita la firma asimétrica. Las claves con el propósito de clave ASYMMETRIC_SIGN usan algoritmos diferentes, según si la clave admite la firma de curva elíptica o la firma RSA.
En el caso de una clave con el propósito ASYMMETRIC_SIGN, puedes cambiar entre claves de tamaño diferente y esquemas de firma diferentes cambiando el algoritmo.
Los algoritmos de firma asimétrica que usan curvas elípticas y RSA son susceptibles a ataques de futuras computadoras cuánticas. Para el no repudio a largo plazo de tus firmas, elige un algoritmo de firma asimétrica poscuántica.
Algoritmos de firma de curva elíptica
El formato de un algoritmo de firma de curva elíptica es el siguiente:
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
En el ejemplo anterior, se ilustra lo siguiente:
ELLIPTIC_CURVEes la curva elípticaDIGEST_ALGORITHMes el algoritmo de resumen
En la siguiente tabla, se enumeran los algoritmos posibles para las claves de curva elíptica con el propósito ASYMMETRIC_SIGN. Usa los nombres de algoritmos en minúscula con el comando gcloud y los que están en mayúscula con la API de Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descripción |
|---|---|---|
ec-sign-ed25519 |
EC_SIGN_ED25519 |
EdDSA en Curve25519 en modo PureEdDSA, que toma datos sin procesar como entrada en lugar de datos con hash |
ec-sign-p256-sha256 **(recomendado)** |
EC_SIGN_P256_SHA256 |
ECDSA en la curva P-256 con un resumen SHA-256 |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA en la curva P-384 con un resumen SHA-384 |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA en la curva Secp256k1 con un resumen SHA-256 |
Algoritmos de firma RSA
El formato de un algoritmo de firma RSA es el siguiente:
RSA_SIGN_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
En el ejemplo anterior, se ilustra lo siguiente:
PADDING_ALGORITHMes el algoritmo de rellenoMODULUS_BIT_LENGTHes la longitud de bits de la claveDIGEST_ALGORITHMes el algoritmo de resumen
Ten en cuenta que algunos algoritmos tienen el siguiente formato:
RSA_SIGN_RAW_PADDING_ALGORITHM_MODULUS_BIT_LENGTH
y omite el algoritmo de resumen. Estos algoritmos son una variante de la firma PKCS #1 que omite la codificación en un DigestInfo. En la variante, haz lo siguiente:
- Se calcula un resumen del mensaje que se firmará.
- El relleno PKCS #1 se aplica directamente al resumen.
- Se calcula una firma del resumen con relleno, utilizando la clave privada RSA.
En la siguiente tabla, se enumeran los algoritmos posibles para las claves RSA con el propósito ASYMMETRIC_SIGN. Usa los nombres de algoritmos en minúscula con el comando gcloud y los que están en mayúscula con la API de Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descripción |
|---|---|---|
rsa-sign-pss-2048-sha256 |
RSA_SIGN_PSS_2048_SHA256 |
Clave RSASSA-PSS de 2048 bits con un resumen SHA-256 |
rsa-sign-pss-3072-sha256(recomendado) |
RSA_SIGN_PSS_3072_SHA256 |
Clave RSASSA-PSS de 3072 bits con un resumen SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Clave RSASSA-PSS de 4096 bits con un resumen SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Clave RSASSA-PSS de 4096 bits con un resumen SHA-512 |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 2048 bits y un resumen SHA-256 |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 3072 bits y un resumen SHA-256 |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 4096 bits y un resumen SHA-256 |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 con una clave de 4096 bits y un resumen SHA-512 |
rsa-sign-raw-pkcs1-2048 |
RSA_SIGN_RAW_PKCS1_2048 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 2048 bits |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 3072 bits |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
Firma RSASSA-PKCS1-v1_5 sin codificación, con una clave de 4096 bits |
En el esquema probabilístico de firmas (PSS), la longitud utilizada para la sal es igual a la longitud del algoritmo de resumen. Por ejemplo, RSA_SIGN_PSS_2048_SHA256 usará PSS con una longitud de sal de 256 bits. Además, para el PSS el algoritmo de resumen especificado en el nombre del algoritmo también se usa en la función de generación de enmascaramiento (MGF1). Por ejemplo, si usas RSA_SIGN_PSS_2048_SHA256, enviarás un hash SHA-256 de los datos que se firmarán, y Cloud KMS usará un SHA-256 de forma interna como el algoritmo del hash para la MGF1 cuando procese la firma.
Algoritmos de firma PQC
Los algoritmos de firma de criptografía poscuántica (PQC) comienzan con el prefijo PQ_SIGN_. En la siguiente tabla, se enumeran los algoritmos de PQC que Cloud KMS puede usar para las claves con el propósito ASYMMETRIC_SIGN. Los algoritmos puros toman datos sin procesar como entrada, mientras que los algoritmos previos al hash aceptan un hash de los datos.
| Algoritmo (SDK) | Algoritmo (API) | Variant | Descripción |
|---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Es un algoritmo de firma digital basado en módulos y celosías. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Es un algoritmo de firma digital basado en hash y sin estado. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pre-hash | Es un algoritmo de firma digital basado en hash y sin estado. |
Algoritmos de encriptación asimétrica
El propósito de clave ASYMMETRIC_DECRYPT habilita la encriptación RSA. El formato de un algoritmo ASYMMETRIC_DECRYPT es el siguiente:
RSA_DECRYPT_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
En el ejemplo anterior, se ilustra lo siguiente:
PADDING_ALGORITHMes el algoritmo de rellenoMODULUS_BIT_LENGTHes la longitud de bits de la claveDIGEST_ALGORITHMes el algoritmo de resumen
La encriptación asimétrica que usa algoritmos RSA es susceptible a la computación cuántica, incluidos los ataques de "recolección ahora, desencriptación después" (HNDL). En un ataque de HNDL, un agente malicioso intercepta un texto cifrado que no puede descifrar y, luego, lo almacena con la esperanza de poder descifrarlo con la computación cuántica. Si transmites datos que deben permanecer confidenciales a largo plazo a pesar de los avances en la computación cuántica, elige un algoritmo de encapsulación de claves.
En la siguiente tabla, se enumeran los algoritmos posibles para las claves RSA con el propósito ASYMMETRIC_DECRYPT. Usa los nombres de algoritmos en minúscula con el comando gcloud y los que están en mayúscula con la API de Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descripción |
rsa-decrypt-oaep-2048-sha1 |
RSA_DECRYPT_OAEP_2048_SHA1 |
Clave RSAES-OAEP de 2048 bits con un resumen SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Clave RSAES-OAEP de 2048 bits con un resumen SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Clave RSAES-OAEP de 3072 bits con un resumen SHA-1 |
rsa-decrypt-oaep-3072-sha256(recomendado)> |
RSA_DECRYPT_OAEP_3072_SHA256 |
Clave RSAES-OAEP de 3072 bits con un resumen SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Clave RSAES-OAEP de 4096 bits con un resumen SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Clave RSAES-OAEP de 4096 bits con un resumen SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Clave RSAES-OAEP de 4096 bits con un resumen SHA-512 |
Todos estos algoritmos usan relleno óptimo de encriptación asimétrica (OAEP) con la función de generación de enmascaramiento MGF1. Esta función requiere un algoritmo de resumen. En Cloud KMS, la función de resumen que se usará con MGF1 se especifica como parte del nombre del algoritmo de clave. Por ejemplo, si usas el algoritmo RSA_DECRYPT_OAEP_3072_SHA256, debes usar SHA-256 con MGF1 cuando encriptes los datos.
Algoritmos de encapsulamiento de claves
El propósito de la clave KEY_ENCAPSULATION se usa para establecer secretos compartidos con mecanismos de encapsulamiento de claves.
En la siguiente tabla, se enumeran los algoritmos posibles para las claves con el propósito KEY_ENCAPSULATION. Todos estos algoritmos están diseñados para ser seguros poscuánticos. Usa los nombres de algoritmos en minúscula con el comando gcloud y los que están en mayúscula con la API de Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descripción |
ml-kem-768 |
ML_KEM_768 |
Mecanismo de encapsulamiento de claves basado en módulos y celosías con el conjunto de parámetros ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Mecanismo de encapsulamiento de claves basado en módulos y celosías con el conjunto de parámetros ML-KEM-1024 (FIPS 203) |
kem-xwing |
KEM_XWING |
X-Wing, KEM híbrido que combina ML-KEM-768 con X25519 |
Algoritmos de firma de MAC
El propósito de clave MAC habilita la firma MAC simétrica. Las claves con el propósito de clave MAC solo admiten la firma HMAC.
Algoritmos de firma HMAC
El formato de un algoritmo de firma HMAC es el siguiente:
HMAC_HASH_ALGORITHM
En el ejemplo anterior, se ilustra lo siguiente:
HASH_ALGORITHMes el algoritmo de hash
En general, la mayoría de los algoritmos simétricos se consideran seguros para la computación cuántica. Sin embargo, el algoritmo HMAC-SHA1 no es seguro para la computación cuántica. Si necesitas que tus firmas simétricas sigan siendo confiables a largo plazo a pesar de los avances en la computación cuántica, elige una clave HMAC con un tamaño de resumen más grande.
En la siguiente tabla, se enumeran los algoritmos HMAC disponibles para las claves con el propósito MAC. Usa los nombres de algoritmos en minúscula con el comando gcloud y los que están en mayúscula con la API de Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descripción |
hmac-sha1 |
HMAC_SHA1 |
HMAC con un resumen SHA-1 |
hmac-sha224 |
HMAC_SHA224 |
HMAC con un resumen de SHA-224 |
hmac-sha256(recomendado) |
HMAC_SHA256 |
HMAC con un resumen SHA-256 |
hmac-sha384 |
HMAC_SHA384 |
HMAC con un resumen SHA-384 |
hmac-sha512 |
HMAC_SHA512 |
HMAC con un resumen SHA-512 |
Recomendaciones de algoritmos
Para las firmas digitales, la recomendación es usar los algoritmos de firma de curva elíptica. EC_SIGN_P256_SHA256 es el algoritmo de curva elíptica recomendado.
Si vas a usar algoritmos de firma RSA, el algoritmo de firma RSA recomendado es RSA_SIGN_PSS_3072_SHA256.
En el caso de la encriptación asimétrica, el algoritmo recomendado es RSA_DECRYPT_OAEP_3072_SHA256.
Para la firma de MAC, HMAC_SHA256 es el algoritmo recomendado.
Para la encapsulación de claves, recomendamos usar KEM_XWING, que es un algoritmo híbrido que puede proporcionar una defensa en capas contra adversarios clásicos y cuánticos potenciales.
Para ver la lista de valores de algoritmos compatibles que se usarán con la gcloud CLI, consulta --default-algorithm.
Niveles de protección
El nivel de protección indica cómo se realizan las operaciones criptográficas. Después de que creas una clave, no puedes cambiar el nivel de protección.
| Nivel de protección | Descripción |
|---|---|
SOFTWARE |
Las operaciones criptográficas se realizan en software. |
HSM |
Las operaciones criptográficas se realizan en un HSM. |
HSM_SINGLE_TENANT |
Las operaciones criptográficas se realizan en un |
: cluster of HSM partitions, exclusively created for a
: single-tenant Cloud HSM instance.
EXTERNAL | Las operaciones criptográficas se realizan con una clave almacenada
: en un administrador de claves externo conectado a
: Google Cloud a través de Internet. Limitado a la encriptación simétrica y la firma asimétrica.
EXTERNAL_VPC | Las operaciones criptográficas se realizan con una clave almacenada
: en un administrador de claves externo conectado a Google Cloud a través de
: la nube privada virtual (VPC). Limitado a la encriptación simétrica y la firma asimétrica.
Todos los propósitos de clave son compatibles con las claves que tienen el nivel de protección SOFTWARE o HSM.