Ajouter un dictionnaire de mot de passe français à une AppImage KeepassXC

Sommaire

Contexte

J’utilise le gestionnaire de mot de passe KeepassXC depuis déjà un moment. Ce logiciel intègre tous mes besoins que ce soit au niveau professionnel comme personnel. En particulier les fonctionnalités qui me sont le plus utiles sont :

  • Un générateur de mot de passe pour les nouvelles inscription.
  • La gestion des clés ssh avec la possibilité de l’utiliser comme « agent ssh » (j’y reviendrai dans un futur article).
  • La gestion des mot de passe à usage unique basé sur le temps (là aussi je prévois un article sur ce sujet dans le futur).
  • La connexion par l’intermédiaire d’un module à Firefox, ce qui permet l’enregistrement direct des nouveaux identifiants et la complétion automatique des champs pour les nouvelles connexions.

Le générateur de mot de passe comprend plusieurs options.

Le générateur de mot de passe

Le générateur de phrase de passe

Outre le classique générateur de mot de passe aléatoire avec de nombreux choix sur les types de caractères à utiliser (figure 1), l’option qui va nous intéresser aujourd’hui est la capacité à générer des phrases de passe. Ceci consiste à générer une suite aléatoire de mots à partir d’un dictionnaire (liste de mots). Sur la figure 2 ci-dessus on peut voir l’option « liste de mots » qui permet de choisir le dictionnaire à utiliser. L’intérêt des phrases de passe c’est qu’elles sont généralement plus facile à retenir qu’un mot de passe aléatoire. C’est une façon de concevoir ses mots de passe qui a été popularisée par la célèbre BD en ligne XKCD et son cheval qui dit vrai concernant l’agrafeuse à batterie.
Dans mon expérience, ceci rend également les mots de passe plus faciles à taper, en particulier, pour les utilisateurs lambda qui ne connaissent pas leur clavier par cœur. La sécurité repose ici sur :

  • Le dictionnaire et il faut donc s’assurer que celui-ci comprenne suffisamment de mots différents.
  • Le nombre de mots choisis (4 semble un minimum, mais ça dépend aussi de leur complexité)
  • Le fait que les mots soit réellement choisi au hasard, et c’est pourquoi on doit utiliser un logiciel comme KeepassXC pour les générer.

Le problème

KeepassXC permet donc de générer des phrases de passe à partir d’un dictionnaire. Il permet aussi de choisir le dictionnaire à utiliser. Sauf que en pratique la liste ne contient que le dictionnaire de mots anglais livré par défaut. Un petit passage par la documentation indique plus ou moins clairement que sous Linux il suffit d’ajouter le fichier au dossier /usr/share/keepassxc/wordlists/ pour pouvoir le sélectionner dans le menu. Et ça marche ! Sauf que… En fonction de comment on installe KeepassXC ça peut ne pas marcher.

Des deux façons d’installer KeepassXC sous Linux

a) Les paquets fournis

On peut simplement installer le paquet livré par sa distribution et c’est la façon recommandé la plupart du temps. Par exemple sous Debian :

sudo apt get install keepassxc 

Cependant on se retrouve alors avec la dernière version fournit par sa distribution et ce n’est pas forcement la plus récente. Par exemple à l’heure où j’écris ceci, la version stable de Debian offre le paquet 2.6.2

apt-cache policy keepassxc

keepassxc:
  Installé : (aucun)
  Candidat : 2.6..2+dfsg.1-1
 Table de version :
     2.6.2+dfsg.1-1 500
        500 http://ftp.ro.debian.org/debian bullseye/main amd64 Packages

Et le site de KeepassXC nous indique que la dernière version est 2.6.61

b) Le fichiers AppImage fournis par le site officiel de KeepassXC

Si on veut la dernière version on doit alors se tourner vers le AppImage fournit sur leur site. En gros c’est un fichier exécutable qu’il suffit de télécharger, d’y ajouter les droits d’exécution (avec chmod +x «nom du fichier»), pour pouvoir le lancer directement. Mais si l’on se rend dans le menu de génération de phrases de passe une mauvaise surprise nous attend :

Mais euh ! Je ne peux plus choisir mon dictionnaire !

La solution : extraire un fichier AppImage et le reconstruire

Récupérer l’outil AppImage Tool

Si on ne l’a pas déjà, on récupère cet outil depuis le dépôt Github (c’est lui aussi une AppImage !) et on lui donne les droits d’exécution

wget 'https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage' -O ./appimagetool
chmod 750 ./appimagetool

Téléchargement de la dernière version de KeepassXC en AppImage

On ajoute là aussi les droits d’exécution au fichier

curl -s 'https://github.com/keepassxreboot/keepassxc/releases/latest' | sed 's#^.*tag/\([^"]*\)">.*$#https://github.com/keepassxreboot/keepassxc/releases/download/\1/KeePassXC-\1-x86_64.AppImage#g' | wget -O ./keepassxc-orig.AppImage -qi -
chmod 750 ./keepassxc-orig.AppImage

Extraction de l’AppImage de KeepassXC et ajout du dictionnaire

L’option --appimage-extract permet, quand cela est possible d’extraire une AppImage

./keepassxc-orig.AppImage --appimage-extract

On se retrouve avec un dossier squashfs-root qui contient le système de fichier avec lequel fonctionne l’AppImage. Il suffit d’ajouter le fichier de dictionnaire dans le dossier squashfs-root/usr/share/keepassxc/wordlists pour que une fois reconstruit, KeepassXC reconnaissent ce dictionnaire.

cp /chemin/vers/mon/dictionnaire/dic_fr.wordlist ./squashfs-root/usr/share/keepassxc/wordlists/

Reconstruire l’AppImage

Enfin pour finir on va reconstruire l’AppImage et lui donner les droits d’exécution

./appimagetool -v ./squashfs-root/
chmod +x ./KeePassXC-x86_64.AppImage

On obtient un nouveau fichier KeePassXC-x86_64.AppImage qui est notre AppImage KeepassXC patché avec notre dictionnaire.


  1. La version 2.6.6 se trouve maintenant sur les dépots testing de Debian depuis la dernière mise à jour de Debian stable vers Bullseye. ↩︎