Disponibilité générale actée pour Sigstore : les trois briques fondamentales de ce « Let’s Encrypt du code » sont désormais stables.
« Le Let’s Encrypt du code rejoint la Fondation Linux ». Nous avions employé, en mars 2021, cette métaphore à propos de Sigstore. Le projet est alors venu de se doter de deux de ses briques fondamentales : Fulcio et Cosign. Elles s’ajoutaient à Rekor, disponible depuis la mi-2020.
Cosign fut la première à être considérée comme stable. C’était à l’été 2021. Les deux autres viennent tout juste d’atteindre ce stade. En parallèle, Sigstore annonce un SLO (objectif de niveau de service) de 99,5 % sur les serveurs publics ; et un support en 24/7.
La promesse n’a pas changé depuis la genèse du projet, avec Red Hat et Google en tête de gondole : sécuriser la chaîne d’approvisionnement logiciel en simplifiant la signature de code.
Sigstore s’apparente à ce que Let’s Encrypt est pour les sites internet, au sens où il fournit des certificats gratuits. Mais ces certificats (X.509) ont une particularité : ils sont éphémères. Dix minutes de validité en l’occurrence. Pour leur donner une valeur potentiellement intemporelle, sur les inscrits dans des « journaux de confiance » – au même titre que les clés dont elles dérivent.
Une telle approche est censée éviter les inconvénients de la gestion de secrets à long terme… et les risques qui peuvent en découler. Notamment la modification indésirable de certains de ces secrets qui seraient stockés dans des lieux insuffisamment sûrs.
Pas de blockchain pour Sigstore
La procédure d’émission de certificats s’appuie sur OpenID Connect pour assurer l’identification des utilisateurs. Fulcio joue le rôle d’autorité de confiance et assure la publication des preuves sur Rekor, qui prend la forme d’un registre public centralisé*. Les utilisateurs peuvent invoquer Cosign pour signer tout élément compatible OCI (et le composant Gitsign pour les engage Gite). Éventuellement en utilisant leur propre infrastructure à clés publiques. Des bibliothèques Go, Java, JavaScript, Python et Rust sont à disposition.
Kubernetes utilise Sigstore en production depuis mai dernier (sortie de la version 1.24). PyPi (dépôt officiel de Python) l’a aussi intégré. Les travaux sont en cours sur npm, sous la houlette de GitHub.
Ci-dessous, la cérémonie de signature de la clé racine. Elle évolue en rotation entre cinq organisations contribuant au projet Sigstore.
* Il fut question – sans suite pour le moment – de mettre en place un mécanisme de commérage. Quant à s’appuyer sur une blockchain, Google et consorts redoutent, entre autres, la fragilité des algorithmes de consensus face aux attaques par majorité.
Photo d’illustration © monsitj – Adobe Stock