KeePass

KeePass
Description de l'image KeePass Logo (2016).svg.
Description de l'image Éditer une entrée.png.
Informations
Créateur Dominik Reichl (d)Voir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dernière version 1.42 ()[1],[2]
2.57.1 ()[3],[4]Voir et modifier les données sur Wikidata
Dépôt sourceforge.net/projects/keepass/filesVoir et modifier les données sur Wikidata
Écrit en C++ (version 1.x),
C# (version 2.x)
Système d'exploitation Microsoft Windows, Linux, macOS, Android, iOS, BlackBerry 10 et Berkeley Software DistributionVoir et modifier les données sur Wikidata
Environnement .NET Framework et MonoVoir et modifier les données sur Wikidata
Formats lus KDB (d) et KDBX (d)Voir et modifier les données sur Wikidata
Langues Français, anglais, chinois traditionnel, chinois simplifié et néerlandaisVoir et modifier les données sur Wikidata
Type Gestionnaire de mots de passeVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 2 ou ultérieureVoir et modifier les données sur Wikidata
Documentation keepass.info/help/base et keepass.coolVoir et modifier les données sur Wikidata
Site web keepass.infoVoir et modifier les données sur Wikidata

KeePass[5] Password Safe est un gestionnaire de mots de passe publié sous la licence libre GPL-2.0-or-later (que l'on pourrait traduire par licence publique générale GNU version 2.0 ou ultérieure), permettant de sauvegarder un ensemble de mots de passe dans une base de données chiffrée sous la forme d'un seul fichier dont l'extension est *.kdb ou *.kdbx[6] selon la version. Ce fichier de base de données s’ouvre avec un mot de passe maître ou avec d'autres méthodes d’authentification comme un fichier clé.

KeePass existe sous deux versions différentes. La première, destinée au grand public, utilise deux algorithmes de cryptographie : AES (avec une clé de 256 bits) et Twofish (avec des blocs de 128 bits et une clé de 256 bits). La seconde, destinée aux professionnels, utilise également deux algorithmes : AES (avec une clé de 256 bits) et ChaCha20 (RFC7539 avec une clé de 256 bits). D'autres algorithmes peuvent être ajoutés sur la version 2.x par l'intermédiaire de greffons : notamment Twofish, Serpent, GOST, et encore d'autres.

« Kee » vient de « Key » (qui signifie « clé » en anglais), et « Pass » vient de « Password » (qui signifie « mot de passe » en anglais).

Il existe deux versions du logiciel, KeePass 1.x et KeePass 2.x. La première est écrite en C++ pour une utilisation uniquement sous Windows tandis que la seconde est écrite en C#/C++ à partir de zéro. La version 2.x propose plus de fonctionnalités et peut être utilisée également sous d'autres systèmes d'exploitation. Des fonctions écrites en langage C sont également incorporées au logiciel.

En France, KeePass 2.x est intégré depuis 2013 à la liste du socle interministériel de logiciels libres préconisés par l’État[7] et la version 2.10 est certifiée par l'Agence nationale de la sécurité des systèmes d'information en [8].

En Allemagne, l'Office fédéral de la sécurité des technologies de l'information recommande le logiciel dans une note de destinée aux petites entreprises[9].

En , la Commission européenne soumet KeePass à un audit de sécurité lors du premier EU-FOSSA[10], puis en dans le cadre d'un bug bounty organisé lors de la troisième édition[11],[12].

Fonctionnalités

[modifier | modifier le code]
Boîte de dialogue "Ajouter une entrée" dans KeePass

Chaque mot de passe est représenté par une entrée dans la base de données qui prend la forme d'un fichier chiffré dont le suffixe est .kdb en version 1 et .kdbx en version 2. Une entrée contient plusieurs champs : un titre, un nom d'utilisateur, un mot de passe, une adresse (URL), des remarques, une pièce jointe pour la 1.x et plusieurs pièces jointes pour la 2.x (utiles pour chiffrer des informations secrètes). Un mécanisme permet également pour chaque entrée de rappeler au propriétaire de la base de données quand il doit changer un mot de passe. De plus, chaque entrée possède une information sur la date et l'heure de création, du dernier accès et de sa dernière modification.

KeePass s'installe nativement sous Windows, et – avec la plateforme Mono – sous macOS, Linux, FreeBSD et autres systèmes d'exploitation. La seconde version du logiciel ajoute plusieurs fonctionnalités : la première fonctionnalité offre la possibilité de lier un compte utilisateur Windows à une base de données (avec toujours la saisie du mot de passe maître et éventuellement l'ajout d'une clé sous forme de fichier), la deuxième permet d'incorporer plusieurs pièces jointes dans les entrées tandis que la première version n'en accepte qu'une seule, la troisième gère des déclencheurs, la quatrième c'est l'utilisation de paramètres substituables dans les champs d'une entrée, etc. D'autres clés d'authentification peuvent être ajoutées à sa clé principale intrinsèque d'ouverture de base de données de mots de passe par l'intermédiaire de greffons.

Des options permettent de chiffrer les mots de passe en mémoire vive de l'ordinateur, ou de masquer à l'écran le mot de passe par des astérisques. La principale faille[8] concerne le presse-papiers où le mot de passe réside en clair lors d'un « copier/coller » car aucune application ne sait y lire une donnée chiffrée. Afin d'atténuer ce problème, le mot de passe n'est conservé que temporairement dans le presse-papiers avant d'être automatiquement supprimé ; par défaut, respectivement après 10 secondes et 12 secondes en version 1.x et 2.x.

L'autre danger de KeePass, comme pour tout autre gestionnaire de mot de passe, c'est que la saisie du mot de passe maître de la base de données est susceptible d'être interceptée par un logiciel espion tel qu'un enregistreur de frappe. Un enregistreur de frappe peut intercepter les mots de passe entrés au clavier, voire chaque clic de souris sur un clavier virtuel en faisant des captures d'écran à chaque clic de souris.

Clé principale composée KeePass 2.x

De manière plus avancée, KeePass offre également la possibilité d'ouvrir le fichier *.kdb ou *.kdbx à l'aide d'un fichier de référence appelée « fichier clé » dont le contenu est utilisé tel un très long mot de passe. Enfin dans la version 2 de KeePass, l'utilisation du système d'authentification de Microsoft Windows est également prise en charge pour l'ouverture du fichier *.kdbx.

En version 2.x, ces trois méthodes d'accès peuvent s'utiliser de manière indépendante ou s'associer afin de renforcer la sécurité d'accès au fichier de base de données.

Synchronisation

[modifier | modifier le code]

Sur la version 2.x, la base de données peut être synchronisée sur un site distant par FTP, HTTP ou entre machine avec des montages disque. Ce qui permet d'avoir sa base de données à jour sur n'importe quelle installation du logiciel. La base de données peut être synchronisée avec un smartphone (BlackBerry, iPhone, Windows Phone 7 ou Android) à condition que l'application KeePass soit installée sur le smartphone. Le fichier peut alors être ouvert pour retrouver un mot de passe. Une application pour Pocket PC a également été développée.

Glisser et déposer

[modifier | modifier le code]

Il est possible de sélectionner avec la souris une information d'une entrée dans le nom d'une colonne et la faire glisser pour la recopier dans une fenêtre cible (par exemple : pour copier dans un premier temps le nom d'utilisateur et dans un second temps le mot de passe associé). Chaque information d'une entrée peut être glissée et déposée.

Saisie automatique

[modifier | modifier le code]
Un exemple de la fonction de saisie automatique de KeePass, qui est déclenchée par un raccourci clavier global

Un système de saisie automatique de l'identifiant et du mot de passe vers un site d'identification (URL) ou une application standard de Windows a été développé. On l'exécute par un raccourci clavier global (par défaut la suite de touches pressées simultanément Ctrl+Alt+A) ou en sélectionnant l'entrée dans la base de données, dont on ouvre le menu contextuel en cliquant droit sur l'entrée et l'on sélectionne « Accomplir la saisie automatique ». KeePass saisira alors automatiquement l'identifiant et le mot de passe dans la fenêtre de l'application ou du navigateur. La saisie automatique globale effectue une corrélation entre les titres des entrées et les titres des fenêtres de navigateur ou applications. Si plusieurs titres d'entrées sont similaires pour une application ciblée alors une boîte de dialogue s'affiche pour permettre à l'utilisateur de sélectionner l'entrée adéquate parmi la liste proposée. Il n'est pas nécessaire d'ajouter de greffon à KeePass pour l'utiliser avec les navigateurs internet, la saisie automatique permet d'être adaptée à tous les sites. En ouvrant une entrée (en double cliquant dessus), dans son onglet « Saisie automatique », on peut cocher la case d'« Obfuscation de saisie automatique à deux canaux» afin de parer tout enregistreur de frappe.

Historique des entrées

[modifier | modifier le code]

Sur KeePass 2.x, un historique des entrées est sauvegardé et accessible depuis l'entrée concernée ; cela permet de retrouver tous les mots de passe antérieurs. Le nombre d'entrées des historiques est paramétrable dans KeePass 2.x (en taille et en nombre). En revanche pour KeePass 1.x, les mots de passe des anciennes entrées sont sauvegardés dans le groupe Backup si cette option a été choisie à la création de la base de données sinon ils sont perdus.

Des greffons ont été développés autour de KeePass :

  • pour enregistrer une sauvegarde de la base de données à chacune de ses modifications ;
  • pour interfacer les trois principaux navigateurs du marché (Internet Explorer, Google Chrome, Mozilla Firefox) avec KeePass ;
  • pour exporter et importer entre gestionnaires de mots de passe différents du marché ;
  • pour synchroniser sa base de données sur du nuage pour par exemple interfacer KeePass entre des smartphones, tablettes et des ordinateurs ;
  • pour ajouter les protocoles SCP (Secure CoPy), SFTP (SSH File Transfer Protocol) et FTPS (FTP SSL/TLS) si l'on souhaite mettre la base de données sur un serveur et l'utiliser en multi-utilisateurs[13] ;
  • pour éviter de partager un secret entre plusieurs personnes, il est possible d'utiliser l'extension CertKeyProvider qui offre une protection par certificat au lieu d'un mot de passe[14].

Le code source des modules externes n'est pas garanti par le développeur de KeePass et n'est pas contrôlé lors des audits de sécurité qui portent uniquement sur KeePass ; ce qui représente un risque puisque ces greffons ont accès à la base de données[15].

Générateur de mots de passe

[modifier | modifier le code]
Interface utilisateur du générateur de mots de passe

Chaque nouvelle saisie d'un mot de passe pour une entrée quelconque peut être générée (sur une longueur définie par l'utilisateur) par un générateur de mots de passe aléatoires qui combine tous les caractères ANSI (U+0080 à U+00FF) à l'exception des caractères de contrôle et non imprimables.

Les deux versions de KeePass existent en version portable, c'est-à-dire qu'elles peuvent être utilisées sur une clé USB (ou autre support de stockage amovible) sans nécessiter d'installation du logiciel sur un système d'exploitation. En revanche, KeePass 1.x nécessite GDI+ sur des systèmes Windows plus anciens que Windows XP et KeePass 2.x nécessite l'installation du Microsoft .NET Framework 2.0.

Les mots de passe peuvent être importés d'une multitude d'autres gestionnaires de mots de passe depuis un format TXT ou CSV en version 1.x et, TXT, CSV ou XML en version 2.x, de KeePass 1.x vers KeePass 2.x et réciproquement. Des greffons ont été développés pour importer automatiquement les entrées de mots de passe d'autres gestionnaires de mots de passe.

Une base de données de KeePass 1.x peut être exportée au format HTML, CSV, XML ou TXT. Une base de données de KeePass 2.x peut être exportée au format HTML, CSV, XML ou au format de la base de données de KeePass 1.x (mais dans ce cas, les pièces jointes ne peuvent être exportées).

La liste des URL de chacune des entrées peut être exportée dans les favoris de Windows.

Usages multi-utilisateurs

[modifier | modifier le code]

Le programme possède également des fonctions qui lui permettent d'être utilisé entre plusieurs utilisateurs avec la gestion des accès multiples en combinant à la fois les modifications saisies simultanément par deux utilisateurs sur la même base de données ouverte dans un répertoire partagé sur le réseau informatique. La version 1.x fait un verrouillage style Office et ne possède pas de synchronisation possible contrairement à la version 2.x qui en possède une qui dit au moment de la fusion que s'il y a un conflit (c'est-à-dire que si plusieurs utilisateurs ont modifié la même entrée), alors KeePass 2.x utilise la dernière version basée sur le temps de dernière modification. Sur KeePass 2.x, une stratégie d'utilisation de l'application peut être élaborée, à l'aide premièrement de fichiers XML comportant les paramètres de configuration (locale, globale ou imposée) du logiciel pour les utilisateurs et secundo la configuration des droits d'accès en lecture seule ou lecture/écriture à ces fichiers du système de fichier (par exemple : NTFS). La configuration locale est propre à chaque utilisateur, la globale est partagée, et celle imposée ne peut être modifiée que par son administrateur.

Les possibilités du champ d'adresse (URL)

[modifier | modifier le code]

Le champ d'adresse prend bien sûr en charge les URL. Il prend réellement en charge de nombreux protocoles différents (pas seulement HTTP) et prend en charge l'exécution de lignes de commande Windows par le protocole virtuel cmd://. Le champ comporte également un puissant moteur de substitution, remplaçant les codes par d'autres champs (nom d'utilisateur, mot de passe, etc.) d'une entrée.

Les possibilités de la ligne de commande

[modifier | modifier le code]

KeePass 2.x permet d'ouvrir des fichiers .kdbx en transmettant le nom de fichier au fichier exécutable de KeePass. Il peut également envoyer le mot de passe de la base de données et l'emplacement du fichier clé par une ligne de commande. On peut également utiliser la ligne de commande pour présélectionner un fichier clé et n'avoir à saisir que le mot de passe maître.

Scénariser

[modifier | modifier le code]

Il existe trois façons d'automatiser KeePass 2.x : les opérations de commande unique, les fichiers de script KPS et les scripts PowerShell. Tout ce qui peut être réalisé avec l'interface graphique du logiciel peut également l'être avec des scripts.

Certification

[modifier | modifier le code]

La version 2.10 est reconnue par une Certification de Sécurité de Premier Niveau par l'autorité française l'ANSSI[16],[8]. Cependant, des vulnérabilités ont depuis été découvertes puis corrigées dans les versions suivantes (2.13 et 2.33)[17].

KeePass est publié par défaut avec une interface en anglais. On peut ensuite ajouter une langue ou plusieurs langues en téléchargeant les fichiers de langue depuis le site officiel. Le fichier d'aide en local du logiciel (fichier KeePass.chm) a également été traduit en français que ce soit pour sa version 1.x comme pour sa version 2.x.

L'interface a été traduite dans une cinquantaine de langues. Les traducteurs bénévoles sont en relation avec l'auteur du logiciel. Les fichiers de traductions sont disponibles sur la page des traductions du site officiel[18]. Les fichiers ont le suffixe .lng (non compressé) en 1.x et .lngx (compressé avec 7-Zip) en 2.x.

Recommandations

[modifier | modifier le code]

Vérifier que l'on n'ait pas d'enregistreur de frappe installé sur son poste de travail qui pourrait intercepter un mot de passe dans le presse-papiers ou entré au clavier notamment quand on utilise un ordinateur au travail, dans un cybercafé ou un taxiphone.

Il existe des logiciels pour déchiffrer le contenu d'une base de données KeePass : KeeCracker, Keepass-Self-Bruteforce et keepass2john, mais leur efficacité dépend pour beaucoup des informations que l'utilisateur peut leur transmettre.

Windows 10 v1809 a introduit une fonction de partage de l'historique du presse-papiers vers le nuage permettant une plus grande exposition des mots copier/coller lors de l'usage de KeePass[19].

Applications dérivées et alternatives à KeePass

[modifier | modifier le code]

Il existe de nombreuses implémentations multi-plates-formes de KeePass[20] et dont les bases de données sont généralement compatibles.

  • KeePassXC est un fork communautaire sous licence GPL et qui reprend le projet KeePassX (dont le développement était très peu actif depuis )[21]. Il peut être installé sous Linux, macOS et Windows[22].
  • WinPass, portage pour Windows 8/10 Mobile.
  • KeePassB pour BlackBerry.
  • KeePassDroid et Keepass2Android, portages pour Android.
  • KyPass pour iPhone/iPad, un fork de MyKeePass avec support de Dropbox.
  • MacPass pour macOS.
  • KeeWeb, une application web pour accéder à une base de données KeePass depuis n'importe quel appareil et permettant la synchronisation avec Dropbox[15],[23].

Articles connexes

[modifier | modifier le code]

Logiciels similaires

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Sur les autres projets Wikimedia :

Notes et références

[modifier | modifier le code]
  1. « KeePass 1.42 released »,
  2. « KeePass: 1.42 released »,
  3. « KeePass: 2.57.1 released »,
  4. « KeePass: 2.57.1 released »,
  5. Prononciation : /ˈkiː.pæs/.
  6. (en) « KDBX 4 », sur keepass.info (consulté le ).
  7. Xavier Berne, « L’État renouvelle son socle interministériel de logiciels libres », sur Nextinpact, (consulté le ).
  8. a b et c « Rapport de certification ANSSI-CSPN-2010/07 » [PDF], sur ANSSI, (consulté le ).
  9. (de) « Sichere Nutzung von PCs unter Microsoft Windows 7 - Empfehlungen für kleine Unternehmen und Selbstständige » [« Utilisation sécurisée des PC sous Microsoft Windows 7 - recommandations pour les petites entreprises et les indépendants »] [PDF], sur BSI, (consulté le ).
  10. Julien Lausson, « Mots de passe : le code source de KeePass audité pour l’UE », sur Numerama, (consulté le ).
  11. Thierry Noisette, « L’Union européenne finance la chasse aux bugs dans 15 logiciels libres », sur ZDNet, (consulté le ).
  12. (en) « EU-FOSSA - KeePass », sur www.intigriti.com/, (consulté le ).
  13. (en) « Plugin IOProtocolExt », sur keepass.info (consulté le ).
  14. (en) « Plugin CertKeyProvider », sur keepass.info (consulté le ).
  15. a et b Vincent Hermann, « KeePass : plongée dans un gestionnaire de mots de passe puissant, mais plus exigeant », sur Nextinpact, (consulté le ).
  16. « Produits certifiés CSPN », sur ANSSI, (consulté le )
  17. (en) « Keepass : security vulnerabilities », sur CVE details (consulté le )
  18. (en) « Translations », sur keepass.info (consulté le ).
  19. (en) « Known issues that are out of scope » [« Problèmes connus en dehors du champ d'investigation »], sur intigriti.com, (consulté le ) : « Anything related to the cloud clipboard and the clipboard history that is introduced by Windows 10 1809. We are aware of the fact that turning on these features (which are off by default) is problematic in conjunction with copying passwords to the clipboard, and a solution will be implemented in one of the next KeePass versions »
  20. (en) « Downloads - KeePass », sur keepass.info (consulté le ).
  21. « Site de développement de KeePassX », sur Github.com (consulté le )
  22. « keepassx - Wiki ubuntu-fr », sur ubuntu-fr.org, (consulté le ).
  23. Manuel Dorne, « KeeWeb – Un client web pour KeePass », sur korben.info, (consulté le ).