Cada chave do Cloud Key Management Service tem uma finalidade, que define as capacidades criptográficas da chave. A finalidade também determina que algoritmos são suportados para as versões da chave. Cada algoritmo define os parâmetros que têm de 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 realizadas em software ou num módulo de segurança de hardware (HSM).
Finalidades principais
O Cloud KMS oferece finalidades das chaves para os seguintes cenários:
Cenário | Finalidade principal (SDK) | Finalidade da chave (API) | Métodos suportados |
---|---|---|---|
Encriptação simétrica | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
Encriptação simétrica não processada | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
Assinatura assimétrica | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
Encriptação 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 |
Quando cria uma chave, define a finalidade e o algoritmo dessa chave. Pode alterar o algoritmo quando cria novas versões de chaves, sujeito ao âmbito da respetiva finalidade. Não é possível alterar a finalidade.
Duas chaves com o mesmo objetivo podem usar algoritmos subjacentes diferentes, mas têm de suportar o mesmo conjunto de operações criptográficas.
Algoritmos de encriptação simétrica
A finalidade da chave ENCRYPT_DECRYPT permite a encriptação simétrica. Todas as chaves com o objetivo da chave ENCRYPT_DECRYPT usam o algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. Não são usados parâmetros com este algoritmo. Este algoritmo usa chaves do padrão de encriptação avançada (AES-256) de 256 bits no modo de contador de Galois (GCM), preenchidas com metadados internos do Cloud KMS.
Algoritmos de assinatura assimétricos
O objetivo da chave ASYMMETRIC_SIGN permite a assinatura assimétrica. As chaves com key purpose ASYMMETRIC_SIGN usam algoritmos diferentes, consoante a chave suporte assinatura de curva elíptica ou assinatura RSA.
Para uma chave com o objetivo ASYMMETRIC_SIGN, pode alternar entre chaves de diferentes tamanhos e diferentes esquemas de assinatura através do algoritmo.
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 seguinte lista os possíveis algoritmos para chaves de curva elíptica com o objetivo ASYMMETRIC_SIGN. Use os nomes dos algoritmos em minúsculas com o comando gcloud
e os nomes em 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 não processados 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]
é o comprimento em bits da chave[DIGEST_ALGORITHM]
é o algoritmo de resumo
Tenha em atenção que alguns algoritmos estão formatados como
RSA_SIGN_RAW_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]
e omita o algoritmo de resumo. Estes algoritmos são uma variante da assinatura PKCS n.º 1 que omite a codificação num DigestInfo. Na variante:
- É calculado um resumo sobre a mensagem que vai ser assinada
- O preenchimento PKCS #1 é aplicado diretamente ao resumo
- É calculada uma assinatura do resumo preenchido, usando a chave privada RSA
A tabela seguinte lista os possíveis algoritmos para chaves RSA com o objetivo ASYMMETRIC_SIGN. Use os nomes dos algoritmos em minúsculas com o comando gcloud
e os nomes em 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 RSASSA-PSS de 2048 bits com um resumo SHA-256 |
rsa-sign-pss-3072-sha256 (recomendado) |
RSA_SIGN_PSS_3072_SHA256 |
Chave RSASSA-PSS de 3072 bits com um resumo SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Chave RSASSA-PSS de 4096 bits com um resumo SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Chave RSASSA-PSS de 4096 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 2048 bits |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Assinatura RSASSA-PKCS1-v1_5 sem codificação, com uma chave de 3072 bits |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
Assinatura RSASSA-PKCS1-v1_5 sem codificação, com uma chave de 4096 bits |
Para o esquema de assinatura probabilística (PSS), o comprimento do sal usado é igual ao comprimento do algoritmo de resumo. Por exemplo, RSA_SIGN_PSS_2048_SHA256 usa PSS com um comprimento de salt de 256 bits. Além disso, para o 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 a usar RSA_SIGN_PSS_2048_SHA256, envia um hash SHA-256 dos dados a assinar, e o Cloud KMS usa internamente o SHA-256 como o algoritmo de hash para MGF1 ao calcular 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 seguinte apresenta os algoritmos PQC que o Cloud KMS pode usar para chaves com o objetivo ASYMMETRIC_SIGN
. Os algoritmos puros usam dados brutos como entrada, enquanto os algoritmos com hash aplicado previamente 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 retículos de módulos. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Algoritmo de assinatura digital baseado em hash sem estado. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pré-hash | Algoritmo de assinatura digital baseado em hash sem estado. |
Algoritmos de encriptação assimétricos
O objetivo da chave ASYMMETRIC_DECRYPT permite a encriptação 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]
é o comprimento em bits da chave[DIGEST_ALGORITHM]
é o algoritmo de resumo
A tabela seguinte lista os possíveis algoritmos para chaves RSA com o objetivo ASYMMETRIC_DECRYPT. Use os nomes dos algoritmos em minúsculas com o comando gcloud
e os nomes em 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 2048 bits com um resumo SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Chave RSAES-OAEP de 2048 bits com um resumo SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Chave RSAES-OAEP de 3072 bits com um resumo SHA-1 |
rsa-decrypt-oaep-3072-sha256 (recomendado) |
RSA_DECRYPT_OAEP_3072_SHA256 |
Chave RSAES-OAEP de 3072 bits com um resumo SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Chave RSAES-OAEP de 4096 bits com um resumo SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Chave RSAES-OAEP de 4096 bits com um resumo SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Chave RSAES-OAEP de 4096 bits com um resumo SHA-512 |
Todos estes algoritmos usam o preenchimento de encriptação assimétrica ideal (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 a usar com MGF1 é especificada como parte do nome do algoritmo da chave. Por exemplo, se estiver a usar o algoritmo RSA_DECRYPT_OAEP_3072_SHA256, deve usar o SHA-256 com MGF1 quando encriptar dados.
Algoritmos de encapsulamento de chaves
O objetivo principal da chave KEY_ENCAPSULATION
é estabelecer segredos partilhados
através de mecanismos de encapsulamento de chaves.
A tabela seguinte lista os possíveis algoritmos para chaves com o objetivo
KEY_ENCAPSULATION
. Todos estes algoritmos foram concebidos para serem seguros
pós-quânticos. Use os nomes dos algoritmos em minúsculas com o comando gcloud
e os nomes em 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 retículos de módulos com conjunto de parâmetros ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Mecanismo de encapsulamento de chaves baseado em retículos de módulos 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 da chave MAC permite a assinatura MAC simétrica. As chaves com o objetivo da chave MAC atualmente só suportam a assinatura HMAC.
Algoritmos de assinatura HMAC
O formato de um algoritmo de assinatura HMAC é
HMAC_[HASH_ALGORITHM]
onde
[HASH_ALGORITHM]
é o algoritmo hash
A tabela seguinte indica os algoritmos HMAC atualmente disponíveis para chaves com o objetivo MAC. Use os nomes dos algoritmos em letras minúsculas com o comando gcloud
e os nomes em letras 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 do algoritmo
Para a 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 for usar algoritmos de assinatura RSA, o algoritmo de assinatura RSA recomendado é RSA_SIGN_PSS_3072_SHA256.
Para a encriptação assimétrica, o algoritmo recomendado é RSA_DECRYPT_OAEP_3072_SHA256.
Para a assinatura MAC, o algoritmo recomendado é HMAC_SHA256.
Para ver a lista de valores de algoritmos suportados a usar com a CLI gcloud, consulte --default-algorithm.
Níveis de proteção
O nível de proteção indica como são realizadas as operações criptográficas. Depois de criar uma chave, não pode alterar o nível de proteção.
Nível de proteção | Descrição |
---|---|
SOFTWARE | As operações criptográficas são realizadas no software. |
HSM | As operações criptográficas são realizadas num HSM. |
EXTERNO | As operações criptográficas são realizadas através de uma chave armazenada num gestor de chaves externo ligado ao Google Cloud através da Internet. Limitado à encriptação simétrica e à assinatura assimétrica. |
EXTERNAL_VPC | As operações criptográficas são realizadas através de uma chave armazenada num gestor de chaves externo ligado ao Google Cloud através da nuvem privada virtual (VPC). Limitado à encriptação simétrica e à assinatura assimétrica. |
Todos os objetivos principais são suportados para chaves com o nível de proteção SOFTWARE
ou HSM
.