Zum Inhalt springen
DispatchAtlas
Suchen

Releases verifizieren

Jeder DispatchAtlas-Release-Kandidat wird von einem einzigen auditierten Workflow gebaut, der neben den Python-Distributionen einen Satz unabhängig verifizierbarer Lieferketten-Artefakte emittiert: SHA-256-Hashes, Sigstore signature bundles, GitHub build provenance attestations, ein SBOM attestation, und eine CycloneDX software bill of materials. Diese Seite dokumentiert, wie man jedes verifiziert.

Ersetze vX.Y.Z durchgehend mit dem Release-Tag, den du heruntergeladen hast.

📦 An ein Release angehängte Artefakte

ArtefaktZweck
*.whl, *.tar.gzPython-Wheels und Quell-Distributionen.
SHA256SUMS.txtSHA-256-Hashes für jedes Distributions-Artefakt.
*.sigstore.jsonSigstore signature bundle (eines pro Artefakt).
sbom.cyclonedx.jsonCycloneDX-SBOM der auditierten Build-Umgebung.

GitHub build provenance und SBOM attestations werden mit den Attestierungs-Aufzeichnungen des Repositorys gespeichert statt als Release-Anhänge, und werden über die GitHub-CLI verifiziert.

🔢 Die Hashes verifizieren

Lade die Distributions-Artefakte und SHA256SUMS.txt in dasselbe Verzeichnis, dann prüfe sie:

sha256sum --check SHA256SUMS.txt

Jede Zeile muss OK melden.

✍️ Die Sigstore-Signaturen verifizieren

Das Release signiert jedes Artefakt mit schlüsselloser Sigstore-Signierung über die OpenID-Connect-Identität des Workflows. Installiere cosign und verifiziere das Bundle für ein Artefakt:

cosign verify-blob \
  --bundle dispatchatlas-vX.Y.Z-py3-none-any.whl.sigstore.json \
  --certificate-identity-regexp 'https://github.com/ahmed-g-gad/dispatchatlas/.*' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  dispatchatlas-vX.Y.Z-py3-none-any.whl

Ein erfolgreicher Lauf druckt Verified OK. Derselbe Befehl verifiziert SHA256SUMS.txt und sbom.cyclonedx.json gegen ihre Bundles.

🧾 Die GitHub build provenance verifizieren

Jede Distribution trägt eine signierte provenance-Aussage, die den Workflow, den Commit, und den Runner beschreibt, der sie gebaut hat. Verifiziere sie mit der GitHub-CLI:

gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
  --repo ahmed-g-gad/dispatchatlas

Die Ausgabe bestätigt, dass das Artefakt vom Release-Workflow am erwarteten Commit gebaut wurde.

🧰 Das SBOM inspizieren

Das CycloneDX-SBOM zählt jede Komponente in der Build-Umgebung mit ihrer Paket-URL, Lizenz, und ihren Inhalts-Hashes auf. Inspiziere es mit jedem CycloneDX-fähigen Tool, oder lies die Komponentenliste direkt:

python -c "import json; d = json.load(open('sbom.cyclonedx.json')); \
print('\n'.join(c['name'] + ' ' + c.get('version', '') for c in d['components']))"

Das SBOM ist selbst attested; verifiziere das SBOM attestation mit:

gh attestation verify dispatchatlas-vX.Y.Z-py3-none-any.whl \
  --repo ahmed-g-gad/dispatchatlas \
  --predicate-type https://cyclonedx.org/bom

🚨 Einen Verifizierungsfehler melden

Falls ein Verifizierungsschritt für ein Artefakt fehlschlägt, das du von einem offiziellen Release heruntergeladen hast, installiere es nicht. Melde die Diskrepanz über die Kanäle in der Sicherheitsrichtlinie des Projekts.