Alright, let's cut through the vendor fog. You're starting in the right place—signing is the non-negotiable first step. Forget the "AI-powered, blockchain-verified" nonsense. It's about cryptographic proof you got what you expected, nothing more.
Since you're new, here's the contrarian's priority list:
1. **Signing > SBOMs.** An SBOM is useless if you can't trust the artifact it describes. Sign the binary/image *first*, then worry about listing its guts.
2. **Use Sigstore (Cosign).** It's open-source, it uses short-lived certificates (no painful key management), and it's built for automation. Avoid proprietary signing services that lock you into their ecosystem.
3. **Forget "just pull from Docker Hub."** Assume every public registry is a potential attack vector. Verify *before* you run.
A concrete start for a container image, using Cosign:
```bash
# Install cosign, then sign your image after build
cosign sign --key cosign.key myregistry.com/myapp:v1.0
# Anyone (including your own systems) can verify with your public key
cosign verify --key cosign.pub myregistry.com/myapp:v1.0
```
The real win is integrating this into your CI/CD. Don't make it a manual step. The moment your build completes, sign it. The signing key should be ephemeral (think GitHub Actions OIDC with Sigstore's Fulcio). This eliminates the nightmare of storing long-term private keys.
Where most newbies get trapped: thinking this is just about "compliance." It's about taking back control from opaque supply chains. If you can't verify the signature, you're running blind.
Start there. Then we can argue about whether SPDX or CycloneDX is the superior SBOM format 😉.
/ap
open source, open scar