En recherchant pas mal d’infos sur la compatibilité de keepass2 sous Ubuntu, et n’ayant plus besoin de keechallenge, une solution simple s’est proposée : passer sur un programme compilé pour linux, donc sans plus avoir besoin de mono (émulateur pour windows). Ah mais je ne commence pas par le début, car ça c’est la chose que j’aurais faite si j’avais été si malin… la manière dont les choses se sont déroulées est bien différente : tout fier d’avoir reconfiguré une yubikey avec un long mot de passe statique, je peinais pourtant à déverrouiller ma base de données de mots de passe au format .kdbx sous Ubuntu, alors que ça fonctionnait sans souci sur Windows11. J’ai donc supposé que certains caractères n’étaient pas pris en compte, vu que la yubikey les entre bien plus vite que ce qu’on ferait avec nos doigts. Et là j’ai pensé à la couche d’émulation de windows de keepass2 + mono sous Ubuntu, qui forcément ne menait pas à une meilleure performance. J’ai encore voulu trouver une solution en cherchant une mise à jour. Le site de keepass2 indique que la dernière version est à l’heure actuelle 2.57, alors que le ppa officiel d’Ubuntu ne propose que le 2.47 au mieux. Ce n’est pas satisfaisant pour un logiciel qui est censé crypter des mots de passe (ok, Raphaël, j’aurais dû taper chiffrer, oui, tu as raison).
Un programme fait pour GNU/Linux, oui mais lequel ?
Comme c’est en général le cas avec les logiciels libres ou à code ouvert, le choix est abondant. Mais en appliquant un peu de bon sens on peut éliminer pas mal de candidats, comme ceux qui ne sont pas ou plus mis à jour, dont les personnes se plaignent à répétition… les moteurs de recherche en général me font pointer sur les deux mêmes sites, très bonnes sources d’information sur ces sujets informatiques : Stackoverflow et Reddit. J’ai donc vite repéré KeepassXC, qui a la bonne idée d’être disponible par Flatpak. Et là j’ai été impressioné par la qualité de ce programme. Ils poussent la réflexion et proposent des fonctions originales, comme :
- génération de TOTP. Donc on peut mettre le “seed” des fameux QR code de sécurité de divers sites web, et ensuite générer la clef temporaire (qui change toutes les minutes) depuis KeepassXC. Ca permet de reconfigurer un nouveau téléphone mobile plus rapidement, mais avec aussi certains compromis au niveau de la sécurité.
- une meilleure programmation de HMAC que keechallenge, mais qui n’est pas compatible avec le keepass2 de windows hélas. De mon point de vue je souhaite une solution symétrique, c’est-à-dire pouvoir utiliser la même base de données de mots de passe sur mon PC perso ou celui de mon employeur.
- un audit de sécurité assez simple mais efficace, comme par exemple le classement des mots de passe les plus faibles de la base de données .kdbx, donc ceux qu’il faut mettre à jour assez rapidement:
Evidemment, avec KeepassXC le mot de passe statique rentré par la yubikey fonctionne à tous les coups.
Avec ceci ?
J’oubliais un détail (très) important : je ne m’étais jamais baladé dans les options de chiffrement comme hachage etc… depuis 2013 ! il fallait donc un bon rafraîchissement. C’est en fait la dernière version de keepass2 sur le PC de bureau windows qui m’avait alerté d’un mot de passe maître trop faible. Là simplement il s’agit de modifier le mot de passe principal et de le remplacer par un nouveau bien plus complexe (et le noter dans un carnet!). Pour ma part c’est la yubikey qui le rentre pour moi tous les jours, plusieurs fois par jour. Mais pas seulement, il y a beaucoup d’autres options :
Et je vais changer ceci très bientôt ! je suis passé à la version kdbx 4, c’est déjà ça. J’utilise des fonctions plus récentes, c’est aussi bien. Mais… j’ai été flemmard. Erreur. Voyez-vous le bouton “benchmark 1s delay” ? ça permet rapidement d’adapter le nombre de cycles pour voir quelle sécurité la plus haute possible permet de déverrouiller la base de données en 1s seulement. Et oui, on n’a pas toute la journée pour attendre ! Toutes les instructions sur la sécurité pour keepass sont disponibles ici. Dans le premier paragraphe “Protection against Dictionary Attacks”, on lit qu’il faut indiquer quelle est la taille mémoire la plus faible de la machine sur laquelle on ouvrira la base de données :
Bref, c’est quand même un sujet qui se laisse étudier à n’en plus finir…