L'enfer de l'e-mail

Posté par Eliott Lavier le 29/09/2020

De nos jours, l'e-mail est un composant essentiel de l'écosystème Internet. En effet, il sert d'identifiant pour quasiment tous les comptes en lignes, de moyen de communication entre particuliers ou même d'entreprises à particuliers, de système d'information sur les nouveautés d'une entité (newsletter), etc..

Pourtant toutes les personnes (non pro) qui ont essayé d'installer par elles-mêmes un service de mail (auto-hébergement) vous diront que l'écosystème mail est un enfer. Pourquoi ?

Complexité et absence de sécurité

Le mail n'a pas été conçu pour être sécurisé. Par défaut aucun mécanisme ne permet de s'assurer de l'authenticité de tout un tas de données et métadonnées d'un mail (adresse e-mail de l'émetteur, titre et corps du mail, etc.) ni de la confidentialité de ces (méta)données.

Au fur et à mesure que le mail s'est développé, de nouvelles solutions permettant de pallier ces problèmes ont étés ajoutées comme par exemple l'utilisation de TLS pour l'envoi de mail à l'aide du protocole SMTP, l'utilisation de PGP pour le chiffrement de bout en bout du contenu des mails, MTA-STS et DANE pour forcer l'utilisation de TLS, DMARC ainsi que SPF et DKIM pour assurer l'authenticité de la source du mail, ClamAV pour détecter les virus, Rspamd pour détecter les spams, etc. Malgré tout ces technologies ne sont pas suffisantes : non seulement le mail est très bavard en méta-données et celles-ci ne sont toujours pas chiffrées (ce qui pose de gros problèmes de confidentialité) mais en plus, rien ne permet de s'assurer que les mails ainsi que leur méta-données sont stockées dans un lieu sûr c'est-à-dire avec un chiffrement à zéro-accès.

Toutes ces surcouches ne sont que des tentatives de patcher un système dont l'architecture n'a pas été prévue pour. Pour donner une analogie, c'est comme essayer de coller des pansements sur une passoire dégoulinante pour éviter que son contenu n'en sorte.

Et comme si cela ne suffisait pas, les solutions permettant de "patcher" le mail ont elles-mêmes des problèmes de sécurité. PGP par exemple est trop complexe à utiliser pour la plupart des gens, cherche d'abord la rétrocompatibilité plutôt que la sécurité par l’obsolescence de technologies/méthodes de chiffrement, nécessite une infrastructure complexe et non sécurisé de gestion des clés à tel point que de nombreux experts en sécurité déconseillent de l'utiliser.

De plus, la mise en place d'un serveur mail sécurisé nécessite d'installer un nombre assez conséquent de logiciels : Postfix (SMTP), Dovecot (POP/IMAP), ClamAV (anti-virus), Rspamd (détection spam), OpenDKIM (DKIM), OpenSPF (SPF), OpenDMARC (DMARC), Fail2Ban (anti-dos), IPTables (pare-feu), MySQL (gestion des utilisateurs), CertBot (certificat TLS), Nginx (MTA-STS), RoundCube (client web), etc.

Chacun de ces logiciels possède ses propres fichier de configuration (et enregistrements DNS tordus), ainsi il faut modifier des milliers de lignes de configuration sachant que chaque ligne peut apporter des erreurs de configuration qui peuvent amener à la création de failles de sécurité. Sans oublier que chaque logiciel fait grossir la surface d'attaque possible du fait du nombre de lignes de codes, de développeurs travaillant sur les logiciels et d'architectures des logiciels utilisées.

Mais ce n'est pas tout, les problèmes de sécurité et de confidentialité sont également présent du côté de l'utilisateur. Ceci est principalement dû au fait que le mail autorise comme langage de mise en page le HTML. Ce langage est très bien pour créer des pages web mais bien trop puissant pour mettre en forme le contenu d'un mail. Il devient ainsi possible de pister les lecteurs de mails au format HTML en plaçant des pixels de pistage et il est également possible (à l'aide de CSS) de faire réaliser des actions allant à l'encontre de l'utilisateur comme déchiffrer un message chiffré (attaque efail). De plus, le fait d'autoriser l'utilisation du langage HTML/CSS dans le corps des mails nécessite que les clients mails supportant ce format intègrent un moteur de rendu de ce contenu ce qui fait augmenter considérablement la surface d'attaque du client.

Tout ceci complique énormément l'installation d'un serveur mail et décourage de nombreuses personnes à installer leur serveur. Mais la sécurité et complexité ne sont pas les seuls problèmes du mail.

Centralisation effective

