Annonce du système de vérification cryptographique Sigstore

Google a annoncé la création des premières versions stables des composants qui forment le projet Sigstore, déclaré approprié pour créer des implémentations fonctionnelles. Sigstore développe des outils et des services de vérification des logiciels à l'aide de signatures numériques et de la tenue d'un journal public confirmant l'authenticité des modifications (journal de transparence). Le projet est développé sous les auspices de l'organisation à but non lucratif Linux Foundation par Google, Red Hat, Cisco, vmWare, GitHub et HP Enterprise avec la participation de l'organisation OpenSSF (Open Source Security Foundation) et de l'Université Purdue.

Sigstore peut être considéré comme Let's Encrypt for code, fournissant des certificats pour signer numériquement le code et des outils pour automatiser la vérification. Avec Sigstore, les développeurs peuvent signer numériquement des artefacts liés aux applications tels que des fichiers de version, des images de conteneurs, des manifestes et des exécutables. Le matériel de signature est reflété dans un journal public infalsifiable qui peut être utilisé à des fins de vérification et d’audit.

Au lieu de clés permanentes, Sigstore utilise des clés éphémères de courte durée, qui sont générées sur la base d'informations d'identification confirmées par les fournisseurs OpenID Connect (au moment de générer les clés nécessaires pour créer une signature numérique, le développeur s'identifie via le fournisseur OpenID lié à un e-mail). L'authenticité des clés est vérifiée à l'aide d'un journal public centralisé, qui permet de vérifier que l'auteur de la signature est exactement celui qu'il prétend être, et que la signature a été générée par le même participant qui était responsable des versions précédentes.

La préparation de Sigstore pour la mise en œuvre est due à la formation de versions de deux composants clés - Rekor 1.0 et Fulcio 1.0, dont les interfaces logicielles sont déclarées stables et continueront d'être rétrocompatibles. Les composants du service sont écrits en Go et distribués sous la licence Apache 2.0.

Le composant Rekor contient une implémentation de journal pour stocker des métadonnées signées numériquement reflétant des informations sur les projets. Pour garantir l'intégrité et protéger contre la corruption des données après coup, une structure arborescente Merkle Tree est utilisée, dans laquelle chaque branche vérifie toutes les branches et nœuds sous-jacents via un hachage conjoint (arborescent). Disposant du hachage final, l'utilisateur peut vérifier l'exactitude de tout l'historique des opérations, ainsi que l'exactitude des états passés 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 passé ). Une API RESTful est fournie pour la vérification et l'ajout de nouveaux enregistrements, ainsi qu'une interface de ligne de commande.

Le composant Fulcio (SigStore WebPKI) comprend un système de création d'autorités de certification (CA racine) qui émettent des certificats de courte durée basés sur des e-mails authentifiés via OpenID Connect. La durée de vie du certificat est de 20 minutes, pendant lesquelles le développeur doit avoir le temps de générer une signature numérique (si le certificat tombe ultérieurement entre les mains d'un attaquant, il sera déjà expiré). De plus, le projet développe la boîte à outils Cosign (Container Signing), conçue pour générer des signatures pour les conteneurs, vérifier les signatures et placer les conteneurs signés dans des référentiels compatibles avec OCI (Open Container Initiative).

La mise en œuvre de Sigstore permet d'augmenter la sécurité des canaux de distribution des programmes et de se protéger contre les attaques visant à substituer des bibliothèques et des dépendances (supply chain). L'un des principaux problèmes de sécurité des logiciels open source est la difficulté de vérifier la source du programme et de vérifier le processus de construction. Par exemple, la plupart des projets utilisent des hachages pour vérifier l'intégrité d'une version, mais souvent les informations nécessaires à l'authentification sont stockées sur des systèmes non protégés et dans des référentiels de code partagés, ce qui permet aux attaquants de compromettre les fichiers nécessaires à la vérification et d'introduire des modifications malveillantes. sans éveiller les soupçons.

L'utilisation de signatures numériques pour la vérification des versions ne s'est pas encore généralisée en raison des difficultés liées à la gestion des clés, à la distribution des clés publiques et à la révocation des clés compromises. Pour que la vérification ait un sens, il est en outre nécessaire d'organiser un processus fiable et sécurisé de distribution des clés publiques et des sommes de contrôle. Même avec une signature numérique, de nombreux utilisateurs ignorent la vérification car ils doivent passer du temps à apprendre le processus de vérification et à comprendre quelle clé est digne de confiance. Le projet Sigstore tente de simplifier et d'automatiser ces processus en fournissant une solution prête à l'emploi et éprouvée.

Source: opennet.ru

Ajouter un commentaire