Aller au contenu

Chiffrement du stockage

Tous les e-mails, contacts et notes se trouvent dans une base de données locale sur ton ordinateur. Le chiffrement du stockage fait en sorte que ce fichier soit illisible sans clé : qui démonte le disque dur ou copie le fichier n’a entre les mains que des données inutilisables.

Par défaut, il est activé. La décision se prend une seule fois, dans l’assistant de configuration, et ne peut plus être modifiée ensuite. Sous Linux, il a besoin d’un trousseau comme GNOME Keyring ou KWallet. S’il manque, la base de données reste non chiffrée, et la page des paramètres indique Chiffrement indisponible sur ce système.

La base de données est chiffrée avec une clé de 64 caractères générée aléatoirement (SQLCipher, AES-256). YouniqMail dépose cette clé, scellée, dans son fichier de paramètres config.json. Le sceau est tenu par le système d’exploitation : la Keychain sous macOS, l’interface de protection des données de Windows (liée à ton compte utilisateur), le trousseau de l’environnement de bureau sous Linux.

Au quotidien, tu ne remarques rien de tout cela : au démarrage, YouniqMail descelle la clé à l’aide de ta session système. Aucun mot de passe supplémentaire, aucune étape en plus.

Le même sceau protège aussi les mots de passe de tes comptes e-mail et les connexions aux services connectés, c’est-à-dire les jetons, les mots de passe CalDAV et les adresses de webhooks. Ils sont scellés individuellement, même lorsque le chiffrement du stockage est désactivé. Seuls sous Linux sans trousseau, ils restent non chiffrés.

La chaîne a deux points faibles : le trousseau et le fichier config.json. Si le système d’exploitation est réinstallé, si le compte utilisateur est réinitialisé ou si config.json est supprimé, la clé scellée ne peut plus être ouverte, et avec elle disparaît l’accès à la base de données.

C’est à cela que sert la clé de récupération : les mêmes 64 caractères, affichés une seule fois lors de la configuration pour que tu les sauvegardes. Si la clé manque au démarrage, YouniqMail affiche la boîte de dialogue Clé de base de données manquante. Avec Saisir la clé…, tu rouvres la base de données grâce à la clé de récupération, sans rien retélécharger.

Tu ne l’as pas sauvegardée ? Tant que l’application fonctionne normalement, rien n’est perdu : sous Paramètres → Sécurité → Chiffrement du stockage, Afficher la clé de récupération la réaffiche à tout moment, et Enregistrer en PDF la conserve. Sur un Mac avec Touch ID, tu le confirmes avec ton empreinte digitale ; sur les autres ordinateurs, elle apparaît sans autre demande. Verrouille donc ton ordinateur quand tu t’en éloignes.

Les e-mails des dossiers locaux n’existent que sur ton appareil, sous la forme d’un fichier par e-mail dans le dossier local_mail de ton profil. Ils sont protégés exactement comme la base de données :

  • Chiffrement du stockage désactivé : ce sont des fichiers .eml ordinaires, que n’importe quel programme de messagerie ouvre d’un double-clic.
  • Chiffrement du stockage activé : les fichiers se terminent par .ymraw et sont chiffrés avec la clé de la base de données. Sans elle, ils sont aussi illisibles que la base de données elle-même.

Au quotidien, tu n’as jamais besoin des fichiers directement. Avec Fichier → Exporter, tu enregistres les dossiers locaux au format mbox ou en fichiers .eml individuels, et la sauvegarde complète les emporte avec elle.

Si YouniqMail ne démarre plus, la clé de récupération et un petit programme de secours te rendent tes e-mails :

  1. Installe Node.js, en version 18 ou plus récente.

  2. Télécharge le programme de secours : youniqmail-local-mail-decrypt.mjs.

  3. Ouvre un terminal (sous Windows, l’Invite de commandes) et lance-le avec le dossier local_mail et un dossier cible :

    node youniqmail-local-mail-decrypt.mjs <dossier local_mail> <dossier cible>
  4. Saisis la clé de récupération quand elle t’est demandée. Ce que tu tapes reste invisible.

Chaque e-mail se trouve ensuite dans le dossier cible sous forme de fichier .eml, nommé d’après sa date et son objet. Le programme signale un fichier endommagé et le laisse de côté, et une deuxième exécution n’écrase rien. Il n’a besoin d’aucune connexion Internet et n’envoie rien nulle part. La structure des fichiers est décrite en clair au début du programme.

Le dossier local_mail se trouve dans ton profil :

Système d'exploitation :
~/Library/Application Support/YouniqMail/local_mail/
%APPDATA%\YouniqMail\local_mail\
~/.config/YouniqMail/local_mail/

Si tu veux réinitialiser les données locales, sauve les dossiers locaux avant avec le programme de secours : après la réinitialisation, YouniqMail fait le ménage dans les fichiers devenus inutiles de local_mail au bout de trois jours.

YouniqMail dépose certains fichiers à côté de la base de données, et ceux-ci ne sont pas chiffrés :

  • les pièces jointes mises en cache que tu as ouvertes ou affichées (dossier attachment_cache, 500 Mo au maximum),
  • les pièces jointes des brouillons et des e-mails de la boîte d’envoi (dossiers draft_attachments et outbox_attachments),
  • les e-mails en cours d’envoi, jusqu’à ce que leur copie soit arrivée dans le dossier Envoyés (dossier sent_pending),
  • le journal (dossier logs), dont les adresses et les contenus sont filtrés,
  • les paramètres dans config.json, dont l’indice du mot de passe principal.

Tous se trouvent dans le même dossier de profil que local_mail. Pour protéger l’ordinateur contre un accès étranger au disque dur, active en plus le chiffrement de disque du système (FileVault, BitLocker, LUKS).

Ce qu’il protège, et ce qu’il ne protège pas

Section intitulée « Ce qu’il protège, et ce qu’il ne protège pas »

Le chiffrement du stockage protège le fichier sur le disque dur : contre le vol de l’ordinateur, contre la copie de la base de données, contre les regards curieux sur un disque de sauvegarde.

Il ne protège pas de quelqu’un qui s’assoit devant ton ordinateur déverrouillé : la base de données y est lisible, c’est bien le but. Pour cela, il y a le mot de passe principal. Et il ne chiffre pas le transport vers le correspondant, ce dont se chargent PGP et S/MIME.