JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte

Ranije ovog mjeseca na Hacker News-u aktivno se razgovaralo JMAP protokol razvijena pod vodstvom IETF-a. Odlučili smo da razgovaramo o tome zašto je to bilo potrebno i kako funkcioniše.

JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte
/ dionice /PD

Ono što mi se nije dopalo kod IMAP-a

Protokol IMAP uveden je 1986. Mnoge stvari opisane u standardu danas više nisu relevantne. Na primjer, protokol može vratiti broj redova slova i kontrolnih suma MD5 - ova funkcionalnost se praktički ne koristi u modernim klijentima e-pošte.

Drugi problem se odnosi na potrošnju saobraćaja. Uz IMAP, e-poruke se pohranjuju na serveru i povremeno sinkroniziraju s lokalnim klijentima. Ako se iz nekog razloga kopija na korisnikovom uređaju ošteti, sva pošta se mora ponovo sinkronizirati. U savremenom svetu, kada se na server može povezati hiljade mobilnih uređaja, ovakav pristup dovodi do povećane potrošnje saobraćaja i računarskih resursa.

Poteškoće ne nastaju samo sa samim protokolom, već i sa klijentima e-pošte koji rade s njim. Od svog nastanka, IMAP je bio predmet raznih revizija mnogo puta - trenutna verzija danas je IMAP4. Istovremeno, postoji mnogo opcionih ekstenzija za to - na mreži objavljeno devedeset RFC-ova sa dodacima. Jedan od najnovijih je RFC8514, uveden 2019.

U isto vrijeme, mnoge kompanije nude svoja vlastita rješenja koja bi trebala pojednostaviti rad s IMAP-om ili ga čak zamijeniti: Gmail, izgledi, nylas. Rezultat je da postojeći klijenti e-pošte podržavaju samo neke od dostupnih funkcija. Takva raznolikost dovodi do segmentacije tržišta.

„Štaviše, moderan klijent e-pošte ne bi trebalo samo da prosleđuje poruke, već da može da radi sa kontaktima i da se sinhronizuje sa kalendarom“, kaže Sergej Belkin, šef razvoja u IaaS provajderu 1cloud.ru. — Danas su protokoli trećih strana poput LDAP, CardDAV и CalDAV. Ovaj pristup komplikuje konfiguraciju zaštitnih zidova u korporativnim mrežama i otvara nove vektore za sajber napade.”

JMAP je dizajniran da riješi ove probleme. Razvijaju ga stručnjaci za FastMail pod vodstvom Internet Engineering Task Force (IETF). Protokol radi preko HTTPS-a, koristi JSON (iz tog razloga je pogodan ne samo za razmjenu elektronskih poruka, već i za rješavanje niza zadataka u oblaku) i pojednostavljuje organizaciju rada s poštom u mobilnim sistemima. Osim obrade pisama, JMAP pruža i mogućnost povezivanja ekstenzija za rad sa kontaktima i planer kalendara.

Karakteristike novog protokola

JMAP je protokol bez državljanstva (bez stanja) i ne zahtijeva stalnu vezu sa serverom pošte. Ova funkcija pojednostavljuje rad u nestabilnim mobilnim mrežama i štedi energiju baterije na uređajima.

E-pošta u JMAP-u je predstavljena u formatu JSON strukture. Sadrži sve informacije iz poruke RFC5322 (Internet Message Format), što može biti potrebno aplikacijama za e-poštu. Prema riječima programera, ovaj pristup bi trebao pojednostaviti kreiranje klijenata, jer se rješavaju potencijalne poteškoće (povezane sa Mime, čitanje zaglavlja i kodiranje) server će odgovoriti.

Klijent koristi API da kontaktira server. Da bi to učinio, generiše autentificirani POST zahtjev, čija su svojstva opisana u JMAP objektu sesije. Zahtjev je u formatu application/json i sastoji se od jednog JSON objekta zahtjeva. Server također generiše jedan objekt odgovora.

В specifikacije (tačka 3) autori uz zahtjev navode sljedeći primjer:

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

Ispod je primjer odgovora koji će server generirati:

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

Kompletna JMAP specifikacija sa primjerima implementacije može se naći na službena web stranica projekat. Tamo su autori objavili i opis specifikacija za JMAP kontakti и JMAP kalendari — imaju za cilj rad sa kalendarima i listama kontakata. By prema autori, kontakti i kalendari su odvojeni u posebne dokumente kako bi se mogli dalje razvijati i standardizirati nezavisno od „jezgra“. Izvorni kodovi za JMAP - in spremišta na GitHub-u.

JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte
/ dionice /PD

Perspektive

Unatoč činjenici da rad na standardu još uvijek nije službeno završen, on se već implementira u proizvodnim okruženjima. Na primjer, kreatori otvorenog mail servera Cyrus IMAP implementirao svoju JMAP verziju. Programeri iz FastMaila pušten server framework za novi protokol u Perlu, a predstavili su i autori JMAP-a proxy server.

Možemo očekivati ​​da će u budućnosti biti sve više projekata zasnovanih na JMAP-u. Na primjer, postoji određena vjerovatnoća da će programeri iz Open-Xchangea, koji kreiraju IMAP server za Linux sisteme, preći na novi protokol. Veoma ih odbijajte IMAP pitaju članovi zajednice, formiran oko alata kompanije.

Programeri iz IETF-a i FastMail-a kažu da sve više korisnika vidi potrebu za novim otvorenim standardom za razmjenu poruka. Autori JMAP-a se nadaju da će u budućnosti više kompanija početi da implementira ovaj protokol.

Naši dodatni resursi i resursi:

JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Kako provjeriti usklađenost kolačića s GDPR-om - novi otvoreni alat će vam pomoći

JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Kako sačuvati pomoću interfejsa za programiranje aplikacije
JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte DevOps u cloud servisu na primjeru 1cloud.ru
JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Evolucija arhitekture oblaka 1cloud

JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Potencijalni napadi na HTTPS i kako se zaštititi od njih
JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Kako zaštititi server na Internetu: 1cloud.ru iskustvo
JMAP - otvoreni protokol koji će zamijeniti IMAP prilikom razmjene e-pošte Kratki obrazovni program: šta je to kontinuirana integracija

izvor: www.habr.com

Dodajte komentar