JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj

Komence de ĉi tiu monato en Hacker News estis aktive diskutita JMAP-protokolo evoluigita sub la direkto de la IETF. Ni decidis paroli pri kial ĝi estas bezonata kaj kiel ĝi funkcias.

JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj
/ PxĈi tie /PD

Kion mi ne ŝatis pri IMAP

Protokolo IMAP estis lanĉita en 1986. Multaj aferoj priskribitaj en la normo ne plu rilatas hodiaŭ. Ekzemple, la protokolo povas resendi la nombron da linioj de letero kaj ĉeksumojn MD5 - ĉi tiu funkcio praktike ne estas uzata en modernaj retpoŝtaj klientoj.

Alia problemo rilatas al trafika konsumo. Kun IMAP, retpoŝtoj estas stokitaj sur la servilo kaj periode sinkronigitaj kun lokaj klientoj. Se ial la kopio sur la aparato de la uzanto koruptiĝas, ĉiuj poŝtoj devas esti sinkronigitaj denove. En la moderna mondo, kiam miloj da porteblaj aparatoj povas esti konektitaj al la servilo, ĉi tiu aliro kondukas al pliigita konsumo de trafiko kaj komputikaj rimedoj.

Malfacilaĵoj aperas ne nur kun la protokolo mem, sed ankaŭ kun la retpoŝtaj klientoj, kiuj laboras kun ĝi. Ekde sia kreo, IMAP multfoje estis submetita al diversaj revizioj - la nuna versio hodiaŭ estas IMAP4. Samtempe, ekzistas multaj laŭvolaj etendoj por ĝi - en la reto eldonita naŭdek RFC-oj kun aldonoj. Unu el la plej freŝaj estas RFC8514, lanĉita en 2019.

Samtempe, multaj kompanioj ofertas siajn proprajn solvojn, kiuj devus simpligi labori kun IMAP aŭ eĉ anstataŭigi ĝin: gmail, perspektivo, Nylas. La rezulto estas, ke ekzistantaj retpoŝtaj klientoj nur subtenas kelkajn el la disponeblaj funkcioj. Tia diverseco kondukas al merkatsegmentado.

"Cetere, moderna retpoŝta kliento ne nur devas plusendi mesaĝojn, sed povi labori kun kontaktoj kaj sinkronigi kun la kalendaro," diras Sergei Belkin, estro de disvolviĝo ĉe la provizanto IaaS. 1nubo.ru. — Hodiaŭ, triaj protokoloj kiel LDAP, CardDAV и CalDAV. Ĉi tiu aliro malfaciligas la agordon de fajroŝirmiloj en kompaniaj retoj kaj malfermas novajn vektorojn por ciberatakoj."

JMAP estas dizajnita por solvi ĉi tiujn problemojn. Ĝi estas evoluigita fare de FastMail-fakuloj sub la gvidado de la Interreta Inĝenieristiko Task Force (IETF). La protokolo funkcias supre de HTTPS, uzas JSON (tial ĝi taŭgas ne nur por interŝanĝi elektronikajn mesaĝojn, sed ankaŭ por solvi kelkajn taskojn en la nubo) kaj simpligas la organizon de laboro kun poŝto en moveblaj sistemoj. Krom prilaborado de leteroj, JMAP ankaŭ disponigas la kapablon ligi etendaĵojn por labori kun kontaktoj kaj kalendaroplanilo.

Karakterizaĵoj de la nova protokolo

JMAP estas sennacia protokolo (senŝtata) kaj ne postulas konstantan konekton al la poŝtservilo. Ĉi tiu funkcio simpligas laboron en malstabilaj moveblaj retoj kaj ŝparas baterian potencon sur aparatoj.

Retpoŝto en JMAP estas reprezentita en JSON-strukturformato. Ĝi enhavas ĉiujn informojn de la mesaĝo RFC5322 (Interreta Mesaĝa Formato), kiu povas esti bezonata per retpoŝtaj aplikaĵoj. Laŭ la programistoj, ĉi tiu aliro devus simpligi la kreadon de klientoj, ekde solvado de eblaj malfacilaĵoj (asociitaj kun Mimo, legante kapliniojn kaj kodigadon) la servilo respondos.

La kliento uzas la API por kontakti la servilon. Por fari tion, ĝi generas aŭtentikigitan POST-peton, kies propraĵoj estas priskribitaj en la JMAP-sesiobjekto. La peto estas en aplikaĵo/json-formato kaj konsistas el ununura JSON-peta objekto. La servilo ankaŭ generas unu respondobjekton.

В specifoj (punkto 3) la aŭtoroj donas la jenan ekzemplon kun peto:

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

Malsupre estas ekzemplo de la respondo, kiun la servilo generos:

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

La plena JMAP-specifo kun ekzemplaj efektivigoj troveblas ĉe oficiala retejo projekto. Tie la aŭtoroj ankaŭ afiŝis priskribon de la specifoj por JMAP-Kontaktoj и JMAP-Kalendaroj — ili celas labori kun kalendaroj kaj kontaktlistoj. De laŭ aŭtoroj, Kontaktoj kaj Kalendaroj estis apartigitaj en apartajn dokumentojn por ke ili povus esti pluevoluigitaj kaj normigitaj sendepende de la "kerno". Fontkodoj por JMAP - en deponejoj sur GitHub.

JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj
/ PxĈi tie /PD

Perspektivoj

Malgraŭ tio, ke laboro pri la normo ankoraŭ ne estis oficiale finita, ĝi jam estas efektivigita en produktadmedioj. Ekzemple, la kreintoj de la malferma poŝtservilo Ciro IMAP efektivigis ĝian JMAP-version. Programistoj de FastMail liberigita servila kadro por la nova protokolo en Perl, kaj la aŭtoroj de JMAP prezentis prokura servilo.

Ni povas atendi, ke estos pli kaj pli da JMAP-bazitaj projektoj estonte. Ekzemple, estas iu verŝajneco, ke programistoj de Open-Xchange, kiuj kreas IMAP-servilon por Linuksaj sistemoj, ŝanĝos al la nova protokolo. Rifuzu ilin IMAP tre komunumanoj demandas, formiĝis ĉirkaŭ la iloj de la firmao.

Programistoj de la IETF kaj FastMail diras ke pli kaj pli da uzantoj vidas la bezonon de nova malferma normo por mesaĝado. La aŭtoroj de JMAP esperas, ke estonte pli da kompanioj komencos efektivigi ĉi tiun protokolon.

Niaj kromaj rimedoj kaj fontoj:

JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj Kiel kontroli kuketojn por konformeco al GDPR - nova malferma ilo helpos

JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj Kiel Ŝpari per Aplika Programa Interfaco
JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj DevOps en nuba servo uzante la ekzemplon de 1cloud.ru
JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj La evoluo de nuba arkitekturo 1nubo

JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj Eblaj atakoj kontraŭ HTTPS kaj kiel protekti kontraŭ ili
JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj Kiel protekti servilon en la Interreto: 1cloud.ru sperto
JMAP - malferma protokolo kiu anstataŭigos IMAP dum interŝanĝado de retpoŝtoj Mallonga eduka programo: kio estas Daŭra Integriĝo

fonto: www.habr.com

Aldoni komenton