Завантажте артефакти випуску й перед установленням перевірте підписи, контрольні суми та атестації. Використовуйте ідентичність підписанта й тег завантаженої версії. Мережеві вимоги описано нижче.
Не передавайте інсталятор через pipe в shell. Завантажте артефакти, перевірте їх, потім запускайте. Кроки нижче показують як.
Наступна версія — 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 | SPDX SBOM, обгорнутий як підписана in-toto атестація над архівом |
*.vex.sigstore.json | заява OpenVEX як підписана in-toto атестація над архівом |
*.intoto.jsonl | провенанс збірки SLSA (згенерований slsa-github-generator) |
| образ контейнера | опублікований у реєстрі, підписаний та атестований, прив’язаний за дайджестом |
Атестації посилаються на кожен артефакт за його байтами, ніколи за мутабельним тегом.
Шлях однією командою
Отримайте scripts/verify-release.sh з довіреної копії вихідного коду на тезі випуску; скрипт не входить до файлів випуску. Запускаючи його, ви довіряєте цій копії. Вкажіть шлях до скрипту з каталогу завантажених файлів; він повідомляє результат кожного кроку перевірки.
/path/to/olivares/scripts/verify-release.sh --source-tag <version>
--offline прибирає звернення до Rekor з викликів cosign, але не робить усю перевірку незалежною від мережі. Перевірці без ключа потрібні корені довіри 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 транзитивно довіряє кожному артефакту, переліченому в ньому. Перевірка без ключа прив’язує ідентичність підписання до OIDC ідентичності GitHub Actions проекту:
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, але потребує мережу. Завжди визначайте та розгортайте за дайджестом, ніколи за мутабельним тегом:
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; скрипти перевіряють Helm chart і збережені образи цим ключем без Rekor. Перш ніж довіряти пакету, порівняйте відкритий ключ із копією, отриманою від власника окремим каналом. Ключ усередині пакета не підтверджує справжність самого пакета. Образ проходить перевірку лише за наявності підпису, створеного цим ключем.
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, названі вище.