Vue normale

À partir d’avant-hierFlux principal

BW-Export : sauvegarde chiffrée de Bitwarden ou Vaultwarden

Par :Aerya
17 août 2024 à 10:00

J’utilise les services de Bitwarden pour stocker mes mots de passe et clés. On peut aussi héberger ça via Vaultwarden mais comme j’ai pas confiance en moi après avoir supprimé des années de (backup de) blogging, je n’héberge plus aucun service critique directement au garage pour l’instant…

Quoi qu’il en soit, ces gestionnaires reposent sur un accès unique à l’ensemble de ses mots de passe. En cas de plantage du service ou tout simplement de perte de mémoire, ça peut devenir compliqué. BW-Export permet, comme son nom l’indique, d’exporter ses données Bitwarden de manière sécurisée en utilisant l’outil Bitwarden-CLI original, dans un Docker. L’export réalisé peut donc être réinjecté en quelques clics via l’application/plugin Bitwarden.

Chacun fera comme il veut, je lance le Docker tous les 15 jours en cron et lui demande de conserver toujours 3 sauvegardes différentes. Il existe un template pour UNRAID mais même sur cet OS, je préfère lancer ça tous les 15 jours via User Scripts.

Pour s’en servir, il convient de récupérer son client_id et client_secret, son mot de passe unique BW et d’en choisir un pour le chiffrement du backup.

docker run --rm \
--name=bitwarden-export \
-e TZ=Europe/Paris \
-e BW_CLIENTID=user.aaa \
-e BW_CLIENTSECRET=bbb \
-e BW_PASSWORD=ccc \
-e EXPORT_PASSWORD=ddd \
-e KEEP_LAST_BACKUPS=3 \
-e FILE_LOG=/var/data/logs.log \
-v /mnt/user/appdata/bw-export:/var/data \
-v /mnt/user/appdata/bw-export:/var/attachments \
0netx/bw-export

Le process de sécurité de BW nous indique que nos identifiants sont utilisés en CLI

On peut voir dans les logs que les informations sensibles ne sont pas rapportées

root@HomeBox:~# tree /mnt/user/appdata/bw-export/
/mnt/user/appdata/bw-export/
├── 20240817084820-bw-export
│ └── bitwarden_encrypted_export_20240817104824.json
├── 20240817090948-bw-export
│ └── bitwarden_encrypted_export_20240817110952.json
├── 20240817094105-bw-export
│ └── bitwarden_encrypted_export_20240817114110.json
└── logs.log

Exemple de sauvegarde chiffrée

{
  "encrypted": true,
  "passwordProtected": true,
  "salt": "xxx",
  "kdfType": 0,
  "kdfIterations": 100000,
  "encKeyValidation_DO_NOT_EDIT": "xxx",
  "data": "2.OMlq6tqWKl1uNOFzhsZTDw==|AUrb+ToMJySQgg+1iVDN1518QKtBezn0eCkQiEgaQNVzC/vVAcCao39jCOHI1/Pq02ZuJJepsKHezoBLArvpqtTscl5F8gYCVyF4S1/kZDE8VkuT4JrPF+QgP4/ehKZARnn4FQZqUnbOcP1CLZ6tYjaMUhiBSmXiHv2jBLhgFxhOXA2Wyt7fKYuFTKOemycLOmFUOx88ce9LUucgmYr5XIKxK3Fpa5IXt49/YwsE1b9piyEWMmDt2paM6oEui7bXKG4HUz9M8N+O9gPjVBgps1Mi65Klgy0WTPALRPh2Cu/10iKIEQuXOTpjlsskMhoYFCpcVnfeJD11a8Bp97SrFeXwWB5IzvaIUqUyxrBxeoi9B4BovhLFfnBIf7Jg30BeLUTLINNNySg3aBkXdEVZEKKAvH [...]
 
Et pour importer les données sauvegardées, il suffit de se rendre sur son compte Bitwarden (ou instance Vaultwarden), menu Outils/Importer des données. Ici j’ai créé un coffre de TEST. On sélectionne son fichier de sauvegarde.json, on entre le mot de passe de chiffrement requis et c’est parti !
 

Loading

❌
❌