Olivares AI는 인프라의 에이전트를 거버넌스하므로, 자체 공급망이 신뢰 모델의 일부입니다. 릴리스를 실행하기 전에 우리가 게시한 것임을 증명하세요. 모든 릴리스는 이를 암호학적으로 검증하는 데 필요한 아티팩트를 포함합니다 — 검증은 네트워크 없이도 실행할 수 있으며, 이것이 연결이 끊긴 에어갭 환경을 위한 경로입니다.
설치 프로그램을 셸에 파이프하지 마세요. 아티팩트를 다운로드하고, 검증한 다음 실행하세요. 아래 단계가 그 방법입니다.
프리릴리스 상태. 아직 공개 릴리스가 게시되지 않았습니다 —
olivaresai/olivares는 런칭과 함께 공개되므로, 오늘은 다운로드할 아티팩트도, 이 명령들을 실행할 대상도 없습니다. 이 가이드는 모든 공개 릴리스가 갖추게 될 검증 체인을 문서화합니다. 이를 뒷받침하는 파이프라인은 이미 구축되어 CI에서 실행되고 있습니다. 아래의 모든 내용은 첫 번째 태그된 릴리스와 함께 실행 가능해집니다.
릴리스와 함께 제공되는 것
태그된 릴리스는 바이너리 아카이브와 이를 증명하는 데 필요한 모든 것을 포함합니다:
| 아티팩트 | 설명 |
|---|---|
checksums.txt (+ .sig, .pem) | 모든 아티팩트의 SHA-256, cosign 서명 및 (키리스) 인증서 포함 |
*_<os>_<arch>.tar.gz | linux/darwin x amd64/arm64용 릴리스 아카이브 |
*.spdx.sbom.json / *.cdx.sbom.json | 아카이브별 SBOM, SPDX와 CycloneDX 형식 모두 제공 |
*.sbom.sigstore.json | 아카이브에 대한 서명된 in-toto 증명으로 래핑된 SPDX SBOM |
*.vex.sigstore.json | 아카이브에 대한 서명된 in-toto 증명으로서의 OpenVEX 선언 |
*.intoto.jsonl | SLSA 빌드 출처 (slsa-github-generator에 의해 생성) |
| 컨테이너 이미지 | 레지스트리에 게시, 서명 및 증명, 다이제스트로 고정 |
증명은 변경 가능한 태그가 아닌 바이트로 각 아티팩트를 참조합니다.
한 명령 경로
저장소에는 scripts/verify-release.sh가 포함됩니다. 다운로드된 파일이 있는 디렉토리에서 실행하세요; 전체 체인을 걸으며 각 단계를 보고합니다:
# 키리스 (Sigstore) — 기본값. 투명성 로그(Rekor)에 대한 네트워크 필요.
scripts/verify-release.sh
# 키 기반 — 프로젝트의 공개 키에 대해 검증 (에어갭 친화적).
scripts/verify-release.sh --key cosign.pub
# 완전 오프라인 — 키 기반, 투명성 로그 네트워크 전혀 없음.
scripts/verify-release.sh --key cosign.pub --offline
# SLSA 출처를 특정 소스 태그에 고정.
scripts/verify-release.sh --source-tag <version>
네트워크 사용 방식은 서명 모델에 따라 다릅니다. 키리스 서명은 Rekor 투명성 로그 항목을 포함하므로 기본 경로는 Rekor에 도달합니다(--offline을 전달하면 번들된 항목을 대신 사용). 키 기반 서명은 Rekor 항목 없이 생성되므로 스크립트가 --insecure-ignore-tlog를 추가하고 아무 것도 연결하지 않습니다. --key cosign.pub --offline 조합이 진정한 연결 끊김 경로입니다.
스크립트는 cosign과 sha256sum이 필요합니다; slsa-verifier는 선택사항입니다. 아티팩트(또는 검증기)가 없는 단계는 실패하지 않고 명확한 참고와 함께 건너뜁니다 — 따라서 최소 릴리스에서 작동하고 완전한 릴리스에서 완전히 검증합니다.
확인 사항, 단계별
수동으로 검사를 실행하려면 이것이 체인입니다. <archive>를 각 *.tar.gz로 대체하세요.
1. 체크섬에 대한 서명
checksums.txt를 검증하면 그 안에 나열된 모든 아티팩트를 전이적으로 신뢰합니다. 키리스 검증은 서명 신원을 프로젝트의 GitHub Actions OIDC 신원에 고정합니다:
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
키 기반의 경우 cosign verify-blob --key cosign.pub --signature checksums.txt.sig --insecure-ignore-tlog checksums.txt를 대신 사용합니다.
2. 아티팩트 무결성
이제 신뢰할 수 있는 매니페스트에 대해 모든 아티팩트의 해시를 재계산합니다:
sha256sum --check checksums.txt
3. SBOM 증명 (SPDX)
cosign verify-blob-attestation --type spdxjson \
--bundle <archive>.sbom.sigstore.json --new-bundle-format \
--check-claims <archive>
오프라인 경로의 경우 (신원 플래그 대신) --key cosign.pub --insecure-ignore-tlog를 추가합니다. CycloneDX SBOM (*.cdx.sbom.json)은 이를 선호하는 도구를 위해 함께 제공됩니다.
4. OpenVEX 증명
프로젝트의 취약점 선언, 동일한 방식으로 검증:
cosign verify-blob-attestation --type openvex \
--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 신원에 대해 이미지를 증명하지만 네트워크가 필요합니다. 항상 변경 가능한 태그가 아닌 다이제스트로 해결하고 배포하세요:
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.pub를 포함하며, cosign verify --local-image <dir> --insecure-ignore-tlog --key cosign.pub로 오프라인 검증합니다. 자체 호스팅 가이드에서 해당 번들의 빌드와 미러링을 다룹니다.
검증이 증명하는 것과 증명하지 않는 것
암호학적 검증은 출처와 무결성을 증명합니다: 아티팩트가 파이프라인이 빌드하고 서명한 정확하고 수정되지 않은 출력임을. 소프트웨어의 동작이나 준수 자세를 인증하지 않습니다. Olivares AI는 1.0 이전이며 SOC 2 및 ISO 27001과 같은 프레임워크 방향으로 설계되었지만 인증된 것은 아닙니다; 그 구분이 실제로 무엇을 의미하는지는 정직함과 한계를 참조하세요.
검증은 또한 주어진 릴리스가 실제로 게시한 증명만큼만 완전합니다. 검증기는 실행하는 각 단계를 보고합니다; 빌드가 아티팩트를 생략하면 해당 단계에는 확인할 것이 없습니다. 표준 릴리스는 위에 명명된 SBOM, OpenVEX, SLSA 아티팩트를 첨부합니다.