TUF 1.0 est disponible, un framework pour organiser la livraison sécurisée des mises à jour

La version de TUF 1.0 (The Update Framework) a été publiée, fournissant des outils permettant de rechercher et de télécharger en toute sécurité les mises à jour. L'objectif principal du projet est de protéger le client contre les attaques typiques contre les référentiels et l'infrastructure, notamment en s'opposant à la promotion par des attaquants de mises à jour fictives créées après avoir accédé aux clés permettant de générer des signatures numériques ou de compromettre le référentiel. Le projet est développé sous les auspices de la Linux Foundation et est utilisé pour améliorer la sécurité de la livraison des mises à jour dans des projets tels que Docker, Fuchsia, Automotive Grade Linux, Bottlerocket et PyPI (l'inclusion de la vérification des téléchargements et des métadonnées dans PyPI est attendue dans le futur). futur proche). Le code d'implémentation de référence TUF est écrit en Python et distribué sous la licence Apache 2.0.

Le projet développe une série de bibliothèques, de formats de fichiers et d'utilitaires qui peuvent être facilement intégrés aux systèmes de mise à jour d'applications existants, offrant ainsi une protection en cas de compromission clé de la part des développeurs de logiciels. Pour utiliser TUF, il suffit d'ajouter les métadonnées nécessaires au référentiel, et d'intégrer les procédures fournies dans TUF pour télécharger et vérifier les fichiers dans le code client.

Le framework TUF se charge de rechercher une mise à jour, de télécharger la mise à jour et de vérifier son intégrité. Le système d'installation des mises à jour n'interfère pas directement avec les métadonnées supplémentaires, dont la vérification et le chargement sont assurés par TUF. Pour l'intégration avec les applications et les systèmes d'installation de mises à jour, une API de bas niveau pour accéder aux métadonnées et une implémentation d'une API client de haut niveau ngclient, prête à être intégrée aux applications, sont proposées.

Parmi les attaques que TUF peut contrer figurent la substitution d'anciennes versions sous couvert de mises à jour afin de bloquer la correction des vulnérabilités logicielles ou le retour de l'utilisateur à une ancienne version vulnérable, ainsi que la promotion de mises à jour malveillantes correctement signées à l'aide d'un clé, les attaques DoS sur les clients, telles que le remplissage du disque avec des mises à jour sans fin.

La protection contre la compromission de l'infrastructure du fournisseur de logiciels est obtenue en conservant des enregistrements séparés et vérifiables de l'état du référentiel ou de l'application. Les métadonnées vérifiées par TUF comprennent des informations sur les clés fiables, des hachages cryptographiques pour évaluer l'intégrité des fichiers, des signatures numériques supplémentaires pour vérifier les métadonnées, des informations sur les numéros de version et des informations sur la durée de vie des enregistrements. Les clés utilisées pour la vérification ont une durée de vie limitée et nécessitent une mise à jour constante pour se protéger contre la formation de signature par d'anciennes clés.

La réduction du risque de compromission de l'ensemble du système est obtenue grâce à l'utilisation d'un modèle de confiance partagée, dans lequel chaque partie est limitée uniquement au domaine dont elle est directement responsable. Le système utilise une hiérarchie de rôles avec leurs propres clés, par exemple, le rôle racine signe les clés des rôles responsables des métadonnées dans le référentiel, les données sur l'heure de génération des mises à jour et les assemblages cibles, à son tour, le rôle responsable des assemblages signe rôles associés à la certification des fichiers livrés.

TUF 1.0 est disponible, un framework pour organiser la livraison sécurisée des mises à jour

Pour se protéger contre la compromission des clés, un mécanisme de révocation et de remplacement rapides des clés est utilisé. Chaque clé individuelle ne contient que les pouvoirs minimaux nécessaires, et les opérations d'authentification nécessitent l'utilisation de plusieurs clés (la fuite d'une seule clé ne permet pas une attaque immédiate contre le client, et pour compromettre l'ensemble du système, les clés de tous les participants doivent être capturé). Le client ne peut accepter que les fichiers plus récents que les fichiers reçus précédemment, et les données sont téléchargées uniquement en fonction de la taille spécifiée dans les métadonnées certifiées.

La version publiée de TUF 1.0.0 propose une implémentation de référence entièrement réécrite et stabilisée de la spécification TUF que vous pouvez utiliser comme exemple prêt à l'emploi lors de la création de vos propres implémentations ou pour l'intégration dans vos projets. La nouvelle implémentation contient beaucoup moins de code (1400 4700 lignes au lieu de XNUMX XNUMX), est plus facile à maintenir et peut être facilement étendue, par exemple s'il est nécessaire d'ajouter la prise en charge de piles réseau, de systèmes de stockage ou d'algorithmes de chiffrement spécifiques.

Source: opennet.ru

Ajouter un commentaire