JMAP – otevřený protokol, který nahradí IMAP při výměně emailů

Začátkem tohoto měsíce na Hacker News se aktivně diskutovalo protokol JMAP vyvinuté pod vedením IETF. Rozhodli jsme se mluvit o tom, proč je to potřeba a jak to funguje.

JMAP – otevřený protokol, který nahradí IMAP při výměně emailů
/ Výstřel /PD

Co se mi na IMAP nelíbilo

Protokol IMAP byla představena v roce 1986. Mnoho věcí popsaných v normě už dnes není aktuální. Protokol může například vrátit počet řádků písmene a kontrolní součty MD5 - tato funkcionalita se v moderních e-mailových klientech prakticky nepoužívá.

Další problém souvisí se spotřebou dopravy. S protokolem IMAP se e-maily ukládají na server a pravidelně se synchronizují s místními klienty. Pokud se z nějakého důvodu poškodí kopie v zařízení uživatele, musí být veškerá pošta znovu synchronizována. V moderním světě, kdy lze k serveru připojit tisíce mobilních zařízení, vede tento přístup ke zvýšené spotřebě provozu a výpočetních zdrojů.

Potíže vznikají nejen se samotným protokolem, ale také s e-mailovými klienty, kteří s ním pracují. Od svého vzniku prošel IMAP mnohokrát různými revizemi – současná verze je dnes IMAP4. Zároveň pro něj existuje mnoho volitelných rozšíření – v síti zveřejněno devadesát RFC s doplňky. Jedním z nejnovějších je RFC8514, představený v roce 2019.

Mnoho společností zároveň nabízí svá vlastní proprietární řešení, která by měla zjednodušit práci s IMAP nebo ji dokonce nahradit: Gmail, výhled, nylas. Výsledkem je, že stávající e-mailoví klienti podporují pouze některé z dostupných funkcí. Taková rozmanitost vede k segmentaci trhu.

„Moderní e-mailový klient by navíc neměl pouze přeposílat zprávy, ale měl by být schopen pracovat s kontakty a synchronizovat se s kalendářem,“ říká Sergei Belkin, vedoucí vývoje poskytovatele IaaS. 1cloud.ru. — Dnes protokoly třetích stran jako LDAP, CardDAV и CalDAV. Tento přístup komplikuje konfiguraci firewallů v podnikových sítích a otevírá nové možnosti pro kybernetické útoky.“

JMAP je navržen tak, aby tyto problémy vyřešil. Je vyvíjen experty FastMail pod vedením Internet Engineering Task Force (IETF). Protokol běží nad HTTPS, využívá JSON (z tohoto důvodu je vhodný nejen pro výměnu elektronických zpráv, ale i pro řešení řady úloh v cloudu) a zjednodušuje organizaci práce s poštou v mobilních systémech. Kromě zpracování dopisů poskytuje JMAP také možnost připojení rozšíření pro práci s kontakty a plánovačem kalendáře.

Vlastnosti nového protokolu

JMAP je bezstavový protokol (bezstavové) a nevyžaduje trvalé připojení k poštovnímu serveru. Tato funkce zjednodušuje práci v nestabilních mobilních sítích a šetří baterii zařízení.

E-mail v JMAP je reprezentován ve formátu struktury JSON. Obsahuje všechny informace ze zprávy RFC5322 (Internet Message Format), kterou mohou e-mailové aplikace potřebovat. Podle vývojářů by tento přístup měl zjednodušit vytváření klientů, protože řešení případných potíží (spojených s MIM, čtení hlaviček a kódování) server odpoví.

Klient používá API ke kontaktování serveru. K tomu vygeneruje ověřený požadavek POST, jehož vlastnosti jsou popsány v objektu relace JMAP. Požadavek je ve formátu application/json a skládá se z jednoho objektu požadavku JSON. Server také vygeneruje jeden objekt odpovědi.

В Specifikace (bod 3) autoři uvádějí s požadavkem následující pří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" ]
  ]
}

Níže je uveden příklad odpovědi, kterou 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"
}

Úplnou specifikaci JMAP s ukázkovými implementacemi lze nalézt na oficiální stránky projekt. Tam autoři také zveřejnili popis specifikací pro Kontakty JMAP и Kalendáře JMAP — jsou zaměřeny na práci s kalendáři a seznamy kontaktů. Podle Slova autoři, Kontakty a Kalendáře byly rozděleny do samostatných dokumentů, aby mohly být dále rozvíjeny a standardizovány nezávisle na „jádru“. Zdrojové kódy pro JMAP - in úložiště na GitHubu.

JMAP – otevřený protokol, který nahradí IMAP při výměně emailů
/ Výstřel /PD

Vyhlídky

Navzdory tomu, že práce na standardu ještě nebyly oficiálně dokončeny, je již implementován do produkčních prostředí. Například tvůrci otevřeného poštovního serveru Cyrus IMAP implementovala jeho verzi JMAP. Vývojáři z FastMail propuštěn serverový framework pro nový protokol v Perlu a představili autoři JMAP proxy server.

Můžeme očekávat, že v budoucnu bude přibývat projektů založených na JMAP. Existuje například určitá pravděpodobnost, že vývojáři z Open-Xchange, kteří vytvářejí server IMAP pro systémy Linux, přejdou na nový protokol. Velmi jim odmítejte IMAP ptají se členové komunity, tvořené kolem firemních nástrojů.

Vývojáři z IETF a FastMail říkají, že stále více uživatelů vidí potřebu nového otevřeného standardu pro zasílání zpráv. Autoři JMAP doufají, že v budoucnu začne tento protokol implementovat více společností.

Naše další zdroje a zdroje:

JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Jak kontrolovat cookies z hlediska souladu s GDPR – pomůže nový otevřený nástroj

JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Jak ušetřit pomocí aplikačního programovacího rozhraní
JMAP – otevřený protokol, který nahradí IMAP při výměně emailů DevOps v cloudové službě na příkladu 1cloud.ru
JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Evoluce cloudové architektury 1cloud

JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Možné útoky na HTTPS a jak se proti nim chránit
JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Jak chránit server na internetu: zkušenost 1cloud.ru
JMAP – otevřený protokol, který nahradí IMAP při výměně emailů Krátký vzdělávací program: co je to kontinuální integrace

Zdroj: www.habr.com

Přidat komentář