Supply Chain Security

Package signing

Cloudsmith uses GPG or RSA signatures (where applicable) in addition to package checksums to detect tampering.

We calculate a signature for every file that is uploaded, but only some of the package formats make it available or use it. Only some of the formats also offer metadata signing.

For increased trust, you can also provide your own GPG key or RSA key for signing.

Key Support by Package Format

Package FormatKey TypeKey Use
AlpineRSAIndex
CargoNot Supported by Format
CocoaPodsNot Supported by Format
ComposerGPG
ConanNot Supported by Format
CRAN
DartNot Supported by Format
DebianGPGIndex
DockerRSAIndex
Go
GradleGPGIndex Package
Helm ChartsGPG
LuaRocks
MavenGPGIndex Package
npmGPG
NuGet
PythonGPG
RawGPG
RPMGPGIndex Package
sbtGPGIndex Package
Terraform ModulesNot Supported by Format
UnityGPG
VagrantGPG

Docker and Cosign

When a Docker image is uploaded to a repository, Cloudsmith automatically generates a Cosign signature using the repository’s ECDSA private key. Customers can download the corresponding ECDSA public key to verify the specific image, as below:

docker push docker.cloudsmith.io/<org>/<repo>/alpine:<sha256-checksum>

cosign verify --private-infrastructure=true --key public-ecdsa-key.key docker.cloudsmith.io/<org>/<repo>/alpine:<sha256-checksum>

See Docker Images: Signing and Verifying SBOMd with Cosign for more.

Docker image verification

Cloudsmith does not log to Rekor when generating signatures on image upload. When verifying these using cosign verify pass --private-infrastructure=true to prevent cosign querying the Rekor log.

As Docker images within Cloudsmith are predominantly private, when a cosign signature is automatically generated on image upload, Cloudsmith does not add any data to the Rekor log. The Rekor log contains a record of image names and corresponding public keys, and is used to enable software maintainers to record signed metadata, and for verifiers to monitor and query the log for an appropriate identity. When using cosign verify to verify cosign signatures generated by Cloudsmith, pass --private-infrastructure=true to ensure cosign does not query the Rekor log. If this parameter is not passed, the following warning will be displayed:

WARNING: "docker.cloudsmith.io/<org>/<repo>/alpine:<sha256-checksum> 
appears to be a private repository, please confirm 
uploading to the transparency log at "https://rekor.sigstore.dev"

Please note customers who create their own signatures using the cosign sign command, will be asked if they wish to upload a transparency log to Rekor.

Supported Keys

If a key is used which is not supported by Cosign, it will not be possible to generate the associated OCI image signature.

Cosign supports the following ECDSA curves:

  • NIST P-224 (secp224r1)
  • NIST P-256 (secp256r1, prime256v1)
  • NIST P-384 (secp384r1)
  • NIST P-521 (secp521r1)

If a key is used which is not supported by Cosign, Cloudsmith will not be able to generate the associated OCI image signature.