Este tópico fornece informações sobre a criação e a utilização de uma chave para encriptação assimétrica através de uma chave RSA. Se quiser usar chaves assimétricas para criar e validar assinaturas, consulte o artigo Criar e validar assinaturas digitais. Se quiser usar chaves simétricas para encriptação e desencriptação, consulte o artigo Encriptar e desencriptar dados.
A encriptação assimétrica usa a parte da chave pública da chave assimétrica e a desencriptação usa a parte da chave privada da chave. O Cloud Key Management Service oferece funcionalidade para obter a chave pública e funcionalidade para desencriptar texto cifrado que foi encriptado com a chave pública. O Cloud KMS não permite o acesso direto à chave privada.
Antes de começar
Este tópico fornece exemplos que são executados na linha de comandos. Para simplificar a utilização dos exemplos, use a Cloud Shell. O exemplo de encriptação usa o OpenSSL, que está pré-instalado no Cloud Shell.
Crie uma chave assimétrica com o objetivo da chave de
ASYMMETRIC_DECRYPT. Para ver que algoritmos são suportados para o objetivo da chaveASYMMETRIC_DECRYPT, consulte o artigo Algoritmos de encriptação assimétricos. Não pode seguir este procedimento com uma chave com o objetivo deASYMMETRIC_SIGN.Se for usar a linha de comandos, instale o OpenSSL se ainda não o tiver. Se usar o Cloud Shell, o OpenSSL já está instalado.
- Utilizadores do macOS: a versão do OpenSSL instalada no macOS não suporta as flags usadas para desencriptar dados neste tópico. Para seguir estes passos no macOS, instale o OpenSSL a partir do Homebrew.
Controlo de acesso à chave
Para um utilizador ou um serviço que vai obter a chave pública, conceda a autorização
cloudkms.cryptoKeyVersions.viewPublicKeyna chave assimétrica. A chave pública é necessária para encriptar dados.Para um utilizador ou um serviço que desencripta dados que foram encriptados com a chave pública, conceda a autorização
cloudkms.cryptoKeyVersions.useToDecryptna chave assimétrica.
Saiba mais acerca das autorizações e funções no Cloud KMS em Autorizações e funções.
Encripte dados
Para encriptar dados através de uma chave de encriptação assimétrica, obtenha a chave pública e use-a para encriptar os dados.
gcloud
Este exemplo requer que o OpenSSL esteja instalado no seu sistema local.
Transfira a chave pública
Transfira a chave pública:
gcloud kms keys versions get-public-key key-version \
--key key \
--keyring key-ring \
--location location \
--output-file public-key-path
Substitua key-version pela versão da chave que tem a chave pública. Substitua key pelo nome da chave. Substitua key-ring pelo nome do conjunto de chaves onde a chave está localizada. Substitua location pela localização do Cloud KMS do conjunto de chaves. Substitua public-key-path pela localização onde guardar a chave pública no sistema local.
Encripte dados
Encripte os dados através da chave pública que acabou de transferir e guarde o resultado num ficheiro:
openssl pkeyutl -in cleartext-data-input-file \
-encrypt \
-pubin \
-inkey public-key-path \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha256 \
-pkeyopt rsa_mgf1_md:sha256 \
> encrypted-data-output-file
Substitua cleartext-data-input-file pelo caminho e nome do ficheiro a encriptar.
Substitua public-key-path pelo caminho e nome do ficheiro onde transferiu a chave pública.
Substitua encrypted-data-output-file pelo caminho e nome do ficheiro para guardar os dados encriptados.
C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.