Password-store, le retour
J’ai réinstallé une ROM Android neuve sur mon téléphone il y a quelques jours. Ce faisant, j’ai effacé intégralement les données enregistrées, incluant mon gestionnaire de mots de passe password-store
(pass
pour les intimes).
Cet article explique la marche à suivre pour récupérer mes informations chiffrées sur une machine fraîchement installée. Il fait suite à pass et repose aussi sur gpg-pgp.
Prérequis
Tout d’abord, côté PC: password-store
bien sûr et gpg
pour le chiffrement avec le dépôt git
à jour. Le minimum fonctionnel en réalité, pas de surprise.
Sur le téléphone “neuf”, il faut installer Password Store
et OpenKeychain
. Ces deux applications sont accessibles via F-Droid
.
Préparation
Téléphone
C’est sur la nouvelle machine que commence le travail. L’idée, même si elle m’appartient, est de la considérer comme un nouvel utilisateur gagnant accès à mon vault de mots de passe. Il faut donc créer un nouveau trousseau de clés via OpenKeychain
et en partager la partie publique avec l’ordinateur.
Création d’une nouvelle clé
Par défaut, OpenKeychain
génère des clés pour la certification, la signature et le chiffrement. Étant donné que les mots de passe sont synchronisés via git
, il faut aussi ajouter une sous-clé pour l’authentification.
Ne pas oublier d’y ajouter un mot de passe en guise de master password.
Partage des clés publiques
Une fois fait, deux partages:
- La clé
SSH
doit être poussée sur la plateforme fournissantgit
, - Les clés publiques doivent être partagées sur l’ordinateur.
Ordinateur
Une fois le fichier contenant la nouvelle clé récupérée sur la machine, quelques étapes à suivre.
Import de la nouvelle clé
Un simple gpg --import $fichier
suffit à ajouter l’identité du téléphone sur l’ordinateur.
Réglage de la confiance
Password-store
demande à ce que les clés utilisées pour le partage de mots de passe aient le niveau de confiance le plus élevé: 5/5
. Il faut donc éditer la clé précédemment ajoutée pour modifier cette information à son propos:
$ gpg --edit-key $key
trust 5
y
save
Ajout de l’utilisateur
Cette partie est déjà traitée dans pass
mais mérite un peu plus de détail cette fois-ci.
- Dans un premier temps il faut ajouter l’emprunte (fingerprint) de la clé dans le fichier
~/.password-store/.gpg-id
. - Ensuite, la commande “magique”
pass init $(cat ~/.password-store/.gpg-id)
.
Cette dernière commande va générer deux commits. Le premier indique l’altération des ID GPG
utilisés. Le second correspond à password-store
qui se sera chargé de (re)chiffrer tous les mots de passe avec la nouvelle clé.
Synchronisation
À ce moment, le téléphone ne détient que la paire de clés publiques/privées. L’ordinateur quant à lui contient la clé publique et tous les mots de passe chiffrés pour toutes les clés sur le dépôt git
synchronisé. Il est temps de récupérer ce dernier sur le téléphone.
Pour ce faire, il faut lancer Password Store
pour Android et se laisser guider dans la récupération d’un dépôt distant. L’adresse est de la forme git@$fournisseur:chemin/depot
et il faut choisir d’utiliser OpenKeychain
avec la clé récemment générée.
L’application va demander un mot de passe pour accéder au dépôt. C’est celui du compte en temps normal ou un token d’accès personnel si le 2FA a été activé.
Notes
- Cette approche permet de ne jamais faire sortir les clés privées des machines sur lesquelles elles ont été générées.
- Un ordinateur est nécessaire pour suivre cette démarche. Il n’est pas possible de tout faire depuis le téléphone.