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
O objetivo 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