Claves de verificación

Utiliza estas claves públicas para verificar Stella Ops Suite:

  • Imágenes de contenedor (CosignHerramienta de firma de contenedores del proyecto Sigstore para firmar y verificar imágenes de contenedores y artefactos)
  • Bundles de versión: el manifiesto de versión firmado (CosignHerramienta de firma de contenedores del proyecto Sigstore para firmar y verificar imágenes de contenedores y artefactos verify-blob)
  • Correo/avisos de seguridad (PGP)
  • Material firmado por el proveedor, verificado sin conexión (raíces de confianza del proveedor, abajo)

Verificar una imagen de contenedor

Las imágenes anteriores se verifican con cosign.pub; las imágenes firmadas a partir del 2026-11-04 se verifican con la clave de imagen que figura en el llavero que firma cosign.pub.

Las imágenes firmadas antes del 2026-11-04, como las imágenes de servicio de v1.0.0-RC1-20261029, se verifican con la clave de versión:

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

Imágenes firmadas a partir del 2026-11-04: compruebe el llavero con cosign.pub y la clave de imagen activa con su identificador en el llavero; después verifique la imagen por su digest con esa clave:

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 enumera cada clave de imagen por el SHA-256 de su archivo .pub, con su estado y su periodo de validez; use el archivo de clave de la línea active, hoy image-signing.pub.

Verificar el manifiesto de un bundle de versión

La clave de versión cosign.pub avala la clave de bundle: firma el llavero bundle-signing-keys.txt, que enumera bundle-signing.pub. Un bundle firmado con la clave de bundle se verifica mediante esa cadena; un bundle firmado directamente con la clave de versión, como v1.0.0-RC1-20261029, se verifica solo con cosign.pub.

Bundles firmados directamente con la clave de versión, como 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 firma las versiones con la clave de versión indicada en esta página (cosign.pub) y no registra ninguna entrada en el registro de transparencia (Rekor), por lo que Cosign 3 requiere --insecure-ignore-tlog=true. La firma se sigue verificando con esta clave.

Bundles firmados con la clave de bundle: compruebe el llavero con cosign.pub y la clave de bundle activa con su identificador en el llavero:

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

Después, dentro del bundle, deje que el instalador compruebe toda la cadena: el llavero, la clave de bundle, las firmas de release-manifest.yaml y SHA256SUMS, y cada archivo que enumera SHA256SUMS. Indique el cosign.pub descargado, para que la copia del bundle se compare con él:

# 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 enumera cada clave de bundle por el SHA-256 de su archivo .pub, con su estado y su periodo de validez. La comprobación rechaza una clave revocada, una clave fuera de su periodo en el momento signedAt del manifiesto y cualquier archivo cuyo digest difiera; termina con 0 si la verificación es correcta, 1 si se rechaza y 3 para un bundle en el formato anterior, firmado con la clave de versión. tools/verify-bundle.py --require-bundle-signature comprueba la misma cadena. Estas comprobaciones llegan con los instaladores de los bundles firmados con la clave de bundle; los instaladores de v1.0.0-RC1-20261029 no las tienen.

Importar clave PGP

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

Si un mensaje o aviso no está firmado de manera verificable, trátalo como no confiable.

PGP Key

4976 7614 4BBA 5DDB E2EA B5B8 5C1E CABB C9F3 1EA6
Mostrar clave completa…

Descarga directa: pgp.asc

Copiado al portapapeles
-----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
Mostrar clave completa…

Descarga directa: cosign.pub

Copiado al portapapeles
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUVa+jrUqCk28DYjVXOR4iCGX2zeB
ei8bd0AT8oRnP1vgkxmIgDpvcdQrRcS3v0vt+Jw6Kyqh2F1BGvwNwKN66g==
-----END PUBLIC KEY-----
          

Raíces de confianza del proveedor

Cada raíz del proveedor tiene un único propósito y solo verifica material firmado para ese propósito. La verificación usa únicamente la clave pública y no requiere conexión con Stella Ops.

Las raíces forman un conjunto de raíces de confianza del proveedor (<purpose>/anchors/<label>.pem). Un bundle de versión que incluye el conjunto lo lleva en config/vendor-roots/ y enumera cada identificador de clave en vendorTrustRoots dentro de su manifiesto de versión firmado, para que pueda comparar el bundle con esta página. La versión publicada el 29 de octubre de 2026 (v1.0.0-RC1-20261029) es anterior al conjunto y no incluye ninguna raíz del proveedor.

Desde el 2 de noviembre de 2026, la base de datos de vulnerabilidades publicada en mirrors.stella-ops.org/vuln-db/ está firmada con la raíz vendor-intelligence (primer release firmado: 2026-11-02).

stellaops-vendor-entitlement-2026-2

Propósito: vendor-entitlement · ECDSA P-256 (ES256)

Identificador de clave

sha256:7476e87bc384a13678bacba5440cc0ef43dd64a5d0c9b45617789d15b8275246
Mostrar clave completa…

Descarga directa: stellaops-vendor-entitlement-2026-2.pem

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

stellaops-vendor-intelligence-2026-2

Propósito: vendor-intelligence · ECDSA P-256 (ES256)

Identificador de clave

sha256:a3024b6333189558022436890e303543059bafb4ba649c820335bb16fd590b97
Mostrar clave completa…

Descarga directa: stellaops-vendor-intelligence-2026-2.pem

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJFPlBB3dk+XjFvzCC32xx67LIRTK
+havbZjfyvuej80gqv6oVPeTj/wF6a0Nw9UW9bDtUFwZD0o+K9ARuO+K2w==
-----END PUBLIC KEY-----
        

Comprobar un identificador de clave

El identificador de clave es sha256: seguido del SHA-256 de la SubjectPublicKeyInfo de la clave codificada en DER. Calcúlelo a partir del archivo descargado y compárelo con el valor anterior:

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