JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails

Plus tôt ce mois-ci sur Hacker News a été activement discuté Protocole JMAP développé sous la direction de l'IETF. Nous avons décidé de parler de pourquoi cela était nécessaire et de comment cela fonctionne.

JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails
/ Banque d'images /PD

Ce que je n'ai pas aimé dans IMAP

Protocole IMAP a été introduit en 1986. De nombreuses choses décrites dans la norme ne sont plus pertinentes aujourd’hui. Par exemple, le protocole peut renvoyer le nombre de lignes d'une lettre et les sommes de contrôle MD5 - cette fonctionnalité n'est pratiquement pas utilisée dans les clients de messagerie modernes.

Un autre problème est lié à la consommation de trafic. Avec IMAP, les e-mails sont stockés sur le serveur et périodiquement synchronisés avec les clients locaux. Si, pour une raison quelconque, la copie sur l'appareil de l'utilisateur est corrompue, tous les messages doivent être à nouveau synchronisés. Dans le monde moderne, où des milliers d'appareils mobiles peuvent être connectés au serveur, cette approche entraîne une consommation accrue de trafic et de ressources informatiques.

Les difficultés surviennent non seulement avec le protocole lui-même, mais également avec les clients de messagerie qui l'utilisent. Depuis sa création, IMAP a fait l'objet de nombreuses révisions - la version actuelle est aujourd'hui IMAP4. En même temps, il existe de nombreuses extensions optionnelles - sur le réseau publié quatre-vingt-dix RFC avec des ajouts. L'un des plus récents est RFC8514introduit en 2019.

Parallèlement, de nombreuses entreprises proposent leurs propres solutions propriétaires qui devraient simplifier le travail avec IMAP, voire le remplacer : Gmail, Outlook, Nylas. Le résultat est que les clients de messagerie existants ne prennent en charge que certaines des fonctionnalités disponibles. Une telle diversité conduit à une segmentation du marché.

"De plus, un client de messagerie moderne ne doit pas seulement transférer des messages, mais aussi être capable de travailler avec des contacts et de se synchroniser avec le calendrier", explique Sergei Belkin, responsable du développement du fournisseur IaaS. 1cloud.ru. — Aujourd'hui, les protocoles tiers comme LDAP, CardDAV и CalDAVComment. Cette approche complique la configuration des pare-feu dans les réseaux d'entreprise et ouvre de nouveaux vecteurs de cyberattaques.

JMAP est conçu pour résoudre ces problèmes. Il est développé par des experts de FastMail sous la direction de l’Internet Engineering Task Force (IETF). Le protocole fonctionne sur HTTPS, utilise JSON (pour cette raison, il convient non seulement à l'échange de messages électroniques, mais également à la résolution d'un certain nombre de tâches dans le cloud) et simplifie l'organisation du travail avec le courrier dans les systèmes mobiles. En plus du traitement des lettres, JMAP offre également la possibilité de connecter des extensions pour travailler avec des contacts et un planificateur de calendrier.

Caractéristiques du nouveau protocole

JMAP est protocole apatride (sans état) et ne nécessite pas de connexion permanente au serveur de messagerie. Cette fonctionnalité simplifie le travail dans les réseaux mobiles instables et économise la batterie des appareils.

Un e-mail dans JMAP est représenté dans un format de structure JSON. Il contient toutes les informations du message RFC5322 (Internet Message Format), qui peut être nécessaire aux applications de messagerie. Selon les développeurs, cette approche devrait simplifier la création de clients, puisque la résolution des difficultés potentielles (liées à MIME, lecture des en-têtes et encodage), le serveur répondra.

Le client utilise l'API pour contacter le serveur. Pour ce faire, il génère une requête POST authentifiée dont les propriétés sont décrites dans l'objet session JMAP. La requête est au format application/json et consiste en un seul objet de requête JSON. Le serveur génère également un objet de réponse.

В spécifications (point 3) les auteurs fournissent 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" ]
  ]
}

Vous trouverez ci-dessous un exemple de réponse que le serveur générera :

{
  "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 JMAP complète avec des exemples d'implémentations peut être trouvée sur le site officiel projet. Les auteurs y ont également publié une description des spécifications de Contacts de JMAP и Calendriers JMAP — ils sont destinés à travailler avec des calendriers et des listes de contacts. Par СЃР »РѕРІР ° Рј les auteurs, les contacts et les calendriers ont été séparés en documents distincts afin de pouvoir être développés et standardisés indépendamment du « noyau ». Codes sources pour JMAP - dans dépôts sur GitHub.

JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails
/ Banque d'images /PD

Perspectives

Bien que les travaux sur la norme ne soient pas encore officiellement terminés, ils sont déjà mis en œuvre dans les environnements de production. Par exemple, les créateurs du serveur de messagerie ouvert Cyrus IMAP implémenté sa version JMAP. Développeurs de FastMail libéré cadre de serveur pour le nouveau protocole en Perl, et les auteurs de JMAP ont présenté Serveur proxy.

Nous pouvons nous attendre à ce qu'il y ait de plus en plus de projets basés sur JMAP dans le futur. Par exemple, il est probable que les développeurs d'Open-Xchange, qui créent un serveur IMAP pour les systèmes Linux, passeront au nouveau protocole. Refusez-les fortement en IMAP les membres de la communauté demandent, constitué 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'un nouveau standard ouvert pour la messagerie. Les auteurs du JMAP espèrent qu’à l’avenir davantage d’entreprises commenceront à mettre en œuvre ce protocole.

Nos ressources et sources supplémentaires :

JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Comment vérifier la conformité des cookies au RGPD - un nouvel outil ouvert vous aidera

JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Comment enregistrer avec une interface de programmation d'applications
JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails DevOps dans un service cloud en utilisant l'exemple de 1cloud.ru
JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Évolution de l'architecture cloud 1cloud

JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Attaques potentielles sur HTTPS et comment s'en protéger
JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Comment protéger un serveur sur Internet : expérience 1cloud.ru
JMAP - un protocole ouvert qui remplacera IMAP lors de l'échange d'e-mails Un programme éducatif court : qu'est-ce que l'intégration continue

Source: habr.com

Ajouter un commentaire