blog/content/software/pass-fr.md
2024-02-24 20:11:27 +01:00

5.0 KiB
Raw Blame History

Title Date Modified Lang Author Category Tags Slug Header_Cover Summary
Gérer vos mots de passe avec pass 2019-04-22 19:00 2024-02-24 18:00 fr Fabrice programmes pass, git, cli password-store ../images/covers/clovers.jpg Un gestionnaire de mots de passe simple qui repose sur gpg, et synchronisé via git.

Comme nous vivons dans un monde dangereux où les failles de sécurité sont découvertes tous les jours et où les fuites de données sont devenues monnaies courantes, il est recommandé dutiliser un mot de passe différent pour chacune de nos identités numériques. Cependant, cela devient vite une horreur à maintenir manuellement, javais essayé dutiliser un bloc note en 2003 que jai perdu au bout dun mois (et les mots de passe avec).

Heureusement, les gestionnaires de mots de passes ont fleuri depuis, et plusieurs proposent des fonctionnalités de base similaires: mufti plateforme (en particulier sur les téléphones intelligents), génération de mots de passe «sécurisés», intégration navigateur…

Je ne vais pas pour faire une comparaison détaillée, mais si vous souhaitez jeter un coup dœil, Wikipédia propose une table de comparaison détaillée par ici (en).

Dans cette recherche, grâce à moviuro, mon choix sest porté sur pass avec pass-otp (et passmenu). Je nai pas non plus la prétention de faire un guide détaillé sur pass, comme ceux-ci sont déjà faciles à trouver sur internet, par exemple par ici (en).

En résumé, pass est un script bash qui fait appel à des outils de base comme git, gpg, et est écrit par zx2c4.

Voici quelques commandes que jutilise souvent:

pass generate -i <pass-name>

Pour regénérer un mot de passe, loption -i ici est importante puisquelle permet de ne réécrire que la première ligne du fichier (en général le mot de passe). Cela évite donc de devoir utiliser du git sale pour retirer lerreur de larbre des commits vu que pass <cmd> fait automatiquement un commit atomique à la fin de la commande. Je loublie parfois, cest pourquoi je laisse ça ici en guise de rappel.

Sur certains services, il arrive que lon ait besoin de spécifier un ensemble de caractères admissibles pour les mots de passe. Cela peut être fait via la variable denvironnement PASSWORD_STORE_CHARACTER_SET. Le contenu de cette variable est transmis à la commande tr. Ainsi, pour créer un code PIN, on peut spécifier la valeur suivante: PASSWORD_STORE_CHARACTER_SET='[:digit:]' et indiquer la longueur désirée du mot de passe en dernier argument de la commande.

Par exemple, pour générer un code PIN de 6 chiffres:

PASSWORD_STORE_CHARACTER_SET='[:digit:]' pass generate <pass-name> 6

Je nai en revanche pas trouvé comment forcer la présence de caractères spéciaux… je lance donc la commande plusieurs fois dans ces cas avec loption -i pour écrire en place après la première tentative. Ce nest pas la meilleure solution, qui en plus pollue lhistorique git mais bon… ça fonctionne.

Par exemple, pour générer un mot de passe sur un service fictif qui supporterait les caractères spéciaux suivants: -_@$<> pour des mots de passe dau plus 20 caractères, on peut utiliser la commande suivante:

PASSWORD_STORE_CHARACTER_SET='[:alnum:]-_@$<>' pass generate <pass-name> 20

Si on souhaite faire de la rotation de clefs ou simplement mettre à jour ses identités, il est possible de relancer la commande pass init, où on peut y spécifier lidentifiant de la nouvelle clef… ou plusieurs identifiants. Cela peut être utile pour avoir plusieurs clefs sur des périphériques différents pour mieux contrôler les risques de fuite de clef. On peut également avoir des sous dossiers de son dossier $HOME/.password-store/ chiffrés sous des clefs spécifiques (cela se contrôle avec loption -p/--path= de pass init). Une application possible étant de séparer les clefs personnelles des clefs professionnelles (qui peuvent alors être chiffré sous une clef partagée entre les personnes ayant accès au jeu de mots-de-passe). On pourrait imaginer coupler ça avec les sous-modules git, mais je ne my suis pas aventuré…

Pour finir:

pass git <ce que vous voulez>

Pour faire ce que vous voulez avec gite, spécialement du git sale 😉

Finalement, jutilise password-store sur mon téléphone.