JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel

Selle kuu alguses Hacker Newsis arutati aktiivselt JMAP protokoll välja töötatud IETF-i juhtimisel. Otsustasime rääkida, miks seda vaja on ja kuidas see toimib.

JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel
/ Taustapilt /PD

Mis mulle IMAP-i puhul ei meeldinud

Protokoll IMAP tutvustati 1986. aastal. Paljud standardis kirjeldatud asjad ei ole tänapäeval enam aktuaalsed. Näiteks võib protokoll tagastada tähe ridade arvu ja kontrollsummasid MD5 - seda funktsiooni tänapäevastes meiliklientides praktiliselt ei kasutata.

Teine probleem on seotud liiklustarbimisega. IMAP-iga salvestatakse e-kirjad serverisse ja sünkroonitakse perioodiliselt kohalike klientidega. Kui kasutaja seadmes olev koopia mingil põhjusel rikutakse, tuleb kõik kirjad uuesti sünkroonida. Kaasaegses maailmas, kus serveriga saab ühendada tuhandeid mobiilseadmeid, põhjustab selline lähenemine liikluse ja arvutusressursside tarbimise suurenemist.

Raskusi ei teki mitte ainult protokolli endaga, vaid ka sellega töötavate e-posti klientidega. Alates selle loomisest on IMAP-i korduvalt muudetud – praegune versioon on IMAP4. Samal ajal on selle jaoks palju valikulisi laiendusi - võrgus avaldatud üheksakümmend RFC-d koos täiendustega. Üks viimaseid on RFC8514, tutvustati 2019. aastal.

Samal ajal pakuvad paljud ettevõtted oma patenteeritud lahendusi, mis peaksid IMAP-iga töötamist lihtsustama või isegi selle asendama: gmail, väljavaade, nylas. Tulemuseks on see, et olemasolevad meilikliendid toetavad ainult mõnda saadaolevatest funktsioonidest. Selline mitmekesisus viib turu segmenteerumiseni.

"Lisaks ei peaks kaasaegne meiliklient mitte ainult sõnumeid edastama, vaid suutma töötada kontaktidega ja sünkroonida kalendriga," ütleb IaaS-i pakkuja arendusjuht Sergei Belkin. 1cloud.ru. — Tänapäeval meeldivad kolmandate osapoolte protokollidele LDAP, CardDAV и CalDAV. See lähenemine raskendab tulemüüride seadistamist ettevõtete võrkudes ja avab uusi vektoreid küberrünnakuteks.

JMAP on loodud nende probleemide lahendamiseks. Seda arendavad FastMaili eksperdid Internet Engineering Task Force (IETF) juhendamisel. Protokoll töötab HTTPS-i peal, kasutab JSON-i (sellepärast sobib see mitte ainult elektrooniliste sõnumite vahetamiseks, vaid ka mitmete ülesannete lahendamiseks pilves) ja lihtsustab postiga töötamise korraldamist mobiilsetes süsteemides. Lisaks kirjade töötlemisele pakub JMAP ka võimalust ühendada laiendusi kontaktidega töötamiseks ja kalendri planeerijaga.

Uue protokolli omadused

JMAP on kodakondsuseta protokoll (kodakondsuseta) ja ei nõua püsiühendust meiliserveriga. See funktsioon lihtsustab tööd ebastabiilsetes mobiilsidevõrkudes ja säästab seadmete akut.

JMAP-i meilisõnum on esitatud JSON-i struktuurivormingus. See sisaldab kogu sõnumis sisalduvat teavet RFC5322 (Interneti-sõnumivorming), mida võivad vajada meilirakendused. Arendajate sõnul peaks selline lähenemine lihtsustama klientide loomist, kuna võimalike raskuste (seotud MIME, päiste lugemine ja kodeerimine) vastab server.

Klient kasutab serveriga ühenduse võtmiseks API-d. Selleks genereerib ta autentitud POST-päringu, mille atribuute kirjeldatakse JMAP-i seansiobjektis. Taotlus on rakenduse/json-vormingus ja koosneb ühest JSON-i päringuobjektist. Server genereerib ka ühe vastuseobjekti.

В spetsifikatsioonid (punkt 3) esitavad autorid taotlusega järgmise näite:

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

Allpool on näide vastusest, mille server genereerib:

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

JMAP-i täieliku spetsifikatsiooni koos näidisrakendustega leiate aadressilt ametlikul kodulehel projekt. Seal postitasid autorid ka spetsifikatsioonide kirjelduse JMAP kontaktid и JMAP kalendrid — need on mõeldud töötamiseks kalendrite ja kontaktiloenditega. Kõrval sõnad autorid, kontaktid ja kalendrid eraldati eraldi dokumentideks, et neid saaks edasi arendada ja standardiseerida sõltumatult "tuumikust". JMAP-i lähtekoodid – sisse hoidlad GitHubis.

JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel
/ Taustapilt /PD

Väljavaated

Hoolimata asjaolust, et töö standardiga pole veel ametlikult lõppenud, rakendatakse seda juba tootmiskeskkondades. Näiteks avatud meiliserveri loojad Cyrus IMAP juurutas oma JMAP versiooni. Arendajad FastMailist vabastati Perli uue protokolli serveriraamistik ja JMAP-i autorid esitlesid puhverserver.

Võime eeldada, et tulevikus on JMAP-põhiseid projekte üha rohkem. Näiteks on teatud tõenäosus, et Open-Xchange'i arendajad, kes loovad Linuxi süsteemide jaoks IMAP-serverit, lähevad üle uuele protokollile. Keelduge neist väga IMAP-ist küsivad kogukonna liikmed, mis on moodustatud ettevõtte tööriistade ümber.

IETF-i ja FastMaili arendajad väidavad, et üha enam kasutajaid näeb vajadust uue avatud sõnumistandardi järele. JMAP-i autorid loodavad, et tulevikus hakkab seda protokolli rakendama rohkem ettevõtteid.

Meie täiendavad ressursid ja ressursid:

JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Kuidas kontrollida küpsiste GDPR-i vastavust – abiks on uus avatud tööriist

JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Kuidas salvestada rakenduste programmeerimisliidese abil
JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel DevOps pilveteenuses 1cloud.ru näitel
JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Pilvearhitektuuri areng 1pilv

JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Võimalikud HTTPS-i rünnakud ja nende eest kaitsmine
JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Kuidas kaitsta serverit Internetis: 1cloud.ru kogemus
JMAP – avatud protokoll, mis asendab IMAP-i e-kirjade vahetamisel Lühike haridusprogramm: mis on pidev integratsioon

Allikas: www.habr.com

Lisa kommentaar