As assinaturas digitais são usadas para garantir a integridade de dados e a autenticidade. Este documento explica como usar a CLI gdcloud para assinar dados e verificar assinaturas usando chaves assimétricas gerenciadas pelo Key Management System (KMS).
Esta página é destinada a públicos-alvo do grupo de operadores de aplicativos, como equipes de DevOps, ao realizar operações de gerenciamento de chaves no Google Distributed Cloud (GDC) com isolamento físico. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para assinar e verificar dados usando chaves, solicite as permissões necessárias, prepare seu ambiente e crie uma chave de assinatura se você ainda não tiver uma.
Solicitar papéis do IAM
Entre em contato com o administrador do IAM da organização para conceder a você o seguinte papel no namespace do projeto:
- Desenvolvedor do KMS (
kms-developer): confira chaves e realize operações criptográficas, como criptografar, descriptografar, assinar e verificar dados em um projeto.
Preparar o ambiente
Instale e inicialize a CLI gdcloud, caso ainda não tenha feito isso.
Autentique-se no GDC usando a CLI gdcloud. Esse processo exige o certificado da autoridade certificadora (CA) do console da sua organização:
Faça o download do certificado de CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSubstitua:
CONSOLE_URL: o URL do console da sua organização, comoconsole.org-1.zone1.google.gdch.test.CA_CERT_PATH: o caminho completo em que você quer salvar o arquivo de certificado de CA (como/tmp/my-org-ca.crt)
Faça login usando o certificado de CA baixado:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Verificar se uma chave de assinatura existe
Para assinar e verificar dados, use uma chave de assinatura. A criação e a verificação de chaves exigem permissões separadas do IAM, conforme detalhado nas páginas vinculadas.
- Se você precisar criar uma chave de assinatura, siga as instruções em Criar uma chave de assinatura.
- Para verificar se uma chave de assinatura existe, siga as instruções em Verificar a criação de chaves de assinatura.
Assinar dados
Para assinar dados, use o comando gdcloud kms keys asymmetric-sign. Esse comando
cria uma assinatura digital de um arquivo de entrada usando uma chave de assinatura e salva
a assinatura codificada em base64:
gdcloud kms keys asymmetric-sign \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
Substitua:
- NAMESPACE: o namespace do projeto, por exemplo:
kms-test1 - KEY_NAME: o nome da chave usada para assinar. Por
exemplo:
key-1 - INPUT_PATH: o caminho do arquivo de entrada que você quer assinar
- SIGNATURE_FILE: o caminho do arquivo de saída para salvar a assinatura codificada em base64
Depois de executar o comando, você vai encontrar um arquivo de saída especificado na flag
--signature-file que contém a assinatura codificada em base64.
Verificar dados
Depois de assinar os dados, verifique a assinatura digital base64 usando o comando gdcloud kms keys asymmetric-verify. Esse comando verifica se a assinatura digital codificada em base64 que você recebe depois de executar o comando gdcloud kms keys asymmetric-sign é válida:
gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
Substitua:
- NAMESPACE: o namespace do projeto, por exemplo:
kms-test1 - KEY_NAME: o nome da chave usada para assinar. Por
exemplo:
key-1 - INPUT_PATH: o caminho do arquivo de entrada original que foi assinado
- SIGNATURE_FILE: o caminho do arquivo que contém a assinatura codificada em base64 a ser verificada.
Depois de executar o comando, você vai ver a saída Verification OK se a operação for
concluída. Caso contrário, você vai ver a saída de falha
Verification Failure.