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
| Artefakt | Zweck |
|---|---|
*.whl, *.tar.gz | Python-Wheels und Quell-Distributionen. |
SHA256SUMS.txt | SHA-256-Hashes für jedes Distributions-Artefakt. |
*.sigstore.json | Sigstore signature bundle (eines pro Artefakt). |
sbom.cyclonedx.json | CycloneDX-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.txtJede 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.whlEin 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/dispatchatlasDie 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.