Comparaison Keepass et Pass

mars 2018 modifié dans Technique

J'ai décidé ces dernières semaines à me choisir enfin un gestionnaire de mots de passe et je vais vous livrer le fruit de mes comparaisons, des fois que ça en intéresserait d'autres.

Tout d'abord, j'ai directement exclu les gestionnaires non-open source (ciao Lastpass) ainsi que ceux qui fonctionnent via un serveur (ciao bitwarden).
La liste s'est donc très vite retrécie aux écosystèmes Keepass et Pass. La comparaison que je vais faire va également être principalement tournée autour de l'utilisation Web (forums, réseaux, emails, ...) , je ne compte pas stocker mes codes bancaires avec ça ^^

Keepass

https://keepass.info/
https://www.keepassx.org/
https://keepassxc.org/
https://keeweb.info/

Stockage

Keepass fait appel à un fichier de données de type Sqlite chiffré. Vous aurez donc un seul fichier, facile à synchroniser (Syncthing, rsync, ...) ou à copier entre plusieurs appareils. A noter que certains clients Keepass peuvent accéder en même temps à une seule base stocké sur un disque partagé.

Les logins, mots de passe, noms et urls sont stockés dans ce fichier. Vous pouvez associer des icônes pour les différencier plus vite, faire des groupes et sous-groupes, c'est agréable visuellement. On peut ajouter des tags et mener des recherches.
De l'extérieur, on ne voit que le fichier, impossible donc de connaître vos identifiants ni les sites sur lesquels vous avez un compte sans le mot de passe de votre fichier Keepass.

Clients

Il existe une multitude de clients pour les bases Keepass, Keepass étant la version Windows originelle, Keepass X et Keepass XC étant multiplateforme (alors que Keepass nécessite Mono sous Linux). Bref, vous avez le choix des styles et des couleurs, par exemple Keeweb propose une interface qui tranche avec les clients précédents. Il y a aussi des clients Android et IOs
Cette multitude de clients représente également une sécurité : même si le développement d'un client s'arrête, vous aurez tjs d'autres clients pour continuer à utiliser votre base (ou l'exporter sur un autre gestionnaire de mots de passe).

Fonctionnalités et intégration navigateur (sous Linux)

Je vais me concentrer sur Keepass XC : il a l'avantage d'intégrer directement KeepassHttp (qui est normalement un plugin à part) qui permet de faire le lien entre l'extension Firefox KeepassHttp-Connector et votre base Keepass. Ainsi, KeepassHttp est mis à jour directement avec Keepass XC et cela réduit à seulement deux le nombre de programmes à maintenir. Keeweb dispose également de ce plugin intégré.
L'équipe XC développe également KeepassXC-Browser (actuellement en bêta) qui vise à communiquer directement avec Keepass XC sans passer par un http local. Je n'ai pas testé cette extension, je vais concentrer sur Http-Connector :

Il faut que Keepass XC soit lancé afin que KeepassHttp-Connector puisse le détecter et proposer la saisie des mots de passe. Deux utilisations sont alors possibles : vous déverrouillez votre base Keepass XC et l'extension pourra alors vous proposer de remplir les champs utilisateurs et mots de passe selon les urls indiquées dans votre base de données tant que celle-ci sera déverouillée. En gros, le principe revient à avoir votre base déverrouillée en permanence et à laisser l'autocomplétion faire son job.
OU, vous configurez Keepass XC pour se refermer après quelques secondes. Chaque fois que vous allez sur une page de login, il faut alors cliquer sur l'icône de Keepass-Http Connector qui vous renverra alors sur Keepass XC pour déverrouiller votre base et y chercher un éventuel login correspondant. À noter qu'évidemment, lorsque votre base est verrouillée, l'extension ne sait pas sur quels sites vous avez des identifiants, et ne peut donc pas vous proposer toute seule de les remplir.

