Depuis des années, je suis un fervent défenseur de l'utilisation de gestionnaires de mots de passe. Vous pouvez demander à pratiquement tous les membres de ma famille ou mes amis, il existait une époque où je devais poser la question : "Au fait, tu utilises quoi comme gestionnaire de mots de passe ?". C'était le plus souvent suivi par un monologue d'une vingtaine de minutes où je décrivais combien la protection de leur vie numérique était désastreuse et qu'ils devaient utiliser un gestionnaire. Bien sûr, c'était sans compter les moments où j'apprenais que mon ami ou parent utilisait le même mot de passe de 7 caractères de long pour absolument tout et que "c'est hunter2, c'est pas grave si tu le sais, je n'ai rien à cacher". Oui oui, c'est arrivé.
Durant les quatre dernières années environ, mon gestionnaire de choix était LastPass. J'étais un membre Premium comblé pendant tout ce temps, et même s'il leur est arrivé quelques tracas (comme en 2015 ou en 2017), ils ont toujours été transparents sur la situation à chaque fois et j'ai continué à leur faire confiance. J'avais pour habitude d'utiliser une authentification double facteur : mon mot de passe et une Yubikey, et tout a fonctionné parfaitement pendant des années. Cependant, après une très longue considération, j'ai récemment pris la décision de dire au revoir à LastPass et continuer le voyage avec une autre solution. Voici pourquoi.
Un vieux char peint en rose reste un vieux char
Vous voyez, le problème avec la sécurité informatique c'est qu'il faut toujours trouver le bon équilibre entre la sûreté et le confort au jour le jour. Mon setup était quelque peu sans danger, mais le confort n'était plus au rendez-vous. Je dois souvent me connecter à mon compte LastPass plusieurs fois par jour, car j'utilise plusieurs navigateurs web différents, avec parfois même plusieurs profils par navigateur. Ainsi, étant donné que LastPass déconnecte un utilisateur automatiquement lorsque ce dernier ouvre une session ailleurs, je devais aussi utiliser ma Yubikey plusieurs fois par jour, voire même par heure. Sur la fin, cela devenait un véritable calvaire. De plus, LastPass a procédé à plusieurs modifications sur l'UI du système, et se concentre de plus en plus à devenir très facile à utiliser, ce qui rend l'app un tant soit peu "opaque". D'un côté c'est une bonne chose car cela attire de plus en plus d'utilisateurs à être en sécurité sur le web, d'un autre cela peut engendrer de véritables problèmes sous le capot. Souvent, l'extension navigateur n'arrive pas à attraper les bons champs de connexion ou ne sais pas retrouver les bons combos login/mot de passe. Ou lorsque j'utilisais le générateur de mot de passe, il n'enregistrait pas les informations correctement. L'app a aussi des difficultés avec les sites qui utilisent des requêtes AJAX, et elle sauve souvent des URLs compliquées qui sont utilisées lors de la procédure d'enregistrement, ce qui rend beaucoup d'entrées en base de données sales. Si vous n'êtes pas technophile, c'est toujours un produit superbe, et c'est bien mieux que de ne rien utiliser ou d'avoir ce vieux post-it collé à l'écran de votre ordinateur. Mais pour moi, ce qui était un outil très pratique est devenu un poids. Il était temps pour quelque chose de nouveau, ou dans ce cas, quelque chose de vieux.
Entre en scène KeePassXC
KeePass Password Safe existe depuis 13 ans. Son interface trahit son âge mais sa facilité d'utilisation et les fonctionnalités de sécurité que cette application propose ont été éprouvé plusieurs fois. Au delà du combo habituel utilisateur / mot de passe, il est possible de créer des champs personnalisables, et même de rattacher des fichiers à la base de données. D'ailleurs, KeePass utilise les algorithmes AES, TwoFish ou encore ChaCha20 pour chiffrer cette dernière, et les mots de passe qu'elle contient sont protégés en mémoire. Le programme fait à peu près tout ce que fait LastPass (ou dans l'autre sens en fonction de votre point de vue), sans l'interface moderne et le côté "automatique" des enregistrements.
La version de KeePass que j'utilise s'appelle KeePassXC. C'est un fork communautaire du défunt KeePassX, qui était à la base une version multi-plateforme de KeePass. L'app fonctionne donc parfaitement sur Windows, MacOS et Linux. Exporter la base de données depuis LastPass et l'importer dans KeePassXC demande un peu de travail, car il faut faire avec un fichier CSV pas très propre généré par LastPass (pensez à détruire ce fichier une fois l'opération terminée !). Les "notes sécurisées" de LastPass sont stockées dans un format ressemblant à du XML, il vous faudra donc probablement les réécrire à la main dans KeePassXC après l'import. Mais une fois cette tâche fastidieuse effectuée, l'utilisation de KeePass est très facile, et le logiciel fonctionne parfaitement. Dès que vous souhaitez récupérer un mot de passe, il suffit simplement de basculer vers l'application, utiliser Cmd+F, taper les premières lettres de l'entrée que vous cherchez et un simple Cmd+C / Cmd+V fait l'affaire. Cela prend littéralement moins de cinq secondes. Il existe même des extensions navigateur qui peuvent aller chercher automatiquement les informations d'identification correspondant au site visité, ce qui rend le process identique à LastPass, et même plus rapide.
Le setup que j'utilise en ce moment est comme suit. La base de données de mots de passe est stockée dans mon Google Drive. Cela me permet d'avoir une synchronisation silencieuse entre mes machines et me fournit une sauvegarde en ligne. J'utilise à la fois un Mot de Passe Maître (avec une entropie de 100+ bits) et un fichier-clé (qui est stocké localement, pas sur Google Drive) pour déverrouiller la base. Le programme peut communiquer avec mes navigateurs internet grâce à deux extensions : chromIPass et PassIFox. Le fichier de base de données et le fichier-clé sont sauvegardés sur un NAS, et deux copies offline.
Tout va bien ?
Je suis donc enfin heureux à nouveau. Le "problème" principal que j'ai avec KeePassXC reste son interface utilisateur. En ces jours où tout le monde jure par le Flat UI ou les lignes Material Design, le logiciel montre vraiment son âge. Il lui manque aussi des fonctionnalités basiques comme la sélection des champs affichables dans les colonnes d'entrées, et ma plus grande plainte : les champs personnalisables ne s'affichent pas lorsque l'on cherche une entrée spécifique. Imaginons par exemple que vous créez une entrée pour une carte de crédit. Elle peut contenir plusieurs champs personnalisables comme son numéro, sa date d'expiration et le cryptogramme visuel. KeePassXC ne montrera pas ces champs sauf si vous cherchez à éditer l'entrée pour pouvoir les afficher, ou si vous faîtes un clic droit sur l'entrée et sélectionnez l'une des options "Copie d'attributs". Cela aurait été bien plus efficace si chaque entrée pouvait s'afficher dans son intégralité sur une seule ligne, en omettant les champs protégés bien évidemment.
Je devrais faire mention de l'excellent KeeWeb, une app web (disponible sous la forme d'une app de bureau basée sur Electron aussi), qui essaie de donner un coup de jeune à KeePass à ce niveau. Mais cette app pose encore plus de problème que KeePass d'un point de vue sécurité. Je ne rentrerai pas dans les détails dans ce billet, mais les défauts sont faciles à deviner.
Au final, je préfère utiliser KeePassXC à LastPass. Bien sûr, mon utilisation n'est pas la plus sécurisée, en particulier en stockant le fichier de base de données dans le cloud. Je pourrais arranger ceci en utilisant un système auto-géré comme OwnCloud ou Bitorrent Sync. Mais encore une fois, l'équilibre entre la sécurité et l'usage quotidien aurait été perdu. J'aimerais que KeePassXC puisse supporter le TOTP afin de me permettre d'utiliser à nouveau ma Yubikey et me débarrasser de ce fichier-clé, mais pour l'instant cette solution me satisfait.
Au fait, vous utilisez quoi comme gestionnaire de mots de passe ?