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.
Le principe est le suivant :
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.
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é.
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.
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
.
# 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.
pass insert twitter/jeffprod
Cré le fichier chiffré jeffprod
dans le dossier twitter
. Vous devez saisir le mot de passe à stocker.
pass generate twitter/jekicode 16
Cré un mot de passe d’une longueur de 16 caractères.
pass
pass find jeffprod
# l'affiche dans le terminal
pass twitter/jeffprod
# le copie dans le presse-papier
pass -c twitter/jeffprod
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
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
.
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.
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
.
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
.
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…).