Les plaintes des développeurs au sujet des protocoles IMAP et SMTP
Tout le monde utilise le courrier électronique. Cependant, les protocoles ouverts actuels qui relient les clients et les serveurs de messagerie n'ont pas été conçus pour l'ère moderne. IMAP est gourmand en ressources, difficile à apprendre pour les développeurs et ne fonctionne pas bien pour les appareils mobiles dont le réseau est limité. La combinaison d'IMAP avec d'autres protocoles - tels que SMTP, CalDAV et CardDAV, pour une expérience complète de client de messagerie avec calendriers et contacts - est encore plus compliquée à apprendre pour les développeurs et crée des difficultés pour les utilisateurs en cas d'échecs d'authentification partielle.
Selon les développeurs, IMAP et SMTP sont non seulement dépassés et compliqués, mais également inadaptés aux réseaux mobiles modernes et aux scénarios à forte latence. Cet environnement a conduit à une stagnation des bons clients de messagerie et à une innovation limitée de la part des développeurs. Beaucoup de nouveaux clients et d'extensions ne sont destinés qu'à certains grands fournisseurs de messagerie. Les protocoles propriétaires sont devenus l'alternative à IMAP, mais ce sont des jardins clos qui limitent à la fois les utilisateurs et les développeurs. Ces alternatives soulèvent également des problèmes de sécurité et de confidentialité.
Ainsi, les développeurs estiment qu'une solution moderne ouverte est nécessaire. JMAP se présente comme cette solution tant attendue. « En tant que norme ouverte, JMAP est l'alternative aux API de messagerie propriétaires qui ne fonctionnent qu'avec Gmail. Il s'agit d'une norme de messagerie moderne très attendue qui rend la messagerie plus ouverte aux innovateurs comme vous », peut-on lire sur le site Web de JMAP. Le nouveau protocole, développé par l'équipe de Fastmail, semble en effet combler les lacunes des précédents protocoles ouverts qui relient les clients et les serveurs de messagerie et qui n'ont pas été conçus pour l'ère moderne.
JMAP : une nouvelle norme pour la gestion sécurisée des courriels
Le protocole est rédigé par Neil Jenkins, directeur et architecte UX chez Fastmail et Chris Newman, ingénieur principal chez Oracle. Fastmail a commencé à travailler sur JMAP en 2014 en tant que projet de développement interne. Il s'agit d'un protocole Internet qui gère la soumission et la synchronisation des courriels, des contacts et des calendriers entre un client et un serveur, en fournissant une interface cohérente pour différents types de données. Il est conçu pour être un successeur possible d'IMAP et un remplaçant potentiel des normes CardDAV et CalDAV. L'Internet Engineering Task Force (IETF) a également participé au développement de JMAP.
Un billet de blogue publié par l'IETF le 6 mai 2019 indique : « le processus de l'IETF a fait de JMAP un protocole meilleur et plus robuste, plus régulier, plus général et plus facile à mettre en œuvre dans un large éventail de serveurs existants. Nous apprécions tous les efforts déployés par les membres du groupe de travail JMAP pour améliorer le protocole. Le fait qu'il soit normalisé de manière appropriée nous donne la stabilité et le soutien nécessaires pour créer un élan et nous aider à l'apporter à d'autres. Nous avons collaboré avec des développeurs qui travaillent sur le serveur de messagerie open source Cyrus IMAP, que nous exploitons nous-mêmes ».
« L'équipe de Cyrus a entièrement mis en œuvre JMAP en tant que serveur open source. Les développeurs Perl de Fastmail ont construit un cadre de serveur JMAP Perl, et nous avons créé une implémentation simple d'un serveur proxy pour le protocole JMAP », ajoute le billet. JMAP est conçu pour faciliter le travail des développeurs et permettre une utilisation efficace des ressources du réseau. Voici quelques-unes de ses propriétés qui répondent aux limites des normes actuelles :
- sans état : il ne nécessite pas de connexion persistante, ce qui convient parfaitement aux environnements mobiles ;
- JMAP ressemble davantage à NFS ou aux systèmes de fichiers avec des inodes (nœuds d'index) plutôt qu'à une hiérarchie basée sur les noms, ce qui rend le renommage facile à détecter et peu coûteux à synchroniser ;
- appels d'API par lots : il regroupe plusieurs appels d'API en une seule demande au serveur, ce qui réduit les allers-retours et améliore l'autonomie de la batterie pour les utilisateurs mobiles ;
- contrôle des flux de données : le client peut limiter la quantité de données que le serveur est autorisé à envoyer. Par exemple, la commande renverra une erreur "tooManyChanges" en cas de dépassement de la limite fixée par le client, plutôt que de renvoyer un million de lignes comme cela peut se produire avec IMAP ;
- aucun analyseur personnalisé n'est nécessaire : la prise en charge de JSON, un format d'encodage bien compris et largement supporté, facilite la tâche des développeurs ;
- un modèle de données rétrocompatible : son modèle de données est rétrocompatible avec les dossiers IMAP et les étiquettes de type Gmail.
Que pensent les développeurs du protocole JMAP pour les courriels ?
Fastmail utilise déjà JMAP en production pour ses produits Fastmail et Topicbox. Il est également adopté par des organisations telles que l'Apache Software Foundation, qui a ajouté un support pour JMAP dans son serveur de messagerie libre Apache dans la version 3.0. Sur les sites communautaires tels que Hacker News, on peut lire : j'adore JMAP. « C'est ce qui nous a permis, à moi et à mon équipe (chez 1Password), d'ajouter facilement la prise en charge des courriels masqués [Masked Emails], où nous générons aléatoirement votre adresse email en plus de votre mot de passe ». L'équipe de 1Password a écrit un billet de blogue sur le sujet.
« Plus je lisais sur le JMAP, plus je réalisais à quel point les API de facto qui régissent notre vie numérique sont obsolètes. Les parties d'Internet que vous utilisez tous les jours fonctionnent avec des technologies des années 80 et 90. Souvenez-vous (ou imaginez, jeunes de la génération Z) à quel point les choses étaient lentes dans les années 80 et 90. Avez-vous déjà remarqué que le chargement des courriels sur votre téléphone est plus long que celui d'autres éléments du Web mobile ? », a écrit Madeline Hanley, ingénieur en chef pour les intégrations de services chez 1Password. Elle estime que JMAP a radicalement changé la vie des développeurs.
« La comparaison côte à côte du chargement des courriels sur les iPhone via JMAP et via IMAP montre à quel point la technologie du courrier électronique est devenue obsolète. Tout ce que vous pouvez faire avec IMAP et CalDAV (la norme actuelle pour la synchronisation des calendriers), vous pouvez le faire plus facilement avec JMAP. D'un point de vue technique, c'est très familier. JMAP est basé sur JSON et HTTP, deux des premiers concepts que vous apprenez en tant que développeur. Avec JMAP, vous pouvez regrouper des actions par lots afin de réduire le nombre de requêtes dans les deux sens, ce qui explique en grande partie sa rapidité », a-t-elle ajouté.
Cependant, l'utilisation de JSON a suscité un débat sur Hacker News. « JSON est un format incroyablement inefficace pour les données partageables : il est ennuyeux à écrire, peu sûr à analyser et il vient même avec beaucoup de surcharge (colons, guillemets, parenthèses et autres) », a commenté un utilisateur. Dans son billet de blogue de 2019, l'IETF dit avoir anticipé ces préoccupations qui pourraient représenter un obstacle à l'adoption de JMAP. Selon l'IETF, l'un des principaux défis consistait à élaborer un format JSON structuré pour le courriel qui soit facile à utiliser pour les clients, mais suffisamment souple pour la norme RFC5322.
« La représentation initiale était excellente pour les fonctionnalités courantes des clients, mais elle ne permettait pas d'accéder à tous les éléments d'un courriel sans obliger le client à récupérer et à analyser le message brut, ce qui annulait bon nombre des avantages du nouveau protocole. Après avoir réfléchi et expérimenté quelques idées, nous avons imaginé un moyen par lequel les clients pourraient demander des pseudo-propriétés. Les pseudo-propriétés indiquent au serveur quel en-tête de message doit être récupéré et comment l'analyser », expliquent Bron Gondwana de l'IETF et Neil Jenkins de Fastmail dans le billet de blogue.
Gondwana et Jenkins ajoutent : « combiné à des alias pour les propriétés communes, cela nous a permis d'obtenir un format qui restait simple dans les cas courants, mais qui était suffisamment souple pour répondre à tous les besoins d'un client (tout en évitant un nombre considérable d'analyses et de décodages complexes et sujets aux erreurs). L'Internet évolue vers les API et les microservices. Cela permet aux nouveaux venus sur un marché de s'appuyer sur les services existants. Grâce à JMAP, il est très facile d'ajouter à un nouveau service un sous-ensemble d'informations provenant d'une boîte aux lettres ou d'un calendrier ».
Sources : JMAP, IETF, 1Password, Référentiel GitHub de JMAP
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous du protocole de courrier électronique JMAP ?
L'utilisez-vous ? Si oui, qu'est-ce qui explique votre choix ? Quels sont ses avantages par rapport à IMAP ?
Pensez-vous que JMAP va devenir à l'avenir la norme de facto de l'industrie ?
Quel est votre avis sur le débat autour du choix de JSON pour l'implémentation de JMAP ?
Selon vous, quelles sont les limitations de JMAP ou quels sont les points qu'il doit encore améliorer ?
Voir aussi
Lancement officiel de la première version stable du protocole de communication sécurisé Matrix et de la fondation Matrix.org
Gmail devient le premier fournisseur principal de messagerie à prendre en charge les rapports MTA-STS et TLS pour améliorer sa sécurité
Element lève 30 millions de dollars pour accélérer le développement de Matrix, un protocole open source de communication en temps réel
Cessez d'utiliser le courrier électronique chiffré, car il existerait plusieurs failles de sécurité avec les emails, selon Latacora, une entreprise de cybersécurité