Используйте эти открытые ключи для проверки пакета Stella Ops Suite:
Образы контейнеров (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 и активный ключ образов по его идентификатору в связке, затем проверьте образ по дайджесту этим ключом:
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 манифеста и любой файл с другим дайджестом; она завершается кодом 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