Règles de tri email : authentifier l’expéditeur pour éviter les usurpations
Rien ne cliquait dans Cénacle : les emails étaient triés en fonction du domaine de l’expéditeur affiché.
N’importe quel individu pouvait ainsi se faire passer pour un client et déclencher une alerte urgente sur Telegram sans aucune difficulté.
J’ai anticipé cette faille et pris les mesures nécessaires pour la corriger.
L’architecture retenue
La solution mise en place repose sur une authentification rigoureuse de l’expéditeur par le serveur de réception. Une règle de tri pour un domaine client ne s’appliquait que si le domaine affiché correspondait, sans vérification d’authentification.
Un second header du même nom est traité comme une injection possible.
Ce que ça change en pratique
Avant la correction, un expéditeur non authentifié pouvait déclencher une alerte urgente ou un suivi automatique.
Les tradeoffs, assumés
J’ai opté pour un modèle de tri plus sécurisé et reproductible. La température est maintenant fixée à 0, avec une consigne réécrite pour plus de clarté.
Les publicités piégées sont désormais classées en « Bruit » plutôt qu’en « À trier ».
À l’échelle du projet, j’ai écarté LangChain et un VPS pour héberger tout le système. La validation des envois ne se fait plus via Telegram seul, mais par d’autres moyens plus sûrs.
Ces choix visent à maintenir le contenu de mes emails sur mon Mac et à éviter toute validation d’envoi à l’aveugle.
Quand ça vaut le coup, et quand non
Cette approche est particulièrement efficace lorsque le tri déclenche une action comme une alerte ou une réponse automatique.
Elle ne convient pas pour un simple rangement visuel des emails, ni pour une boîte qui reçoit principalement des emails transférés où des emails légitimes pourraient échouer à la vérification.
Ce que je changerais si je recommençais
Avec le recul, j’ajouterais une vérification de l’expéditeur dès que je rédige une règle par domaine.
Je testerais également un faux email reprenant exactement le domaine d’un client, au lieu de repousser la correction à plus tard.
La stack
TypeScript est l’outil principal utilisé dans ce projet.
GreenMail sert de serveur de test pour les emails.
Pour la supervision, j’utilise OpenTelemetry et Tempo intégrés à Grafana.