Autre fonctionnalité : Keepass XC propose la saisie automatique sur vos logiciels, c'est à dire qu'il va simuler à votre place la saisie du login/tab/mot de passe dans les fenêtres à votre place (sous Linux, je ne sais pas si c'est le cas sous Windows).

Réponses

  • (je viens de voir qu'il y a une limite à la taille des posts, il faut que je scinde en deux)

    Pass

    https://www.passwordstore.org/

    Stockage

    Pass stocke les mots de passe dans des fichiers texte chiffrés avec gpg/pgp. Chaque fichier correspond à un mot de passe. Le fichier texte peut également inclure le login, l'url du site ou toutes les autres informations que vous désirez. Vous pouvez ensuite organiser vos fichiers en dossiers et les nommer comme vous le souhaitez. Par exemple, certains vont utiliser la hiérarchie ./forums/cyrille-borne.gpg, plaçant le login dans le fichier lui-même. D'autres vont préférer ./forums/cyrille-borne.com/Balistic.gpg. C'est comme vous le souhaitez.
    Contrairement à Keepass, un adversaire qui récupère votre base de mots de passe saura donc sûrement sur quels sites vous avez des identifiants. L'avantage étant cependant que vous pouvez parcourir et réorganiser vos mots de passe sans forcément accéder à ceux-ci.

    A noter que vous pouvez spécifier plusieurs clefs de chiffrement pour les sous-dossier, cela rend donc votre base "multi-utilisateurs" (mettons pour une famille par exemple, n'espérez pas gérer ça avec 100 utilisateurs).

    Clients

    Contrairement à Keepass, Pass ne dispose pas d'autant d'implémentations. En gros, il semble y avoir à peu près un client pour chaque utilisation : Qtpass pour l'interface graphique, PassFF pour Firefox, une extension pour dmenu, une appli pour android, ... on est loin de Keepass qui dispose souvent de 4 ou 5 supports par plateforme. Néanmoins, comme ça utilise gpg pour chiffrer des fichiers textes, vous n'aurez jamais de soucis pour récupérer vos mots de passe.

    Néanmoins, à l'inverse de Keepass, vous ne pourrez pas effectuer de recherche parmi les métadonnées de vos mots de passe (les tags et les mots clefs sont inutiles) puisque chaque fichier n'est déchiffré qu'au moment où vous le sélectionnez. De même, il n'est pas possible de spécifier des icônes. On se retrouve donc avec une interface plus sobre et plus minimaliste que Keepass.

    IMPORTANT : les clefs ne sont pas gérées par le client mais par votre gestionnaire de clefs (généralement gnupg). Ainsi, une fois entré votre mot de passe, votre clef est conservée en cache pour la durée prévue dans ~/.gnupg/gpg-agent.conf. Ainsi, il n'est pas possible "d'oublier" manuellement votre mot de passe autrement qu'en stoppant et en relançant le service de gnupg. Il vous faut donc ajuster à votre convenance la durée du cache selon votre utilisation quotidienne (en gros, mettre une durée courte si c'est un PC familial, mettre une durée plus longue pour éviter de retaper chaque fois votre mdp si vous êtes le seul utilisateur).

    Fonctionnalités et intégration navigateur (sous Linux)

    Sous Firefox existe le module PassFF (et BrowserPass sous Chrome) qui nécessite l'installation d'un plugin "Host" (passFF-host) jouant un rôle semblable à KeepassHttp, c'est à dire qu'il va faire le lien pour permettre à l'extension d'intéragir avec votre dossier de mots de passe (ce que ne permet normalement pas Firefox à ses modules). Là, il y a deux choix : soit vous disposez de Windows ou d'une distribution Linux quelconque et donc il faudra télécharger et exécuter le script d'installation vous-même (et donc le refaire à chaque mise à jour du script). Soit vous êtes sous une base Arch-Linux et donc là vous aurez la chance de profiter d'un dépot AUR "passff-host", dont les mises à jour seront alors gérées par votre gestionnaire de paquets.

    Contrairement à Keepass, PassFF n'a pas besoin que le client tourne en arrière plan pour pouvoir proposer les mots de passe. En effet, si vous nommez correctement vos fichiers de mots de passe, PassFF peut faire correspondre le nom de domaine du site visité avec le nom de vos fichiers et ainsi vous proposer les logins appropriés. Ce n'est que si vous sélectionnez le login que GPG vous demandera votre mot de passe (s'il n'est pas déjà en cache).

    Concernant les autres fonctionnalités, il vous faudra passer par exemple par rofi-pass pour disposer de l'autocomplétion sur vos logiciels. De même, PassFF n'est pas capable d'enregistrer des templates de remplissage spécifiques à certains sites à l'inverse de KeepassHttp-connector (mais vous pouvez ajouter des champs de reconnaissance personnalisés.

    Conclusion

    En terme de complexité d'installation, ils se valent : les deux nécessitent d'installer des plugins pour intéragir avec votre navigateur.
    Niveau fonctionnalités, Keepass dispose d'interfaces plus colorées et plus agréables, avec choix d'icônes et des tas de champs que l'on peut remplir.
    L'une des principales différence concerne la philosophie de stockage : Keepass stocke tout dans une seule base. Il faut déverrouiller la base complète pour avoir accès aux urls, logins et mdp. Il faut également que Keepass soit lancé et la base déverouillée pour que les extensions de navigateurs puissent vous proposer les mots de passe.
    À l'inverse, Pass expose votre arborescence de mots de passe. Selon votre avis, ce peut être un inconvénient (une personne avec accès à votre dossier sait sur quels sites vous avez des comptes) mais également un avantage puisque vous pouvez parcourir vos mots de passe et ne saisir votre clef qu'au moment où vous voulez véritablement en utiliser un.

    Mon choix personnel à moi

    Ayant testé un peu les deux, mon choix s'est finalement porté sur Pass (avec QtPass et PassFF). Pourquoi ? J'ai mis une durée courte au cache de gnupg (1 min) et j'aime le principe de ne pas avoir à lancer le client en arrière plan pour que PassFF me propose tout de même les mots de passe. En effet, je me sers un peu de Pass comme d'un remplacement de mot de passe, c'est à dire que je saisis systématiquement ma clef au lieu du vrai mdp, comme si je n'avais plus qu'un seul mot de passe (alors que d'autres conservent le mdp en cache pour une durée longue, ce qui supprime l'obligation d'en saisir systématiquement un).
    L'autre raison est que je suis sous Manjaro et donc que le plugin PassFF-host est installé et mis à jour via AUR, ce qui m'évite de devoir le mettre à jour moi-même.

    J'aurais été sous Windows par exemple, j'aurais sûrement plutôt choisi Keepass car disposant de plus de soutien et de plugins.

  • Sujet interessant ;)
    Que pensez-vous de ce soft ?
    http://masterpasswordapp.com/
    Ca semble "opensource"...

  • mars 2018 modifié

    ça ressemble à PasswordGenerator (sur F-droid). En résumé (pour les autres), MasterPassword ne stocke pas de mots de passe mais les génère à la volée depuis votre phrase de passe maître et l'url du site, selon le principe que pour une URL et une phrase maître donnée sera toujours généré le même mot de passe. Il s'agit juste d'un algorithme.

    Tout dépend des avantages que désirez et des inconvénients que vous êtes prêts à accepter. Masterpassword permet d'éviter de stocker des mots de passe, et donc d'avoir à les synchroniser. Vous pouvez acheter un nouvel appareil, installer Masterpassword dessus et vous aurez immédiatemement vos MDP avec votre phrase de passe. Même en cas de perte de vos appareils, vos mdp ne sont pas perdus.

    En revanche, moi-même je préfère largement un stockeur (style Keepass ou Pass) pour les raisons suivantes :

    • mes mots de passe ne dépendent ainsi pas du logiciel. C'est à dire que si demain l'algorithme de génération de masterpassword change dans une mise à jour, vous aurez perdu tous vos mots de passe. Je peux donc exporter mes mots de passe dans un autre stockeur et je ne suis pas prisonnier de MasterPassword.
    • Pour posséder mes mots de passe, un attaquant doit posséder mon conteneur + ma phrase maître. Il faut donc d'abord qu'il arrive à récupérer mon conteneur avant de pouvoir commencer à le bruteforcer. Intercepter un des mes mots de passe sur un site ayant eu une fuite ne permet pas de deviner les autres mots de passe de mon conteneur. Alors qu'avec Masterpassword, posséder l'un des mots de passe générés permet de commencer à bruteforcer votre phrase maître sans que vous n'en sachiez rien (et on sait que de nombreux sites se font régulièrement pirater leur base de données)
  • Merci Balistic pour ce commentaire : tres utile ;)
    Je n'avais pas compris le principe meme du logiciel...
    Maintenant, c'est clair.

  • Ah ben quelqu'un a eu la même idée en mieux : petite comparaison plus approfondie ici : https://linuxfr.org/news/gestionnaires-de-mots-de-passe

  • Pour part, pour la gestion de mes mots de passe, j'utilisais ma tête pour me souvenir de mes mots de passes. Je m'établissait une régle de gestion qui me permettait d'avoir des mots différents sur chaque site. Cela dit, c'est assez compliqué.

    J'utilsie depuis Passman qui est un module de Nexcloud. Comme j'utilise déjà Nexcloud pour synchroniser mes contacts, mes taches et mon calendrier, j'utilise également le module coffre fort de Nexcloud.

    J'ai donc un addon Firefox qui me permet de synchoniser les mots de passe. Sur les posts ou je n'ai pas l'addon comme par exemple au boulot, j'ai mon appli Android Passman qui me permet de visualiser le mot de passe et de le saisir à la main donc au boulot pour des consultations de site ponctuel.

    Je peux créer un ou plusieurs coffres fort. Pour le moment, j'en ai qu'un seul mais après réfléxion cela peut être intéressant d'en avoir plusieurs en fonction de la criticité et de la fréquence de fréquentation du site. Par exemple, les sites que je consulte rarementent et assez critique pourront être dans un autre coffre fort.

    Passman étant une solution libre, c'est la solution idéal pour ma part étant utilisateur de Nexcloud

  • Merci pour l'info lexcyril ;)
    Ca va peut-etre me pousser a conserver mon Nexcloud...

  • mai 2018 modifié
    Ça fonctionne presque bien... Disons que ça stocke mais l'automatisme n'est pas toujours garanti sur Firefox si on ne pense pas à désactiver le gestionnaire de ce dernier
Connectez-vous ou Inscrivez-vous pour répondre.