Hommage à Ray Tomlinson, l'inventeur du courriel

Retour sur l'histoire du mail !

L’informatique est une science jeune, et internet n’est apparu qu’hier. La plus belle preuve est sûrement que la génération de leurs créateurs s’éteint petit à petit en laissant derrière eux un écosystème qui évolue toujours plus vite.

Après la disparition de Dennis Ritchie —- créateur du langage C, excusez du peu —- et de Ian Murdock, co-créateur de Debian1, c’est Ray Tomlinson —- scientifique qui réussit pour la première fois dans l’histoire à envoyer un courrier électronique sur un réseau —- qui nous quitte.

Entrons dans le monde incroyable de la messagerie électronique qui vous permet d’échanger instantanément avec la même richesse qu’une lettre manuscrite.


  1. Debian est une distribution linux très utilisée sur les serveurs. Il paraît même que les agrumes l’aiment bien.

1971, année électronique

En 19691, le gouvernement américain lance un immense projet de recherche qui permettrait aux universités de communiquer entre elles et de mettre en commun plus facilement leurs recherches. Ainsi naît Advanced Research Projects Agency Network, ARPANet pour les intimes. Si le projet est souvent reconnu pour être le précurseur d’internet, c’est principalement parce qu’il posa les briques élémentaires de ce que nous connaissons aujourd’hui de ce réseau.

A cette époque, le modèle « client/serveur » fait ses débuts et bien qu’on ne parle pas encore d’interface graphique, il est nécessaire de développer la partie qui doit envoyer des messages au serveur.

La brique logicielle la plus utilisée à l’époque s’appelle telnet, elle permet d’établir facilement une connexion réseau entre deux « noeuds » peu importe leur nature. C’est là que Ray Tomlinson entre en jeu.

Ce dernier travaillait au projet TENEX, un projet d’intelligence artificiel très lié au langage Lisp. Afin de communiquer au mieux les résultats obtenus par le système, Ray Tomlinson et son équipe ont créé un programme nommé SNDMSG, abréviation de Send Message. C’est en mettant en œuvre un moyen de rendre compatible Arpanet avec ce programme que Ray Tomlinson créa le premier client email et réussit de cette manière à acheminer le premier message électronique en réseau. Et c’était en 1971.

Fin du suspens, voici Ray Tomlinson[^wikimedia].
Fin du suspens, voici Ray Tomlinson2.

Mais non content d’inventer le mail, il mit en place le concept d’adresse électronique, vous savez, le fameux clementine-sanspepin@zestedesavoir.com ? Eh bien c’est lui qui a inventé ce format. Notamment, c’est lui qui a décidé qu’on aurait droit au @ entre le nom de l’utilisateur et le nom de domaine.

En effet, la métaphore de l’adresse est tout à fait bien trouvée : nous envoyons un message à une personne qui est hébergée dans un domaine précis. Il lui fallait trouver un moyen simple de séparer le nom d’utilisateur et ledit domaine. Parmi la table ASCII inventée 9 ans plus tôt, seuls 4 caractères étaient acceptables de part leur lisibilité et leur faible fréquence d’utilisation. Le heureux hasard a voulu que parmi ces quatre élus, l’un d’entre eux soit à lui seul l’abréviation de « at » en anglais45. Voilà le caractère arrobase @.

Ascii neko-chan ?[^neko]
Ascii neko-chan3 ?

  1. En fait, le tout remonte à 1961 avec la théorie de la communication par paquet développée au MIT. Mais en 1969, le premier document officiel visant à standardiser le réseau —- une RFC —- est créé.
  2. D’après une image de wikimédia, publié sous licence CC-BY-SA 3.0 Unported.
  3. L’image est partagée gratuitement sur le site textart4u.
  4. Certains prétendent que c’est une ligature, c’est à dire un moyen typographique de rendre de caractères très proches plus liés.
  5. Bon d’accord, c’était surtout pour dire « au prix de », par exemple beans @£0.25.

Un Message Simple et de la viande, beaucoup de viande

Si nous devons le premier client de messagerie et notre ami arobase à M. Ray Tomlinson, on lui doit aussi le format de base qu’a pris le mail. Bien que le format le plus utilisé aujourd’hui suive la RFC822, cette dernière remplace et améliore la 733 qui est issu du travail de R. Tomlinson.

Ce format permet de définir plusieurs choses dans un mél, les plus connues sont :

