Sigstore : le cœur fonctionnel désormais officiellement stable

Sigstore GA

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 venait alors 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 officiellement 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 supply chain logicielle 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, on les inscrit dans des « journaux de confiance » – au même titre que les clés dont ils 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 en 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 commits Git). É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 (gossip ; communication entre nœuds). 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