JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov

Začiatkom tohto mesiaca na Hacker News sa aktívne diskutovalo protokol JMAP vyvinuté pod vedením IETF. Rozhodli sme sa porozprávať o tom, prečo je to potrebné a ako to funguje.

JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov
/ Záber /PD

Čo sa mi na IMAP nepáčilo

protokol IMAP bola predstavená v roku 1986. Mnohé veci opísané v norme už dnes nie sú relevantné. Napríklad protokol môže vrátiť počet riadkov písmena a kontrolné súčty MD5 - táto funkcionalita sa v moderných e-mailových klientoch prakticky nepoužíva.

Ďalší problém súvisí so spotrebou premávky. S protokolom IMAP sa e-maily ukladajú na server a pravidelne sa synchronizujú s lokálnymi klientmi. Ak sa z nejakého dôvodu poškodí kópia na zariadení používateľa, všetka pošta sa musí znova synchronizovať. V modernom svete, keď je možné k serveru pripojiť tisíce mobilných zariadení, vedie tento prístup k zvýšenej spotrebe prevádzky a výpočtových zdrojov.

Ťažkosti vznikajú nielen so samotným protokolom, ale aj s e-mailovými klientmi, ktorí s ním pracujú. Od svojho vzniku prešiel IMAP mnohokrát rôznymi revíziami – aktuálna verzia je dnes IMAP4. Zároveň preň existuje veľa voliteľných rozšírení - v sieti publikovaný deväťdesiat RFC s doplnkami. Jedným z najnovších je RFC8514predstavený v roku 2019.

Mnohé spoločnosti zároveň ponúkajú vlastné proprietárne riešenia, ktoré by mali zjednodušiť prácu s protokolom IMAP alebo ho dokonca nahradiť: Gmail, výhľad, nylas. Výsledkom je, že existujúci e-mailoví klienti podporujú len niektoré z dostupných funkcií. Takáto rôznorodosť vedie k segmentácii trhu.

„Navyše, moderný e-mailový klient by mal nielen preposielať správy, ale mal by byť schopný pracovať s kontaktmi a synchronizovať sa s kalendárom,“ hovorí Sergei Belkin, vedúci vývoja poskytovateľa IaaS. 1cloud.ru. — Dnes protokoly tretích strán ako LDAP, CardDAV и CalDAV. Tento prístup komplikuje konfiguráciu firewallov v podnikových sieťach a otvára nové možnosti pre kybernetické útoky.“

JMAP je navrhnutý na riešenie týchto problémov. Vyvíjajú ho experti FastMail pod vedením Internet Engineering Task Force (IETF). Protokol beží nad HTTPS, využíva JSON (z tohto dôvodu je vhodný nielen na výmenu elektronických správ, ale aj na riešenie množstva úloh v cloude) a zjednodušuje organizáciu práce s poštou v mobilných systémoch. Okrem spracovania listov poskytuje JMAP aj možnosť pripojenia rozšírení pre prácu s kontaktmi a plánovačom kalendára.

Vlastnosti nového protokolu

JMAP je bezstavový protokol (bez stavu) a nevyžaduje trvalé pripojenie k poštovému serveru. Táto funkcia zjednodušuje prácu v nestabilných mobilných sieťach a šetrí batériu zariadení.

E-mail v JMAP je reprezentovaný vo formáte štruktúry JSON. Obsahuje všetky informácie zo správy RFC5322 (Internet Message Format), ktorý môže byť potrebný pre e-mailové aplikácie. Podľa vývojárov by tento prístup mal zjednodušiť vytváranie klientov, pretože riešenie prípadných ťažkostí (spojených s Mim, čítanie hlavičiek a kódovanie) server odpovie.

Klient používa API na kontaktovanie servera. Na tento účel vygeneruje overenú požiadavku POST, ktorej vlastnosti sú popísané v objekte relácie JMAP. Požiadavka je vo formáte application/json a pozostáva z jedného objektu požiadavky JSON. Server tiež vygeneruje jeden objekt odpovede.

В technické údaje (bod 3) autori uvádzajú s požiadavkou nasledujúci príklad:

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

Nižšie je uvedený príklad odpovede, ktorú server vygeneruje:

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

Úplnú špecifikáciu JMAP s príkladmi implementácií nájdete na oficiálne internetové stránky projektu. Tam autori zverejnili aj popis špecifikácií pre Kontakty JMAP и Kalendáre JMAP — sú zamerané na prácu s kalendármi a zoznamami kontaktov. Autor: podľa autorov, Kontakty a Kalendáre boli rozdelené do samostatných dokumentov, aby sa mohli ďalej rozvíjať a štandardizovať nezávisle od „jadra“. Zdrojové kódy pre JMAP - in úložiská na GitHub.

JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov
/ Záber /PD

Vyhliadky

Napriek tomu, že práce na štandarde ešte nie sú oficiálne ukončené, už sa implementuje do produkčných prostredí. Napríklad tvorcovia otvoreného poštového servera Cyrus IMAP implementovala svoju verziu JMAP. Vývojári z FastMail prepustený serverový framework pre nový protokol v Perle a predstavili autori JMAP proxy server.

Môžeme očakávať, že v budúcnosti bude stále viac projektov založených na JMAP. Napríklad existuje určitá pravdepodobnosť, že vývojári z Open-Xchange, ktorí vytvárajú server IMAP pre systémy Linux, prejdú na nový protokol. Veľmi im odmietajte IMAP pýtajú sa členovia komunity, tvorené okolo nástrojov spoločnosti.

Vývojári z IETF a FastMail tvrdia, že stále viac používateľov vidí potrebu nového otvoreného štandardu pre zasielanie správ. Autori JMAP dúfajú, že v budúcnosti začne tento protokol implementovať viac spoločností.

Naše dodatočné zdroje a zdroje:

JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Ako skontrolovať súlad cookies s GDPR – pomôže vám nový otvorený nástroj

JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Ako ušetriť pomocou aplikačného programovacieho rozhrania
JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov DevOps v cloudovej službe na príklade 1cloud.ru
JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Vývoj cloudovej architektúry 1cloud

JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Potenciálne útoky na HTTPS a ako sa pred nimi chrániť
JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Ako chrániť server na internete: skúsenosť 1cloud.ru
JMAP – otvorený protokol, ktorý nahradí IMAP pri výmene emailov Krátky vzdelávací program: čo je kontinuálna integrácia

Zdroj: hab.com

Pridať komentár