Assinar e verificar os dados

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

  1. Instale e inicialize a CLI gdcloud, caso ainda não tenha feito isso.

  2. Autentique-se no GDC usando a CLI gdcloud. Esse processo exige o certificado da autoridade certificadora (CA) do console da sua organização:

    1. 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_PATH
      

      Substitua:

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

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.