JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice

La începutul lunii, pe Hacker News s-a discutat activ despre protocolul JMAP, dezvoltat sub conducerea IETF. Am decis să discutăm despre ce anume este nevoie de el și cum funcționează.

JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice
/ PxHere / PD

Ce nu a deranjat IMAP

Protocolul IMAP a fost prezentat în 1986. Multe lucruri descrise în standard nu mai sunt relevante astăzi. De exemplu, protocolul poate returna numărul de linii dintr-un mesaj și sumele de control MD5 — această funcționalitate nu mai este folosită aproape deloc în clienții de email moderni.

O altă problemă este legată de consumul de trafic. În cazul IMAP, mesajele de email sunt stocate pe server și sincronizate periodic cu clienții locali. Dacă dintr-un anumit motiv copia de pe dispozitivul utilizatorului "se strică", este necesară resyncornizarea întregii poștă. În lumea modernă, în care la server pot fi conectate mii de dispozitive mobile, această abordare duce la un consum crescut de trafic și resurse de calcul.

Dificultăți apar nu doar cu protocolul în sine, ci și cu clienții de email care lucrează cu el. De la crearea sa, IMAP a fost supus multor revizuiri — versiunea actuală este IMAP4. Totodată, există multe extensii opționale pentru acesta — pe internet sunt publicate nouăzeci RFC-uri cu completări. Una dintre cele mai recente este RFC8514, prezentată în 2019.

În acest context, multe companii oferă soluții proprietare care ar trebui să simplifice lucrul cu IMAP sau să-l înlocuiască complet: Gmail, Outlook, Nylas. Ca rezultat, clienții de email existenți suportă doar unele dintre funcțiile disponibile. Această diversitate duce la segmentarea pieței.

„Mai mult, un client de email modern nu trebuie doar să trimită mesaje, ci trebuie să poată lucra cu contacte și să se sincronizeze cu calendarul,” spune Sergey Belkin, șeful departamentului de dezvoltare al providerului IaaS 1cloud.ru. — Astăzi, pentru aceste scopuri, se folosesc protocoale externe precum LDAP, CardDAV și CalDAV. Această abordare complică configurarea firewall-urilor în rețelele corporative și deschide noi vectori pentru atacuri cibernetice.”

Problemele menționate sunt abordate de JMAP. Acesta este dezvoltat de specialiștii de la FastMail sub conducerea Consiliului Inginerilor Internetului (IETF). Protocolul funcționează deasupra HTTPS, utilizează JSON (din această cauză se potrivește nu doar pentru schimbul de mesaje electronice, ci și pentru rezolvarea unor probleme în cloud) și simplifică organizarea muncii cu email-urile în sistemele mobile. Pe lângă procesarea mesajelor, JMAP prevede și posibilitatea conectării extensiilor pentru gestionarea contactelor și a calendarului-planner.

Caracteristicile noului protocol

JMAP este un protocol fără stare (stateless) și nu necesită o conexiune permanentă cu serverul de email. Această caracteristică simplifică funcționarea în rețele mobile instabile și permite economisirea energiei bateriilor dispozitivelor.

Un mesaj electronic în JMAP este reprezentat sub formă de structură JSON. Aceasta conține toată informația din mesaj RFC5322 (Internet Message Format), care poate fi necesară aplicațiilor de email. Potrivit dezvoltatorilor, această abordare ar trebui să simplifice crearea clienților, deoarece serverul va gestiona soluționarea potențialelor dificultăți (legate de MIME, citirea anteturilor și codificarea).

Pentru a comunica cu serverul, clientul folosește API. Acesta formulează o solicitare POST autentificată, proprietățile căreia sunt descrise în obiectul de sesiune JMAP. Solicitarea are formatul application/json și constă într-un singur obiect JSON de solicitare. Serverul generează, de asemenea, un singur obiect de răspuns.

În specificații (punctul 3) autorii oferă următorul exemplu cu o solicitare:

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

Mai jos se află un exemplu de răspuns generat de server:

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

Specificația completă a JMAP, cu exemple de implementare, poate fi găsită pe site-ul oficial proiect. De asemenea, autorii au publicat o descriere a specificațiilor pentru JMAP Contacts și JMAP Calendars — acestea sunt destinate gestionării calendarelor și listelor de contacte. Potrivit vorbelor lor autorilor, Contacts și Calendars au fost separate în documente distincte pentru a putea fi dezvoltate și standardizate independent de „nucleu”. Codurile sursă pentru JMAP sunt disponibile în repositorii pe GitHub.

JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice
/ PxHere / PD

Perspective

Deși oficial lucrările la standard nu sunt încă finalizate, acesta este deja implementat în medii de producție. De exemplu, creatorii serverului de email deschis Cyrus IMAP au realizat versiunea sa JMAP. Dezvoltatorii de la FastMail au lansat un framework server pentru noul protocol pe Perl, iar autorii JMAP au prezentat proxy server.

Se așteaptă ca în viitor proiectele bazate pe JMAP să devină tot mai numeroase. De exemplu, există o anumită probabilitate ca dezvoltatorii de la Open-Xchange, care creează un server IMAP pentru sistemele Linux, să adopte noul protocol. Participanții comunității le cer cu insistență să renunțe la IMAP, formându-se în jurul instrumentelor companiei.

Dezvoltatorii de la IETF și FastMail afirmă că din ce în ce mai mulți utilizatori văd necesitatea unui nou standard deschis pentru schimbul de mesaje. Autorii JMAP speră că în viitor mai multe companii vor începe să implementeze acest protocol.

Resursele și sursele noastre suplimentare:

JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice Cum să verifici cookie-urile pentru conformitatea cu GDPR - va ajuta un nou instrument deschis

JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice Cum să economisești cu ajutorul unei interfețe de programare a aplicațiilor
JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice DevOps în serviciul de cloud pe exemplul 1cloud.ru
JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice Evoluția arhitecturii cloud 1cloud

JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice Atacuri potențiale asupra HTTPS și metode de protecție împotriva lor
JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice Cum să protejezi un server pe internet: experiența 1cloud.ru
JMAP — protocolul deschis va înlocui IMAP în schimbul mesajelor electronice O scurtă lecție: ce este Continuous Integration

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster