Le projet gittuf développe un système de protection cryptographique des référentiels Git.

La version du projet gittuf 0.4 est disponible, qui développe un système hiérarchique de vérification du contenu des référentiels Git, permettant de minimiser les risques en cas de compromission des développeurs individuels ayant accès au référentiel. Gittuf fournit une couche de sécurité supplémentaire à Git et un ensemble d'utilitaires pour gérer les clés de tous les développeurs qui ont accès au référentiel et définir des règles d'accès aux branches, balises et fichiers individuels. Le code du projet est écrit en Go et distribué sous la licence Apache 2.0. Le projet est au stade de développement actif et a une qualité de version alpha, adaptée à l'expérimentation, mais pas encore prête pour la mise en œuvre en production.

Les informations et les artefacts qui fournissent une vérification supplémentaire des modifications sont stockés dans le magasin d'objets Git dans un espace de noms distinct spécifique à gittuf, permettant une compatibilité descendante avec les outils et services existants, notamment GitHub et GitLab. Lors de l'utilisation d'outils sans support gittuf, le référentiel reste entièrement accessible, mais la possibilité de vérifier de manière approfondie son intégrité est limitée. L'architecture gittuf est basée sur des éléments éprouvés du TUF (The Update Framework), utilisé pour protéger les processus de mise à jour dans des projets tels que Docker, Fuchsia, AGL (Automotive Grade Linux) et PyPI.

Le modèle de vérification gittuf est basé sur un système de propagation de confiance hiérarchique. La racine de confiance appartient au propriétaire du référentiel, qui peut générer des clés pour les participants au développement et définir les règles selon lesquelles les clés générées peuvent être utilisées. Gittuf vous permet de créer des règles granulaires flexibles qui définissent les autorisations de chaque développeur et la zone du référentiel dans laquelle il peut apporter des modifications. Par exemple, un développeur peut être autorisé à créer des balises, à apporter des modifications à des branches spécifiques ou à modifier uniquement des fichiers individuels dans le référentiel.

Les développeurs et les modifications qu'ils apportent sont identifiés par des clés et des signatures numériques. Gittuf vous permet de générer de nouvelles clés, de distribuer des clés en toute sécurité, d'effectuer une rotation périodique des clés, de révoquer les clés compromises, de gérer les listes d'accès (ACL) et les espaces de noms dans les référentiels Git. Gittuf tient également un journal d'état de référence de tous les changements (RSL - Reference State Log), dont l'intégrité et la protection contre les distorsions rétroactives sont assurées à l'aide d'une structure arborescente Merkle Tree - chaque branche vérifie toutes les branches et nœuds sous-jacents grâce au hachage d'arbre (ayant le hachage final, l'utilisateur peut vérifier l'exactitude de tout l'historique des opérations, ainsi que l'exactitude des états passés).

Pour vérifier les signatures numériques des commits et des balises, le propriétaire du référentiel génère et distribue des clés publiques directement associées au référentiel. Pour empêcher les attaquants de promouvoir les modifications créées après avoir accédé aux clés permettant de générer des signatures numériques de développeurs individuels, des mécanismes de révocation et de remplacement des clés sont utilisés. Les clés ont une durée de vie limitée et nécessitent une mise à jour constante pour éviter toute signature avec d'anciennes clés.

Source: opennet.ru

Ajouter un commentaire