Fonctionnement
L’architecture : transport IMAP → stockage local → analyse
GravesMail utilise le serveur IMAP de votre fournisseur de messagerie uniquement comme couche de transport. Je ne lis jamais depuis IMAP pour afficher les messages — ce serait lent et peu fiable. Voici ce qui se passe à la place :
- Récupération depuis IMAP — Les messages sont téléchargés depuis le serveur de votre fournisseur par une connexion chiffrée.
- Mise en attente dans la DMZ — Les nouveaux messages arrivent dans une zone d’attente locale (SQLite) avant que vous ne les voyiez.
- Analyse de sécurité à 7 couches — Chaque message et chaque pièce jointe passent par les sept couches de protection sur votre machine, y compris la recherche de maliciels par YARA.
- Filtrage par les Règles rapides — Les messages correspondant à vos Règles rapides personnelles sont classés automatiquement par votre règle : mis de côté dans le Piège à spam pour examen, déplacés ou supprimés.
- Passage vers Boîte de réception, Spam ou Maliciel — Les messages sains arrivent dans votre Boîte de réception. Le spam va dans Spam. Les messages positifs aux maliciels vont dans un dossier Maliciel séparé, leurs pièces jointes dangereuses étant retirées et retenues.
- Suppression du serveur (facultatif) — Si vous avez activé « Supprimer du serveur après téléchargement », le message est retiré de chez votre fournisseur.
SQLite est l’unique source de vérité. Tout ce que vous voyez dans l’interface provient de votre base de données locale, pas d’IMAP.
Synchronisation en deux phases pour les boîtes aux lettres volumineuses
Lorsque vous connectez un compte pour la première fois — surtout s’il contient des milliers de messages — GravesMail procède en deux phases :
Phase 1 (Démarrage rapide) : les 500 messages les plus récents de chaque dossier sont récupérés en premier, généralement en moins d’une minute. Vous pouvez commencer à lire et à travailler immédiatement.
Phase 2 (Synchronisation en arrière-plan) : les messages restants se téléchargent discrètement en arrière-plan. Un indicateur de progression dans la barre d’état affiche le pourcentage d’avancement et le temps restant estimé. Vous pouvez mettre en pause, reprendre ou arrêter à tout moment. La progression est enregistrée si vous fermez l’application.
Les sept couches de protection
Chaque message entrant et ses pièces jointes passent par sept couches de protection indépendantes. Chaque couche recherche un type de problème différent et décide seule. Si une seule couche donne l’alarme, le message est traité comme du spam — il n’y a ni moyenne ni score combiné à atteindre. Une alarme suffit. C’est le modèle « OU à 7 couches ».
1. Validation du domaine
Le domaine de l’expéditeur existe-t-il, et dispose-t-il de vrais serveurs de messagerie ? La terminaison de son adresse (son TLD, comme .shop, .top, .click ou .xyz) fait-elle partie de celles dont le spam abuse couramment ?
2. Filtre bayésien
Un jugement appris sur le degré de ressemblance des mots du message avec du spam. Il est livré pré-entraîné, puis apprend de vous — chaque « Marquer comme spam » ou « Marquer comme pas un spam » le rend plus intelligent.
3. Authentification des en-têtes
SPF, DKIM et DMARC — les vérifications standard qui prouvent qu’un expéditeur est bien celui qu’il prétend être.
4. Score heuristique
41 détecteurs couvrant les motifs de contenu et d’en-têtes : mots déguisés (H0ME, S4LE), formulations d’arnaques à l’avance de frais et à l’héritage, en-têtes falsifiés, anomalies de date et pays d’origine de l’expéditeur.
5. Réputation
Vos listes d’expéditeurs sûrs et bloqués, l’historique des expéditeurs et le suivi des campagnes d’un message à l’autre — qui repère un spammeur changeant sans cesse de domaine d’expédition mais réutilisant le même serveur d’origine, le même hôte de charge utile ou le même lien de désabonnement.
6. Maliciel : AV du système
Sous Windows, les pièces jointes sont soumises à votre antivirus installé (Windows Defender, Norton, Bitdefender, Kaspersky et d’autres) par l’interface AMSI. Cette couche n’est pas disponible sous macOS, sous Linux ni sur mobile — et sur ces plateformes, elle le dit clairement au lieu d’annoncer un résultat propre qu’elle n’a jamais produit.
7. Maliciel : YARA
Analyse les octets des pièces jointes et le corps des messages en les comparant à des milliers de signatures de maliciels communautaires issues du dépôt Neo23x0/signature-base. Détecte les chevaux de Troie, les rançongiciels, les RAT, les macros Office malveillantes, les exploits PDF et les documents d’hameçonnage. Fonctionne sur toutes les plateformes, y compris mobiles, et est livré intégré pour une utilisation hors ligne.
Des résultats honnêtes — pas de fausse assurance
Ouvrez les Propriétés de n’importe quel message pour voir le détail par couche : le score de chaque couche, le seuil auquel elle donne l’alarme et son état — En alarme, Propre ou Indisponible. Lorsqu’un analyseur n’a pas pu s’exécuter, GravesMail indique « Indisponible ». Il n’est jamais affiché comme « Propre ». Un antivirus qui ne parvient pas à démarrer et annonce quand même un résultat propre est le pire des outils de sécurité, car vous vous fiez à un verdict qui n’a jamais été réellement rendu.
L’écran Moteur de sécurité (Outils → Moteur de sécurité, ou Paramètres → Moteur de sécurité sur mobile) permet de régler chacune des sept couches séparément avec un curseur de sensibilité de 0 à 100 % — 0 % désactive une couche, 100 % est le réglage le plus sensible. Il n’y a pas de réglage global unique ; vous réglez les couches une par une. Le même écran affiche l’état en direct des analyseurs de maliciels, un éditeur de politique par pays et un inventaire en lecture seule de chaque détecteur et de son poids.
La géolocalisation sans requête externe
La couche heuristique tient compte de l’origine d’un message. Cette recherche est purement locale. GravesMail est livré avec une table intégrée de correspondance entre pays et plages d’adresses IP et la consulte sur votre appareil — il n’y a ni requête DNS, ni appel à une API externe, ni service tiers sur le parcours. Les métadonnées de vos messages ne quittent jamais votre appareil pour être géolocalisées.
C’est vous qui décidez de ce que le résultat signifie. Dans l’écran Moteur de sécurité, vous pouvez marquer des pays comme Sûr (aucun signal de spam supplémentaire) ou Menace (un signal fort). Les deux listes sont vides au départ, de sorte que le courrier international ordinaire n’est jamais pénalisé tant que vous n’avez pas choisi de politique.
Données de géolocalisation IP fournies par DB-IP (db-ip.com), sous licence CC BY 4.0.
Blocage des images externes et suppression des pixels de suivi
Dans un courriel que vous recevez, l’expéditeur peut intégrer des images externes qui se chargent depuis ses serveurs. Au chargement de l’image, l’expéditeur apprend votre adresse IP, le fait que vous avez ouvert le courriel, le moment où vous l’avez ouvert et l’appareil que vous avez utilisé.
GravesMail bloque les images externes par défaut. Séparément, il détecte et supprime les pixels de suivi invisibles (des images de 1×1 servant uniquement à suivre la lecture). Ce sont des réglages indépendants — vous pouvez charger les images sans charger les traqueurs, ou l’inverse.
Chiffrement de bout en bout (OpenPGP)
GravesMail prend en charge OpenPGP — la norme ouverte et interopérable pour les courriels chiffrés et signés de bout en bout. Vous pouvez échanger du courrier privé avec toute personne qui utilise PGP, sur n’importe quel système de messagerie (Proton Mail, Thunderbird, gpg et d’autres), et pas seulement avec d’autres utilisateurs de GravesMail. C’est du vrai PGP/MIME, pas un dialecte propre à GravesMail.
Clés
Générez une clé dans le Gestionnaire de clés PGP — Ed25519/Curve25519 est recommandé, et RSA-4096 est proposé pour la compatibilité avec les logiciels PGP plus anciens. Exportez votre clé publique pour que d’autres puissent vous écrire, et importez la leur pour leur écrire. Après l’importation, GravesMail affiche l’empreinte de la clé ; confirmez-la avec la personne par un autre canal — un appel, ou en personne — et marquez-la comme vérifiée. Une clé non vérifiée fonctionne tout de même mais reste signalée comme non vérifiée, car ce signalement signifie une seule chose : vous n’avez pas encore confirmé que cette clé appartient réellement à cette personne.
Les clés sont identifiées par leur empreinte, pas par l’adresse de courriel. Avoir deux clés pour une même adresse est normal — une ancienne et une nouvelle, ou une clé RSA et une clé Ed25519 côte à côte — c’est pourquoi chaque action porte sur la clé que vous avez sélectionnée, et non sur la première qui se trouve correspondre à l’adresse.
Vous pouvez associer une clé à un contact, afin que le chiffrement pour cette personne fonctionne sans avoir à chercher dans le Gestionnaire de clés. Associer une clé n’active pas le chiffrement ; vous le choisissez toujours message par message.
Si vous perdez votre clé secrète, tous les messages jamais chiffrés pour elle deviennent définitivement irrécupérables. Ni par moi, ni par personne. Utilisez Sauvegarder la clé secrète pour enregistrer en lieu sûr un fichier de sauvegarde protégé par mot de passe, et retenez ce mot de passe. Restaurer la clé secrète la rétablit sur un appareil neuf ou réinstallé, en confirmant quelle clé a été restaurée par l’affichage de son identité et de son empreinte. La suppression de l’une de vos propres clés secrètes est irréversible ; GravesMail renforce donc l’avertissement et vous demande de confirmer.
Envoi et lecture
La fenêtre Rédiger comporte un réglage Sécurité à trois modes — Signer, Chiffrer ou Signer + Chiffrer (recommandé pour le courrier privé). Il est désactivé par défaut, de sorte que le courrier ordinaire reste inchangé. Le courrier chiffré que vous recevez est déchiffré automatiquement et affiche un cadenas fermé 🔒 ; le courrier signé affiche l’état de sa signature, et une signature non valide est signalée de façon bien visible plutôt que discrète. Un message chiffré pour une clé que vous n’avez pas sur cet appareil le dit explicitement au lieu de vous montrer un corps vide.
Lorsque vous envoyez du courrier chiffré, GravesMail le chiffre aussi pour votre propre clé, afin que la copie de votre dossier Envoyés reste lisible par vous. Sans cela, la copie que vous conservez serait indéchiffrable. Ce comportement est toujours actif.
La règle qui ne plie pas
Si vous choisissez de chiffrer et qu’un destinataire n’a pas de clé utilisable, l’envoi est bloqué. GravesMail s’arrête et demande : annuler, ou choisir explicitement d’envoyer sans chiffrement — une seconde action délibérée qui nomme les destinataires exposés, jamais un choix par défaut et jamais automatique. Il n’existe aucun chemin dans le code par lequel le choix du chiffrement aboutirait discrètement à un envoi en clair. Cette règle est appliquée dans le moteur lui-même, pas seulement dans l’interface, et elle est couverte par un test automatisé.
Ce que PGP protège, et ce qu’il ne protège pas
PGP chiffre le corps et les pièces jointes du message. Il ne masque pas l’objet, les champs À/De/Cc ni le moment où un message a été envoyé — ces éléments circulent en clair. C’est la limite commune à tous les systèmes PGP/MIME, Proton compris ; ce n’est pas un défaut de GravesMail, mais vous devez le savoir avant de vous y fier.
PGP protège votre courrier pendant son acheminement — contre l’interception et contre votre fournisseur de messagerie. Ce n’est pas un outil anti-forensique : une fois déchiffré, le courrier est mis en cache dans la base de données locale chiffrée de GravesMail, afin que vous puissiez le rechercher et le lire hors ligne.
Deux autres limites, énoncées clairement : GravesMail n’effectue pas de recherche automatique sur serveur de clés ou par WKD et n’a pas de toile de confiance — vous importez les clés vous-même et vérifiez les empreintes vous-même, ce qui est un choix délibéré pour éviter de se fier à un service réseau sur l’identité de quelqu’un. Et les messages signés en clair dans le corps du message sont affichés comme du texte lisible sans vérification de la signature ; GravesMail les affiche plutôt que de revendiquer une signature qu’il n’a pas réellement vérifiée.
Interopérabilité
Le PGP de GravesMail est vérifié dans les deux sens avec GnuPG — l’implémentation de référence d’OpenPGP — à l’aide de clés générées par GravesMail, pour Ed25519 comme pour RSA-4096 : GravesMail chiffre et gpg déchiffre, gpg chiffre et GravesMail déchiffre, et les signatures se vérifient dans les deux sens. Il s’agit d’une suite de tests automatisés, pas d’une vérification manuelle ponctuelle.
Proton Mail est confirmé lui aussi — à la main plutôt que par un test automatisé. De vrais courriels chiffrés ont été envoyés et lus dans les deux sens entre GravesMail et un compte Proton réel. Ces essais ont aussi permis de trouver et de corriger trois vrais défauts : la validation stricte des clés de Proton qui rejetait les clés Ed25519 de GravesMail, un bogue d’expiration de clé, et des pièces jointes supprimées silencieusement des courriels chiffrés lors du déchiffrement. Les trois sont corrigés, et l’interopérabilité avec Proton fonctionne dans les deux sens.
Je n’ai pas testé Thunderbird spécifiquement pour PGP, je ne l’affirmerai donc pas ici. C’est un client OpenPGP standard et cela devrait fonctionner, mais « devrait » n’est pas la même chose que vérifié, et je préfère vous dire ce qui a réellement été contrôlé.
Courriel protégé par mot de passe (aucune clé requise)
PGP est le bon outil quand votre correspondant utilise lui aussi PGP. Quand ce n’est pas le cas — et ce n’est pas le cas de la plupart des gens — utilisez plutôt l’option de protection par mot de passe ci-dessous.
Il faut parfois envoyer quelque chose de privé à une personne qui n’a ni clés de chiffrement ni logiciel particulier — seulement un compte de messagerie ordinaire. L’option Protéger par mot de passe (aucune clé requise) de GravesMail scelle votre message et ses éventuelles pièces jointes dans un véritable ZIP chiffré AES-256 standard, que le destinataire ouvre avec un logiciel gratuit et courant sur n’importe quelle plateforme.
Cette option utilise le format WinZip AES-256 (AE-2), standard du secteur — le même chiffrement robuste que 7-Zip, Keka et les applications d’archivage mobiles savent déjà lire. Ce n’est pas un conteneur propre à GravesMail, et ce n’est pas le « ZipCrypto » faible et cassable qu’utilisaient les anciens outils ZIP. L’interopérabilité est prouvée avec de vrais logiciels d’archivage standard, le format de chiffrement AE-2 de l’archive étant verrouillé par un test automatisé — ce qui est envoyé est donc un fichier réellement standard, et non quelque chose qui semble seulement fonctionner entre deux exemplaires de la même application.
Ce qui est réellement envoyé est une seule pièce jointe, protected-message.zip. Votre vrai message et chaque pièce jointe y sont chiffrés ; le corps visible du courriel ne contient que des instructions en langage clair pour l’ouvrir. Les noms des pièces jointes dans l’archive sont remplacés par des noms neutres, les vrais noms étant conservés dans un manifeste chiffré qui apparaît une fois que le destinataire a saisi le mot de passe — les noms de fichiers ne fuitent donc pas non plus.
À l’envoi, GravesMail vous demande de définir un mot de passe robuste (au moins 12 caractères avec majuscules et minuscules, deux chiffres et deux symboles), avec une liste de contrôle en direct et un champ de confirmation, pour qu’une faute de frappe ne puisse jamais empêcher le destinataire d’ouvrir le message. Il affiche ensuite le mot de passe une seule fois, avec un bouton Copier, et vous rappelle de le transmettre par un autre canal — par téléphone, SMS ou messagerie instantanée. GravesMail ne propose jamais d’envoyer le mot de passe par courriel, et ne le stocke ni ne le transmet jamais nulle part. GravesMail peut aussi ouvrir sur place les messages protégés qu’il reçoit, sur toutes les plateformes.
Toute la sécurité repose sur le mot de passe — choisissez-en un bon et communiquez-le par un canal différent du courriel lui-même. Il n’y a ni expiration ni « autodestruction » ; elles sont impossibles à garantir sans serveur, et GravesMail est axé sur le stockage local, je ne les revendique donc pas. Le ZIP chiffre le contenu des fichiers, pas la structure de l’archive ; quiconque intercepte le message peut donc encore voir combien de fichiers elle contient, ainsi que leur taille approximative et leur horodatage — mais ni leurs noms ni leur contenu. Et l’objet du courriel, les champs À/De et le moment de l’envoi circulent toujours en clair, comme pour tout courriel.
Règles rapides : votre tri personnel du courrier
Les Règles rapides vous permettent de créer des règles de tri en un clic pour des expéditeurs, des domaines ou des motifs d’objet précis. Chaque règle a son propre bouton dans la barre d’outils. Lorsque vous appliquez une règle à un message, l’expéditeur est ajouté automatiquement à la liste de correspondances de cette règle — la règle s’affine à mesure que vous l’utilisez.
Une règle peut envoyer le courrier correspondant dans le Piège à spam pour le mettre de côté en vue d’un examen, le déplacer dans un dossier, le supprimer ou le supprimer automatiquement après un certain nombre de jours. Les règles peuvent être configurées pour s’appliquer automatiquement pendant la synchronisation, de sorte que les messages correspondants n’atteignent jamais votre Boîte de réception, et vous pouvez analyser des dossiers entiers en quelques secondes pour traiter en masse le courrier ancien. Tout ce qu’une règle a capturé peut être examiné, restauré ou purgé à tout moment.
Vos règles ont priorité sur le filtre antispam. Un message correspondant à l’une de vos règles est classé par votre règle avant que le filtre antispam ne puisse le détourner — un expéditeur pour lequel vous avez écrit une règle ne sera donc pas envoyé à tort dans Spam. Le filtre s’exécute tout de même et attribue toujours un score au message, et vous pouvez voir son verdict dans les Propriétés ; simplement, il ne passe pas outre votre règle. La seule exception concerne les maliciels : l’analyse des maliciels l’emporte toujours, si bien qu’une règle ne peut jamais remettre une pièce jointe dangereuse dans votre Boîte de réception.
La liste Captures du jour affiche tout ce que l’ensemble de vos règles a capturé au cours d’une fenêtre de temps glissante (de 1 à 96 heures sur ordinateur, 24 par défaut). Chaque liste d’examen — Règles, Captures du jour et Spam — possède sa propre zone de recherche.
Ouvrez un message capturé et le premier onglet est l’Aperçu sécurisé : le message affiché tel qu’il apparaîtrait dans votre volet de lecture, mais avec les scripts neutralisés, les pixels de suivi bloqués et les images distantes chargées uniquement pour les expéditeurs de confiance. Il comporte les boutons Répondre, Répondre à tous et Transférer, ce qui vous permet de répondre à un message capturé sans le restaurer d’abord dans votre Boîte de réception — le message reste où il est et votre réponse part comme un message normal.
Pièces jointes retenues
Lorsque YARA ou l’antivirus de votre système détecte un maliciel dans une pièce jointe, GravesMail effectue automatiquement les actions suivantes :
- Message mis de côté — déplacé dans un dossier Maliciel dédié, distinct de Spam.
- Pièce jointe retirée — le fichier dangereux est retiré du message. Le corps du message est conservé pour que vous puissiez voir qui l’a envoyé.
- Données conservées — les octets de la pièce jointe sont conservés localement. Vous pouvez examiner chaque élément retenu, voir pourquoi il a été retenu, l’enregistrer sur disque si vous lui faites confiance ou le supprimer définitivement, depuis Pièces jointes retenues. Les éléments retenus sont conservés jusqu’à ce que vous décidiez ; ils ne sont jamais perdus en silence.
- Explication complète — les propriétés du message indiquent précisément quelle règle YARA ou quel moteur antivirus s’est déclenché, quel fichier était concerné et quelle action a été effectuée.
Vous pouvez aussi, à tout moment, cliquer avec le bouton droit sur une pièce jointe et choisir Rechercher des maliciels pour lancer une analyse à la demande. Les règles YARA peuvent être mises à jour manuellement dans Paramètres ou automatiquement chaque semaine.
Sauvegardes chiffrées automatiques
GravesMail crée automatiquement des sauvegardes chiffrées de l’ensemble de votre profil — pas seulement votre base de données de courrier, mais aussi vos contacts, votre calendrier, vos règles, vos listes d’expéditeurs sûrs et bloqués, vos seuils ajustés, la réputation des expéditeurs, votre filtre antispam entraîné, votre trousseau PGP et les identifiants de compte enregistrés. (Les fichiers livrés avec l’application et remplacés à chaque mise à jour, comme la table de correspondance géographique et le modèle antispam de base, sont délibérément exclus.)
- Sauvegardes complètes — une copie intégrale du profil, chiffrée en AES-256
- Sauvegardes différentielles — uniquement ce qui a changé depuis la dernière sauvegarde complète ; en restaurer une remonte automatiquement toute la chaîne
- Instantanés pré-opération — avant toute opération destructrice (analyse par les règles rapides, purge, vidage de la corbeille)
Vous réglez la planification depuis le Gestionnaire de sauvegardes : soit un intervalle (désactivé, quotidien, hebdomadaire ou un nombre d’heures personnalisé, avec une sauvegarde complète tous les N jours), soit une grille hebdomadaire où chaque jour est réglé sur Aucune, Complète ou Différentielle. Les limites de conservation des sauvegardes complètes, différentielles et des instantanés sont configurables et ne suppriment jamais votre unique copie.
Comment ces sauvegardes sont chiffrées
Les sauvegardes planifiées et manuelles de GravesMail sont scellées avec une clé maîtresse de sauvegarde que l’application génère et gère pour vous. La clé elle-même n’est jamais écrite en clair sur le disque — seules des copies enveloppées sont stockées, et elle est enveloppée de deux façons :
- Le magasin de clés sécurisé de votre appareil — pour que les sauvegardes courantes se fassent en silence, sans jamais demander de mot de passe.
- Votre phrase secrète de récupération — qui déverrouille la même clé sur n’importe quelle machine, sans aucun magasin de clés.
C’est cette seconde enveloppe qui rend ces sauvegardes indépendantes de l’appareil. Les versions antérieures liaient les sauvegardes automatiques à une seule machine physique ; elles ne sont plus restaurables uniquement là où elles ont été créées.
Vous définissez la phrase secrète de récupération une seule fois, lors de votre première sauvegarde. Elle est obligatoire et ne peut pas être ignorée — aucune sauvegarde n’aboutit tant qu’elle n’est pas définie, précisément pour que vous ne vous retrouviez jamais avec des sauvegardes impossibles à récupérer. Ensuite, les sauvegardes s’exécutent sans autre demande. Vous pouvez la modifier à tout moment depuis le Gestionnaire de sauvegardes, et la modifier laisse toutes les sauvegardes existantes restaurables.
C’est le seul moyen de récupérer ces sauvegardes sur un appareil neuf ou réinitialisé, et je ne peux pas la retrouver pour vous — c’est voulu. Il n’y a ni lien de réinitialisation ni porte dérobée au support, car l’un comme l’autre serait une entrée pour quelqu’un qui n’est pas vous. Si vous l’oubliez et perdez l’appareil, ces sauvegardes ne pourront pas être ouvertes. Rangez-la en lieu sûr.
Le Gestionnaire de sauvegardes vous permet de parcourir le contenu de n’importe quelle sauvegarde, de rechercher dans toutes les sauvegardes, de comparer avec votre base de données actuelle et de récupérer des messages un par un. Une restauration vérifie que la sauvegarde est complète et intacte avant de toucher à votre profil actuel — une sauvegarde tronquée ou endommagée est refusée et vos données existantes restent intactes — et, une fois terminée, elle vous montre ce qui a été restauré, jeu de données par jeu de données.
Journal des suppressions et récupération
Chaque message supprimé est consigné dans un journal des suppressions local, avec le corps complet. Vous pouvez parcourir les messages supprimés, y rechercher et les récupérer en un clic pendant 90 jours au maximum (durée configurable). Aucun fichier de sauvegarde n’est nécessaire — la récupération est instantanée depuis le journal des suppressions.