Password store: un gestionnaire de mot de passe simple comme un git - Carmagnole

Password store: un gestionnaire de mot de passe simple comme un git

Rédigé par propositionjoe / 30 août 2017 / 2 commentaires

 
 

Je vous propose un tuto afin de mettre en place password store comme gestionnaire de mot de passe. Il existe une interface aussi bien sous linux (qtpass est excellent) que sous android. Son fonctionnement est à la fois simple et lisible (synchronisation par git et chiffrement gpg), mais relativement technique à mettre en oeuvre. C'est donc une belle occasion de se fortifier les commandes.

Prérequis:

Une forge logicielle de type git
Une machine sous debian ou fedora (et probablement d'autre distribution).

 

 
 

Présentation du logiciel

À l’écoute de remarques de lecteur, j’ajoute une courte présentation de la solution avant de vous proposer "juste" un tuto.

Chez moi,  je n’utilise pour mes besoins que deux interfaces avec pass (même s’il est possible d’utiliser pass en ligne de commande, je ne le fais pas une fois la configuration initiale terminée), l’une pour android (Password store dans les dépôts fdroid) et qtpass (disponible en apt et dnf pour ce que j’en sais).

Dans ces deux cas les interfaces sont très sobres. Pour android, je conseille d'utiliser avec Password store, l’appli Openkeychain pour gérer sa/ses clés gpg. Les deux softs travaillent très bien ensemble. À l’usage l’utilisation de ce soft sous android est très simple, on appuie sur la fiche qui stocke son mot de passe, un fenêtre s’ouvre pour nous laisser renseigner notre passphrase. En option un onglet vous donne aussi la possibilité de la garder en mémoire jusqu’à 1 jour (pas très sécurisé, mais parfois pratique).




Sur desktop, l’appli est plus complète et propose en sus un générateur de mot de passe (longueur désirée, avec ou sans caractères spéciaux à l'intérieur). L’appli est en outre lié avec gnome et peut si vous le souhaitez retenir votre passphrase. Je vous laisse regarder les captures d’écran pour plus de détail et vous faire votre propre idée. Le maître mot, comme sur android est la aussi la simplicité. Pas de chichi, pour une grande efficacité, le tout dans la convivialité... Générer une fiche pour un site, avec un mot de passe nouveau à chaque fois, ne prend que quelques secondes. C'est simple je ne pourrais plus m'en passer.

Je termine cette présentation en vous montrant une capture du dossier des mots de passe mis en "musique" par pass: Il ne s'agit en fait que de petits fichiers textes chiffrés par gpg. Il n'y a donc aucune inquiétude à avoir quand à la pérennité du format de ses données. 

 

Le tuto: Étape 1, générer sa clé gpg

Pour commencer, il va falloir générer la clé qui vous utiliserez pour chiffrer vos mots de passe. Idéalement cette clé ne devra servir qu’à cela, je ne vous propose donc pas d’ajouter un date d’expiration. Pour ce qui est du choix du type d'algorithme de votre clé, il y a deux grandes écoles; les clés de type RSA et celles qui utilisent des courbes elliptiques (ECC).

Le choix de l’un ou l’autre ne pose à ce jour aucun problème de sécurité, à condition de prendre une clé RSA de plus de 2048 bits (par précaution on conseille donc de choisir 4096 bits), ce qui l'alourdit, et rend donc les clés elliptiques pertinentes. En effet, à robustesse égal, ces dernières sont plus légères. La contrepartie est qu’elles sont moins éprouvées, car plus récentes que les RSA.

Je vous laisse affirmer votre préférence mais vous invite en tout cas à choisir une passphrase solide. En effet, vous allez mettre cette clé sur votre téléphone, sur le pc de votre lieu de travail Il faut donc en protéger l’utilisation. Cette passphrase deviendra alors le « mot de passe maître » de votre trousseau de clé.

~$ gpg --expert --full-gen-key

# Répondez aux différentes questions, pour une aide dans cette étape je vous laisse vous reporter à cette page fedora ou celle de gnupg.

Vérifiez que votre clé est bien dans votre système en tapant cette commande:

~$ gpg --list-keys

Vous devrier voir trois lignes, la dernière se nommant "sub" puis une suite de nombre et de chiffre coupée par un slash, par exemple: 

sub 4096R/644YTF9 2017-03-08

Dans l’exemple ci-dessus, l'id de la clé est 644YTF9. Gardez-le sous la main, nous allons en avoir besoin. Mais avant de procéder à l’installation de pass, on va clore cette première étape en faisant un backup de cette clé afin de pourvoir la diffusée facilement plus tard.

~$ gpg2 --export-secret-keys --armor 644YTF9 > makey.asc


Installation et configuration de password store

Pour installer pass, rien de plus simple:

~$ apt install pass

ou

~$ dnf install pass

Ensuite, il faut initaliser votre base en informant pass de votre choix de clé gpg, puis en faire un dépôt git en tapant ces deux commandes:

~$ pass init 644YTF9
~$ pass git init

Voilà ! Pass est à présent prêt à gérer vos mots de passe. Il reste maintenant à assurer la synchronisation de vos clés en donnant à manger du git à pass (ou l'inverse). Si vous souhaitez utiliser une solution du « marché » ou si vous disposez déjà de votre propre forge, créez-y un dépôt pass.git, puis :

~$ pass git remote add pass.git ssh://utilisateur@adresse-ou-IP: port/pass.git

Puis:

~$ pass git pull master pass.git

# Pour tirer du serveur au local

Ou

~$ pass git push -u --all

# Pour pousser du local au serveur

En cas de soucis, je vous laisse quelques commandes utiles supplémentaires:

~$ pass git push --set-upstream pass.git master 

# Pour choisir une branche prioritaire sur une autre

~$ pass git remote remove pass.git 

# Pour supprimer un dépôt


Bonus : héberger son propre dépôt git

Jusqu’à récemment j'ignorais que git suffisait pour avoir une forge logicielle autonome et fonctionnelle (en ligne de commande uniquement). Or, il n’est vraiment pas nécessaire de disposer d’une interface web, ou d’outils avancés pour pass. En effet 95 % des fonctionnalités de gitlab ou même d’un gogs/gitea sont inutiles pour cet usage.

Pour créer son dépôt, il faut s’assurer d’avoir un accès ssh sur la machine qui va vous servir de dépôt (par sécurité, créez un utilisateur réservé à cet usage, et mettez en place une connexion ssh par échange de clé pour cet utilisateur.

Idéalement, vous pouvez aussi mettre un place un chroot, ce qui est la solution la plus sécurisée pour votre serveur (il faut que je me penche là-dessus, si vous avez des liens, je suis preneur!).

Tout ceci fait, rendez-vous sur votre serveur et entrez:

~$ apt install git
~$ cd /home/utilisateur
~$ mkdir pass.git
~$ cd pass.git
~$ git --bare init
~$ ln -s /home/utilisateur/pass.git/ /

La commande remote add donnée précédement est désormais prête à accueillir votre tout nouveau dépôt.

Bonne utilisation à tous.

 

2 commentaires

#1 dimanche 12 novembre 2017 @ 19:30 Richard a dit :

Bonjour et merci pour ce tuto!
J'ai commencé à utiliser pass en ligne de commande et je me tourne donc vers un GUI comme Qt qui parait bien. Et finalement, je découvre aussi KeepassX..et je ne sais plus trop lequel choisir.. Est-ce que tu pourrais me dire ce qui a orienté ton choix? Merci beaucoup

#2 mardi 14 novembre 2017 @ 17:46 propositionjoe a dit :

Salut,
Keepass est un bon soft, je l'utilisais avant pass sans aucun soucis. C'est plus une question de préférence / choix personnel.
Pour moi pass à l'avantage:
- pour la syncro par ssh que je trouve particulièrement propre,
- pour la simplicité: les mots de passe sont stockés dans un simple fichier texte chiffré en pgp.
Mais c'est relativement subjectif. Teste les deux, et fais ton choix.
À plus!

Écrire un commentaire

 Se rappeler de moi sur ce site

Capcha
Entrez le code de l'image :

Carmagnole

Soyez résolus de ne servir plus et vous voilà libres