← Rule catalog
mediumrequireducp

Universal Commerce Protocol: signing keys invalid

UCP_SIGNING_KEYS_INVALID · v1.0

What it detects

The UCP profile's signing_keys array is empty, or its entries are missing the kid/kty/use=sig fields a JWK requires.

Why it matters

Signing keys are what let an agent verify that a UCP checkout response actually came from the merchant; without valid keys, secure agent-initiated checkout cannot be trusted.

How to fix

- Check the `signing_keys` array in the (valid) UCP profile — it must be non-empty, and each entry must be a JWK with `kid` (key identifier), `kty` (e.g. `EC`, `RSA`, `oct`), and `use` set to `"sig"`. - Generate the signing keypair server-side, publish only the public half in `signing_keys`, and never commit the private key to source control. - To rotate, append a new entry with a fresh `kid` and remove the old one only after the rollout window closes, so in-flight verifications don't break. - Verify: parse `/.well-known/ucp`'s `signing_keys` array and confirm every entry has `kid`, `kty`, and `use: "sig"` (RFC 7517 §4 for the full JWK spec; ucp.dev/specification/security for UCP's usage).

References

Last reviewed: 2026-09-01 · rule v1.0