Pular para o conteúdo
ecdsa.com
Sigstore cosign (verify-blob / verify with --key)Outras ferramentas

Mensagem de erro

invalid signature when validating ASN.1 encoded signature

Também aparece como

  • Error: failed to verify signature: could not verify message: invalid signature when validating ASN.1 encoded signature
  • invalid signature when validating IEEE_P1363 encoded signature

Impresso como “Error: …” e de novo como “error during command execution: …”. Com um bundle (`--bundle`), o cosign 3 acrescenta o prefixo “failed to verify signature: could not verify message:”. Assinaturas na forma IEEE P1363 falham com “…when validating IEEE_P1363 encoded signature”. O texto principal é o mesmo no cosign 2.6 e no 3.1.

Sigstore cosign (verify-blob / verify with --key) — sigstore-go signature verifier

O que significa

O cosign verificou a assinatura ECDSA (em codificação DER/ASN.1, daí o texto da mensagem) sobre o digest do artefato com a chave pública que você forneceu, e ela não correspondeu. Ou a chave não é a que assinou, ou o artefato difere do que foi assinado. Ao contrário da verificação keyless, aqui não entram identidades nem o log de transparência — é a verificação pura da assinatura que falha.

Por que acontece

Como corrigir

  1. 1.

    Comparar o digest e a chave

    Compare o SHA-256 do artefato com o digest publicado e a chave pública com a derivada da chave de assinatura.

    bash
    sha256sum artifact.txt                             # compare with the digest published with the release
    cosign public-key --key release.key > derived.pub   # (key holder) public half of the signing key
    diff <(openssl pkey -pubin -in derived.pub -outform DER | sha256sum) \
         <(openssl pkey -pubin -in cosign.pub -outform DER | sha256sum)
  2. 2.

    Distribuir bundles em vez de assinaturas avulsas

    Um bundle Sigstore mantém juntos a assinatura e o material de verificação, o que evita a maioria das trocas.

    bash
    # Prefer bundles: signature, verification material and the log entry travel together
    cosign sign-blob --yes --key release.key --bundle artifact.sigstore.json artifact.txt   # uploads to Rekor
    cosign verify-blob --key release.pub --bundle artifact.sigstore.json artifact.txt

Erros relacionados

Ver toda a base de erros de assinatura