Skip to main content

Verificação de atestados offline

Os atestados de artefato podem ser verificados sem uma conexão de Internet.

Introdução

Os atestados de artefatos são uma ótima forma de garantias de procedência e integridade infalsificáveis para o software que você cria.

Por padrão, os atestados são armazenados na API de atestado do GitHub, que gh attestation verify consultará quando você for verificar o atestado. Esse comando também entrará em contato com os servidores do GitHub para verificar se há material de chaves atualizado a ser usado para verificar o atestado.

Esse comando pode funcionar sem conectividade com a Internet, mas é necessário preencher manualmente o pacote de atestados e o material de chaves na raiz confiável.

Antes de iniciar este guia, você deve criar com a geração de atestados de artefato. Confira Usar atestados de artefatos para estabelecer a procedência de compilações.

Etapa 1: baixar o pacote de atestados

Primeiro, obtenha o pacote de atestado da API do atestado.

Você pode fazer isso com o seguinte comando em uma máquina que está online:

Bash
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME

Este é um exemplo de saída desse comando:

Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten

The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl

Etapa 2: baixar raízes confiáveis

Depois, obtenha o material de chaves das raízes confiáveis.

Os atestados de artefato usam a instância de bens públicos do Sigstore para repositórios públicos e a instância do Sigstore no GitHub para repositórios privados. É possível usar um comando para obter as duas raízes confiáveis:

Bash
gh attestation trusted-root > trusted_root.jsonl

Atualização de informações da raiz confiável em um ambiente offline

É uma prática recomendada gerar um novo arquivo de trusted_root.jsonl sempre que você importar um novo material assinado para seu ambiente off-line.

O material de chaves em trusted_root.jsonl não tem uma data do término interna, portanto, qualquer coisa assinada antes de você gerar o arquivo de raiz confiável continuará sendo verificada. Qualquer coisa assinada após a geração do arquivo será verificada até que a instância do Sigstore gire o respectivo material de chaves, o que geralmente acontece algumas vezes por ano. Você não saberá se o material de chaves foi revogado desde a última vez que gerou o arquivo de raiz confiável.

Etapa 3: fazer verificação offline

Agora, você está com tudo pronto para verificar o artefato offline.

Você deve importar para seu ambiente offline:

  • GitHub CLI
  • Seu artefato
  • O arquivo do pacote
  • O arquivo de raiz confiável

Depois, você pode fazer a verificação offline com o seguinte comando:

Bash
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl

Conclusão

Você está verificando atestados de artefato em um ambiente offline. Recomendamos importar uma nova raiz confiável sempre que você adicionar novos artefatos assinados ao seu ambiente offline.