Zum Inhalt springen
ecdsa.com
Sigstore cosign (verify-blob / verify with --key)Weitere Tools

Fehlermeldung

invalid signature when validating ASN.1 encoded signature

Auch ausgegeben als

  • 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

Die Meldung wird als „Error: …“ und noch einmal als „error during command execution: …“ ausgegeben. Mit einem Bundle (`--bundle`) stellt cosign 3 „failed to verify signature: could not verify message:“ voran. Signaturen in der Form IEEE P1363 scheitern mit „…when validating IEEE_P1363 encoded signature“. Der Kerntext ist in cosign 2.6 und 3.1 derselbe.

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

Was der Fehler bedeutet

cosign hat die ECDSA-Signatur (DER/ASN.1-kodiert, daher der Wortlaut) über den Digest des Artefakts mit dem öffentlichen Schlüssel geprüft, den du angegeben hast, und sie passte nicht. Entweder ist der Schlüssel nicht derjenige, der signiert hat, oder das Artefakt weicht von dem ab, was signiert wurde. Anders als bei der schlüssellosen Prüfung spielen Identitäten oder das Transparenzlog keine Rolle – hier schlägt die reine Signaturprüfung fehl.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Digest und Schlüssel vergleichen

    Prüfe den SHA-256-Hash des Artefakts gegen den veröffentlichten Digest und den öffentlichen Schlüssel gegen den, der aus dem Signaturschlüssel abgeleitet wurde.

    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.

    Bundles statt einzelner Signaturen ausliefern

    Ein Sigstore-Bundle hält die Signatur und das Material für ihre Prüfung zusammen, was die meisten Verwechslungen vermeidet.

    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

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen