Futé comme un git.
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’autres distributions).
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
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
Utiliser 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Ă©demment est dĂ©sormais prĂȘte Ă accueillir votre tout nouveau dĂ©pĂŽt.
Bonne utilisation Ă tous.