From: "Le nom affiché par votre client mail" <adresse.de@expediteur.com>
To: "Le nom que vous a donné l'expéditeur" <votre.adresse@domaine.com>, <un.autre@destinataire.com>
CC: "Une personne en copie" <son.adresse@son.domaine.com>
CCi: # les personnes en copie cachée si vous en faites partie
Subject: Votre sujet
Priority: Important # surtout quand c'est du spam :p
X-Tout-Un-Tas-De-Trucs-Ajoutes-Par-Le-Serveur: sa valeur

La liste des entêtes disponibles est assez élevée, mais pour les plus attentifs à leur vie privée, sachez que les newsletters sont censées vous remplir le champ List-Unsubscribe qui permet à différents programmes de déclencher automatiquement la désinscription à ladite newsletter. Si possible (pour les plus éthiques) une url dans le corps du message n’est pas de refus pour vous permettre de vous désinscrire à la main —- notons que certains produits commerciaux vous proposent de vous désinscrire automatiquement même s’il n’y a que l’url dans le corps.

Vous vous demandez pourquoi je m’étends si longtemps sur la désinscription ? Outre par le fait que c’est une demande de la CNIL en France, c’est souvent cette pratique (rendre la désinscription possible) qui fait la différence entre un spam et un email commercial non sollicité.

Parce que oui, lié au développement du courriel, il y a le développement du SPAM. Pour l’anecdote, ce mot est issu d’un sketch des Monty Python où ils parodient une publicité pour une marque de jambon épicé en conserve qui ventait « SPAM SPAM SPAM SPAM Hormel’s new miracle meat in a can ».

Souvent associé à Gary Thuerk qui a envoyé la première vague de spam en mettant 600 destinataires à son courrier promotionnel pour un évènement.

Gary Thuerk, irrécupérable, source [the social media bible](http://www.thesocialmediabible.com/).
Gary Thuerk, irrécupérable1.

Rapidement, cependant, le spam est devenu une activité au bord du légal voire cybercriminelle. Bien que ces derniers temps, le spam se contente de vagues de petite envergure, bien ciblée et souvent bien plus rentable, c’est historiquement aux botnets qu’on doit l’âge d’or du pourriel2.

L'organisation d'un botnet.
L’organisation d’un botnet.

Le SPAM a pu monter aussi fort tant à cause de la sécurité mal maîtrisée de Windows qui forme le plus gros du parc des PC zombies, que parce que le Protocole Simple de Transfert de Message (SMTP pour les intimes) ne contient pas à son origine de méthode d’authentification. Il faudra attendre l’arrivée d’extensions telles que le SPF (Sender Policy Framework), ou le protocole de soumission pour qu’enfin il faille s’authentifier pour échanger des mails. Pour autant, ces systèmes ne sont pas généralisés, ainsi, vous pouvez toujours envoyer des messages à toute la planète sans passer par ces systèmes, car trop peu d’entités ont les moyens de les mettre en place.

Du coup, pour ajouter un peu de sécurité, il faudra passer par la signature numérique, notamment la signature DKIM (DomainKeys Identified Mails) qui intégrée dans les entêtes, permet de s’assurer qu’un expéditeur est bien qui il prétend être.


  1. Source : the social media bible.
  2. Ah ces Québécois. Des génies linguistiques, y’a pas à dire.

Malgré les mauvaises pratiques1 qui ont accompagné sa suprématie, le courrier électronique2 est devenu un des moyens préférés des internautes pour communiquer. Sa gratuité et sa facilité d’utilisation (le SMTP ne vole pas son simple) lui ont permis de vaincre à plate couture usenet et même son éphémère concurrent Google Wave —- depuis devenu Apache Wave.

Malheureusement, aujourd’hui, le mail reste vecteurs de menaces importantes, notamment le phishing et sa version la plus rentable et personnalisée le spear phishing.


  1. Parce que oui, mettre son N+3 en copie d’un mail qui ne le regarde pas pour se faire mousser, ou bien mettre des pièces jointes de 10Mo ce sont des mauvaises pratiques.
  2. L’avantage des querelles de langages, c’est qu’on peut faire un article complet en parlant d’une chose sans utiliser deux fois le même mot pour désigner la même chose. :)

Ces contenus pourraient vous intéresser

13 commentaires

Très bel article, à la fois court et instructif. Merci !

A Olybri (et à tous ceux qui se sont dit la même chose) : il y a une vidéo d'un certain CodeMU qui explique l'origine de l'arobase (qui désignait une amphore) :

+4 -0

