Ключове за верификация

Тези публични ключове се използват за проверка на Stella Ops:

  • Контейнерни образи (CosignИнструмент за подписване на контейнери от проекта Sigstore за подписване и верификация на образи и артефакти)
  • Пакети на изданията: подписаният манифест на изданието (CosignИнструмент за подписване на контейнери от проекта Sigstore за подписване и верификация на образи и артефакти verify-blob)
  • Поща за сигурност / бюлетини (PGP)
  • Материали, подписани от доставчика, с офлайн проверка (коренните ключове на доставчика по-долу)

Верификация на образ

По-старите образи се проверяват с cosign.pub; образите, подписани от 2026-11-04, се проверяват с ключа за образи от списъка с ключове, който cosign.pub подписва.

Образите, подписани преди 2026-11-04, например сервизните образи на v1.0.0-RC1-20261029, се проверяват с ключа за издания:

cosign verify --insecure-ignore-tlog=true \
  --key https://stella-ops.org/keys/cosign.pub \
  registry.stella-ops.org/stellaops/<service>:<VERSION>

Образи, подписани от 2026-11-04: проверете списъка с ключове спрямо cosign.pub и активния ключ за образи спрямо идентификатора му в списъка, след това проверете образа по неговия digest с този ключ:

for f in cosign.pub image-signing-keys.txt image-signing-keys.txt.sig image-signing.pub; do
  curl -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:

cosign verify-blob --insecure-ignore-tlog=true \
  --key https://stella-ops.org/keys/cosign.pub \
  --signature release-manifest.yaml.sig \
  release-manifest.yaml

Stella Ops подписва изданията с ключа за издания, посочен на тази страница (cosign.pub), и не създава запис в журнала за прозрачност (Rekor), затова Cosign 3 изисква --insecure-ignore-tlog=true. Подписът пак се проверява спрямо този ключ.

Пакети, подписани с ключа за пакети: проверете списъка с ключове спрямо cosign.pub и активния ключ за пакети спрямо идентификатора му в списъка:

for f in cosign.pub bundle-signing-keys.txt bundle-signing-keys.txt.sig bundle-signing.pub; do
  curl -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 directory
STELLA_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 ги нямат.

Импорт на PGP ключ

curl -sSL https://stella-ops.org/keys/pgp.asc | gpg --import
gpg --fingerprint "Stella Ops Release Signing"

Ако съобщение/адвайзъри не е проверимо подписано — третирайте го като непроверено.

PGP Key

4976 7614 4BBA 5DDB E2EA B5B8 5C1E CABB C9F3 1EA6
Покажи пълния ключ…

Сваляне: pgp.asc

Копирано
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGpm8t4BEADISO50jtPoFyyxslZoFsyHiVYh0jhmAjElYNZ1SwWnLE70uP8w
KIDrY16nD/QzaohyZ8LhP02uGcFMkLHUdqHrl4xyJ4Qkp3kryneSbuEzNxnNDA46
6rBVZcmh53yGXqvyA7T163VBmlgVRyH/2pNnnbT756yLKcMN/kvd3Hn4sAOd6874
8F6vag/hqkUa9i0ta5gFjOToHbpPdcbs0BPkvZE/BuPxto76TqFuaFr1QTFVMuBs
bujXdrkdBnufnSfqCud9vP5zhAQTVoWgHy3eIj0bwnpuKiv9AcSO9LU2uMJULiZZ
qmHbnAYaIRmW6TlQ2ynwfKSM1GGvWBuIdBMfNXbAlpwIFbVPMN6vv6XJ33wyTgDF
ADQtEMRckgWNSQBn+2pRl/yEVFBmlrxv31FCj73zY/HfLBjprI7kU9JIII9mqJsh
i31Shv5kxUZTtpVWWHSrql/bm0w1OpfVQ02DXG7QDjH4YE5SPveG2RyR3DGzpLVp
0W7dU1Lutc/WICVO38CWQqbLrPD+yo+WIHdijv/ejH5ofTspdzpnv4zbDc9cEUJw
cYmELAwnJDXO+OEF5pRvndKyWE5SQIX8BrCk2jVtJvvphktu0WQ1449cjx9MJeyy
QyOTvvT05tOdZ2QghXTPgJT5rtPEXljRJIZW01Do1eiisRqwV82MMhtv4QARAQAB
tDNTdGVsbGEgT3BzIFJlbGVhc2UgU2lnbmluZyA8cmVsZWFzZUBzdGVsbGEtb3Bz
Lm9yZz6JAlcEEwEIAEEWIQRJdnYUS7pd2+LqtbhcHsq7yfMepgUCamby3gIbAwUJ
A8JnAAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBcHsq7yfMepu6aD/4l
Kd0el1ymwZVptIK7YVg+VZow/eyyGr7j4NNdTDfmGNGCjluIdz/QkD1Xuwl/2iv/
KkGVDpcr9A9PZ9hAFJuXq7fUP98OZNhUlwrNbpwvzJn7VxhhNj57jN3aE6uAoQQx
bhuQY4vm0l2EgCssawRaRJqUvs15pgW3e5OuxIwtgJvLFSRY2LWaMXuntq2RZf0Q
Q42GNTw4Z8UifpdPU4LWILD9FlffcbofhEhfgL4/txNMMgO7ErGukDS2fagPDBJS
ge9+hTWZ2FviCey679qainwhQsuGJD2nBFm5StyS3IoDrRoBQDqGWHiv0l5Y3dGy
biNE2DzlxkpG4CqnqA7/di8b+iUzNfVQmji7D1224gWuT2GnV0eziA5MGLOeyRpL
QG8CpazpuONt3Sy/24a8q4YH948x8vNXj7hwQBrvz/aY75IClD+1073nzMUKJWTf
8q3pQI/dElgs/dX5ZvWl2jwA66rmDYYzyg+j000ILRKoQOj4ZDEHhQsueWEeRAw8
AKqN7xfZVwV4J7SDkyxUn5HGzyFwVjVgPN79O5NXv7XvgxzRA6qEECgR+3RuKy7J
XVedkuRAEK/aULdDIjG4gFaIjBaIqHSrTeobircbMJzRbWWU36bqRGMfsUyzaqtW
5w4qEawrQ6kAxfRHLG+ZqQnH+RW0fzJVCo37xx3tfQ==
=BpyC
-----END PGP PUBLIC KEY BLOCK-----
          

CoSign Key

9148 1209 CAF0 499D 1063 E2D5 955B B5C1 5146 6A92 58C0 B4C2 EC76 E5DB 52E3 409B
Покажи пълния ключ…

Сваляне: cosign.pub

Копирано
-----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).

stellaops-vendor-entitlement-2026-2

Предназначение: vendor-entitlement · ECDSA P-256 (ES256)

Идентификатор на ключа

sha256:7476e87bc384a13678bacba5440cc0ef43dd64a5d0c9b45617789d15b8275246
Покажи пълния ключ…

Сваляне: stellaops-vendor-entitlement-2026-2.pem

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEO7CZrBZo2WzxM1B0PoZZk7UqToKe
/5TjUQSAwjMzNNVhffeKdXaWLfi1A5HCrkYc5gQ88Yb8Xua46p4tI2blxw==
-----END PUBLIC KEY-----
        

stellaops-vendor-intelligence-2026-2

Предназначение: vendor-intelligence · ECDSA P-256 (ES256)

Идентификатор на ключа

sha256:a3024b6333189558022436890e303543059bafb4ba649c820335bb16fd590b97
Покажи пълния ключ…

Сваляне: stellaops-vendor-intelligence-2026-2.pem

-----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