リリースの成果物をダウンロードし、インストール前に署名、チェックサム、証明を検証してください。ダウンロードしたバージョンの署名IDとタグを使用します。ネットワーク要件は以下のとおりです。
インストーラーをシェルにパイプしないでください。アーティファクトをダウンロードし、検証してから実行してください。以下がその手順です。
次のバージョンは1.0で、CommunityとBusiness/Enterpriseの最初の安定版です。まだリリースされていません。機能と現在の制限は別途記載されています。正直さと制限事項。
リリースに同梱されるもの
タグ付きリリースにはバイナリアーカイブと、それらをアテストするために必要なすべてが含まれます:
| アーティファクト | 内容 |
|---|---|
checksums.txt(+ .sig、.pem) | すべてのアーティファクトの SHA-256 と cosign 署名および(キーレス)証明書 |
*_<os>_<arch>.tar.gz | linux/darwin x amd64/arm64 のリリースアーカイブ |
*.spdx.sbom.json | リリースの SBOM(SPDX 形式) |
*.sbom.sigstore.json | アーカイブ上の署名付き in-toto アテステーションとしてラップされた SPDX SBOM |
*.vex.sigstore.json | アーカイブ上の署名付き in-toto アテステーションとしての OpenVEX ステートメント |
*.intoto.jsonl | SLSA ビルドプロヴナンス(slsa-github-generator で生成) |
| コンテナイメージ | レジストリに公開、署名・アテスト済み、ダイジェストで固定 |
アテステーションは各アーティファクトをバイト単位で参照し、ミュータブルなタグでは参照しません。
ワンコマンドパス
scripts/verify-release.sh は、リリースタグの信頼できるソースコードのチェックアウトから取得してください。リリース成果物には含まれません。実行する際は、そのチェックアウトを信頼することになります。ダウンロードしたファイルのディレクトリからスクリプトのパスを指定して実行すると、各検証手順の結果が表示されます。
/path/to/olivares/scripts/verify-release.sh --source-tag <version>
--offline はcosign呼び出しのRekor参照を省くだけで、検証全体をネットワーク不要にはしません。キーレス検証にはSigstoreの信頼ルートが必要で、キャッシュがなければ取得します。スクリプトに --trusted-root オプションはありません。SBOMとOpenVEXのバンドル検証は --key を使っても信頼ルートが必要です。SLSAの手順はオフラインオプションなしで slsa-verifier を実行します。公開リリースはキーレス署名で、検証用の公開鍵を配布していません。--key は、検証するファイルとは別の経路で鍵の所有者から公開鍵を入手した、鍵付き署名のファイルにのみ使用してください。
スクリプトには cosign と sha256sum が必要です。利用者モードでは、証明または slsa-verifier がない手順をスキップとして報告します。スキップされた手順は未検証です。公開者向けの --strict-publication モードには --cert-identity と --source-uri も必要です。--key と --offline は受け付けません。
検証の内容、ステップバイステップ
手動で検証を実行する場合のチェーンです。<archive> を各 *.tar.gz に置き換えてください。
1. チェックサム上の署名
checksums.txt を検証すると、そこに記載されたすべてのアーティファクトを推移的に信頼します。キーレス検証は署名IDをプロジェクトの GitHub Actions OIDC IDに固定します:
cosign verify-blob \
--certificate checksums.txt.pem \
--signature checksums.txt.sig \
--certificate-identity-regexp '^https://github\.com/olivaresai/olivares/\.github/workflows/release\.yml@refs/tags/v?[0-9]+\.[0-9]+(\.[0-9]+)?$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
checksums.txt
2. アーティファクトの整合性
信頼されたマニフェストに対してすべてのアーティファクトのハッシュを再計算します:
sha256sum --ignore-missing --check checksums.txt
3. SBOM アテステーション(SPDX)
cosign verify-blob-attestation --type spdxjson \
--certificate-identity-regexp '^https://github\.com/olivaresai/olivares/\.github/workflows/release\.yml@refs/tags/v?[0-9]+\.[0-9]+(\.[0-9]+)?$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--bundle <archive>.sbom.sigstore.json --new-bundle-format \
--check-claims <archive>
4. OpenVEX アテステーション
プロジェクトの脆弱性ステートメント、同じ方法で検証:
cosign verify-blob-attestation --type openvex \
--certificate-identity-regexp '^https://github\.com/olivaresai/olivares/\.github/workflows/release\.yml@refs/tags/v?[0-9]+\.[0-9]+(\.[0-9]+)?$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--bundle <archive>.vex.sigstore.json --new-bundle-format \
--check-claims <archive>
5. SLSA プロヴナンス
slsa-verifier verify-artifact <archive> \
--provenance-path <provenance>.intoto.jsonl \
--source-uri github.com/olivaresai/olivares
コンテナイメージの検証
キーレスイメージパスは同じ GitHub Actions ID に対してイメージを証明しますが、ネットワークが必要です。常にダイジェストで解決してデプロイし、ミュータブルなタグは使用しないでください:
IMAGE=ghcr.io/olivaresai/olivares
DIGEST="$(crane digest "$IMAGE:<version>")"
REF="$IMAGE@$DIGEST"
cosign verify "$REF" \
--certificate-identity-regexp '^https://github\.com/olivaresai/olivares/\.github/workflows/release\.yml@refs/tags/v?[0-9]+\.[0-9]+(\.[0-9]+)?$' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
ネットワークから隔離された環境
運用者は自分が管理するcosign鍵でエアギャップバンドルを作成します。バンドルには対応する cosign.pub が含まれ、スクリプトはRekorを使わず、その鍵でHelmチャートと保存済みイメージを検証します。バンドルを信頼する前に、別の経路で鍵の所有者から受け取った公開鍵と照合してください。バンドル内の鍵だけでは、そのバンドル自体を認証できません。イメージは、その鍵による署名が含まれている場合にのみ検証に成功します。
for d in images/*/; do
cosign verify --local-image "$d" --insecure-ignore-tlog --key cosign.pub
done
cosign verify-blob --key cosign.pub --insecure-ignore-tlog --signature chart/*.tgz.sig chart/*.tgz
検証が証明するものとしないもの
暗号的検証はプロヴナンスと整合性を証明します: アーティファクトがパイプラインがビルドして署名した正確で未改変の出力であること。ソフトウェアの動作やコンプライアンスの姿勢を認証するものではありません。Olivares AI は SOC 2 や ISO 27001 などのフレームワークに向けて設計されています — 認証されていません。その区別が実際に何を意味するかについては正直さと制限事項を参照してください。
検証はまた、特定のリリースが実際に公開したアテステーションの完全性に依存します。ベリファイアーは実行した各ステップを報告します。ビルドがアーティファクトを省略した場合、対応するステップにはチェックするものがありません。標準リリースは上記で名前を挙げた SBOM、OpenVEX、SLSA アーティファクトを添付します。