Google a annoncĂ© les premiĂšres versions stables des composants du projet Sigstore, dĂ©sormais prĂȘt pour un dĂ©ploiement en production. Sigstore dĂ©veloppe des outils et des services de vĂ©rification logicielle utilisant des signatures numĂ©riques et la tenue d'un journal public attestant de l'authenticitĂ© des modifications (journal de transparence). Ce projet est dĂ©veloppĂ© sous l'Ă©gide d'une organisation Ă but non lucratif. Linux FondĂ©e par Google, Red Hat, Cisco, vmWare, GitHub et HP Enterprise, avec la participation de l'Open Source Security Foundation (OpenSSF) et de l'UniversitĂ© Purdue.
Sigstore peut ĂȘtre considĂ©rĂ© comme un Let's Encrypt pour le code, fournissant des certificats pour la signature numĂ©rique du code et des outils de vĂ©rification automatisĂ©e. GrĂące Ă Sigstore, les dĂ©veloppeurs peuvent gĂ©nĂ©rer des signatures numĂ©riques pour les artefacts liĂ©s aux applications, tels que les fichiers de version, les images de conteneur, les manifestes et les exĂ©cutables. Les donnĂ©es de signature sont enregistrĂ©es dans un journal public inviolable, utilisable Ă des fins de vĂ©rification et d'audit.
Au lieu de clĂ©s permanentes, Sigstore utilise des clĂ©s Ă©phĂ©mĂšres Ă durĂ©e de vie limitĂ©e, gĂ©nĂ©rĂ©es Ă partir d'identifiants vĂ©rifiĂ©s par les fournisseurs OpenID Connect (lors de la gĂ©nĂ©ration des clĂ©s nĂ©cessaires Ă la crĂ©ation d'une signature numĂ©rique, le dĂ©veloppeur s'authentifie via un fournisseur OpenID associĂ© Ă une adresse e-mail). L'authenticitĂ© des clĂ©s est vĂ©rifiĂ©e par un journal public et centralisĂ©, ce qui garantit que l'auteur de la signature est bien celui qu'il prĂ©tend ĂȘtre et que la signature a Ă©tĂ© gĂ©nĂ©rĂ©e par le mĂȘme participant responsable des versions prĂ©cĂ©dentes.
La prĂ©paration de Sigstore Ă la mise en Ćuvre repose sur la publication de deux composants clĂ©s : Rekor 1.0 et Fulcio 1.0, dont les API ont Ă©tĂ© dĂ©clarĂ©es stables et resteront rĂ©trocompatibles. Ces composants de service sont Ă©crits en Go et distribuĂ©s sous licence Apache 2.0.
Le composant Rekor intĂšgre une implĂ©mentation de journal pour le stockage de mĂ©tadonnĂ©es signĂ©es numĂ©riquement reflĂ©tant les informations du projet. Afin de garantir l'intĂ©gritĂ© des donnĂ©es et la protection contre toute corruption rĂ©troactive, une structure arborescente de Merkle est utilisĂ©e. Chaque branche vĂ©rifie toutes les branches et tous les nĆuds sous-jacents grĂące Ă un hachage partagĂ© (de type arborescence). GrĂące au hachage final, l'utilisateur peut vĂ©rifier l'exactitude de l'historique des transactions, ainsi que celle des Ă©tats antĂ©rieurs de la base de donnĂ©es (le hachage de vĂ©rification racine du nouvel Ă©tat de la base de donnĂ©es est calculĂ© en tenant compte de l'Ă©tat prĂ©cĂ©dent). Une API RESTful et une interface en ligne de commande sont fournies pour la vĂ©rification et l'ajout de nouveaux enregistrements.
Le composant Fulcio (SigStore WebPKI) inclut un systÚme de création d'autorités de certification (AC racine) qui émettent des certificats éphémÚres basés sur des adresses e-mail authentifiées via OpenID Connect. Le certificat a une durée de vie de 20 minutes, pendant laquelle le développeur doit générer une signature numérique (si le certificat tombe entre les mains d'un attaquant, il expirera). Le projet développe également la boßte à outils Cosign (Container Signing), conçue pour générer des signatures de conteneurs, vérifier les signatures et placer les conteneurs signés dans des référentiels conformes à l'OCI (Open Container Initiative).
La mise en Ćuvre de Sigstore amĂ©liore la sĂ©curitĂ© des canaux de distribution de logiciels et protĂšge contre les attaques visant Ă remplacer les bibliothĂšques et les dĂ©pendances (chaĂźne d'approvisionnement). L'un des principaux dĂ©fis de sĂ©curitĂ© des logiciels open source rĂ©side dans la difficultĂ© de vĂ©rifier la source du programme et le processus de compilation. Par exemple, la plupart des projets utilisent des hachages pour vĂ©rifier l'intĂ©gritĂ© d'une version, mais les informations nĂ©cessaires Ă l'authentification sont souvent stockĂ©es sur des systĂšmes non protĂ©gĂ©s et dans des dĂ©pĂŽts de code partagĂ©s. En les compromettant, les attaquants peuvent remplacer les fichiers nĂ©cessaires Ă la vĂ©rification et introduire des modifications malveillantes sans Ă©veiller les soupçons.
L'utilisation des signatures numĂ©riques pour la vĂ©rification des versions n'est pas encore gĂ©nĂ©ralisĂ©e en raison de la complexitĂ© de la gestion des clĂ©s, de la distribution des clĂ©s publiques et de la rĂ©vocation des clĂ©s compromises. Pour que la vĂ©rification soit pertinente, un processus fiable et sĂ©curisĂ© de distribution des clĂ©s publiques et des sommes de contrĂŽle est Ă©galement nĂ©cessaire. MĂȘme avec une signature numĂ©rique, de nombreux utilisateurs nĂ©gligent la vĂ©rification, car il faut du temps pour comprendre le processus et dĂ©terminer quelles clĂ©s sont fiables. Le projet Sigstore vise Ă simplifier et automatiser ces processus en fournissant une solution clĂ© en main et Ă©prouvĂ©e.
Source: opennet.ru
