Gérer ses mots de passe avec KeePass & Nextcloud
Ce tuto sera séparé en deux parties : une concernant l'utilisation de KeePass, gestionnaire de mots de passe, l'autre portant sur NextCloud, cloud simple d'utilisation qui va nous permettre de synchroniser notre base de données où seront stockés nos mots de passe.
J'ai choisi d'assembler ces deux logiciels plutôt que d'utiliser un logiciel faisant déjà gestionnaire et synchronisation, car les deux sont OpenSource, stables et très fiables.
#KeePass
KeePass est donc comme nous l'avons vu un logiciel de gestion de mots de passe, OpenSource, disponible sur Windows et GNU/Linux, et également disponible en version portable : vous pourrez donc tout à fait vous baladez avec une clé USB contenant le logiciel et votre base de données afin d'avoir accès à vos mots de passe en tout temps.
Pourquoi KeePass ? D'une part, c'est un logciel OpenSource. D'autre part, il est très fiable, stable et sécurisé. C'est d'ailleurs le logiciel de gestion de mots de passe conseillé par l' ANSSI, l'Agence Nationale de la Sécurité des Systèmes d'Information. Pour toutes ces raisons, sans compter qu'il fait exactement ce que je lui demande et ce que j'attends de lui, j'ai donc confié la gestion de mes mots de passe à KeePass depuis de nombreuses années.
Installation
Une fois rendu sur le site officiel de KeePass, vous pourrez alors télécharger l'installateur directement puis l'exécuter, même si je vous conseille d'adopter la version portable, qui est plus légère à gérer par Windows. Concernant Linux, le logiciel est présent dans les paquets de la plupart des distributions.
Pour toutes les autres plateformes, vous avez sur le même site des une liste de liens de téléchargement pour les applications forkées de KeePass fonctionnant sous divers systèmes d'exploitation. Notamment : MacPass pour Mac OS X, et KeePassDroid pour Android.
Le programme n'a par défaut pas d'interface francophone. Malgré tout, vous pouvez aller télécharger ici un petit fichier à placer dans le sous-dossier de KeePass `Languages` (après décompression) :
Pour activer la langue, une fois dans le logiciel : `View > Change Language… > French (Français)`
Prise en main
Une fois cette première configuration effectuée, il nous faut maintenant créer notre base de données pour nos mots de passe !
Il vous est demandé maintenant un mot de passe principal : ce sera en principe désormais le seul mot de passe à retenir ! Il est contrôlera l'accès à tous vos autres mots de passe, il est donc évident qu'il se doit d'être sécurisé : Majuscules, minuscules, chiffres, caractères spéciaux etc, tout cela doit s'y trouver, en plus d'une caractéristique non-linéaire (les suites du type 1,2,3… ou a,b,c… sont à bannir) et d'une longueur acceptable. Ce mot de passe principal donc se doit d'être très sûr mais aussi facile pour vous de se le rappeler et de l'écrire.
Note : Une recette qui marche bien pour les mots de passe :
Petite phrase, 1 à 2 mots assez courts, 1 ou 2 nombres assez courts, 1 ou 2 séparateurs en caractère spécial, 1 ou 2 majuscules.
Pas plus, pas moins, pas trop court, pas trop long, facile à se rappeler, facile à taper.
En plus du mot de passe principal, on aura besoin de donner un nom à cette nouvelle base de données. Vous pourrez alors l'enregistrez où vous le voulez sous la forme `nom_choisi.kdbx` (les anciennes versions de KeePass géraient les extensions `.kdb`).
Gestion des mots de passe
Une fois votre base de données fraîchement créée, il ne vous reste plus qu'à commencer l'édition de vos entrées. Attention, à partir de là est absolument obligatoire de se rappeler de son mot de passe principal. En effet, si vous l'oubliez, l'accès à tous vos autres mots de passes est définitivement perdu (aucune roue de secours, mais cela est tout à fait normal question sécurité). Gardez aussi à l'esprit qu'il faut prendre l'habitude de bien sauvegarder sa base de donnée à chaque fois que l'on la modifie.
Mais revenons-en au sujet principal : nous allons créer notre première entrée ! Pour cela, cliquez sur l'icône `Ajouter une entrée`, située juste à côté de l'icône de sauvegarde. Vous devriez alors voir apparaître cette fenêtre :
Vous avez donc plusieurs champs à remplir :
* Le nom de votre entrée, pour vous y retrouver, * l'identifiant (ID), * le mot de passe correspondant, * puis des entrées facultatives (URL du site, Remarques…)
Vous remarquerez que le mot de passe est déjà pré-rempli par KeePass : c'est en fait un mot de passe généré aléatoirement, outil très pratique une fois bien habitué aux gestionnaires de mot de passe (plus besoin de se creuser la tête !).
Vous avez également la possibilité, via l'arborescence située à gauche, de trier vos entrées en plusieurs groupes et sous-groupes. Si elles sont bien triées, cela facilite bien évidemment l'accès à une entrée dont vous avez besoin, apportant ainsi un certain confort.
Note : Par sécurité, je vous conseille de ne pas laisser ouvert KeePass en permanence. Vous avez pour cela un paramètre à aller configurer afin que le logiciel vous déconnecte après une certaine période d'inactivité. Rendez vous dans `Outils > Options > onglet Sécurité`. Ici, rentrez les valeurs que vous jugez adéquates :
Utilisation basique
Une fois notre base de données créée et bien administrée, nous avons plusieurs manières d'utiliser le logiciel.
Une utilisation basique serait simplement de se connecter à sa base de données via le mot de passe principal, puis d'aller chercher l'entrée qui nous intéresse. Une fois sélectionnée, vous avez alors (après un clic droit) la possibilité de copier l'identifiant ou le mot de passe contenu dans cette entrée.
Pour aller un peu plus loin, si vous remplissez le champ `URL` d'une entrée, vous aurez alors la possibilité via le clic droit d'ouvrir directement l'adresse que vous avez rentrée, facilitant le tout.
Utilisation avancée avec Kee
Je vais ici vous présenter Kee (ou plus récemment Kee Vault), une extension OpenSource de Firefox permettant le remplissage automatique des identifiants et mots de passe rentrés dans la base de données ouverte avec KeePass.
Kee est donc un module pour Firefox, qui communique avec KeePass (à partir de la version 2) grâce au plugin KeePass-RPC que vous pourrez télécharger ici.
Ce plugin est à placer dans le sous-dossier `Plugins` du dossier d'installation de KeePass. Il vous faudra ensuite redémarrez KeePass afin d'activer le plugin.
Vous aurez donc ensuite besoin d'aller ajouter l'extension Kee à Firefox. Rendez-vous pour cela sur cette page.
Une fois Kee installé, vous pouvez lancer KeePass, et vous aurez normalement une fenêtre de ce type qui apparaît :
Une fois le code recopié pour Kee, les deux logiciels vont pouvoir communiquer ensemble. Il nous reste toute fois une dernière étape : ajouter notre base de données à Kee afin qu'il puisse piocher dedans :
Maintenant que votre mot de passe principal est renseigné, la base de données est associée à Kee, et donc à Firefox ! A chaque fois que vous aurez Firefox ouvert et que vous vous connecterez à KeePass en même temps, les deux logiciels communiqueront ensembles. Résultat, arrivés sur l'URL préalablement indiquée dans vos entrées, Kee s'occupe de tout et rentre votre identifiant et mot de passe à votre place ! Et quand vous ne voulez pas de cette fonctionnalité, il vous suffit de fermer votre cession KeePass, simplement.
#NextCloud Nous avons vu plus haut comment gérer ses mots de passe grâce à KeePass. Cela présente un certain nombre d'avantages : plus qu'un seul mot de passe à retenir, une plus grande sécurité, le logiciel est présent sur toute les plateformes, transportable sur clé USB… Oui mais voilà, il présente un inconvénient majeur : on est dépendant de sa base de données, et à force de la multiplier afin de l'avoir partout avec soit, on fait des erreurs en synchronisant à la main.
Je vais donc vous présenter ici NextCloud, système OpenSource qui nous sert donc de cloud afin de synchroniser très facilement cette base de données qui, sans votre mot de passe principal, n'a aucun risque de se faire décoder (aucune peur de ce côté là donc).
Certains gestionnaires de mots de passe intègrent directement cette fonctionnalité de synchronisation par le cloud, mais la plupart sont des logiciels propriétaires (à qui je ne confierai jamais mes mots de passe), et aucun n'est aussi fiable que KeePass.
NextCloud propose également ses services afin de monter son propre cloud, mais nous ne verrons pas cela ici. Nous n'utiliserons que la partie “client”, utilisant donc un serveur fournit par un partenaire de NextCloud, contenant quelques Go de données (amplement suffisant pour notre base de données).
Sur le principe :
- On stocke un fichier, ici la base de données, sur un serveur quelque part accessible par Internet.
- On utilise une copie locale de ma base de données sur chacun de nos appareils.
- Si l'on fait une modification sur un des fichiers de base de données quelque part, les autres vont se synchroniser avec la nouvelle version. Cette synchronisation n’est pas immédiate si par exemple un appareil n’est pas connecté à Internet, mais elle se fera dès qu’il sera connecté.
Inscription
Avant de vous voir attribuer un fournisseur de serveur pour votre futur cloud, il vous faut vous créer un compte NextCloud : pas d'inquiétude c'est gratuit et c'est par ici.
Les services gratuits doivent bien évidemment être financés par quelqu’un. Les fournisseurs proposés par NextCloud offrent tous des comptes gratuits avec 2 à 5 Go de stockage, et financent ces services en proposant des options payantes avec plus de stockage et plus d’options. J'ai pour ma part ici choisit Wölkli, serveur basé en Suisse et proche de chez moi géographiquement.
Ensuite rendez-vous sur l'adresse de votre fournisseur, rentrez vos tout nouveaux identifiants, et vous devriez arriver sur votre espace de partage, mais avec, bien sûr, aucun fichier stocké pour le moment.
Ensuite, c'est selon ses envies, selon comment vous voulez vous organiser. J'ai moi choisi d'y créer un dossier nommé `KeePass` dans lequel j'ai uploadé ma base de données.
Maintenant que notre fichier est présent sur notre Cloud, il nous reste à pouvoir créer des copies locales sur nos appareil, qui iront se synchroniser régulièrement lors d'un accès Internet.
Synchronisation via le client NextCloud
Première option : synchroniser ses fichiers présents sur le serveur à l'aide du logiciel-client fourni par NextCloud, disponible sur GNU/Linux, Windows et Mac OS X. Il est également disponible en application APK pour Android (dépôt présent sur F-Droid !).
Le principe est simple : vous créez un dossier qui va être relié à NextCloud, vous choisissez ce qui doit être synchronisé ou non, vous ouvrez votre base de données avec KeePass depuis ce même dossier et…voilà ! C'est à peu près tout ; tant que le logiciel tournera en fond et votre appareil relié au réseau, la synchronisation se fera automatiquement.
Synchronisation par WebDAV
Oui mais voilà, la première solution est trop simple pour être totalement satisfaisante, notamment sur appareil mobile. En effet, le logiciel devant tourner en fond épuise la batterie pour peu de choses. J'ai donc adopté, pour ma part, une autre solution qui fonctionne du même principe, avec une copie locale qui se synchronise au besoin : le WebDAV.
Le WebDAV (Web Distributed Authoring and Versioning) donc, qu'est-ce que c'est ? Et bien, c'est une extension du protocole HTTP qui permet à un serveur Web d’apparaître en tant que lecteur réseau standard. Il transforme le web en système de fichier.
C'est en fait le protocole utilisé par le logiciel-client de NextCloud, mais nous allons ici l'employer pour une utilisation plus “lite”.
Je vais illustrer ici par un exemple sur un smartphone Android. J'utilise pour cela une application de gestion de fichiers, comme on pourrait en trouver sur tous les ordinateurs. On va alors aller chercher à créer un nouvel accès à distance :
Puis ici je choisis bien sûr WebDAV :
Ensuite, dans le champ du serveur WebDAV demandé, il faut faudra rentrer une adresse du type :
`<ADRESSE_DE_VOTRE_SERVEUR>/remote.php/webdav`
Par exemple, pour moi cela donne : ppp.woelkli.com/remote.php/webdav
Vous pouvez évidemment rajouter à la fin le chemin vers un dossier plus précis en fonction de vos besoins, à vous d'ajuster.
Ensuite, ne reste plus qu'à ouvrir votre application KeePass pour Android et aller chercher sa base données dans les fichiers réseaux.
Quand on ouvre une base de données, KeePass fait une copie (sauvegarde) locale sur le smartphone (cache). Ensuite il ouvre cette copie de base de données, que l’on soit connecté à internet ou pas, tant qu’on ne demande pas en ouvrir une autre. Donc si on veut une mise à jour il faut ré-ouvrir la même base de données en suivant le même chemin. Ce n’est donc pas automatique, mais ça me convient, car je n’ai pas un gros besoin d'utiliser KeePass sur mon smartphone.