JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails.

Au début du mois, sur Hacker News un sujet de discussion active le protocole JMAP, développé sous l'égide de l'IETF. Nous avons décidé de discuter de l'utilité de ce protocole et de son fonctionnement.

JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails.
/ PxHere / PD

Qu'est-ce qui ne convenait pas Ă  IMAP ?

Protocole IMAP a Ă©tĂ© introduit en 1986. De nombreuses choses dĂ©crites dans la norme ne sont aujourd'hui plus pertinentes. Par exemple, le protocole peut renvoyer le nombre de lignes d'un e-mail et les sommes de contrĂŽle, MD5 — cette fonctionnalitĂ© est pratiquement inutilisĂ©e dans les clients de messagerie modernes.

Un autre problĂšme concerne la consommation de bande passante. Avec IMAP, les e-mails sont stockĂ©s sur le serveur et synchronisĂ©s pĂ©riodiquement avec les clients locaux. Si, pour une raison quelconque, la copie sur l'appareil de l'utilisateur est 'endommagĂ©e', il faut resynchroniser l'ensemble des e-mails. Dans un monde moderne oĂč des milliers d'appareils mobiles peuvent ĂȘtre connectĂ©s au serveur, cette approche entraĂźne une augmentation de la consommation de bande passante et des ressources informatiques.

Les difficultĂ©s ne se limitent pas au protocole lui-mĂȘme, mais aussi aux clients de messagerie qui travaillent avec lui. Depuis sa crĂ©ation, IMAP a Ă©tĂ© soumis Ă  de nombreuses rĂ©visions — la version actuelle est IMAP4. De nombreuses extensions optionnelles existent Ă©galement — il y a publiĂ©s soixante-dix RFC avec des complĂ©ments. L'un des plus rĂ©cents est RFC8514, prĂ©sentĂ© en 2019.

De nombreuses entreprises proposent Ă©galement leurs propres solutions propriĂ©taires, censĂ©es simplifier l'utilisation d'IMAP ou mĂȘme le remplacer : Gmail, Outlook, Nylas. Au final, cela signifie que les clients de messagerie existants ne supportent qu'une partie des fonctionnalitĂ©s disponibles. Cette diversitĂ© entraĂźne une segmentation du marchĂ©.

« De plus, un client de messagerie moderne doit non seulement transmettre des messages, mais aussi pouvoir gĂ©rer des contacts et se synchroniser avec un calendrier, dit Sergey Belkin, responsable du dĂ©veloppement chez un fournisseur IaaS. 1cloud.ru. — Aujourd'hui, des protocoles tiers comme LDAP, CardDAV et CalDAVsont utilisĂ©s Ă  cette fin. Cette approche complique la configuration des pare-feu dans les rĂ©seaux d'entreprise et ouvre de nouvelles voies aux cyberattaques ».

Le JMAP est conçu pour résoudre les problÚmes identifiés. Il est développé par des spécialistes de FastMail sous la direction du Conseil d'ingénierie Internet (IETF). Ce protocole fonctionne sur HTTPS, utilise JSON (c'est pourquoi il convient non seulement pour l'échange de courriels, mais aussi pour résoudre un certain nombre de tùches dans le cloud) et simplifie l'organisation du travail avec les emails dans les systÚmes mobiles. En plus de traiter des courriels, le JMAP permet également de connecter des extensions pour gérer les contacts et les calendriers.

Caractéristiques du nouveau protocole

Le JMAP est un protocole sans état (stateless) et ne nécessite pas de connexion permanente au serveur de messagerie. Cette caractéristique facilite l'utilisation dans des réseaux mobiles instables et permet d'économiser la batterie des appareils.

