Introduction
Le format de fichier KDBX utilisé par KeePass, un gestionnaire de mots de passe réputé pour sa sécurité et sa stabilité, est basé sur le format XML depuis 2007. Cependant, ce format est devenu un point de friction pour les développeurs et les utilisateurs qui souhaitent adopter des fonctionnalités de sécurité et de convenance modernes. L'article explore les problèmes liés au format KDBX et propose que le format KeePass soit basé sur SQLite pour résoudre ces problèmes.
Contexte Technique
Un fichier KDBX est un fichier XML chiffré et authentifié qui contient les champs typiques d'un gestionnaire de mots de passe. Les pièces jointes sont stockées sous forme de données binaires, tandis que les icônes personnalisées sont stockées sous forme de chaînes de caractères base64 dans le fichier XML. Lorsqu'un fichier KDBX est mis à jour, l'ensemble du fichier est réécrit, ce qui peut entraîner des problèmes de corruption de données et de perte de données en cas de panne du programme ou d'arrêt de l'alimentation. Le format KDBX utilise également des attributs personnalisés pour stocker des données supplémentaires, ce qui peut entraîner des problèmes de compatibilité entre les différents clients KeePass.
Analyse et Implications
L'utilisation du format XML pour le fichier KDBX entraîne plusieurs problèmes, notamment la difficulté d'ajouter de nouvelles fonctionnalités sans causer de problèmes de compatibilité avec les anciens clients ou les clients tiers. Les développeurs ont dû utiliser des solutions ad hoc pour implémenter de nouvelles fonctionnalités, telles que le stockage de données de vérification de temps (TOTP) dans les attributs personnalisés. Cela a entraîné des problèmes de compatibilité entre les différents clients KeePass. De plus, le stockage des icônes personnalisées sous forme de chaînes de caractères base64 dans le fichier XML entraîne une augmentation de la taille du fichier et une diminution des performances. Les implications concrètes de ces problèmes incluent des difficultés pour les utilisateurs à gérer leurs mots de passe et des risques de corruption de données.
Perspective
Pour résoudre ces problèmes, il est proposé que le format KeePass soit basé sur SQLite, une base de données légère et flexible qui permet de stocker des données de manière plus efficace et plus sécurisée. L'utilisation de SQLite permettrait d'ajouter de nouvelles fonctionnalités sans causer de problèmes de compatibilité et de stocker les données de manière plus efficace, ce qui améliorerait les performances et la sécurité du gestionnaire de mots de passe. Cependant, il est important de noter que la mise en œuvre d'un nouveau format de fichier nécessiterait une planification et une coordination soigneuses pour assurer une transition en douceur pour les utilisateurs et les développeurs.