ADD : keepassxc

This commit is contained in:
Alexandre LUCAZEAU 2022-02-08 19:57:50 +01:00
parent 66f26b675c
commit 78e1fe11ea
No known key found for this signature in database
GPG Key ID: 3C8ADB07A8217BD3
1 changed files with 63 additions and 0 deletions

63
posts/keepassxc.md Normal file
View File

@ -0,0 +1,63 @@
---
title: "Utiliser keepassxc dans des configurations"
date: 2022-02-07T11:48:56+02:00
tags:
- scripts, keepassxc, keepassxc-cli, pass, vault
categories :
- commandline
draft: false
description : "keepassxc - Une bonne alternative à pass et vault"
slug : "keepassxc-cli-vault"
---
# Choix d'un gestionnaire à secrets
La problématique du jour concerne la gestion des secrets, avec des questions du genre :
- Quelle solution pour stocker mes secrets (password, OTP) ?
- Faut-il stocker tout les secrets dans un seul et même endroit ?
- Est-ce que je dois utiliser un système avec mdp ? avec clé ? les 2 ?
- Est-ce que je vais partager des secrets avec plusieurs personnes ? Avec plusieurs pc ? PC + téléphone ?
Mes critères étaient donc ceux-là :
- Le système doit être sufisament sûr pour les protéger mais pas trop complexe pour que des non informaticien puissent l'utiliser en cas de mort
- Le système ne doit pas être trop complexe pour que je sois en mesure de pouvoir l'utiliser en vieillissant
- Le système doit être sauvegardable
- Je dois pouvoir récupérer un mot de passe pour l'inclure automatiquement dans un fichier de configuration
- Je dois pouvoir l'utiliser en ligne de commande, avec mon navigateur et avec mon téléphone, le tout dans la même version/syncro
Avec ces critères, j'ai repéré plusieurs solutions :
- gpg
- password-store
- keepass et ses dérivés
- vault
- bitwarden et ses forks
J'ai rapidement exclu **vault** pour sa complexité de mise en oeuvre. J'ai pas assez de temps disponibles et je pense pas qu'à 90 ans je serai en capacité à maintenir cette solution
Le deuxième éliminé est **bitwarden** (le fork, pas la solution originale). La solution est sympas, mais pareil, faut un serveur, et des compétences pour le maintenir, et en cas de mort ou dérivé, ça va être complexe.
**password-store** : j'ai aimé. Clairement ça répond à bcp de chose, et je pense que c'est clairement une solution au travail en équipe. **gopass** améliore l'expérience. Dans un contexte pro, je réfléchirai à son introduction. Je l'ai sorti, car sur du très long terme, je pense que c'est pas jouable, surtout pour avoir un tiers de confiance (non geek) en capacité à l'utiliser
Une bonne lecture à ce sujet : https://github.com/fpco/best-practices/blob/master/password-store.md
**gpg** : Bien mais ne supportera pas la perte de sa clé. J'ai trouvé que c'etait trop risqué et je parle pas de familiariser mon entourage à son usage.
La solution que j'ai retenu : **KeepassXC**. La GUI est plutot bien faite et l'outil viens avec l'utilitaire **keepassx-cli** qui permet d'avoir un mot de passe dans les fichiers de configuration, comme le mail.
Comment j'ai choisi de l'utiliser ? J'ai un fichier protégé par passphrase pour mes secrets, et j'ai une base keepass contenant 1 seul mdp pour une application en particulier.
Par exemple une base *mail* qui est utilisé uniquement dans le fichier de configuration de **mbsync**. Cette base n'a pas de mdp, mais un fichier key. Ainsi pour l'ouvrir, il faudra avoir le fichier key (que je synchronise qqpart). En cas de perte, j'ai mon mdp dans ma base keepass globale. En cas de compromission, il n'y a que mes mails qui sont touchés.
Sans être ultime, je peux utiliser 1 base partagée entre mes pc et mon téléphone, avec un client lourd facile d'utilisation, en ligne de commande et dans mon navigateur.
Ce qui manque à cette solution, c'est le suivi des modifications.
Un plus : il est possible de faire un export de toute la base dans un fichier csv qu'on pourra stocker dans un coffre-fort. Sur le long terme, ça devrait le faire.
## Exemple de création d'une base avec un fichier clé et ajout du secret, le tout en ligne de commande
keepassxc-cli db-create -k $HOME/keys/emails.key $HOME/Keepass/emails.kbx
chmod 0400 $HOME/keys/emails.key $HOME/Keepass/emails.kbx
keepassxc-cli add -p --no-password -k $HOME/keys/emails.key $HOME/Keepass/emails.kbx emails
## Recupérer un mot de passe
keepassxc-cli show -a Password --no-password -k $HOME/keys/emails.key $HOME/PRIVE/Keepass/emails.kbx emails