JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word.

Vroeër hierdie maand op Hacker News aktief bespreek is JMAP protokol ontwikkel onder leiding van die IETF. Ons het besluit om te praat oor hoekom dit nodig was en hoe dit werk.

JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word.
/ Borrel /PD

Wat ek nie van IMAP gehou het nie

protokol IMAP is in 1986 bekendgestel. Baie dinge wat in die standaard beskryf word, is vandag nie meer relevant nie. Die protokol kan byvoorbeeld die aantal reëls van 'n brief en kontrolesomme terugstuur MD5 - hierdie funksionaliteit word feitlik nie in moderne e-poskliënte gebruik nie.

Nog 'n probleem hou verband met verkeersverbruik. Met IMAP word e-posse op die bediener gestoor en van tyd tot tyd gesinchroniseer met plaaslike kliënte. As die kopie op die gebruiker se toestel om een ​​of ander rede korrup raak, moet alle pos weer gesinchroniseer word. In die moderne wêreld, wanneer duisende mobiele toestelle aan die bediener gekoppel kan word, lei hierdie benadering tot verhoogde verbruik van verkeer en rekenaarhulpbronne.

Probleme ontstaan ​​nie net met die protokol self nie, maar ook met die e-poskliënte wat daarmee werk. Sedert sy skepping, is IMAP baie keer onderhewig aan verskeie hersienings - die huidige weergawe vandag is IMAP4. Terselfdertyd is daar baie opsionele uitbreidings daarvoor - op die netwerk gepubliseer negentig RFC's met byvoegings. Een van die mees onlangse is RFC8514, in 2019 bekendgestel.

Terselfdertyd bied baie maatskappye hul eie eie oplossings wat die werk met IMAP moet vereenvoudig of selfs moet vervang: Gmail, Outlook, nylas. Die gevolg is dat bestaande e-poskliënte slegs sommige van die beskikbare kenmerke ondersteun. Sulke diversiteit lei tot marksegmentering.

"Boonop moet 'n moderne e-poskliënt nie net boodskappe aanstuur nie, maar met kontakte kan werk en met die kalender kan sinchroniseer," sê Sergei Belkin, hoof van ontwikkeling by die IaaS-verskaffer 1cloud.ru. - Vandag, derdeparty-protokolle soos LDAP, CardDAV и CalDAV. Hierdie benadering bemoeilik die konfigurasie van brandmure in korporatiewe netwerke en maak nuwe vektore vir kuberaanvalle oop.”

JMAP is ontwerp om hierdie probleme op te los. Dit word ontwikkel deur FastMail-kundiges onder leiding van die Internet Engineering Task Force (IETF). Die protokol loop bo-op HTTPS, gebruik JSON (om hierdie rede is dit nie net geskik vir die uitruil van elektroniese boodskappe nie, maar ook om 'n aantal take in die wolk op te los) en vergemaklik die organisasie van werk met pos in mobiele stelsels. Benewens die verwerking van briewe, bied JMAP ook die vermoë om uitbreidings te koppel om met kontakte en 'n kalenderskeduleerder te werk.

Kenmerke van die nuwe protokol

JMAP is staatlose protokol (staatloos) en vereis nie 'n permanente verbinding met die posbediener nie. Hierdie kenmerk vergemaklik werk in onstabiele mobiele netwerke en bespaar batterykrag op toestelle.

'n E-pos in JMAP word in 'n JSON-struktuurformaat voorgestel. Dit bevat al die inligting uit die boodskap RFC5322 (Internet Boodskapformaat), wat dalk deur e-postoepassings benodig word. Volgens die ontwikkelaars moet hierdie benadering die skepping van kliënte vereenvoudig, aangesien die oplossing van potensiële probleme (wat verband hou met MIME, lees opskrifte en enkodering) sal die bediener reageer.

Die kliënt gebruik die API om die bediener te kontak. Om dit te doen, genereer dit 'n geverifieerde POST-versoek, waarvan die eienskappe in die JMAP-sessie-objek beskryf word. Die versoek is in toepassing/json-formaat en bestaan ​​uit 'n enkele JSON-versoekobjek. Die bediener genereer ook een reaksie-objek.

В spesifikasies (punt 3) die skrywers verskaf die volgende voorbeeld met 'n versoek:

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

Hieronder is 'n voorbeeld van die reaksie wat die bediener sal genereer:

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

Die volledige JMAP-spesifikasie met voorbeeldimplementerings kan gevind word by amptelike webwerf projek. Daar het die skrywers ook 'n beskrywing van die spesifikasies vir JMAP kontakte и JMAP Kalenders — hulle is daarop gemik om met kalenders en kontaklyste te werk. Deur volgens outeurs, kontakte en kalenders is in aparte dokumente geskei sodat dit onafhanklik van die “kern” verder ontwikkel en gestandaardiseer kon word. Bronkodes vir JMAP - in bewaarplekke op GitHub.

JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word.
/ Borrel /PD

Vooruitsigte

Ten spyte van die feit dat werk aan die standaard nog nie amptelik afgehandel is nie, word dit reeds in produksie-omgewings geïmplementeer. Byvoorbeeld, die skeppers van die oop posbediener Cyrus IMAP sy JMAP-weergawe geïmplementeer. Ontwikkelaars van FastMail vrygelaat bedienerraamwerk vir die nuwe protokol in Perl, en die skrywers van JMAP aangebied instaanbediener.

Ons kan verwag dat daar in die toekoms meer en meer JMAP-gebaseerde projekte sal wees. Daar is byvoorbeeld 'n mate van waarskynlikheid dat ontwikkelaars van Open-Xchange, wat 'n IMAP-bediener vir Linux-stelsels skep, na die nuwe protokol sal oorskakel. Weier IMAP hulle baie gemeenskapslede vra, gevorm rondom die maatskappy se gereedskap.

Ontwikkelaars van die IETF en FastMail sê al hoe meer gebruikers sien die behoefte aan 'n nuwe oop standaard vir boodskappe. Die skrywers van JMAP hoop dat in die toekoms meer maatskappye sal begin om hierdie protokol te implementeer.

Ons bykomende hulpbronne en bronne:

JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. Hoe om koekies na te gaan vir GDPR-nakoming - 'n nuwe oop nutsding sal help

JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. Hoe om te stoor met 'n toepassingsprogrammeringskoppelvlak
JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. DevOps in 'n wolkdiens met die voorbeeld van 1cloud.ru
JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. Die evolusie van wolkargitektuur 1cloud

JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. Potensiële aanvalle op HTTPS en hoe om daarteen te beskerm
JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. Hoe om 'n bediener op die internet te beskerm: 1cloud.ru-ervaring
JMAP is 'n oop protokol wat IMAP sal vervang wanneer e-posse uitgeruil word. 'n Kort opvoedkundige program: wat is deurlopende integrasie

Bron: will.com

Voeg 'n opmerking