As assinaturas digitais são usadas para garantir a integridade e a autenticidade dos dados. Este documento explica como usar a CLI gdcloud para assinar dados e validar assinaturas usando chaves assimétricas geridas pelo sistema de gestão de chaves (KMS).
Esta página destina-se a públicos-alvo no grupo de operadores de aplicações, como equipas de DevOps, quando realizam operações de gestão de chaves no Google Distributed Cloud (GDC) air-gapped. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para assinar e validar dados através de chaves, peça as autorizações necessárias, prepare o seu ambiente e crie uma chave de assinatura, se ainda não tiver uma.
Peça funções de IAM
Contacte o administrador da IAM da sua organização para lhe conceder a seguinte função no espaço de nomes do projeto:
- KMS Developer (
kms-developer): ver chaves e realizar operações criptográficas, como encriptar, desencriptar, assinar e validar dados num projeto.
Prepare o seu ambiente
Instale e inicialize a CLI gcloud, se ainda não o tiver feito.
Autentique-se no GDC através da CLI gdcloud. Este processo requer o certificado da autoridade de certificação (CA) para a consola da sua organização:
Transfira o certificado da AC:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSubstitua o seguinte:
CONSOLE_URL: o URL da consola da sua organização (comoconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: o caminho completo onde quer guardar o ficheiro do certificado da AC (como/tmp/my-org-ca.crt)
Inicie sessão com o certificado da AC transferido:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Certifique-se de que existe uma chave de assinatura
Para assinar e validar dados, tem de usar uma chave de assinatura. A criação e a validação de chaves requerem autorizações da IAM separadas, conforme detalhado nas páginas com links.
- Se precisar de criar uma chave de assinatura, siga as instruções em Crie uma chave de assinatura.
- Para verificar se existe uma chave de assinatura, siga as instruções em Verifique a criação da chave de assinatura.
Dados de assinatura
Para assinar dados, use o comando gdcloud kms keys asymmetric-sign. Este comando
cria uma assinatura digital de um ficheiro de entrada através de uma chave de assinatura e guarda
a assinatura codificada em base64:
gdcloud kms keys asymmetric-sign \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
Substitua o seguinte:
- NAMESPACE: o espaço de nomes do projeto, por exemplo:
kms-test1 - KEY_NAME: o nome da chave usada para assinar, por exemplo:
key-1 - INPUT_PATH: o caminho do ficheiro de entrada que quer assinar
- SIGNATURE_FILE: o caminho do ficheiro de saída para guardar a assinatura codificada em Base64
Depois de executar o comando, vê um ficheiro de saída especificado na flag --signature-file que contém a assinatura codificada em base64.
Valide dados
Depois de assinar os seus dados, valide a assinatura digital base64 através do comando gdcloud kms keys asymmetric-verify. Este comando verifica se a assinatura digital codificada em base64 que recebe após 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 o seguinte:
- NAMESPACE: o espaço de nomes do projeto, por exemplo:
kms-test1 - KEY_NAME: o nome da chave usada para assinar por exemplo:
key-1 - INPUT_PATH: o caminho do ficheiro de entrada original que foi assinado
- SIGNATURE_FILE: o caminho do ficheiro que contém a assinatura codificada em base64 a validar
Depois de executar o comando, vê o resultado Verification OK se for bem-sucedido. Se não for bem-sucedido, vê o resultado da falha
Verification Failure.