Assine e valide dados

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

  1. Instale e inicialize a CLI gcloud, se ainda não o tiver feito.

  2. 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:

    1. Transfira o certificado da AC:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Substitua o seguinte:

      • CONSOLE_URL: o URL da consola da sua organização (como console.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)
    2. 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.

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.