Release Verify
Consumer-side рецепт верификации Datarim-релизов — sha256 → cosign verify-blob → gh attestation verify. Загружай при install/update из GitHub Release.
Обзор
Datarim-релизы публикуются из Arcanada-one/datarim через release.yml и подписаны Sigstore cosign keyless (GitHub OIDC), сопровождаются CycloneDX SBOM и SLSA L2 build provenance attestation. Никогда не устанавливай tarball без проверки подписи. Этот skill — точка входа для AI-агентов и операторов, потребляющих Datarim-релизы; канонический источник: docs/release-verification.md.
Когда использовать
- Пользователь говорит «установи Datarim», «обнови до v*», «скачай latest release».
- Пользователь спрашивает «как проверить tarball», «что такое cosign bundle», «зачем sha256 если есть подпись».
- Любая инструкция, включающая
gh release download Arcanada-one/datarimили эквивалент. - Перед запуском любого install-скрипта из release tarball.
Не загружать для git-checkout / git pull рабочих копий — там верификация через git commit signing (отдельная политика).
Что входит в каждый релиз
datarim-<TAG>-source.tar.gz— source archive (git archive HEAD, prefixdatarim-<TAG>/).datarim-<TAG>-source.tar.gz.sha256— SHA-256 checksum.datarim-<TAG>-source.tar.gz.cosign.bundle— cosign signature bundle (cert + signature + Rekor inclusion proof).datarim-<TAG>-sbom.cdx.json— CycloneDX SBOM.datarim-<TAG>-sbom.cdx.json.cosign.bundle— cosign-подпись на SBOM.- GitHub attestation (server-side) — SLSA L2 build provenance, через
gh attestation verify.
Предусловия
cosign≥ 3.0gh≥ 2.40 (дляgh attestation verify)sha256sum,jq(POSIX)
Verify Recipe (5 шагов, все должны вернуть exit 0)
TAG=v1.21.3 # замени на проверяемый релиз
# 1. Скачать все артефакты релиза.
gh release download "$TAG" --repo Arcanada-one/datarim
# 2. Проверить целостность tarball через checksum.
sha256sum -c "datarim-${TAG}-source.tar.gz.sha256"
# 3. Проверить cosign signature на tarball.
cosign verify-blob \
--bundle "datarim-${TAG}-source.tar.gz.cosign.bundle" \
--certificate-identity "https://github.com/Arcanada-one/datarim/.github/workflows/release.yml@refs/tags/${TAG}" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
"datarim-${TAG}-source.tar.gz"
# 4. Проверить cosign signature на SBOM (тот же identity binding).
cosign verify-blob \
--bundle "datarim-${TAG}-sbom.cdx.json.cosign.bundle" \
--certificate-identity "https://github.com/Arcanada-one/datarim/.github/workflows/release.yml@refs/tags/${TAG}" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
"datarim-${TAG}-sbom.cdx.json"
# 5. Проверить SLSA build provenance.
gh attestation verify "datarim-${TAG}-source.tar.gz" --repo Arcanada-one/datarim
Любой non-zero exit → артефакт untrusted, не разворачивать.
Что доказывает каждый шаг
sha256sum -c— целостность. Tarball не повреждён в транзите.cosign verify-blob(tarball) — подлинность. Tarball произведёнrelease.ymlименно на этом теге вArcanada-one/datarim. Подпись зафиксирована в Sigstore Rekor public transparency log.cosign verify-blob(SBOM) — SBOM произведён той же workflow-run, что и tarball.gh attestation verify— SLSA L2 build provenance: артефакт собран GitHub-hosted runners из source на этом теге.
cosign verify-blob — шаг, связывающий tarball с build-origin. Sha256 без cosign не доказывает ничего: атакующий заменит и архив, и .sha256-файл одновременно.
Counter-Examples (так не делать)
- Pipe-to-tar без проверки подписи —
curl … | tar -xzпропускает криптографическую верификацию целиком. - Только checksum —
sha256sum -cничего не доказывает, если.sha256подделан вместе с tarball. - Cosign без
--certificate-identity— принимает подпись от любого signer-а из OIDC issuer; любой subject может выпустить cert и подписать произвольный tarball.
Если верификация падает
Если cosign verify-blob или gh attestation verify падает на официальном release-tag — не устанавливай. Открой issue в https://github.com/Arcanada-one/datarim/issues с тегом, командой и её output. Это потенциальный supply-chain инцидент.
Когда используется
Загружается AI-агентами и операторами, потребляющими Datarim-релизы. Ссылается из CLAUDE.md § Security Mandate § S4 (Supply Chain). При расхождении с docs/release-verification.md — канонический doc побеждает; обнови skill.