Pass - Mémoire partagée

Pass

Pass unix store
https://git.zx2c4.com/password-store/
https://git.zx2c4.com/password-store/about/

Un peu de context

Je faisais encore un tour sur le site C’est qui qui a fuité aujourd’hui ? et je me faisais cette réflexion: Malgrés l’avénement des réseaux sociaux et des moyens de fédération d’identitée, j’ai toujours besoin, tous les jours, d’un nombre plus qu’important de mot de passe. En 2015, une émission de TV5 monde1 va donner lieux a une fuite de mot de passe. Oui, écrire sur des Post-it les mots de passe n’est pas une idée brillante. Il n’y a qu’a utiliser un service en ligne de gestion de mot de passe ?

Alors, je ne sais pas vous mais personnellement, les solutions de gestion de mot de passe centralisés en ligne me pose les problémes suivants :

  • Si je suis hors ligne, je n’ai plus accés à mes mots de passe ?
  • Suis-je le seul à avoir la main sur le chiffrement de mes mots de passe ?
  • Quand il y a un soucis de confidentialité ou de sécurité, c’est tous mes mots de passe qui sont compromis 😱.

Mes besoins

Exit donc les solutions en Saas2. Ce que je voudrais, c’est :

  • Être maître du chiffrement de mes mots de passe de bout en bout
  • Pourvoir accéder aux dits mots de passe depuis :
    • Un terminal
    • Un formulaire sur mon navigateur (Firefox en l’occurrence)
    • Mon téléphone
    • Sur une machine sous Linux, Mac ou Windows
  • Une solution open source

Un outil simple

Laissez moi vous introduire pass; Pour faire court, c’est un outil qui est simple mais trés éfficace. C’est un assemblage de quelques outils Posix, à savoir :

  • tree : Vos mots de passe seront stocker dans un fichier dans une arborescence de votre choix
  • gpg : Les mots de passe seront chiffrés/déchiffrés en utilisant GPG
  • git : Si vous souhaitez décentraliser et historiser vos mots de passes, vous pouvez utilize Git

pass est disponnible dans la plupart des distributions Linux et sous Mac. Il existe un portage non maintenu pur Windows, c’est bien la certainement sont seul probléme.

Comment l’utiliser

En admettant que vous avez déjà une clé GPG sous le coude, vous devrez commencer par initier pass :

$ pass init AEC6786666BEAF52AA0B0D25F82D132DC63D3051

Remplacez le AEC6786666BEAF52AA0B0D25F82D132DC63D3051 par l’id de votre clé GPG. Cette commande va créer un dossier .password-store dans votre dossier personnel. Ce dossier contiendra un fichier .gpg-id dans lequel vous trouverez la référence à votre clé GPG ainsi que tous vos futures mots de passe chiffré avec votre clé GPG.
Il est important de noter que votre trousseau de mots de passe peut être chiffré pour plusieurs lecteurs. Pour cela, ajoutez l’ID de la clé publique GPG du lecteur dans le ficher ~/.password-store/.gpg-id.

Pour rappel, le chiffrement du contenu se fait via la clé publique, le déchiffrement avec la clé privée.

Écrire/Générer un mot de passe

Pour écrire un mot de pass dans votre trousseau, vous pouvez l’écrire ou le générer.

Génération de mot de passe :

$ pass generate mon/super/mot/de/passe

Insertion d’un mot de passe dans le trousseau :

$ pass insert un/nouveau/mot/de/passe

Et voila! Vous allez pouvoir stocker de maniére sécuriser vos données sensibles. Tout tiens à la sécurisation de votre clé privée GPG. Personnellement, j’ai opté pour une clé Yubikey.

Pas que des mots de passe

pass va stocker vos mots de passe dans des fichiers. Vous pouvez y stocker plus que des mots de passe. Certaines extensions se servent de cette mécanique. Vous pourriez y stocker aussi le login, l’url du site, un identifiant, …

Une entrée dans pass pourrait donc être de la forme :

Xds2è_/sq
login: foo
url: mon.site.com

Généralement, la premiére ligne correspond toujours au mot de passe lui-même.

Comment lire un mot de passe

C’est plutot simple :

$ pass mon/super/mot/de/passe
Xds2è_/sq

Pour la lecture, gpg va utilisé la partie privée de la clé, il peut donc vous demander le mot de passe de la clé gpg que vous avez utiliser.

Si vous lui ajoutez l’option -c il va copier le mot de passe dans votre presse-papier.

Pass est simple, donc étendable

Il existe plein d’extensions pour pass, dont une qui va vous permettre de stocker le secret pour générer un TOTP3.

L’extention pass-otp: https://github.com/tadfisher/pass-otp#readme

Son installation est simple et permet de générer les code TOTP et avec l’option -c plus besoin d’aller chercher un code.

Utilisation depuis Firefox

En installant un addon dans Firefox, vous pourrez remplir les formulaire d’identification de vos sites préférés.

L’addon Firefox pour pass : https://addons.mozilla.org/fr/firefox/addon/passff/

A noter qu’il existe des extension pour d’autres navigateur, ils sont listés sur le site de pass.

Cette addon va s’appuyer sur les données contextuels que vous aurez préalablement fournit avec le mot de passe pour savoir à quel site et quel chaps du formulaire il doit entrés les données. Oui, il peut remplir le mot de passe Et votre login par exemple.

Sauvegarde et partage sur plusieurs appareils

Comme énoncé au début de ce post, pass utilise git pour gérer son historique. c’est aussi via un dépot sur un serveur que vous pouvez partager votre trousseau avec d’autres appareils, voir d’autres personnes si vous l’utiliser au sein d’une équipe.

Pour initialiser un dépot git, vous pouvez initier le repo via un git init dans le dossier de pass, ou tapez :

$ pass git init

Et voila, le tour et joué.

Il existe une application mobile pour Android et iOS. Étant sous Android, je n’ai pas testé l’application iOS.

Application Android pour pass : https://play.google.com/store/apps/details?id=dev.msfjarvis.aps
L’application Android n’est plus maintenau depuis mi ocobre 20244.


  1. Article de press de The Guardian qui relate la fuite de mot de passe sur Post-it. ↩︎

  2. Saas pour Service As A Service: Généralement, vous payez un tier pour vous fournir intégralement le service. ↩︎

  3. TOTP pour Time based One Time Password ↩︎

  4. Annonce de la fin de vie de l’application Android pour pass ↩︎