JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov

Na začiatku mesiaca na Hacker News aktívne sa diskutovalo o protokole JMAP, vyvíjanom pod vedením IETF. Rozhodli sme sa hovoriť o tom, prečo je potrebný a ako je navrhnutý.

JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov
/ PxHere / PD

Čím nie je IMAP vyhovujúci

Protokol IMAP bol predstavený v roku 1986. Mnohé veci popísané v norme už dnes nie sú aktuálne. Napríklad, protokol dokáže vracať počet riadkov e-mailov a kontrolné súčty MD5 — táto funkčnosť sa v moderných e-mailových klientoch takmer nepoužíva.

Ďalší problém súvisí so spotrebou dát. V prípade IMAP sú e-maily uložené na serveri a pravidelne synchronizované s lokálnymi klientami. Ak sa z nejakého dôvodu kópia na zariadení používateľa "pokazí", je potrebné opäť synchronizovať celú poštu. V modernom svete, kde môže byť k serveru pripojených tisíce mobilných zariadení, tento prístup vedie k zvýšenej spotrebe dát a výpočtových zdrojov.

Problémy sa vyskytujú nielen s protokolom samotným, ale aj s e-mailovými klientami, ktoré s ním pracujú. Od doby vzniku bol IMAP mnohokrát podrobený rôznym revíziám — aktuálnou verziou dnes je IMAP4. Navyše preň existuje množstvo voliteľných rozšírení — na internete boli publikované deviate z RFC s doplnkami. Jedným z najnovších je RFC8514, predstavený v roku 2019.

Mnohé spoločnosti však ponúkajú vlastné proprietárne riešenia, ktoré majú zjednodušiť prácu s IMAP alebo ho dokonca úplne nahradiť: Gmail, Outlook, Nylas. V dôsledku toho existujúce e-mailové klienty podporujú len niektoré z dostupných funkcií. Takáto rozšírenosť vedie k segmentácii trhu.

„Navyše, moderný e-mailový klient by nemal len preposielať správy, ale mal by vedieť pracovať s kontaktmi a synchronizovať sa s kalendárom,“ hovorí Sergej Belkin, vedúci oddelenia rozvoja IaaS poskytovateľa 1cloud.ru. „Dnes sa na tieto účely používajú alternatívne protokoly ako LDAP, CardDAV a CalDAV. Takýto prístup komplikuje nastavenie firewallov v podnikových sieťach a otvára nové vektory pre kybernetické útoky“.

Riešiť označené problémy má JMAP. Rozvíjajú ho odborníci z FastMail pod vedením Inžinierskeho výboru internetu (IETF). Protokol pracuje nad HTTPS, využíva JSON (z tohto dôvodu je vhodný nielen na výmenu e-mailov, ale aj na riešenie rôznych úloh v cloude) a zjednodušuje organizáciu práce s poštou v mobilných systémoch. Okrem spracovania e-mailov, JMAP tiež umožňuje pripojenie rozšírení na prácu s kontaktmi a kalendármi.

Charakteristiky nového protokolu

JMAP je protokol bez zachovania stavu (stateless) a nevyžaduje neustále pripojenie k poštovému serveru. Táto vlastnosť zjednodušuje prácu v nestabilných mobilných sieťach a umožňuje šetriť energiu zariadení.

Elektronický e-mail v JMAP je prezentovaný vo formáte JSON štruktúry. Obsahuje všetky informácie z správy RFC5322 (Internet Message Format), ktoré môžu byť potrebné poštovým aplikáciám. Podľa slov vývojárov, takýto prístup by mal zjednodušiť vytváranie klientov, pretože za riešenie potenciálnych problémov (súvisiacich s MIME, čítaním hlavičiek a kódovaním) bude zodpovedný server.

Na prístup k serveru klient používa API. Na to vytvorí autentifikovaný POST požiadavok, ktorého vlastnosti sú opísané v sennom objekte JMAP. Požiadavok má formát application/json a pozostáva z jedného JSON objektu požiadavky. Server tiež generuje jeden objekt odpovede.

V špecifikácie (časť 3) autori uvádzajú nasledujúci príklad s požiadavkom:

{
  "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 príklad odpovede, ktorú vytvorí server:

{
  "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 realizácie môžete nájsť na oficiálnej stránke projektoch. Tam autori zverejnili aj popis špecifikácií pre JMAP Kontakty a JMAP Kalendáre — sú zamerané na prácu s kalendármi a zoznamami kontaktov. Podľa súhrnu autori, Contacts a Calendars boli vyčlenené do samostatných dokumentov, aby sa mohli vyvíjať a štandardizovať nezávisle od „jadra“. Zdrojové kódy pre JMAP sú v repozitári na GitHub.

JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov
/ PxHere / PD

Vyhliadky

Hoci oficiálna práca na štandarde ešte nebola ukončená, už sa implementuje v produkčných prostrediach. Napríklad, tvorcovia otvoreného poštového servera Cyrus IMAP realizovali jeho verziu JMAP. Vývojári z FastMail uvedli serverový rámec pre nový protokol na Perli, a autori JMAP predstavili proxy server.

Môžeme očakávať, že v budúcnosti bude pribúdať projektov na báze JMAP. Napríklad, existuje určité riziko, že na nový protokol prejdú vývojári z Open-Xchange, ktorí vytvárajú IMAP server pre systémy Linux. Odmietnuť IMAP ich veľmi žiadajú účastníci komunity, ktorá sa formovala 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 výmenu správ. Autori JMAP dúfajú, že v budúcnosti viac spoločností začne tento protokol implementovať.

Naše ďalšie zdroje a materiály:

JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Ako skontrolovať cookies na súlad s GDPR – pomôže nový otvorený nástroj

JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Ako ušetriť pomocou aplikačného programového rozhrania
JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov DevOps v cloudovej službe na príklade 1cloud.ru
JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Evolúcia architektúry cloudu 1cloud

JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Potenciálne útoky na HTTPS a spôsoby ochrany proti nim
JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Ako ochrániť server na internete: skúsenosti 1cloud.ru
JMAP — otvorený protokol nahradí IMAP pri výmene e-mailov Krátky základ: čo je Continuous Integration

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster