Skip to content
Latchkey

O Que É uma Chave de Assinatura? Provando Autenticidade e Integridade

Uma chave de assinatura é uma chave privada usada para produzir assinaturas digitais, para que outros possam verificar que os dados são autênticos e não foram adulterados.

Uma chave de assinatura é a metade privada de um par de chaves assimétricas, usada não para criptografar, mas para assinar. Uma assinatura criada com a chave privada pode ser verificada por qualquer pessoa que possua a chave pública, provando que os dados vieram do detentor da chave e não foram alterados. Em CI/CD, as chaves de assinatura protegem artifacts, imagens de container e commits, ancorando a confiança na cadeia de suprimentos.

Como a assinatura funciona

O detentor faz o hash dos dados e criptografa o hash com sua chave de assinatura privada, produzindo uma assinatura. Um verificador recalcula o hash e o compara com a assinatura usando a chave pública. Uma correspondência prova autenticidade e integridade de uma só vez.

O que as assinaturas provam

  • Autenticidade: os dados vieram do detentor da chave privada.
  • Integridade: os dados não foram modificados desde a assinatura.
  • Não repúdio: o signatário não pode negar de forma plausível tê-los assinado.

Chaves de assinatura em CI/CD

Os pipelines assinam artifacts de release, imagens de container e a proveniência do build para que os consumidores downstream possam verificar o que recebem. Commits e tags assinados permitem que revisores confirmem que as mudanças vieram de contribuidores confiáveis, fortalecendo a cadeia de suprimentos de software.

Protegendo a chave privada

Uma chave de assinatura está entre os secrets mais sensíveis que você mantém: qualquer pessoa que a tenha pode forjar artifacts confiáveis. Ela deve residir em um módulo de segurança de hardware ou em um serviço gerenciado de chaves, nunca em texto puro em um repo, e ser rotacionada em um cronograma.

Assinatura keyless

Abordagens mais recentes geram certificados de assinatura de curta duração vinculados a uma workload identity (via OIDC) em vez de depender de uma chave privada de longa duração. Isso remove a chave permanente do pipeline, da mesma forma que o OIDC remove as credenciais de nuvem permanentes.

Assinatura no runner

A operação de assinatura roda no runner. Manter a chave em um serviço gerenciado e usar runners isolados e efêmeros (como os runners gerenciados do Latchkey) limita a exposição do material de assinatura durante o job.

Principais conclusões

  • Uma chave de assinatura é uma chave privada usada para criar assinaturas digitais verificáveis.
  • As assinaturas provam autenticidade, integridade e não repúdio dos artifacts.
  • Proteja as chaves de assinatura em hardware ou em um serviço gerenciado, ou use assinatura keyless com OIDC.

Guias relacionados