Un courriel en JMAP est prĂ©sentĂ© sous forme de structure JSON. Elle contient toutes les informations nĂ©cessaires au message RFC5322 (Internet Message Format), qui peuvent ĂȘtre nĂ©cessaires pour les applications de messagerie. Selon les dĂ©veloppeurs, cette approche devrait simplifier la crĂ©ation de clients, car le serveur sera responsable de la gestion des Ă©ventuelles complications (liĂ©es Ă  MIME, Ă  la lecture des en-tĂȘtes et Ă  l'encodage).

Pour interagir avec le serveur, le client utilise une API. Pour cela, il forme une requĂȘte POST authentifiĂ©e, dont les propriĂ©tĂ©s sont dĂ©crites dans l'objet de session JMAP. La requĂȘte a le format application/json et se compose d'un seul objet de requĂȘte JSON. Le serveur gĂ©nĂšre Ă©galement un seul objet de rĂ©ponse.

Dans la spĂ©cification (point 3) les auteurs donnent l'exemple suivant avec une requĂȘte :

{
  "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
  "methodCalls": [
    [ "method1", {
      "arg1": "arg1data",
      "arg2": "arg2data"
    }, "c1" ],
    [ "method2", {
      "arg1": "arg1data"
    }, "c2" ],
    [ "method3", {}, "c3" ]
  ]
}

Voici un exemple de réponse que le serveur pourrait générer :

{
  "methodResponses": [
    [ "method1", {
      "arg1": 3,
      "arg2": "foo"
    }, "c1" ],
    [ "method2", {
      "isBlah": true
    }, "c2" ],
    [ "anotherResponseFromMethod2", {
      "data": 10,
      "yetmoredata": "Hello"
    }, "c2" ],
    [ "error", {
      "type":"unknownMethod"
    }, "c3" ]
  ],
  "sessionState": "75128aab4b1b"
}

La spĂ©cification complĂšte de JMAP avec des exemples d'implĂ©mentation peut ĂȘtre trouvĂ©e sur site officiel le projet. LĂ , les auteurs ont Ă©galement placĂ© la description des spĂ©cifications pour JMAP Contacts et JMAP Calendars – elles sont destinĂ©es Ă  travailler avec des calendriers et des listes de contacts. Selon propos les auteurs, Contacts et Calendars ont Ă©tĂ© isolĂ©s dans des documents distincts afin de pouvoir ĂȘtre dĂ©veloppĂ©s et standardisĂ©s indĂ©pendamment du « noyau ». Les codes sources pour JMAP sont disponibles sur rĂ©pertoire sur GitHub.

JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails.
/ PxHere / PD

Perspectives

Bien que le travail sur la norme ne soit pas encore officiellement terminĂ©, elle est dĂ©jĂ  mise en Ɠuvre dans des environnements de production. Par exemple, les crĂ©ateurs du serveur de messagerie ouvert Cyrus IMAP ont rĂ©alisĂ© sa version JMAP. Les dĂ©veloppeurs de FastMail publiĂ©s par ont créé un cadre serveur pour le nouveau protocole en Perl, et les auteurs de JMAP ont prĂ©sentĂ© proxy.

On peut s'attendre à ce que le nombre de projets basés sur JMAP augmente à l'avenir. Par exemple, il y a une certaine probabilité que les développeurs d'Open-Xchange, qui conçoivent un serveur IMAP pour les systÚmes Linux, adoptent ce nouveau protocole. Les membres de la communauté demandent fortement aux développeurs, qui se sont formés autour des outils de l'entreprise.

Les développeurs de l'IETF et de FastMail affirment que de plus en plus d'utilisateurs voient la nécessité d'une nouvelle norme ouverte pour l'échange de messages. Les auteurs de JMAP espÚrent qu'à l'avenir, davantage d'entreprises commenceront à adopter ce protocole.

Nos ressources et sources supplémentaires :

JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. Comment vĂ©rifier les cookies pour se conformer au RGPD — un nouvel outil ouvert vous aidera

JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. Comment Ă©conomiser grĂące Ă  une interface de programmation d'applications
JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. DevOps dans le service cloud avec l'exemple de 1cloud.ru
JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. L'Ă©volution de l'architecture du cloud 1cloud

JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. Attaques potentielles sur HTTPS et moyens de s'en protĂ©ger
JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. Comment protĂ©ger un serveur sur Internet : l'expĂ©rience de 1cloud.ru
JMAP — un protocole ouvert qui remplacera IMAP pour l'Ă©change d'e-mails. Bref cours : qu'est-ce que l'intĂ©gration continue

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster