JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri

La începutul acestei luni, pe Hacker News a fost discutat activ Protocolul JMAP dezvoltat sub conducerea IETF. Am decis să vorbim despre motivul pentru care a fost nevoie și despre cum funcționează.

JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri
/ PxAici /PD

Ce nu mi-a plăcut la IMAP

protocol IMAP a fost introdus în 1986. Multe lucruri descrise în standard nu mai sunt relevante astăzi. De exemplu, protocolul poate returna numărul de linii ale unei scrisori și sumele de control MD5 - această funcționalitate practic nu este utilizată în clienții de e-mail moderni.

O altă problemă este legată de consumul de trafic. Cu IMAP, e-mailurile sunt stocate pe server și sincronizate periodic cu clienții locali. Dacă dintr-un motiv oarecare copia de pe dispozitivul utilizatorului este coruptă, toate e-mailurile trebuie să fie sincronizate din nou. În lumea modernă, când mii de dispozitive mobile pot fi conectate la server, această abordare duce la un consum crescut de trafic și resurse de calcul.

Dificultățile apar nu numai cu protocolul în sine, ci și cu clienții de e-mail care lucrează cu acesta. De la crearea sa, IMAP a fost supus de multe ori la diverse revizuiri - versiunea actuală de astăzi este IMAP4. În același timp, există multe extensii opționale pentru acesta - în rețea publicat nouăzeci de RFC-uri cu adăugiri. Una dintre cele mai recente este RFC8514, introdus în 2019.

În același timp, multe companii oferă propriile soluții proprietare care ar trebui să simplifice lucrul cu IMAP sau chiar să îl înlocuiască: Gmail, Perspectivă, nylas. Rezultatul este că clienții de e-mail existenți acceptă doar unele dintre funcțiile disponibile. O astfel de diversitate duce la segmentarea pieței.

„Mai mult, un client de e-mail modern nu ar trebui doar să redirecționeze mesajele, ci să poată lucra cu contactele și să se sincronizeze cu calendarul”, spune Sergei Belkin, șeful de dezvoltare la furnizorul IaaS. 1cloud.ru. — Astăzi, protocoale de la terți ca LDAP, CardDAV и CalDAV. Această abordare complică configurarea firewall-urilor în rețelele corporative și deschide noi vectori pentru atacurile cibernetice.”

JMAP este conceput pentru a rezolva aceste probleme. Este dezvoltat de experții FastMail sub îndrumarea Internet Engineering Task Force (IETF). Protocolul rulează pe HTTPS, folosește JSON (din acest motiv este potrivit nu numai pentru schimbul de mesaje electronice, ci și pentru rezolvarea unui număr de sarcini în cloud) și simplifică organizarea lucrului cu e-mailul în sistemele mobile. Pe lângă procesarea scrisorilor, JMAP oferă și posibilitatea de a conecta extensii pentru a lucra cu contacte și un planificator de calendar.

Caracteristicile noului protocol

JMAP este protocol apatrid (apatrid) și nu necesită o conexiune permanentă la serverul de e-mail. Această caracteristică simplifică munca în rețelele mobile instabile și economisește energia bateriei pe dispozitive.

Un e-mail în JMAP este reprezentat într-un format de structură JSON. Conține toate informațiile din mesaj RFC5322 (Internet Message Format), care poate fi necesar pentru aplicațiile de e-mail. Potrivit dezvoltatorilor, această abordare ar trebui să simplifice crearea de clienți, deoarece rezolvă dificultățile potențiale (asociate cu MIMA, citirea antetelor și codificarea) serverul va răspunde.

Clientul folosește API-ul pentru a contacta serverul. Pentru a face acest lucru, generează o cerere POST autentificată, ale cărei proprietăți sunt descrise în obiectul de sesiune JMAP. Solicitarea este în format aplicație/json și constă dintr-un singur obiect de solicitare JSON. Serverul generează, de asemenea, un obiect de răspuns.

В specificații (punctul 3) autorii furnizează 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 este un exemplu de răspuns pe care serverul îl va genera:

{
  "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ă JMAP cu exemple de implementare poate fi găsită la site-ul oficial proiect. Acolo autorii au postat și o descriere a specificațiilor pentru Contacte JMAP и Calendare JMAP — au ca scop lucrul cu calendare și liste de contacte. De conform autorii, contactele și calendarele au fost separate în documente separate, astfel încât să poată fi dezvoltate și standardizate în continuare independent de „nucleu”. Codurile sursă pentru JMAP - în depozite pe GitHub.

JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri
/ PxAici /PD

Perspective

În ciuda faptului că lucrările la standard nu au fost încă finalizate oficial, acesta este deja implementat în mediile de producție. De exemplu, creatorii serverului de e-mail deschis Cyrus IMAP a implementat versiunea sa JMAP. Dezvoltatori de la FastMail eliberată cadru de server pentru noul protocol în Perl, și autorii JMAP au prezentat server proxy.

Ne putem aștepta că vor exista tot mai multe proiecte bazate pe JMAP în viitor. De exemplu, există o oarecare probabilitate ca dezvoltatorii de la Open-Xchange, care creează un server IMAP pentru sistemele Linux, să treacă la noul protocol. Refuzați-le IMAP foarte mult întreabă membrii comunității, format în jurul instrumentelor companiei.

Dezvoltatorii de la IETF și FastMail spun că tot mai mulți utilizatori văd nevoia unui nou standard deschis pentru mesagerie. Autorii JMAP speră că în viitor mai multe companii vor începe să implementeze acest protocol.

Resursele și sursele noastre suplimentare:

JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Cum să verificați cookie-urile pentru conformitatea cu GDPR - un nou instrument deschis vă va ajuta

JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Cum să salvați cu o interfață de programare a aplicației
JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri DevOps într-un serviciu cloud folosind exemplul 1cloud.ru
JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Evoluția arhitecturii 1cloud cloud

JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Potențiale atacuri asupra HTTPS și cum să vă protejați împotriva lor
JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Cum să protejați un server pe Internet: experiența 1cloud.ru
JMAP - un protocol deschis care va înlocui IMAP la schimbul de e-mailuri Un scurt program educațional: ce este integrarea continuă

Sursa: www.habr.com

Adauga un comentariu