Vérifier une adresse e-mail : un problème facile ? Partie III

mailContrôler qu’un e-mail a bien été consulté n’est pas une chose facile, et dans le meilleur des cas, ne pourra être fait qu’avec un degré de certitude très peu élevé. En général, dans les sociétés qui utilisent un gestionnaire d’envoi de campagne de marketing (CRM) à la pointe de la technologie, utilisant les techniques de validation les plus avancées, ce ne sont en moyenne que 25 % des envois qui sont validés. Sur les 75 % restant, il y a bien évidemment une part d’adresses erronées qui génère un message d’erreur (ou « bounce »). En fonction du type de listing, ces erreurs tournent entre 10 et 20 %. Reste donc 55-65 % des adresses pour lesquelles on ne sait rien. Elles peuvent ne plus être consultées, mais il se peut aussi qu’elles le soient, mais que l’utilisateur ait désactivé tout ce qui permettait de le « tracer ».

Mis à part les aspects techniques qui suivront, il sera également nécessaire de s’interroger sur les questions éthiques liées au suivi d’un e-mail. La frontière entre les techniques permettant d’améliorer la qualité d’une base de données et celles portant atteinte à la vie privée des gens est floue et sans doute facile à franchir. Nous ne présentons dans cet articleque les considérations purement technologiques, et laissons au lecteur le soin d’évaluer si, dans son cas particulier, il a lieu de s’assurer qu’un e-mail a bien été lu.

Il existe principalement trois façons de vérifier la consultation. La première consiste à utiliser, dans un logiciel tel qu’Outlook, Eudora ou Thunderbird, l’option « Accusé de réception ». En fonction de la configuration du logiciel de lecture d’e-mail du destinataire, un e-mail de confirmation sera ou non renvoyé. L’inconvénient de cette solution est son manque de standardisation : une demande d’accusé de réception d’Outlook ne marchera  vraisemblablement pas chez Eudora, et encore moins si le destinataire utilise un « webmail » tel que Gmail ou Hotmail. Cette méthode n’est en général pas utilisée par les solutions d’envoi automatique.

La seconde solution consiste à intégrer dans le texte de l’e-mail un lien à cliquer (ou URL), que ce soit pour accéder à la suite du message, ou pour se connecter à un service. Ce lien, unique et spécifique au destinataire,  ne conduira pas directement vers la page de destination, mais vers une page intermédiaire, qui pourra enregistrer le fait que ce lien a été cliqué, avant de rediriger automatiquement l’utilisateur vers la bonne page.

La troisième technique utilise le langage « HTML », principalement utilisé pour la mise en page des sites Web, pour intégrer une image unique, spécifique à cet envoi, souvent invisible, mais dont la source se trouve sur un serveur dédié, qui peut enregistrer le fait que l’image a été téléchargée.

Nous allons maintenant présenter les deux dernières techniques, en mettant en avant leurs avantages, inconvénients, faiblesses et incertitudes.

Redirection de liens

L’adresse d’une page web sur un site dynamique peut contenir des paramètres. Ils suivent en général un « ? », et sont une succession de couples « attribut=valeur » séparés par des « & ». Supposons que dans un e-mail, on place une icône ou texte avec un hyperlien vers l’adresse :

http://mysite.com/track?mail=albert@gmail.com&dest=www.smals.be

Il sera alors très facile, sur le site mysite.com, d’enregistrer le fait que albert@gmail.com a cliqué sur le lien (on suppose qu’Albert est le seul à avoir reçu ce lien), et de le rediriger automatiquement vers www.smals.be, sans même qu’il s’aperçoive qu’il est passé par une page intermédiaire. L’inconvénient de ce procédé est d’une part qu’il devient très évident que l’on tente de tracer cette adresse, et d’autre part qu’il est très facile, pour un utilisateur mal intentionné, de faire valider n’importe quelle adresse. De plus, si cela convient pour rediriger vers une adresse aussi simple que www.smals.be, des problèmes se poseront pour rediriger vers des adresses plus complexes. En effet, si l’adresse vers laquelle on veut rediriger contient elle-même des paramètres, ce système ne permet pas de faire la différence entre les paramètres de l’URL de base et celle de l’URL de redirection.

On utilise en général un algorithme, nommé Base64, qui permet de convertir une chaîne d’octets en une chaîne de caractères, compatible avec une URL (l’adresse d’une page web).  L’algorithme Base64 transforme chaque groupe de 3 caractères en un nouveau groupe de 4 caractères, parmi les suivants : A-Z, a-z, 0-9, +, /, =. La chaîne transformée est donc un tiers plus longue que la chaîne d’origine. Cet algorithme traduirait par exemple

« albert@gmail.com;www.smals.be/a_page »

en

