Algoritmos e finalidades de chave

Cada chave do Cloud KMS tem uma finalidade, que define os recursos criptográficos dela. 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, na sigla em inglês).

Finalidades de chave

O Cloud KMS oferece finalidades de chave para os cenários a seguir:

Cenário Finalidade de chave Métodos aceitos
Criptografia simétrica ENCRYPT_DECRYPT cryptoKeys.encrypt, cryptoKeys.decrypt
Assinatura assimétrica ASYMMETRIC_SIGN cryptoKeys.asymmetricSign, cryptoKeyVersions.getPublicKey
Criptografia assimétrica ASYMMETRIC_DECRYPT cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey

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 de chave 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 assinatura assimétrica

A finalidade de 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 por meio 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]

em que

  • [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.

Algoritmo Descrição
EC_SIGN_P256_SHA256 (recomendado) ECDSA na curva P-256 com um resumo SHA-256
EC_SIGN_P384_SHA384 ECDSA na curva P-384 com um resumo SHA-384

Algoritmos de assinatura RSA

O formato de um algoritmo de assinatura RSA é

RSA_SIGN_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]

em que

  • [PADDING_ALGORITHM] é o algoritmo de preenchimento;
  • [MODULUS_BIT_LENGTH] é a quantidade de bits da chave;
  • [DIGEST_ALGORITHM] é o algoritmo de resumo.

A tabela a seguir lista os possíveis algoritmos para chaves RSA com a finalidade ASYMMETRIC_SIGN.

Algoritmo Descrição
RSA_SIGN_PSS_2048_SHA256 Chave de 2048 bits RSASSA-PSS com um resumo SHA-256
RSA_SIGN_PSS_3072_SHA256 (recomendado) Chave de 3072 bits RSASSA-PSS com um resumo SHA-256
RSA_SIGN_PSS_4096_SHA256 Chave RSASSA-PSS de 4.096 bits com um resumo SHA-256.
RSA_SIGN_PSS_4096_SHA512 Chave RSASSA-PSS de 4.096 bits com um resumo SHA-512.
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 RSASSA-PKCS1-v1_5 com uma chave de 3072 bits e um resumo SHA-256
RSA_SIGN_PKCS1_4096_SHA256 RSASSA-PKCS1-v1_5 com uma chave de 4.096 bits e um resumo SHA-256.
RSA_SIGN_PKCS1_4096_SHA512 RSASSA-PKCS1-v1_5 com uma chave de 4.096 bits e um resumo SHA-512.

Para o esquema de assinatura probabilística (PSS, na sigla em inglês), o comprimento de sal usado é igual ao do algoritmo de resumo. Por exemplo, RSA_SIGN_PSS_2048_SHA256 usará o PSS com um comprimento de sal 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 o 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 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]

em que

  • [PADDING_ALGORITHM] é o algoritmo de preenchimento;
  • [MODULUS_BIT_LENGTH] é a quantidade de bits da chave;
  • [DIGEST_ALGORITHM] é o algoritmo de resumo.

A tabela a seguir lista os possíveis algoritmos para chaves RSA com a finalidade ASYMMETRIC_DECRYPT.

Algoritmo Descrição
RSA_DECRYPT_OAEP_2048_SHA256 Chave de 2048 bits RSAES-OAEP com um resumo SHA-256
RSA_DECRYPT_OAEP_3072_SHA256 (recomendado) Chave de 3072 bits RSAES-OAEP com um resumo SHA-256
RSA_DECRYPT_OAEP_4096_SHA256 Chave RSAES-OAEP de 4.096 bits com um resumo SHA-256.
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.

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.

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 módulo de segurança de hardware

Todas as finalidades de chave são compatíveis com os níveis de proteção SOFTWARE e HSM.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud KMS