Cada clave de Cloud Key Management Service tiene un propósito, que define las funciones criptográficas de la clave. La finalidad también determina qué algoritmos se admiten en las versiones de la clave. Cada algoritmo define qué parámetros se deben usar en 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).
Finalidades principales
Cloud KMS proporciona usos de claves para los siguientes casos:
Situación | Finalidad principal (SDK) | Finalidad de la clave (API) | Métodos admitidos |
---|---|---|---|
Encriptado simétrico | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt y cryptoKeys.decrypt |
Cifrado simétrico sin formato | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt y cryptoKeys.rawDecrypt |
Firma asimétrica | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign y cryptoKeyVersions.getPublicKey |
Cifrado asimétrico | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt y cryptoKeyVersions.getPublicKey |
Firma MAC | mac |
MAC |
cryptoKeyVersions.macSign y cryptoKeyVersions.macVerify |
Cuando creas una clave, defines su finalidad y su algoritmo. Puedes cambiar el algoritmo cuando crees versiones de clave nuevas, en función del ámbito de su finalidad. El objetivo 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 cifrado simétrico
El propósito de la clave ENCRYPT_DECRYPT permite el cifrado simétrico. Todas las claves con el valor ENCRYPT_DECRYPT en el campo key_purpose usan el algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. No se usa ningún parámetro con este algoritmo. Este algoritmo usa claves del estándar de cifrado avanzado (AES-256) de 256 bits en modo Galois/Counter (GCM), con metadatos internos de Cloud KMS.
Algoritmos de firma asimétricos
El propósito de la clave ASYMMETRIC_SIGN permite la firma asimétrica. Las claves con el valor ASYMMETRIC_SIGN en el campo key purpose usan algoritmos diferentes en función de si la clave admite firmas de curva elíptica o firmas RSA.
En el caso de una clave con el propósito ASYMMETRIC_SIGN, puedes cambiar entre claves de diferentes tamaños y diferentes esquemas de firma mediante el algoritmo.
Algoritmos de firma de curva elíptica
El formato de un algoritmo de firma de curva elíptica es
EC_SIGN_[ELLIPTIC_CURVE]_[DIGEST_ALGORITHM]
donde
[ELLIPTIC_CURVE]
es la curva elíptica.[DIGEST_ALGORITHM]
es 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 los algoritmos en minúsculas con el comando gcloud
y los nombres en mayúsculas 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 cifrados con hash |
ec-sign-p256-sha256 **(recomendado)** |
EC_SIGN_P256_SHA256 |
ECDSA de curva P-256 con una síntesis SHA-256 |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA de curva P-384 con una síntesis SHA-384 |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA en la curva Secp256k1 con una síntesis SHA-256 |
Algoritmos de firma RSA
El formato de un algoritmo de firma RSA es
RSA_SIGN_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]
donde
[PADDING_ALGORITHM]
es el algoritmo de relleno.[MODULUS_BIT_LENGTH]
es la longitud de bits de la clave[DIGEST_ALGORITHM]
es el algoritmo de resumen
Ten en cuenta que algunos algoritmos tienen el 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:
- se calcula un resumen del mensaje que se va a firmar
- El relleno PKCS #1 se aplica directamente al resumen
- Se calcula una firma del resumen con relleno mediante 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 los algoritmos en minúsculas con el comando gcloud
y los nombres en mayúsculas 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 digest SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Clave RSASSA-PSS de 4096 bits con un digest SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Clave RSASSA-PSS de 4096 bits con un digest SHA-512 |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 2048 bits y una síntesis SHA-256 |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 3072 bits y una digestión SHA-256 |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 con una clave de 4096 bits y una digestión SHA-256 |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 con una clave de 4096 bits y un digest 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 caso del esquema de firma probabilístico (PSS), la longitud de la sal utilizada es igual a la longitud del algoritmo de resumen. Por ejemplo, RSA_SIGN_PSS_2048_SHA256 usará PSS con una longitud de salt de 256 bits. Además, en el caso de PSS, el algoritmo de resumen especificado en el nombre del algoritmo también se usa en la función de generación de máscara (MGF1). Por ejemplo, si usas RSA_SIGN_PSS_2048_SHA256, enviarás un hash SHA-256 de los datos que se van a firmar y Cloud KMS usará internamente SHA-256 como algoritmo de hash para MGF1 al calcular la firma.
Algoritmos de firma PQC
Los algoritmos de firma de criptografía poscuántica (PQC) empiezan por el prefijo
PQ_SIGN_
. En la siguiente tabla se indican 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 pre-hash aceptan un hash de los datos.
Algoritmo (SDK) | Algoritmo (API) | Variante | Descripción |
---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Algoritmo de firma digital basado en retículas de módulos. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Algoritmo de firma digital sin estado basado en hash. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pre-hash | Algoritmo de firma digital sin estado basado en hash. |
Algoritmos de cifrado asimétrico
El propósito de la clave ASYMMETRIC_DECRYPT permite el cifrado RSA. El formato de un algoritmo ASYMMETRIC_DECRYPT es
RSA_DECRYPT_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]
donde
[PADDING_ALGORITHM]
es el algoritmo de relleno.[MODULUS_BIT_LENGTH]
es la longitud de bits de la clave[DIGEST_ALGORITHM]
es el algoritmo de resumen
En la siguiente tabla se indican los algoritmos posibles para las claves RSA con el propósito ASYMMETRIC_DECRYPT. Usa los nombres de los algoritmos en minúsculas con el comando gcloud
y los nombres en mayúsculas 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 digest SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Clave RSAES-OAEP de 2048 bits con un digest SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Clave RSAES-OAEP de 3072 bits con un digest SHA-1 |
rsa-decrypt-oaep-3072-sha256 (recomendado) |
RSA_DECRYPT_OAEP_3072_SHA256 |
Clave RSAES-OAEP de 3072 bits con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Clave RSAES-OAEP de 4096 bits con un digest SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Clave RSAES-OAEP de 4096 bits con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Clave RSAES-OAEP de 4096 bits con un digest SHA-512 |
Todos estos algoritmos usan el relleno de cifrado asimétrico óptimo (OAEP) con la función de generación de máscara MGF1. MGF1 requiere un algoritmo de resumen. En Cloud KMS, la función digest que se va a usar con MGF1 se especifica como parte del nombre del algoritmo de la clave. Por ejemplo, si usas el algoritmo RSA_DECRYPT_OAEP_3072_SHA256, debes usar SHA-256 con MGF1 al cifrar datos.
Algoritmos de firma MAC
El propósito de la clave MAC permite la firma MAC simétrica. Las claves con el propósito de clave MAC solo admiten firmas HMAC.
Algoritmos de firma HMAC
El formato de un algoritmo de firma HMAC es
HMAC_[HASH_ALGORITHM]
donde
[HASH_ALGORITHM]
es el algoritmo hash
En la siguiente tabla se indican los algoritmos HMAC disponibles para las claves con el propósito MAC. Usa los nombres de los algoritmos en minúsculas con el comando gcloud
y en mayúsculas con la API 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 SHA-224 |
hmac-sha256 (recomendado) |
HMAC_SHA256 |
HMAC con una síntesis SHA-256 |
hmac-sha384 |
HMAC_SHA384 |
HMAC con un digest SHA-384 |
hmac-sha512 |
HMAC_SHA512 |
HMAC con un resumen SHA-512 |
Recomendaciones de algoritmos
Para la firma digital, se recomienda usar 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.
Para el cifrado asimétrico, se recomienda el algoritmo RSA_DECRYPT_OAEP_3072_SHA256.
Para la firma MAC, se recomienda el algoritmo HMAC_SHA256.
Para ver la lista de valores de algoritmo admitidos que se pueden usar con gcloud CLI, consulta --default-algorithm.
Niveles de protección
El nivel de protección indica cómo se llevan a cabo las operaciones criptográficas. Una vez que hayas creado una clave, no podrás 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. |
EXTERNO | Las operaciones criptográficas se realizan con una clave almacenada en un gestor de claves externo conectado a Google Cloud a través de Internet. Limitado al cifrado simétrico y a la firma asimétrica. |
EXTERNAL_VPC | Las operaciones criptográficas se realizan con una clave almacenada en un gestor de claves externo conectado a Google Cloud a través de una nube privada virtual (VPC). Limitado al cifrado simétrico y a la firma asimétrica. |
Se admiten todos los usos de las claves con el nivel de protección SOFTWARE
o HSM
.