« YWxiZXJ0QGdtYWkuY29tO3d3dy5zbWFscy5iZS9hX3BhZ2U=»

Ce qui pourrait nous donner comme adresse du lien :

http://mysite.com/track?YWxiZXJ0QGdtYWkuY29tO3d3dy5zbWFscy5iZS9hX3BhZ2U=

On aurait donc typiquement, dans le mail, le code HTML suivant :

<a href=’http://mysite.com/track?YWxiZXJ0QGdtYWkuY29tO3d3dy5zbWFscy5iZS9hX3BhZ2U=’>
http://www.smals.be/a_page
</a>

La page générée pourrait sur mysite.com pourrait être la suivante :

<html>
<head>
<meta http-equiv="refresh" content="0; URL=http://www.smals.be/a_page">
</head>
</html>

qui redirige automatiquement vers la page www.smals.be/a_page.

Cela ne suffit pas encore à empêcher un utilisateur malveillant de valider une mauvaise adresse, ou de se faire rediriger vers un autre page. On peut, avant d’utiliser l’algorithme Base64, chiffrer le texte à inclure avec une clé secrète.

Quelques remarques sur cette technique :

  • Dans l’exemple ci-dessus, le lien contient directement deux informations : une adresse e-mail, et une URL de redirection. On aurait également pu placer ces deux informations dans une base de données, et ne reprendre que l’identifiant dans le lien, ce qui aurait eu l’avantage de réduire la taille du lien, mais a l’inconvénient d’exiger de stocker plus d’information.
  • Le lien permet de savoir qu’albert@gmail.com a cliqué sur un lien vers le site web de Smals, mais ne permet pas de savoir dans quel e-mail. En effet, si ce lien apparaît dans cinq e-mails différents qu’il a reçus, on ne saura pas lequel a été ouvert. Cependant, dans notre cas, ce qui nous intéresse, c’est de savoir que l’adresse e-mail albert@gmail.com est toujours active, et pas spécifiquement de savoir quels sont les e-mails qui ont été ouverts. Si le but est différent, il faudra rajouter un identifiant supplémentaire dans le lien.
  • Si Albert fait suivre (ou « forwarde ») l’e-mail qu’il a reçu à sa sœur Marie-Célestine, et qu’elle clique sur le lien, ça sera toujours l’adresse d’Albert qui sera validée, même si elle le fait six mois après avoir reçu l’e-mail, et qu’entretemps Albert est passé chez un autre fournisseur. Bien que peu probable comme scénario, il montre que le mécanisme n’est pas infaillible.
  • Cette technique ne marchera que si on rend presque indispensable de cliquer sur un lien. Il faut donc mettre en place des stratégies de marketing et de communication pour inciter les destinataires à ces actions. Ce peut être par exemple en ne plaçant dans l’e-mail qu’une accroche suivie d’un lien « lire la suite », ou en y incluant des liens vers des documents importants, voire obligatoires.
  • Si l’URL de redirection (http://www.smals.be/a_page dans notre exemple) est relativement simple et apparaît clairement dans le texte, un utilisateur ne désirant pas se faire « traquer » pourra directement taper (ou copier-coller) l’adresse dans son navigateur, sans cliquer sur le lien.

Image avec identifiant unique

Il y a deux façons d’intégrer une image dans un e-mail. La première consiste à l’envoyer en pièce jointe, la seconde consiste à la laisser sur un serveur web, et à indiquer dans le code de l’e-mail son adresse. La première solution a l’inconvénient d’alourdir la taille des e-mails. La seconde a pour désavantage que l’affichage des images est souvent désactivé par défaut, pour éviter justement les techniques que nous décrivons ici. Les e-mails apparaissent alors dans une version purement textuelle, avec un message du type « Pour préserver votre confidentialité, les images distantes ne sont pas chargées. Cliquer ici pour afficher les images ».

Le principe consiste donc à inclure dans le code HTML de l’e-mail une image distante, qui sera différente pour chaque courrier envoyé (si l’on veut savoir que ce courrier précis a été consulté), ou à tout le moins, pour chaque destinataire (si l’on veut juste s’assurer qu’une adresse est toujours active). Le serveur web sur lequel se trouvera l’image pourra donc identifier quel est le courrier à l’origine du chargement, ce qui permettra de s’assurer que le message est bien ouvert, et donc que l’adresse est toujours active. Pour identifier l’image, ou pourra utiliser les mêmes techniques que ci-dessus, le nom de l’image contenant donc soit une version chiffrée de l’adresse e-mail, soit un identifiant dans une base de données.

Les outils de « tracking » du marché (voir ci-dessous pour plus de détails) incluent souvent une image qui n’affecte pas la mise en page, en général une image d’un pixel blanc. D’autres images peuvent aussi être incluses, mais n’ont pas besoin d’être identifiables.

À nouveau, il faudra mettre en place des stratégies de marketing et de communication pour encourager les destinataires à accepter l’affichage des images. Rendre les e-mails quasiment illisibles sans image pourrait avoir l’effet inverse, et inciter le lecteur à considérer le message comme une publicité inutile et non sollicité, et à l’envoyer directement dans sa corbeille. L’idéal est d’envoyer tous les messages d’une plateforme avec le même expéditeur, ce qui permettra au destinataire d’autoriser l’affichage des images pour tous les messages provenant de cet expéditeur. Par ailleurs, on peut indiquer à l’utilisateur que s’il accepte les images, il ne sera pas nécessaire d’utiliser des techniques plus invasives, tels qu’un blocage de l’interface tant qu’un lien de confirmation envoyé par e-mail n’a pas été cliqué.

Comme dans la section précédente, si un utilisateur fait suivre le courrier, on ne pourra pas différencier l’ouverture du courrier original de celle du courrier transféré.

Remarquons que, à notre connaissance, l’affichage d’image distante ne compromet en rien la sécurité. Mises à part les pièces jointes infectées, le principal risque de contamination en ouvrant un e-mail est la présence de code JavaScript dans l’e-mail, qui est bloqué par la plupart des clients mails, tant webmail qu’applicatifs. On ne peut donc pas utiliser le JavaScript pour valider une adresse e-mail.

Par ailleurs, certains outils de « tracking » se servent de l’image incluse pour détecter où a été ouvert l’e-mail. En effet, lorsque l’image est téléchargée sur le serveur, celui peut obtenir l’adresse IP de la machine effectuant la requête, et, grâce à cette adresse, trouver l’origine géographique de l’ouverture. Si cette technique peut marcher avec de client mail « à la » Outlook, le résultat est plus aléatoire avec les webmails (Gmail, Hotmail, …). En effet, avec Gmail, c’est le navigateur qui télécharge lui-même l’image, et on peut donc le localiser. Avec Hotmail, par contre, ce sont les serveurs d’Hotmail qui téléchargent d’abord l’image, avant d’en envoyer une copie au navigateur. De ce fait-là, le serveur où se trouve l’image ne peut que localiser les serveurs d’Hotmail.

Quelques outils du marché

Quelques outils sont proposés sur le Web pour vérifier qu’un e-mail envoyé à bien été lu. Aucun des outils présentés ci-dessous ne pourraient cependant être intégrés dans un portail.

  • http://bananatag.com/ : Solution puissante pouvant être intégrée à Gmail ou Outlook, mais que l’on peut également utiliser depuis n’importe quel client (en rajoutant « .btag.it » à l’adresse du destinataire). Il rajoute une image invisible, et convertit tous les liens, en utilisant les techniques décrites dans ce document. Ils proposent une version gratuite, limitée à 5 e-mails par jour, ou plusieurs versions payantes.
  • http://www.spypig.com/ : Ce site permet de générer du code HTML référençant une image, que l’on intègre ensuite soi-même à la main, dans les e-mails à envoyer. Au moment d’écrire ces lignes, le service n’était cependant pas fonctionnel. D’autres sites web (par exemple http://mobileshortcut.com/TAILMAIL/) proposent le même type de service. Vu le nombre d’étapes manuelles à effectuer, cette solution convient uniquement pour tracer des envois très occasionnels.
  • http://www.msgtag.com/ : ce petit logiciel joue un rôle de « proxy SMTP », et marche, sous Windows, pour tous les clients mail du type Outlook, Eudora, …, mais pas pour les « webmails » (Gmail, Hotmail, …). Il faut configurer son client mail pour se servir de MsgTag comme serveur SMTP. Il traite ensuite les messages, et les fait ensuite suivre vers un «vrai » serveur SMTP. Il agit en insérant une image (visible dans la version gratuite) au bas de l’e-mail, mais il ne transforme pas les liens. Quand un e-mail a été lu, il envoi un e-mail de confirmation pour la version gratuite, et propose une interface plus élaborée pour la version payante (que nous n’avons pas testée).
This entry was posted in E-gov and tagged , by Vandy Berten. Bookmark the permalink.
avatar

About Vandy Berten

Consultant Recherche chez Smals depuis mai 2013. Vandy était auparavant Professeur Assistant à l'ULB, où il enseignait les langages de programmation. Il a obtenu une thèse de doctorat dans la même institution en 2007. Il a été d'octobre 2015 à septembre 2018 chargé du cours de "Visualisation des données et de l'information", à l'ULB. Depuis quelques années, s'est spécialisé dans les techniques de Data Science, incluant le "(social) network analytics", le "data quality", le "machine learning", en particulier dans le domaine de la détection de la fraude.

Leave a Reply

Your email address will not be published.