Sortie de Sequoia 1.0, une implémentation Rust d'OpenPGP



Trois ans après le début du développement publié la version Sequoia 1.0. Il s'agit d'une implémentation Rust d'OpenPGP qui contient une bibliothèque étendue de fonctions et d'outils de ligne de commande. Version publiée après que les développeurs ont terminé le travail sur une API de bas niveau - elle vient de mettre en œuvre la norme OpenPGP entièrement.



Tout cela est écrit en Rust, et le package est distribué sous la licence GPLv2 +. Il existe des versions pour toutes les principales plates-formes - Linux, FreeBSD, Windows, macOS, Android et iOS. L'équipe de développement est petite, basée sur trois développeurs GnuPG de g10code. La même commande a créé le service de clé Hagrid, qui est utilisé dans le service keys.openpgp.org.... À propos de ce qu'est le paquet - sous la coupe.



L'objectif principal fixé par les développeurs est une refonte complète de l'architecture et l'utilisation de nouvelles techniques pour améliorer la sécurité et la fiabilité de la base de code.



En plus de la programmation sécurisée à l'aide du langage Rust, Sequoia utilise la protection contre les erreurs au niveau de l'API pour améliorer la sécurité. Un exemple est l'impossibilité d'exporter accidentellement le contenu d'une clé privée, car les opérations d'exportation par défaut nécessitent une sélection explicite. De plus, l'API garantit contre les étapes importantes manquantes lors de la mise à jour de la signature numérique. Cette opération doit mettre à jour l'heure de création, l'algorithme de hachage et l'émetteur de signature.



De plus, les développeurs connaissent très bien les lacunes de gnuPGP car ils sont les auteurs de ce projet. Dans la nouvelle version, ils ont essayé de s'en débarrasser. Par exemple, des mesures ont été prises pour éliminer la désynchronisation de la fonctionnalité des outils de ligne de commande avec la bibliothèque de fonctions. Certaines actions ne peuvent être effectuées que dans l'interface de l'utilitaire lui-même. De plus, le problème du couplage trop étroit entre les composants a disparu - c'est lui qui a rendu difficile la modification de la base de code. En conséquence, il y a confusion et complexité dans l'organisation des tests unitaires.



Les développeurs ont créé des outils d'inspection de paquets en les intégrant à l'analyseur. Ils vous permettent de simplifier le développement, le débogage et l'analyse des incidents. De plus, l'utilisateur a la possibilité d'analyser visuellement la structure des messages cryptés, y compris les signatures numériques et les clés.



Sequoia développe également l'utilitaire de ligne de commande sq avec prise en charge des sous-commandes de style Git, l'utilitaire sqv (en remplacement de gpgv ) pour vérifier les signatures détachées, l'utilitaire sqop (Stateless OpenPGP CLI) et la bibliothèque sequoia-openpgp . Les développeurs ont fourni des liaisons pour les langages C et Python.



La nouvelle version prend en charge la grande majorité des fonctionnalités spécifiques à la norme OpenPGP, notamment le cryptage, le décryptage, la création et la vérification des signatures numériques. En ce qui concerne les fonctionnalités avancées, il a ajouté la prise en charge de la vérification par des signatures numériques fournies séparément (signature détachée), l'adaptation pour l'intégration avec les gestionnaires de paquets (APT, RPM, fret, etc.) et la possibilité de limiter les signatures par des valeurs de seuil et l'heure.



Il existe également deux options d'API: de bas niveau et, par conséquent, de haut niveau. Quant au premier, il reproduit le plus fidèlement les capacités d'OpenPGP et des extensions associées. De plus, il fournit des appels pour le traitement des messages sans tampon, l'analyse et la sérialisation des champs dans les certificats et les clés. La deuxième API, de haut niveau, couvre à la fois les capacités d'assistance et spécifiques au domaine. Il s'agit de fonctions de stockage de clés publiques et d'accès au réseau. Malheureusement, l'API de haut niveau sera encore affinée - ce n'est qu'à un stade précoce de développement.



Fait intéressant, les développeurs n'étaient pas pressés avec la sortie, même si la plupart des fonctionnalités et capacités actuelles étaient prêtes il y a un an. Ils ont préféré vérifier et revérifier la base de code pour les bogues. De plus, l'équipe a rédigé une documentation complète avec des références à OpenPGP. Les développeurs n'ont pas oublié les cas d'utilisation.



La version 1.0 inclut désormais la caisse sequoia-openpgp et l'utilitaire de vérification de signature numérique sqv . Et voici le sq CLI et les API de haut niveau ne sont pas encore stabilisées et sont en cours de finalisation. Dans un proche avenir, l'équipe de développement prévoit d'intégrer des services de stockage de clés privées et publiques, d'ajouter la prise en charge des signatures numériques non chiffrées et la possibilité d'utiliser des expressions régulières pour déterminer des signatures fiables.






All Articles