JMAP — otevřený protokol nahradí IMAP při výměně e-mailů

Na začátku měsíce se na Hacker News aktivně diskutovalo o protokolu JMAP, který je vyvíjen pod vedením IETF. Rozhodli jsme se promluvit o tom, proč je potřeba a jak funguje.

JMAP — otevřený protokol nahradí IMAP při výměně e-mailů
/ PxHere / PD

Co nebylo v pořádku s IMAP

Protokol IMAP byl představen v roce 1986. Mnoho věcí, které jsou popsány ve standardu, dnes již není aktuálních. Například protokol umí vrátit počet řádků e-mailu a kontrolní součty, MD5 — tato funkcionalita se v moderních e-mailových klientech prakticky nepoužívá.

Další problém souvisí s využitím datového provozu. V případě IMAP jsou e-maily uloženy na serveru a pravidelně se synchronizují s místními klienty. Pokud z nějakého důvodu dojde k poškození kopie na zařízení uživatele, musí se synchronizovat celá pošta znovu. V moderním světě, kdy může být k serveru připojeno tisíce mobilních zařízení, tento přístup vede k vyšší spotřebě dat a výpočetních zdrojů.

Problémy nastávají nejen se samotným protokolem, ale také s e-mailovými klienty, které s ním pracují. Od vzniku IMAP byl mnohokrát revidován — aktuální verzí je IMAP4. Na něj existuje mnoho volitelných rozšíření — na síti byly zveřejněny existuje devadesát RFC s dodatky. Jedním z nejnovějších je RFC8514, které bylo představeno v roce 2019.

Mnohé společnosti přitom nabízejí vlastní proprietární řešení, která mají usnadnit práci s IMAP nebo ho dokonce nahradit: Gmail, Outlook, Nylas. Výsledkem je, že stávající e-mailové klienty podporují pouze některé z dostupných funkcí. Toto rozmanité spektrum vede k segmentaci trhu.

„Navíc moderní e-mailový klient by neměl pouze přeposílat zprávy, ale měl by umět pracovat s kontakty a synchronizovat se s kalendářem,“ říká Sergey Belkin, vedoucí oddělení vývoje IaaS poskytovatele. 1cloud.ru„Dnes se k těmto cílům používají alternativní protokoly jako LDAP, úpravy v a CardDAV. Tento přístup komplikuje konfiguraci firewallů v podnikových sítích a otevírá nové vektory pro kybernetické útoky.“

Řešení vyznačených problémů bylo svěřeno JMAP. Jeho vývoj probíhá pod vedením specialistů z FastMail pod záštitou Inženýrské rady pro internet (IETF). Protokol funguje nad HTTPS, využívá JSON (z tohoto důvodu je vhodný nejen pro výměnu e-mailů, ale i pro řešení řady úloh v cloudu) a usnadňuje organizaci práce s poštou v mobilních systémech. Kromě zpracování e-mailů JMAP rovněž umožňuje připojení rozšíření pro práci s kontakty a kalendářem.

Specifika nového protokolu

JMAP je protokol bez stavu (stateless) a nevyžaduje trvalé spojení s poštovním serverem. Tato vlastnost usnadňuje práci v nestabilních mobilních sítích a šetří energii baterie zařízení.

Elektronická pošta v JMAP je představena ve formátu JSON struktury. Obsahuje všechny informace z zprávy RFC5322 (Formát internetových zpráv), které mohou být potřebné poštovním aplikacím. Podle slov vývojářů by měl tento přístup usnadnit vytváření klientů, protože řešení potenciálních obtíží (spojených s MIME, čtením hlaviček a kódováním) bude odpovědností serveru.

Pro přístup k serveru klient používá API. K tomu vytváří autentizovaný POST dotaz, jehož vlastnosti jsou popsány v objektu relace JMAP. Dotaz má formát application/json a skládá se z jednoho objektu JSON požadavku. Server také generuje jeden objekt odpovědi.

V specifikaci (bod 3) autoři uvádějí následující příklad s dotazem:

{
  "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 ukázka 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 příklady implementace lze nalézt na oficiálním webu projektu. Tam autoři uveřejnili popis specifikací pro JMAP Kontakty a JMAP Kalendáře — ty jsou určeny pro práci s kalendáři a seznamy kontaktů. Podle slov autorů, Kontakty a Kalendáře byly vyčleněny do samostatných dokumentů, aby je bylo možné rozvíjet a standardizovat nezávisle na „jádru“. Zdrojové kódy pro JMAP jsou v repozitáři na GitHubu.

JMAP — otevřený protokol nahradí IMAP při výměně e-mailů
/ PxHere / PD

Vyhlídky

I když oficiálně není práce na standardu ještě dokončena, již se implementuje v produkčních prostředích. Například tvůrci otevřeného poštovního serveru Cyrus IMAP realizovali jeho JMAP verzi. Vývojáři z FastMail vydal serverový framework pro nový protokol na Perl, a autoři JMAP představili proxy server.

Můžeme očekávat, že v budoucnu bude vznikat stále více projektů založených na JMAP. Například existuje určitá pravděpodobnost, že nový protokol přejdou vývojáři z Open-Xchange, kteří vytvářejí IMAP server pro Linuxové systémy. Účastníci komunity žádají, aby se vzdali IMAP, která se utvářela kolem nástrojů společnosti.

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

Naše další zdroje a odkazy:

JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Jak zkontrolovat cookies na shodu s GDPR — pomůže nový otevřený nástroj

JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Jak ušetřit pomocí aplikačního programového rozhraní
JMAP — otevřený protokol nahradí IMAP při výměně e-mailů DevOps v cloudové službě na příkladu 1cloud.ru
JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Evoluce architektury cloudu 1cloud

JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Potenciální útoky na HTTPS a způsoby, jak se před nimi chránit
JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Jak ochránit server na internetu: zkušenosti 1cloud.ru
JMAP — otevřený protokol nahradí IMAP při výměně e-mailů Krátký úvod: co je Continuous Integration

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster