Cada chave do Cloud Key Management Service tem uma finalidade, que define os recursos criptográficos da chave. A finalidade também determina quais algoritmos são compatíveis com as versões da chave. Cada algoritmo define quais parâmetros precisam ser usados para cada operação criptográfica. Cada chave também tem um nível de proteção que indica se as operações criptográficas são executadas no software ou em um módulo de segurança de hardware (HSM).
Finalidades de chave
O Cloud KMS oferece finalidades de chave para os cenários a seguir:
| Cenário | Finalidade da chave (SDK) | Finalidade da chave (API) | Métodos aceitos |
|---|---|---|---|
| Criptografia simétrica | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
| Criptografia simétrica bruta | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
| Assinatura assimétrica | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
| Criptografia assimétrica | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
| Mecanismos de encapsulamento de chaves | key-encapsulation |
KEY_ENCAPSULATION |
cryptoKeyVersions.decapsulate, cryptoKeyVersions.getPublicKey |
| Assinatura MAC | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Ao criar uma chave, você define a finalidade e o algoritmo dela. Você pode alterar o algoritmo ao criar novas versões de chave. Isso varia conforme o escopo da finalidade dela. A finalidade não pode ser alterada.
Duas chaves com a mesma finalidade podem usar diferentes algoritmos subjacentes. No entanto, elas precisam ser compatíveis com o mesmo conjunto de operações criptográficas.
Algoritmos de criptografia simétrica
A finalidade de chave ENCRYPT_DECRYPT permite a criptografia simétrica. Todas as chaves com a finalidade ENCRYPT_DECRYPT usam o algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. Nenhum parâmetro é usado com esse algoritmo. Esse algoritmo usa chaves no Padrão de criptografia avançada de 256 bits (AES-256, na sigla em inglês) no modo de contador Galois (GCM, na sigla em inglês), preenchidas com metadados internos do Cloud KMS.
Algoritmos de criptografia simétrica, como o AES-256, geralmente são considerados seguros para computação quântica. Você pode continuar usando a criptografia simétrica.
Algoritmos de assinatura assimétrica
A finalidade da chave ASYMMETRIC_SIGN permite a assinatura assimétrica. As chaves com a finalidade ASYMMETRIC_SIGN usam algoritmos diferentes, dependendo da compatibilidade da chave com a assinatura de curva elíptica ou a assinatura RSA.
Para uma chave com a finalidade ASYMMETRIC_SIGN, é possível alternar entre chaves de tamanhos diferentes e esquemas de assinatura diversos mudando o algoritmo.
Algoritmos de assinatura assimétrica que usam curvas elípticas e RSA são suscetíveis a ataques de futuros computadores quânticos. Para o não repúdio de longo prazo das suas assinaturas, escolha um algoritmo de assinatura assimétrica pós-quântica.
Algoritmos de assinatura de curva elíptica
O formato de um algoritmo de assinatura de curva elíptica é
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
onde
ELLIPTIC_CURVEé a curva elíptica;DIGEST_ALGORITHMé o algoritmo de resumo.
A tabela a seguir lista os possíveis algoritmos para chaves de curva elíptica com a finalidade ASYMMETRIC_SIGN. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud e em letras maiúsculas com a API Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descrição |
|---|---|---|
ec-sign-ed25519 |
EC_SIGN_ED25519 |
EdDSA na Curve25519 no modo PureEdDSA, que usa dados brutos como entrada em vez de dados com hash. |
ec-sign-p256-sha256 **(recomendado)** |
EC_SIGN_P256_SHA256 |
ECDSA na curva P-256 com um resumo SHA-256 |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA na curva P-384 com um resumo SHA-384 |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA na curva Secp256k1 com um resumo SHA-256 |
Algoritmos de assinatura RSA
O formato de um algoritmo de assinatura RSA é
RSA_SIGN_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
onde
PADDING_ALGORITHMé o algoritmo de preenchimento;MODULUS_BIT_LENGTHé a quantidade de bits da chave;DIGEST_ALGORITHMé o algoritmo de resumo.
Alguns algoritmos são formatados como
RSA_SIGN_RAW_PADDING_ALGORITHM_MODULUS_BIT_LENGTH
e omitem o algoritmo de resumo. Esses algoritmos são uma variante da assinatura PKCS #1 que omite a codificação em um DigestInfo. Na variante:
- um resumo é computado sobre a mensagem a ser assinada
- O padding PKCS #1 é aplicado diretamente ao resumo.
- Uma assinatura do resumo preenchido é calculada usando a chave privada RSA.
A tabela a seguir lista os possíveis algoritmos para chaves RSA com a finalidade
ASYMMETRIC_SIGN. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud e em letras maiúsculas com a API Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descrição |
|---|---|---|
rsa-sign-pss-2048-sha256 |
RSA_SIGN_PSS_2048_SHA256 |
Chave de 2048 bits RSASSA-PSS com um resumo SHA-256 |
rsa-sign-pss-3072-sha256(recomendado) |
RSA_SIGN_PSS_3072_SHA256 |
Chave de 3072 bits RSASSA-PSS com um resumo SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Chave de 4096 bits RSASSA-PSS com um resumo SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Chave RSASSA-PSS de 4.096 bits com um resumo SHA-512. |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 com uma chave de 2048 bits e um resumo SHA-256. |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 com uma chave de 3072 bits e um resumo SHA-256. |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 com uma chave de 4096 bits e um resumo SHA-256. |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 com uma chave de 4096 bits e um resumo SHA-512. |
rsa-sign-raw-pkcs1-2048 |
RSA_SIGN_RAW_PKCS1_2048 |
Assinatura RSASSA-PKCS1-v1_5 sem codificação, com uma chave de 2.048 bits |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Assinatura RSASSA-PKCS1-v1_5 sem codificação, com uma chave de 3.072 bits |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
Assinatura RSASSA-PKCS1-v1_5 sem codificação, com uma chave de 4.096 bits. |
Para o esquema de assinatura probabilística (PSS), o comprimento de sal usado é igual ao comprimento do algoritmo de resumo. Por exemplo, RSA_SIGN_PSS_2048_SHA256 usará o PSS com um comprimento de salt de 256 bits. Além disso, no PSS, o algoritmo de resumo especificado no nome do algoritmo também é usado para a função de geração de máscara (MGF1). Por exemplo, se estiver usando RSA_SIGN_PSS_2048_SHA256, você enviará um hash SHA-256 dos dados que serão assinados. O Cloud KMS usará internamente o SHA-256 como o algoritmo hash para MGF1 ao processar a assinatura.
Algoritmos de assinatura PQC
Os algoritmos de assinatura de criptografia pós-quântica (PQC) começam com o prefixo
PQ_SIGN_. A tabela a seguir lista os algoritmos PQC que o Cloud KMS pode usar para chaves com a finalidade ASYMMETRIC_SIGN. Os algoritmos puros usam dados brutos como entrada, enquanto os algoritmos de pré-hash aceitam um hash dos dados.
| Algoritmo (SDK) | Algoritmo (API) | Variante | Descrição |
|---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Algoritmo de assinatura digital baseado em módulo-reticulado. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Algoritmo de assinatura digital sem estado baseado em hash. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pré-hash | Algoritmo de assinatura digital sem estado baseado em hash. |
Algoritmos de criptografia assimétrica
A finalidade de chave ASYMMETRIC_DECRYPT permite a criptografia RSA. O formato de um algoritmo ASYMMETRIC_DECRYPT é
RSA_DECRYPT_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
onde
PADDING_ALGORITHMé o algoritmo de preenchimento;MODULUS_BIT_LENGTHé a quantidade de bits da chave;DIGEST_ALGORITHMé o algoritmo de resumo.
A criptografia assimétrica usando algoritmos RSA é suscetível à computação quântica, incluindo ataques de "coletar agora, descriptografar depois" (HNDL, na sigla em inglês). Em um ataque HNDL, um agente malicioso intercepta um texto criptografado que não pode ser descriptografado e o armazena na esperança de que possa ser descriptografado usando computação quântica. Se você estiver transmitindo dados que precisam permanecer confidenciais a longo prazo, apesar dos avanços na computação quântica, escolha um algoritmo de encapsulamento de chave.
A tabela a seguir lista os possíveis algoritmos para chaves RSA com a finalidade
ASYMMETRIC_DECRYPT. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud e em letras maiúsculas com a API Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descrição |
rsa-decrypt-oaep-2048-sha1 |
RSA_DECRYPT_OAEP_2048_SHA1 |
Chave RSAES-OAEP de 4.096 bits com um resumo SHA-1. |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Chave de 2048 bits RSAES-OAEP com um resumo SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Chave RSAES-OAEP de 4.096 bits com um resumo SHA-1. |
rsa-decrypt-oaep-3072-sha256(recomendado)> |
RSA_DECRYPT_OAEP_3072_SHA256 |
Chave de 3072 bits RSAES-OAEP com um resumo SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Chave RSAES-OAEP de 4.096 bits com um resumo SHA-1. |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Chave de 4096 bits RSAES-OAEP com um resumo SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Chave RSAES-OAEP de 4.096 bits com um resumo SHA-512. |
Todos esses algoritmos usam o Optimal Asymmetric Encryption Padding (OAEP) com a função de geração de máscara MGF1. O MGF1 requer um algoritmo de resumo. No Cloud KMS, a função de resumo que será usada com o MGF1 é especificada como parte do nome do algoritmo de chave. Por exemplo, se estiver usando o algoritmo RSA_DECRYPT_OAEP_3072_SHA256, você precisará usar SHA-256 com MGF1 ao criptografar dados.
Algoritmos de encapsulamento de chaves
A finalidade da chave KEY_ENCAPSULATION é usada para estabelecer segredos compartilhados
usando mecanismos de encapsulamento de chaves.
A tabela a seguir lista os possíveis algoritmos para chaves com a finalidade
KEY_ENCAPSULATION. Todos esses algoritmos foram projetados para serem seguros pós-quânticos. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud e em letras maiúsculas com a API Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descrição |
ml-kem-768 |
ML_KEM_768 |
Mecanismo de encapsulamento de chaves baseado em reticulado de módulo com conjunto de parâmetros ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Mecanismo de encapsulamento de chaves baseado em reticulado de módulo com conjunto de parâmetros ML-KEM-1024 (FIPS 203) |
kem-xwing |
KEM_XWING |
KEM híbrido X-Wing que combina ML-KEM-768 com X25519 |
Algoritmos de assinatura MAC
A finalidade de chave MAC permite a assinatura MAC simétrica. As chaves com MAC de finalidade de chave só são compatíveis com assinatura HMAC.
Algoritmos de assinatura HMAC
O formato de um algoritmo de assinatura HMAC é
HMAC_HASH_ALGORITHM
onde
HASH_ALGORITHMé o algoritmo de hash
A maioria dos algoritmos simétricos é considerada segura para a computação quântica. No entanto, o algoritmo HMAC-SHA1 não é seguro para computação quântica. Se você precisar que suas assinaturas simétricas permaneçam confiáveis a longo prazo, apesar dos desenvolvimentos na computação quântica, escolha uma chave HMAC com um tamanho de resumo maior.
A tabela a seguir lista os algoritmos HMAC disponíveis para chaves com
finalidade MAC. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud e
aqueles em maiúsculas com a API Cloud Key Management Service.
| Algoritmo (SDK) | Algoritmo (API) | Descrição |
hmac-sha1 |
HMAC_SHA1 |
HMAC com um resumo SHA-1 |
hmac-sha224 |
HMAC_SHA224 |
HMAC com um resumo SHA-224 |
hmac-sha256(recomendado) |
HMAC_SHA256 |
HMAC com um resumo SHA-256 |
hmac-sha384 |
HMAC_SHA384 |
HMAC com um resumo SHA-384 |
hmac-sha512 |
HMAC_SHA512 |
HMAC com um resumo SHA-512 |
Recomendações de algoritmo
Para assinatura digital, a recomendação é usar algoritmos de assinatura de curva elíptica. EC_SIGN_P256_SHA256 é o algoritmo de curva elíptica recomendado.
Se você for usar algoritmos de assinatura RSA, o algoritmo de assinatura RSA recomendado é RSA_SIGN_PSS_3072_SHA256.
Para criptografia assimétrica, RSA_DECRYPT_OAEP_3072_SHA256 é o algoritmo recomendado.
Para assinatura MAC, HMAC_SHA256 é o algoritmo recomendado.
Para encapsulamento de chaves, recomendamos o uso de KEM_XWING, um algoritmo híbrido que pode fornecer defesa em camadas contra adversários clássicos e quânticos em potencial.
Para ver a lista de valores de algoritmo que podem ser usados com a
CLI gcloud, consulte
--default-algorithm.
Níveis de proteção
O nível de proteção indica como as operações criptográficas são realizadas. Depois de criar uma chave, você não poderá alterar o nível de proteção.
| Nível de proteção | Descrição |
|---|---|
SOFTWARE |
As operações criptográficas são executadas em software. |
HSM |
As operações criptográficas são executadas em um HSM. |
HSM_SINGLE_TENANT |
As operações criptográficas são realizadas em um |
: cluster of HSM partitions, exclusively created for a
: single-tenant Cloud HSM instance.
EXTERNAL | As operações criptográficas são realizadas com uma chave armazenada
: em um gerenciador de chaves externo conectado ao
: Google Cloud pela Internet. Limitado à criptografia simétrica e à assinatura assimétrica.
EXTERNAL_VPC | As operações criptográficas são realizadas com uma chave armazenada
: em um gerenciador de chaves externo conectado ao Google Cloud por
: nuvem privada virtual (VPC). Limitado à criptografia simétrica e à assinatura assimétrica.
Todas as finalidades de chaves são compatíveis com chaves que tenham o nível de proteção
SOFTWARE ou HSM.