Blog-like notes

De l’obfuscation des adresses e-mails

L’obfuscation des adresses e-mails est une pratique répandue sur Internet et a fortiori sur le Web. L’idée est de ne jamais afficher une adresse e-mail « en clair », de crainte qu’elle ne soit récupérée d’une façon ou d’une autre et ne finisse dans les listes d’adresses des spammeurs. Plusieurs procédés existent, depuis le plus simple qui consiste simplement à remplacer certains caractères de l’adresse par leur prononciation en toutes lettres (utilisateur CHEZ example POINT com par exemple), jusqu’aux plus sophistiqués comme l’utilisation d’une image au lieu de texte brut.

Je désapprouve tous ces procédés et le principe même de l’obfuscation d’adresses, pour des raisons que je vais tenter d’expliquer.

Une efficacité à démontrer

Je doute fortement de l’efficacité de l’obfuscation d’adresses, même dans le cas des procédés les plus sophistiqués (peut-être même encore plus dans ces cas-là). C’est totalement pifométrique, j’en conviens (je n’ai aucun chiffre, aucune étude sous la main), mais j’ai l’intuition que l’efficacité est plutôt faible. Les collecteurs d’adresses peuvent faire preuve d’autant d’ingéniosité que ceux qui tentent de se cacher d’eux. Au final, l’obfuscation ne déjoue probablement que les collecteurs les plus rudimentaires, et ne retarde qu’à peine les collecteurs plus évolués.

Je pense que c’est d’autant plus vrai pour les adresses obfusquées selon des procédés complexes et automatiques. Le résultat d’une telle obfuscation peut sembler incompréhensible et impossible à démêler, mais c’est oublier que ce qu’une machine peut faire automatiquement, une autre machine peut tout aussi automatiquement le défaire (hors le cas des fonctions cryptographiques à sens unique, et encore c’est juste une question de temps et de puissance de calcul). Dans un domaine voisin de l’obfuscation d’adresses e-mail, les CAPTCHA, ces images censées n’être lisibles que par un utilisateur humain, se heurtent au même problème : générées par des algorithmes, elles peuvent être « cassées » par d’autres algorithmes.1

Un obstacle aux utilisations légitimes

C’est une évidence, mais une adresse e-mail est a priori faite pour être utilisée. Or la plupart des procédés d’obfuscation compliquent l’utilisation légitime de l’adresse.

Idéalement, une adresse e-mail devrait être directement copiable dans le champ « Destinataire » d’un client de messagerie. Dans le cas d’une adresse publiée sur une page Web, elle devrait même faire l’objet d’un lien mailto:, ce qui permet avec la plupart des navigateurs convenablement configurés de créer un nouveau message dans le client de messagerie, avec le champ « Destinataire » automatiquement pré-rempli. C’est simple, efficace, et accessible.

L’obfuscation impose des étapes supplémentaires qui dans le meilleur des cas sont pénibles, dans le pire sont carrément insurmontables pour certaines personnes.

Par exemple, devoir remplacer « AT » ou « CHEZ » peut sembler une gène minime, mais peut poser des problèmes de compréhension à certains utilisateurs : tout le monde ne sait pas nécessairement que l’arobase se prononce « at » en anglais, et un non-francophone peut ne pas connaître la signification de « CHEZ ». Les adresses du style destinataireREMOVETHIS@example.com ou destinataire@NOSPAMexample.net posent le même genre de problèmes. Le tout vraisemblablement pour rien puisqu’un collecteur d’adresses un minimum élaboré n’aura lui probablement aucune difficulté face à une obfuscation aussi naïve.

Les méthodes reposant sur l’utilisation d’une image pour représenter l’adresse ne sont que pénibles pour l’utilisateur doté de tous ses moyens (qui doit recopier manuellement l’adresse dans son client de messagerie), mais posent un sérieux problème d’accessibilité pour l’utilisateur non-voyant (à moins de mettre l’adresse « en clair » dans l’attribut alt de la balise d’image, mais où est l’obfuscation dans ce cas ? ce n’est pas parce que la valeur de l’attribut n’est pas affichée sur la page qu’un collecteur ne la trouvera pas…). La variante consistant à représenter uniquement l’arobase sous la forme d’une image n’est guère plus accessible, tout en étant d’une efficacité douteuse puisqu’un motif du genre nom.utilisateur<img src="at.png"/>nom.domaine reste facilement repérable.

Ce problème de l’accessibilité affecte également les méthodes impliquant CSS ou Javascript, ces codes n’étant pas nécessairement interprétés par tous les outils. Et même un utilisateur en pleine possession de ses moyens peut préférer désactiver l’interprétation systématique du Javascript.

Existe-t-il un procédé d’obfuscation efficace — résistant aux collecteurs d’adresses les plus élaborés — et qui ne constitue pas une gène pour l’utilisateur ? Personnellement je n’y crois pas, tant les deux objectifs sont contradictoires : d’un côté on veut compliquer la récupération de l’adresse, de l’autre on veut faciliter son utilisation… Imaginer de nouvelles méthodes encore plus sophistiquées pour essayer de résoudre cette contradiction ne fera probablement que stimuler le développement de collecteurs encore plus sophistiqués à leur tour, entretenant ainsi une course aux armements absurde.

(À titre d’exemple, considérez la méthode proposée par Roel van Gils, Graceful Email Obfuscation : franchement, tant d’efforts pour cacher une malheureuse adresse, n’est-ce pas démesuré ?)

Se cacher n’est pas une solution

Dernière raison qui me fait rejeter l’obfuscation, indépendamment de son (in)efficacité et de ses inconvénients : je considère que masquer son adresse e-mail par peur de la voir récupérée par des spammeurs, c’est, toutes proportions gardées, comme refuser de prendre le métro par peur d’un attentat terroriste. Ça revient à céder face aux bad guys, à leur donner une influence qu’ils ne sont pas supposés avoir.

Pourquoi devrais-je cacher mon adresse e-mail ? Ce n’est pas moi le méchant de l’histoire, je n’ai pas à cacher quoi que ce soit. Mon adresse e-mail est faite pour être utilisée, pour permettre à quiconque souhaite entrer en contact avec moi de le faire. Voilà pourquoi je choisis d’exposer délibérément mon adresse sans aucune obfuscation (elle figure par exemple au bas de cette page).

Que les spammeurs la récupèrent et m’envoient leurs offres de pilules bleues si ça leur chante. Mon filtre anti-spam s’en chargera. Accueillir le spam de front, avec un filtre bayésien bien entraîné, est une ligne de défense autrement plus efficace que d’essayer désespérement de passer sous le radar des spammeurs.

  1. Voir par exemple Sumeet Prasad (2008), Google’s CAPTCHA busted in recent spammer tactics ou Jeff Yan & Ahmad Salah El Ahmad (2008), A low-cost attack on a Microsoft CAPTCHA.