Тези публични ключове се използват за проверка на Stella Ops:
Контейнерни образи (Cosign?Инструмент за подписване на контейнери от проекта Sigstore за подписване и верификация на образи и артефакти)
Пакети на изданията: подписаният манифест на изданието (Cosign?Инструмент за подписване на контейнери от проекта Sigstore за подписване и верификация на образи и артефакти verify-blob)
Поща за сигурност / бюлетини (PGP)
Материали, подписани от доставчика, с офлайн проверка (коренните ключове на доставчика по-долу)
Верификация на образ
По-старите образи се проверяват с cosign.pub; образите, подписани от 2026-11-04, се проверяват с ключа за образи от списъка с ключове, който cosign.pub подписва.
Образите, подписани преди 2026-11-04, например сервизните образи на v1.0.0-RC1-20261029, се проверяват с ключа за издания:
Образи, подписани от 2026-11-04: проверете списъка с ключове спрямо cosign.pub и активния ключ за образи спрямо идентификатора му в списъка, след това проверете образа по неговия digest с този ключ:
forfin cosign.pub image-signing-keys.txt image-signing-keys.txt.sig image-signing.pub;docurl-sSLO"https://stella-ops.org/keys/$f"done
sha256sum cosign.pub # 91481209caf0499d1063e2d5955bb5c151466a9258c0b4c2ec76e5db52e3409b
base64 -d image-signing-keys.txt.sig > ring.der
openssl dgst -sha256-verify cosign.pub -signature ring.der image-signing-keys.txt
grep' active ' image-signing-keys.txt # id status valid-from valid-until file
sha256sum image-signing.pub # must equal the id on the active line
cosign verify --insecure-ignore-tlog=true --key image-signing.pub \
registry.stella-ops.org/stellaops/<service>@sha256:<digest>
image-signing-keys.txt изброява всеки ключ за образи по SHA-256 на неговия файл .pub, със статуса и срока му на валидност; използвайте файла с ключ от реда active, в момента image-signing.pub.
Верификация на манифеста на пакет на издание
Ключът за издания cosign.pub гарантира ключа за пакети: той подписва списъка с ключове bundle-signing-keys.txt, в който е посочен bundle-signing.pub. Пакет, подписан с ключа за пакети, се проверява чрез тази верига; пакет, подписан директно с ключа за издания, например v1.0.0-RC1-20261029, се проверява само с cosign.pub.
Пакети, подписани директно с ключа за издания, например v1.0.0-RC1-20261029:
Stella Ops подписва изданията с ключа за издания, посочен на тази страница (cosign.pub), и не създава запис в журнала за прозрачност (Rekor), затова Cosign 3 изисква --insecure-ignore-tlog=true. Подписът пак се проверява спрямо този ключ.
Пакети, подписани с ключа за пакети: проверете списъка с ключове спрямо cosign.pub и активния ключ за пакети спрямо идентификатора му в списъка:
forfin cosign.pub bundle-signing-keys.txt bundle-signing-keys.txt.sig bundle-signing.pub;docurl-sSLO"https://stella-ops.org/keys/$f"done
sha256sum cosign.pub # 91481209caf0499d1063e2d5955bb5c151466a9258c0b4c2ec76e5db52e3409b
base64 -d bundle-signing-keys.txt.sig > ring.der
openssl dgst -sha256-verify cosign.pub -signature ring.der bundle-signing-keys.txt
grep' active ' bundle-signing-keys.txt # id status valid-from valid-until file
sha256sum bundle-signing.pub # must equal the id on the active line
След това в пакета оставете инсталатора да провери цялата верига: списъка с ключове, ключа за пакети, подписите на release-manifest.yaml и SHA256SUMS и всеки файл, посочен в SHA256SUMS. Подайте изтегления cosign.pub, за да бъде сравнено копието в пакета с него:
# in the unpacked bundle directorySTELLA_RELEASE_PUBKEY=/path/to/cosign.pub ./install.sh --verify-signature
# Windows: $env:STELLA_RELEASE_PUBKEY = "C:\path\to\cosign.pub"; .\install.ps1 -VerifySignature# or, with Python 3:
python3 tools/bundle_signing_chain.py --trusted-root /path/to/cosign.pub
bundle-signing-keys.txt изброява всеки ключ за пакети по SHA-256 на неговия файл .pub, със статуса и срока му на валидност. Проверката отхвърля отменен ключ, ключ извън срока си към момента signedAt на манифеста и всеки файл с различен digest; тя завършва с 0 при успех, 1 при отказ и 3 за пакет в предишния формат, подписан с ключа за издания. tools/verify-bundle.py --require-bundle-signature проверява същата верига. Тези проверки идват с инсталаторите на пакети, подписани с ключа за пакети; инсталаторите на v1.0.0-RC1-20261029 ги нямат.
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUVa+jrUqCk28DYjVXOR4iCGX2zeB
ei8bd0AT8oRnP1vgkxmIgDpvcdQrRcS3v0vt+Jw6Kyqh2F1BGvwNwKN66g==
-----END PUBLIC KEY-----
Коренни ключове на доставчика
Всеки коренен ключ на доставчика има едно предназначение и проверява само материали, подписани за това предназначение. Проверката използва само публичния ключ и не изисква връзка със Stella Ops.
Коренните ключове образуват набор от доверени коренни ключове на доставчика (<purpose>/anchors/<label>.pem). Пакет на версия, който доставя набора, го съдържа в config/vendor-roots/ и изброява всеки идентификатор на ключ в раздела vendorTrustRoots на подписания манифест на версията, за да можете да сравните пакета с тази страница. Версията, публикувана на 29 октомври 2026 г. (v1.0.0-RC1-20261029), предхожда набора и не съдържа коренни ключове на доставчика.
От 2 ноември 2026 г. базата данни с уязвимости, публикувана в mirrors.stella-ops.org/vuln-db/, е подписана с коренния ключ vendor-intelligence (първо подписано издание: 2026-11-02).
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEO7CZrBZo2WzxM1B0PoZZk7UqToKe
/5TjUQSAwjMzNNVhffeKdXaWLfi1A5HCrkYc5gQ88Yb8Xua46p4tI2blxw==
-----END PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJFPlBB3dk+XjFvzCC32xx67LIRTK
+havbZjfyvuej80gqv6oVPeTj/wF6a0Nw9UW9bDtUFwZD0o+K9ARuO+K2w==
-----END PUBLIC KEY-----
Проверка на идентификатора на ключ
Идентификаторът на ключа е sha256:, последван от SHA-256 на SubjectPublicKeyInfo на ключа в DER кодиране. Изчислете го от изтегления файл и го сравнете със стойността по-горе:
curl-sSLO https://stella-ops.org/keys/stellaops-vendor-intelligence-2026-2.pem
openssl pkey -pubin-in stellaops-vendor-intelligence-2026-2.pem -outform DER | sha256sum