Signer des artefacts logiciels, c’est bien. Mais gérer des clés cryptographiques sur le long terme ? C’est un cauchemar opérationnel : rotation, stockage sécurisé, révocation, distribution des clés publiques…
Sigstore résout ce problème fondamental avec la signature keyless : vous signez avec votre identité (OIDC), pas avec une clé que vous devez protéger. Chaque signature est enregistrée dans un log de transparence public qui garantit l’auditabilité et la non-répudiation.
Pourquoi Sigstore change la donne
Section intitulée « Pourquoi Sigstore change la donne »Le problème de la gestion des clés
Section intitulée « Le problème de la gestion des clés »Avant Sigstore, signer un artefact nécessitait de :
- Générer une paire de clés (RSA, ECDSA…)
- Protéger la clé privée (HSM, KMS, Vault…)
- Distribuer la clé publique (comment vos utilisateurs la récupèrent-ils ?)
- Gérer la rotation (tous les ans ? tous les 2 ans ?)
- Gérer la révocation (que faire si la clé est compromise ?)
- Maintenir la confiance (comment prouver que la clé appartient bien à vous ?)
Chaque étape est une source potentielle d’erreur ou de compromission.
La solution Sigstore
Section intitulée « La solution Sigstore »| Approche traditionnelle | Approche Sigstore |
|---|---|
| Clé privée à protéger pendant des années | Clé détruite après 10 minutes |
| Rotation complexe et manuelle | Pas de rotation (certificat éphémère) |
| Révocation problématique | Pas de révocation nécessaire |
| Distribution des clés publiques | Identité vérifiée par OIDC |
| Confiance basée sur la clé | Confiance basée sur l’identité + log public |
L’architecture Sigstore
Section intitulée « L’architecture Sigstore »Sigstore est un projet de l’OpenSSF (Open Source Security Foundation, Linux Foundation) composé de quatre briques complémentaires qui fonctionnent ensemble.
Vue d’ensemble
Section intitulée « Vue d’ensemble »Les quatre composants
Section intitulée « Les quatre composants »Comment fonctionne la signature keyless
Section intitulée « Comment fonctionne la signature keyless »-
Authentification OIDC
Vous vous authentifiez via un provider OIDC (GitHub, Google, Microsoft, GitLab…). C’est la même authentification que vous utilisez pour vous connecter à ces services.
-
Délivrance du certificat (Fulcio)
Fulcio vérifie votre token OIDC et génère un certificat X.509 éphémère lié à votre identité. Ce certificat contient votre email (ou l’identité du workflow CI/CD) et expire après 10 minutes.
-
Signature de l’artefact (Cosign/gitsign)
L’outil de signature utilise la clé privée associée au certificat pour signer votre artefact. La clé privée est immédiatement détruite après usage.
-
Enregistrement (Rekor)
La signature est envoyée à Rekor qui l’enregistre dans un log immuable avec un timestamp RFC3161. Même si le certificat expire, la signature reste vérifiable grâce à cette preuve temporelle.
-
Vérification
N’importe qui peut vérifier que la signature est valide, qu’elle a été créée pendant la période de validité du certificat, et qu’elle est enregistrée dans Rekor (non-répudiation).
Les logs de transparence
Section intitulée « Les logs de transparence »Le concept clé
Section intitulée « Le concept clé »Un log de transparence est un registre public où chaque entrée est cryptographiquement liée aux précédentes (arbre de Merkle). Cette structure garantit que :
- Personne ne peut modifier une entrée passée sans que ce soit détectable
- Personne ne peut supprimer une entrée
- N’importe qui peut vérifier qu’une entrée existe dans le log
Pourquoi c’est révolutionnaire
Section intitulée « Pourquoi c’est révolutionnaire »| Sans log de transparence | Avec Rekor |
|---|---|
| Impossible de prouver quand une signature a été créée | Timestamp cryptographique |
| Si quelqu’un signe en votre nom, comment le savoir ? | Toutes vos signatures sont auditables |
| La révocation d’une clé est complexe | Les signatures passées restent valides |
| Confiance aveugle dans le signataire | Traçabilité publique |
Pour comprendre en détail le fonctionnement des arbres de Merkle et des preuves d’inclusion, consultez le guide Rekor.
Instances publiques vs privées
Section intitulée « Instances publiques vs privées »Sigstore propose des instances publiques gratuites pour l’écosystème open source, mais peut aussi être déployé en privé.
Instances publiques
Section intitulée « Instances publiques »| Service | URL | SLA | Usage |
|---|---|---|---|
| Fulcio | fulcio.sigstore.dev | 99.5% | Certificats OIDC |
| Rekor | rekor.sigstore.dev | 99.5% | Log de transparence |
| Rekor Search | search.sigstore.dev | — | Interface web |
Déploiement privé
Section intitulée « Déploiement privé »Pour les environnements qui nécessitent confidentialité, air-gapped ou contrôle total, vous pouvez déployer votre propre stack Sigstore. Consultez le guide de déploiement privé Rekor.
Quel outil utiliser ?
Section intitulée « Quel outil utiliser ? »Que voulez-vous signer ?│├─► Images conteneur ──────────────► Cosign│├─► Commits Git ───────────────────► gitsign│├─► Fichiers binaires / archives ──► Cosign (blob signing)│├─► SBOM / attestations ───────────► Cosign attest│└─► Politiques supply chain ───────► in-toto + CosignIntégration CI/CD
Section intitulée « Intégration CI/CD »GitHub Actions
Section intitulée « GitHub Actions »GitHub Actions fournit nativement des tokens OIDC compatibles Sigstore :
name: Build and Sign
on: push: tags: ['v*']
# Permissions minimales au top-levelpermissions: contents: read
jobs: build-sign: runs-on: ubuntu-24.04
# Permissions spécifiques au job permissions: contents: read packages: write # Pour push vers GHCR id-token: write # Pour OIDC Sigstore attestations: write # Pour GitHub Attestations
steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
- name: Install Cosign uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
- name: Build and push id: build uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: push: true tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }} provenance: true # Génère l'attestation SLSA sbom: true # Génère le SBOM avec Syft
- name: Generate SLSA attestation uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0 with: subject-name: ghcr.io/${{ github.repository }} subject-digest: ${{ steps.build.outputs.digest }} push-to-registry: true
- name: Sign image run: | IMAGE="ghcr.io/${{ github.repository }}@${{ steps.build.outputs.digest }}" cosign sign --yes "${IMAGE}"
# Vérification immédiate cosign verify \ --certificate-identity-regexp="https://github.com/${{ github.repository }}" \ --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \ "${IMAGE}"Pour plus de détails sur les attestations SBOM et l’intégration Kubernetes, consultez le guide Cosign.
Autres plateformes
Section intitulée « Autres plateformes »| Plateforme | Support OIDC | Documentation |
|---|---|---|
| GitHub Actions | ✅ Natif | guide Cosign |
| GitLab CI | ✅ Natif | guide gitsign |
| Google Cloud Build | ✅ Natif | docs.sigstore.dev |
| CircleCI | ✅ Disponible | circleci.com |
Sigstore et SLSA
Section intitulée « Sigstore et SLSA »SLSA (Supply chain Levels for Software Artifacts) définit des niveaux de maturité pour la sécurité supply chain. Sigstore est l’outil de référence pour atteindre ces niveaux :
| Niveau SLSA | Exigence | Outil Sigstore |
|---|---|---|
| Build L1 | Provenance existe | Cosign (signature) |
| Build L2 | Provenance signée | Cosign + Fulcio |
| Build L3 | Build isolé, provenance non-forgeable | Cosign + attestations in-toto |
Pour des attestations avancées, combinez Sigstore avec in-toto.
Adoption dans l’industrie
Section intitulée « Adoption dans l’industrie »Qui utilise Sigstore ?
Section intitulée « Qui utilise Sigstore ? »- npm : 2M+ signatures/semaine depuis 2023
- PyPI : Trusted Publishers (OIDC natif)
- Kubernetes : toutes les releases signées
- GitHub : attestations de provenance
- Homebrew : signatures des formules
- Wolfi/Chainguard : toutes les images signées
Statistiques Rekor (2025)
Section intitulée « Statistiques Rekor (2025) »Le log public contient plus de 100 millions d’entrées, avec une croissance de ~500K signatures/jour.
Sécurité et limites
Section intitulée « Sécurité et limites »Bonnes pratiques de sécurité
Section intitulée « Bonnes pratiques de sécurité »Permissions minimales
Définissez permissions: au niveau workflow avec contents: read par défaut,
puis accordez des permissions spécifiques au niveau job.
Actions pinnées par SHA
Utilisez toujours des SHA de commit pour les actions tierces :
uses: actions/checkout@8e8c483... # v6.0.1
Vérification post-signature
Toujours vérifier la signature immédiatement après l’avoir créée pour détecter les problèmes tôt.
Attestations SLSA
Utilisez actions/attest-build-provenance pour atteindre SLSA Build L3 et
faciliter la vérification avec gh attestation verify.
Ce que Sigstore garantit
Section intitulée « Ce que Sigstore garantit »| Garantie | Explication |
|---|---|
| Authenticité | L’artefact a été signé par l’identité déclarée |
| Intégrité | L’artefact n’a pas été modifié depuis la signature |
| Non-répudiation | La signature est enregistrée publiquement |
| Horodatage | On sait quand la signature a été créée |
Ce que Sigstore ne garantit PAS
Section intitulée « Ce que Sigstore ne garantit PAS »| Non-garantie | Explication |
|---|---|
| Qualité du code | Un artefact signé peut contenir des bugs ou failles |
| Intentions | Le signataire peut être malveillant |
| Sécurité du build | Sigstore ne protège pas le pipeline de build |
À retenir
Section intitulée « À retenir »- Keyless = pas de clé à gérer : certificat éphémère basé sur OIDC
- Quatre composants : Fulcio (identité) + Rekor (transparence) + Cosign + gitsign
- Log de transparence : toutes les signatures sont publiques et auditables
- Adoption massive : npm, PyPI, Kubernetes, GitHub utilisent Sigstore
- SLSA-ready : atteint Build L2 nativement, L3 avec attestations
Guides détaillés
Section intitulée « Guides détaillés »Ressources externes
Section intitulée « Ressources externes »- Documentation officielle Sigstore
- Rekor Search — Explorer le log public
- Sigstore sur GitHub
- Blog Sigstore
- OpenSSF — Fondation mère du projet