Gérez vos mots de passe avec des logiciels libres

13 octobre 2019 · 5 min de lecture

Il existe plusieurs applications pour la gestion des mots de passe. Nombreuses sont gratuites mais commerciales.

Peut-on confier ses mots de passe et numéros de cartes bancaires à des entreprises commerciales ? Vous êtes seul juge. Mais sachez que “Si c’est gratuit c’est vous le produit”. Et les sociétés sont souvent la cible de hackers. Les fuites de données sont fréquentes.

Les logiciels libres sont un gage de sécurité et d’indépendance.

Dans cette solution, synchronisée entre plusieurs périphériques et auto-hébergée, nous utiliserons git, gpg et pass.

Introduction

Le principe est le suivant :

Gestion de mots de passes
  • vous conservez en mémoire un mot de passe fort (au moins 10 caractères, avec chiffres, majuscules, minuscules…)
  • il sera la clé de votre coffre fort chiffré, hébergé sur un serveur privé
  • des logiciels libres sur ordinateur ou smartphone permettent de le consulter et de le modifier.

Passons à la configuration des composants. Elle peut paraître fastidieuse mais rien d’insurmontable. A l’issue, l’utilisation des logiciels est très simple.

Serveur

Un simple VPS (Serveur Privé Virtuel) avec ssh et git suffit. Scaleway et OVH proposent des instances à partir de 3€ par mois. Mais vous pouvez également utiliser un Raspberry Pi à votre domicile, ouvert sur internet.

Référez vous à la documentation de votre hébergeur pour la connexion via ssh. Nous allons créer sur ce serveur un dépôt git qui sera le coffre fort partagé.

# connexion au serveur
ssh user@example.com

# nous sommes par exemple dans le dossier /home/user
git init --bare pass.git

Le dépôt distant est initialisé.

Client

Utilisation du gestionnaire de mot de passe pass sur un ordinateur sous Linux. Pour les utilisateurs de Windows, sachez que le projet Pass4Win est abandonné. Vous êtes invité à utiliser des logiciels commerciaux.

Créer une clé gpg

Le chiffrement des données est effectué avec gpg. Générez une clé avec la commande :

gpg --full-generate-key

Choisir clé RSA (choix par défaut) et 4096 bits, sans expiration, et nommez la clé. Un mot de passe vous est demandé. Ce sera le mot de passe de votre coffre-fort.

Pour afficher les clés GPG existantes sur votre système, tapez :

gpg --list-secret-keys --keyid-format LONG

La réponse est par exemple :

/home/toto/.gnupg/pubring.kbx
------------------------------------
sec   4096R/3AC5C34371567BD2 2019-10-10
uid                          toto <toto@example.com>
ssb   4096R/42B317FD4BA89E7A 2019-10-10

L’id de la clé gpg est ici : 3AC5C34371567BD2.

Création du coffre qui contiendra les mots de passes

# installation sur Arch Linux
sudo pacman -S pass

# ou installation sur Ubuntu
sudo apt install pass

# création d'un coffre-fort avec l'id de la clé gpg
pass init 3AC5C34371567BD2

Un dossier .password-store est créé dans votre dossier personnel.

Insérer un mot de passe
pass insert twitter/jeffprod

Cré le fichier chiffré jeffprod dans le dossier twitter. Vous devez saisir le mot de passe à stocker.

Générer un mot de passe
pass generate twitter/jekicode 16

Cré un mot de passe d’une longueur de 16 caractères.

Lister, rechercher un mot de passe
pass
pass find jeffprod
Afficher/copier un mot de passe
# l'affiche dans le terminal
pass twitter/jeffprod

# le copie dans le presse-papier
pass -c twitter/jeffprod

Synchronisation avec le serveur

Le coffre-fort de l’ordinateur doit être transformé en dépôt git. Il sera synchronisé avec le dépôt maître créé sur le serveur au paragraphe précédent.

# initialisation du dépôt git local
# (pass init <gpg-id> doit avoir été effectué précédemment)
pass git init

# on indique avec quel dépôt distant il sera synchronisé (2222 est le port ssh, facultatif si 22 par défaut)
pass git remote add origin ssh://user@example.com:2222/home/user/pass.git

# on pousse l'état initial du coffre
pass git push -u --all

Par la suite, si les données sont modifiées depuis un autre appareil, la synchronisation sur cet ordinateur s’effectue en poussant et en récupérant le coffre-fort avec les commandes :

pass git push
pass git pull

Client smartphone

Pour Android, installez les applications suivantes :

Connectez votre téléphone à l’ordinateur. Naviguez dans le dossier Download du téléphone et importez votre clé SSH privée :

cp ~/.ssh/id_rsa .

Ouvrez l’application Password Store sur le smartphone. Allez dans PARAMETRES, Importer une clef SSH, et indiquez l’emplacement du fichier id_rsa. Cliquez ensuite sur CLONER DEPUIS LE SERVEUR et renseignez les paramètres du serveur. Le mot de passe de votre clé SSH est demandé.

Le dépôt git est cloné et vous accédez au contenu du coffre-fort. Mais en cliquant sur un élément vous obtenez l’erreur Aucun prestataire OpenPGP sélectionné. C’est normal, les données sont chiffrées avec gpg et nous n’avons pas installé ces clés dans l’application mobile.

Allez dans les paramètres Chiffrement puis Sélection du prestataire OpenPGP et choisissez OpenKeychain.

Password Store Android

Nous allons maintenant importer les clés gpg dans l’application OpenKeychain.

Sur votre ordinateur, exportez les clés :

gpg --export --armor ID > public.key
gpg --export-secret-key --armor ID > private.key

Remplacez ID par celui de votre clé (cf paragraphe sur sa création).

Copiez les fichiers public.key et private.key dans le téléphone, par exemple dans le dossier Download.

Ouvrez l’application OpenKeychain, cliquez sur IMPORTER LA CLE D'UN FICHIER et importez les deux fichiers.

OpenKeyChain Android

Revenez à l’application Password Store, cliquez sur un mot de passe à afficher, il est demandé l’autorisation d’accès à l’application OpenKeychain, cliquez sur AUTORISER.

Il est demandé le mot de passe de la clé gpg pour afficher le mot de passe.

L’application est fonctionnelle. Pour mettre à jour les données si elles ont été modifiées depuis l’ordinateur, allez dans le menu ... puis Synchronisation du dépôt.

Synchronisation avec un second ordinateur

Récupérez tout d’abord la clé gpg comme effectué précédent avec la commande gpg --export .

Exportez également la clé ssh pour accéder au serveur : copiez le dossier /home/user/.ssh. Il contient les fichiers id_rsa et id_rsa.pub qui nous intéressent.

Sur le nouvel ordinateur, installez pass.

Copiez les deux fichiers id_rsa dans votre dossier utilisateur /home/user/.ssh

Importez la clé gpg avec les commandes :

gpg --import public.key
gpg --import private.key

Configuration de pass avec le dépôt git du serveur :

rm -rf ~/.password-store
git clone ssh://user@example.com:2222/home/user/pass.git ~/.password-store

Vous pouvez maintenant utiliser la commande pass.

Informations complémentaires

Pour l’auto-complétion des libellés des mots de passe sous Arch, le paquet suivant est nécessaire :

yay -S bash-completion

Ainsi en tapant pass to et la touche tabulation, toto s’affichera si vous avez un mot de passe nommé ainsi.

Pour les non adeptes du terminal, une interface graphique est disponibles : QtPass.

Pass-Import permet l’import depuis d’autres logiciels de gestion de mots de passe (Keepass, Lastpass, 1Password…).

PARTAGER

A LIRE EGALEMENT