Cosign
Qu'est-ce que Cosign ?
CosignCLI open source du projet Sigstore pour signer, vérifier et attester des artefacts OCI et d'autres logiciels, en mode clé ou sans clé.
Cosign est l'outil utilisateur de la pile Sigstore. Il signe des images conteneurs, des artefacts OCI, des blobs, des SBOM et des attestations in-toto, et stocke les signatures à côté de l'artefact ou dans un registre OCI. En mode sans clé, il s'appuie sur Fulcio pour obtenir un certificat éphémère lié à une identité OIDC et enregistre la signature dans Rekor ; en mode clé, il utilise des clés classiques, des tokens matériels ou des clés gérées par un KMS. Les politiques de vérification peuvent exiger des identités de confiance (par exemple un workflow GitHub Actions précis), des reusable workflows ou des prédicats d'attestation. Cosign est l'outil de signature par défaut dans de nombreux pipelines CI et systèmes d'admission Kubernetes (Kyverno, Connaisseur, OPA Gatekeeper) pour imposer l'intégrité de la chaîne logicielle.
● Exemples
- 01
cosign sign --identity-token $OIDC_TOKEN ghcr.io/org/app:v1.2
- 02
Politique Kyverno vérifiant que les images de production sont signées par un workflow GitHub Actions précis.
● Questions fréquentes
Qu'est-ce que Cosign ?
CLI open source du projet Sigstore pour signer, vérifier et attester des artefacts OCI et d'autres logiciels, en mode clé ou sans clé. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.
Que signifie Cosign ?
CLI open source du projet Sigstore pour signer, vérifier et attester des artefacts OCI et d'autres logiciels, en mode clé ou sans clé.
Comment fonctionne Cosign ?
Cosign est l'outil utilisateur de la pile Sigstore. Il signe des images conteneurs, des artefacts OCI, des blobs, des SBOM et des attestations in-toto, et stocke les signatures à côté de l'artefact ou dans un registre OCI. En mode sans clé, il s'appuie sur Fulcio pour obtenir un certificat éphémère lié à une identité OIDC et enregistre la signature dans Rekor ; en mode clé, il utilise des clés classiques, des tokens matériels ou des clés gérées par un KMS. Les politiques de vérification peuvent exiger des identités de confiance (par exemple un workflow GitHub Actions précis), des reusable workflows ou des prédicats d'attestation. Cosign est l'outil de signature par défaut dans de nombreux pipelines CI et systèmes d'admission Kubernetes (Kyverno, Connaisseur, OPA Gatekeeper) pour imposer l'intégrité de la chaîne logicielle.
Comment se défendre contre Cosign ?
Les défenses contre Cosign combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Cosign ?
Noms alternatifs courants : cosign.
● Termes liés
- appsec№ 1044
Sigstore
Projet open source de la Linux Foundation qui facilite la signature, la vérification et la protection des artefacts logiciels en combinant clés éphémères, identités OIDC et journal de transparence.
- appsec№ 784
Signature de paquets
Application d'une signature cryptographique à un paquet logiciel pour que les consommateurs vérifient l'identité de l'éditeur et que l'artefact n'a pas été altéré après publication.
- appsec№ 870
Attestation de provenance
Déclaration signée et vérifiable par machine décrivant comment un artefact logiciel a été produit - source, système de build, paramètres, dépendances - pour que les consommateurs aient confiance en son origine.
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts : ensemble d'exigences à paliers publié par l'OpenSSF qui durcit progressivement la façon de construire, signer et vérifier les logiciels face aux manipulations de la chaîne d'approvisionnement.
- appsec№ 1069
Sécurité de la chaîne d'approvisionnement logicielle
Discipline qui protège chaque maillon de la chaîne de production logicielle - source, dépendances, build, signature, distribution et déploiement - contre les manipulations, le code malveillant et la perte d'intégrité.
- appsec№ 522
in-toto
Cadre ouvert qui atteste cryptographiquement chaque étape d'une chaîne d'approvisionnement logicielle pour que les consommateurs vérifient que l'artefact a été produit et manipulé exactement comme le propriétaire du projet l'a prévu.