O Que É Assinatura Keyless? Assinar Sem Gerenciar Chaves
A assinatura keyless produz uma assinatura válida usando um certificado de curta duração vinculado à sua identidade, então não há chave privada de longa duração para armazenar, proteger ou perder.
O termo "keyless" é um tanto enganoso: as chaves ainda existem, mas apenas por instantes. A assinatura keyless gera uma nova chave de assinatura, obtém um certificado vinculado à sua identidade autenticada, assina e descarta a chave. A prova de quem assinou vive no certificado e em um log de transparência, não em um cofre que você tem que proteger para sempre.
O problema com chaves de longa duração
Uma chave de assinatura tradicional precisa ser gerada, armazenada com segurança, ter backup e nunca vazar, por anos. Se ela vazar, cada assinatura que já fez se torna suspeita, e rotacioná-la é disruptivo. Chaves de longa duração são um risco permanente.
Como o keyless evita isso
- Autentique-se com uma identidade existente (um token OIDC).
- Uma CA emite um certificado válido por apenas alguns minutos.
- Gere uma chave efêmera, assine e descarte-a.
- Registre a assinatura e o certificado em um log público.
De onde vem a confiança
A verificação não depende de reconhecer uma chave pública armazenada. Ela depende do certificado (provando qual identidade assinou) e do log de transparência (provando que a assinatura existiu). A confiança muda de "proteja esta chave" para "confie nesta identidade e neste log".
Por que o CI se beneficia mais
O CI é exatamente onde chaves de longa duração são mais arriscadas: muitos jobs, muitas pessoas, muita automação. A assinatura keyless permite que um pipeline assine usando sua workload identity, sem nada durável para vazar, razão pela qual projetos como o Sigstore foram construídos em torno dela.
A identidade precisa ser confiável
A assinatura keyless é apenas tão forte quanto a identidade por trás dela. O token OIDC que um pipeline apresenta precisa ser emitido por um ambiente de build confiável e isolado, para que um atacante não possa se passar pelo builder e assinar artefatos maliciosos.
Principais conclusões
- A assinatura keyless usa certificados de curta duração vinculados à identidade em vez de chaves armazenadas.
- A confiança muda de proteger uma chave para verificar uma identidade e um log de transparência.
- Ela remove o maior risco de assinar em pipelines de CI automatizados.