La grande majorité des utilisateurs de mail utilisent des serveurs de GAFAM : GMail, Yahoo Mail, Outlook, etc et ceci pose un gros problème. En effet, ces grosses sociétés, du fait de leur poids dans l'écosystème mail, ont tendance à faire ce qu'elles veulent et n'hésitent pas à ne pas respecter les standards. Par exemple les serveurs Outlook choisissent parfois de rejeter des mails sans avertir ni la source (par un code d'erreur) ni le destinataire (par un envoi dans le dossier spam).

On pourrait se demander alors comment se fait-il que l'écosystème mail arrive encore à fonctionner. La raison qui fait que rien ne s'écroule est due au fait que ces serveurs choisissent de mettre les plus gros serveurs sur liste verte et les plus petits serveurs sur liste rouge (liste de serveurs de spam) voir à les ignorer totalement.

On se retrouve donc dans une boucle de rétro-action positive : plus il y a d'utilisateurs de gros services de mail, plus les mails de petits serveurs seront rejetés, plus les utilisateurs de petits serveurs se tournent vers les gros serveurs. Ainsi, le mail, qui était conçu comme un système décentralisé, se trouve centralisé par de grosses multinationales. C'est ce que j'appelle la centralisation effective (ou centralisation de fait).

Utilisation comme source d'identité

De nos jours, quasiment n'importe quel service en ligne impose l'utilisation d'une adresse mail (ou d'un numéro de téléphone mais même problème) comme identifiant de compte. Cela pose bien des problèmes car cet identifiant est également un moyen de communication permettant de spammer un utilisateur et cet identifiant est en général le même pour tous les comptes d'un utilisateur ce qui pose des problèmes de sécurité en cas de compromission de l'adresse mail (il suffit de demander des liens de réinitialisation de mot de passe pour prendre le contrôle de tout les comptes d'un utilisateur). De plus, les utilisateurs ne possèdent en général pas beaucoup d'adresses mail (ou d'alias) ce qui fait qu'il est parfois impossible de changer d’identifiant pour un compte.

Autres problèmes

Le mail ne permet pas de décider si l'on souhaite ou non converser avec une autre adresse mail. Dit autrement, on ne peut pas refuser un mail même si l'on ne connaît pas l'identité de la source de ce mail. Ce problème est à l'origine des spams et de certaines techniques de censure par envoi massif de mails.

Les grands fournisseurs de service mails ne permettent pas l'usage de certaines fonctionnalités de base du mail tel que les alias alors que cette fonction est essentielle pour se protéger contre le spam lié à des fuites de données de comptes en ligne.

Quelles solutions ?

L'écosystème mail est utilisé dans 3 grands buts : s'identifier, échanger de longs messages sous forme de discussion et s'échanger de petits fichiers. Il ne faut donc pas essayer de développer une seule solution mais 3 solutions pour ces 3 catégories d'usage.

Pour s'identifier, il existe plusieurs solutions :

  • Utiliser un nombre/mot/pseudo comme identifiant ce qui nécessite d'ajouter un moyen de communication si nécessaire et pose le problème de la facilité de mémorisation d'un grand nombre d'identifiants

  • Utiliser un pseudo/identifiant de réseau social comme identifiant ce qui ne résout pas le problème du faible nombre d'identités possibles mais permet de régler (partiellement) le problème des contacts non sollicités (spam) tout en étant une source de contact.

Pour ce qui est des échanges de longs messages entre un ou plusieurs destinataires, il n'existe pas à ma connaissance de solution qui soit réellement comparable. La plupart des alternatives sont des messageries instantanées avec des possibilités de mise en forme très limitées et trop orientées smartphones.

Enfin, l'échange de fichiers est la catégorie d'usage qui a peut-être le plus grand nombre d'alternatives viables. On peut citer notamment Jirafeau, Lufi, Nextcloud, Seafile, OnionShare, etc. Ces différents projets ont des objectifs, des fonctionnalités et une complexité différentes mais sont bien mieux conçus pour ce qui est du transfert de fichiers.

Conclusion

En conclusion, il est temps pour le mail de prendre sa retraite et de laisser la place à d'autres solutions plus simples, plus sécurisées, plus modernes et moins "usines à gaz". Pour l'instant rien ne dit que le mail disparaîtra et certaines de ses alternatives sont encore à développer. Il faut dire aussi que les acteurs du capitalisme de surveillance ne nous facilitent pas la tâche, car les faiblesses du mail leur sont bien utiles (spam, surveillance de masse, collecte de données, traçage, etc).

Je pense qu'il est également évident que l'usage du mail doit être réduit au strict minimum si l'on souhaite garder une certaine sécurité/vie privé : ne pas communiquer avec, ne l'utiliser qu'en dernier recours pour servir d'identifiant de compte en ligne et utiliser les alias, mettre en place une authentification forte (2FA) et utiliser un hébergeur respectueux de la vie privée (ProtonMail, TutaNota, MailBox, etc).