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

Используйте эти открытые ключи для проверки пакета 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, проверяются ключом выпусков:

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

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 манифеста и любой файл с другим дайджестом; она завершается кодом 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