J'étais passé à côté ce cet article. J'aime bien. C'est le bon format pour un hommage : pas trop long, mais quand même avec des infos sympas. :)

J'aurais bien aimé un petit passage sur le chiffrement, mais c'est peut-être un peu hors sujet (et puis, c'est toujours facile de critiquer a posteriori).

Excellent article.

Si nous devons le premier client de messagerie et notre ami arobase à M. Ray Tomlinson, on lui doit aussi le format de base qu'a pris le mail. Bien que le format le plus utilisé aujourd'hui suive la RFC822, cette dernière remplace et améliore la 733 qui est issu du travail de R. Tomlinson.

À noter que la RFC822 est tellement peu normative (à dessein, elle a été pensée pour être générique) qu'elle a dû être complétée par la suite par, de mémoire, au moins 5 autres rfc avant que les mails et la norme MIME ne puissent devenir le gros monstre radioactif mais qui marche à peu près chez tout le monde, qu'est l'email contemporain.

À noter également que Microsoft n'était pas en reste puisqu'ils avaient développé leur format TNEF dans leur coin, norme et format qui, à l'instar de MIME, sont aussi devenues un énorme fourre-tout dans lequel l'oeil attentif reconnaîtra les différentes couches de patches, qui identifient les différents âges et transformations qu'ils ont traversés.

Au passage, la spec du TNEF doit être à peu près le seul document normatif dans lequel on peut lire "le checksum est un modulo 256 de la somme de tous les octets de la charge utile, mais on ne DOIT PAS s'y fier parce que certains clients Outlook l'implémentaient avec un bug."

Bref tout ça pour dire que ce monsieur ne devait pas se douter qu'il donnait naissance, à l'époque, à un truc aussi youpilol à parser que les emails un demi-siècle plus tard. :)

+1 -0

Et encore tu as pas eu à jouer le coup du protocole SPF à la microsoft que tu devais faker si tu voulais communiquer avec des adresses @live.com avec un client applicatif jusque début de 2016 quand même.

artragis

Tu serais surpris ! ;-)

En fait j'ai eu un peu a jouer avec des protos made in Microsoft ces dernières années (comme leur extension un peu bâtarde de RTP qui servait à transporter la vidéo sur MSN), mais à chaque fois ça a été une bonne tranche de rigolade, du genre "bon je ferme la spec et je me rappatrie sur hexdump et beaucoup de café, je finirai bien par comprendre comment ils ont pensé ce truc". :D

+0 -0

Tu serais surpris ! ;-)

Dans le domaine des mails, tu as eu à traiter avec office 365 qui demande des configurations avancées assez complexes et parfois même chelou à ses clients parfois totalement novice en informatique?

Mais bon quand on sait que microsoft n'implémente pas ses propres spec par défaut (ex le docx, que ça soit openxml ou isojesaisplusquoi)

Tu serais surpris ! ;-)

Dans le domaine des mails, tu as eu à traiter avec office 365 qui demande des configurations avancées assez complexes et parfois même chelou à ses clients parfois totalement novice en informatique?

artragis

Ah non je ne suis pas allé jusque là, je me contentais d'écrire des parseurs pour gérer leurs protos/formats dans une solution qui tourne sous Linux. En me basant sur leur doc et des pcaps. :D

+0 -0

À noter que la RFC822 est tellement peu normative (à dessein, elle a été pensée pour être générique) qu'elle a dû être complétée par la suite par, de mémoire, au moins 5 autres rfc avant que les mails et la norme MIME ne puissent devenir le gros monstre radioactif mais qui marche à peu près chez tout le monde, qu'est l'email contemporain.

RFC822, RFC2045, RFC2822 et RFC5322 ;) ! Le véritable problème est que les mises à jours de la RFC822 ne veulent pas intégrer le 'Content-type' spécifié par la RFC2045 qui fait référence à la RFC822. Cette dernière est donc un boulet qu'on ne risque pas de s'émanciper et sur lequel il y a pas mal de points non spécifiés (par exemple, on ne savait - pour la première version - si les implémentations pouvaient autoriser les espaces entre le field-name et les ':').

C'est aussi ici qu'on peut expliquer la complexité de parser un e-mail (car oui, c'est vraiment compliqué) où l'on peut autant introduire des commentaires nestés notamment ou encore être face au folding-whitespace. Et tout cela se concrétise par le pire token de l'histoire informatique, le CFWS (Commentaire nesté ET Folding-WhitSpace).

Bref, un cancer …

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte