Saltar al contenido
ecdsa.com
Sigstore cosign (verify-blob / verify with --key)Otras herramientas

Mensaje de error

invalid signature when validating ASN.1 encoded signature

También se muestra 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

Se imprime como «Error: …» y otra vez como «error during command execution: …». Con un bundle (`--bundle`), cosign 3 antepone «failed to verify signature: could not verify message:». Las firmas en formato IEEE P1363 fallan con «…when validating IEEE_P1363 encoded signature». El texto principal es el mismo en cosign 2.6 y 3.1.

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

Qué significa

cosign verificó la firma ECDSA (codificada en DER/ASN.1, de ahí el texto del mensaje) sobre el resumen del artefacto con la clave pública que proporcionas, y no coincidió. O bien la clave no es la que firmó, o bien el artefacto es distinto del que se firmó. A diferencia de la verificación keyless, aquí no intervienen identidades ni el registro de transparencia: lo que falla es la comprobación de la firma en sí.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Comparar el resumen y la clave

    Compara el SHA-256 del artefacto con el resumen publicado y la clave pública con la que se deriva de la clave de firma.

    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 en lugar de firmas sueltas

    Un bundle de Sigstore mantiene juntos la firma y el material de verificación, lo que evita la mayoría de las confusiones.

    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

Errores relacionados

Explorar toda la base de datos de errores de firma