Aller au contenu
ecdsa.com
Sigstore cosign (verify-blob / verify with --key)Autres outils

Message d’erreur

invalid signature when validating ASN.1 encoded signature

Également affiché sous la forme

  • 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

Affiché sous la forme « Error: … », puis à nouveau sous la forme « error during command execution: … ». Avec un bundle (`--bundle`), cosign 3 ajoute le préfixe « failed to verify signature: could not verify message: ». Les signatures au format IEEE P1363 échouent avec « …when validating IEEE_P1363 encoded signature ». Le texte principal est le même dans cosign 2.6 et 3.1.

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

Ce que cela signifie

cosign a vérifié la signature ECDSA (encodée en DER/ASN.1, d’où la formulation) du condensat de l’artefact avec la clé publique que vous avez fournie, et elle ne correspond pas. Soit la clé n’est pas celle qui a signé, soit l’artefact diffère de ce qui a été signé. Contrairement à la vérification sans clé, ni les identités ni le journal de transparence n’entrent en jeu : c’est la vérification brute de la signature qui échoue.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Comparer le condensat et la clé

    Comparez le SHA-256 de l’artefact au condensat publié, et la clé publique à celle dérivée de la clé de signature.

    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.

    Distribuer des bundles plutôt que des signatures isolées

    Un bundle Sigstore regroupe la signature et le matériel de vérification, ce qui évite la plupart des confusions.

    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

Erreurs associées

Parcourir toute la base de données des erreurs de signature