JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post

Earder dizze moanne op Hacker News waard aktyf besprutsen JMAP protokol ûntwikkele ûnder lieding fan de IETF. Wy besletten om te praten oer wêrom't it nedich wie en hoe't it wurket.

JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post
/ Px Hjir /PD

Wat ik net leuk oer IMAP

Protokol IMAP waard yn 1986 yntrodusearre. In protte dingen beskreaun yn 'e standert binne hjoed net mear relevant. It protokol kin bygelyks it oantal rigels fan in brief en kontrôlesummen weromjaan MD5 - dizze funksjonaliteit wurdt praktysk net brûkt yn moderne e-postkliïnten.

In oar probleem is relatearre oan ferkearskonsumpsje. Mei IMAP wurde e-mails opslein op 'e tsjinner en periodyk syngronisearre mei lokale kliïnten. As om ien of oare reden de kopy op it apparaat fan de brûker beskeadige wurdt, moat alle e-post opnij syngronisearre wurde. Yn 'e moderne wrâld, as tûzenen mobile apparaten kinne wurde ferbûn mei de tsjinner, dizze oanpak liedt ta ferhege konsumpsje fan ferkear en kompjûter boarnen.

Swierrichheden ûntsteane net allinnich mei it protokol sels, mar ek mei de e-postkliïnten dy't dermei wurkje. Sûnt syn skepping is IMAP in protte kearen ûnderwurpen oan ferskate ferzjes - de hjoeddeistige ferzje is hjoed IMAP4. Tagelyk binne d'r in protte opsjonele útwreidingen foar it - op it netwurk publisearre njoggentich RFCs mei tafoegings. Ien fan de meast resinte is RFC8514, yntrodusearre yn 2019.

Tagelyk biede in protte bedriuwen har eigen proprietêre oplossingen dy't it wurkjen mei IMAP moatte ferienfâldigje of sels ferfange: gmail, Outlook, nylas. It resultaat is dat besteande e-postkliïnten allinich guon fan 'e beskikbere funksjes stypje. Sa'n ferskaat liedt ta merksegmentaasje.

"Boppedat moat in moderne e-postkliïnt net allinich berjochten trochstjoere, mar kinne wurkje mei kontakten en syngronisearje mei de kalinder," seit Sergei Belkin, haad fan ûntwikkeling by de IaaS-provider 1cloud.ru. - Hjoed, protokollen fan tredden lykas LDAP, CardDAV и CalDAV. Dizze oanpak komplisearret de konfiguraasje fan firewalls yn bedriuwsnetwurken en iepenet nije vectoren foar cyberoanfallen.

JMAP is ûntworpen om dizze problemen op te lossen. It wurdt ûntwikkele troch FastMail-eksperts ûnder begelieding fan 'e Internet Engineering Task Force (IETF). It protokol rint boppe op HTTPS, brûkt JSON (om dizze reden is it geskikt net allinich foar it útwikseljen fan elektroanyske berjochten, mar ek foar it oplossen fan in oantal taken yn 'e wolk) en simplifies de organisaasje fan wurkjen mei e-post yn mobile systemen. Neist it ferwurkjen fan brieven biedt JMAP ek de mooglikheid om útwreidingen te ferbinen foar wurkjen mei kontakten en in kalinderplanner.

Funksjes fan it nije protokol

JMAP is steatleaze protokol (stateless) en fereasket gjin permaninte ferbining mei de e-posttsjinner. Dizze funksje ferienfâldiget it wurk yn ynstabiele mobile netwurken en besparret batterijkrêft op apparaten.

In e-post yn JMAP wurdt fertsjintwurdige yn in JSON-struktuerformaat. It befettet alle ynformaasje út it berjocht RFC5322 (Ynternetberjochtformaat), dat kin nedich wêze troch e-postapplikaasjes. Neffens de ûntwikkelders moat dizze oanpak de skepping fan kliïnten ferienfâldigje, om't it oplossen fan potinsjele swierrichheden (ferbûn mei Mime, kopteksten lêze en kodearring) sil de tsjinner reagearje.

De kliïnt brûkt de API om kontakt te meitsjen mei de tsjinner. Om dit te dwaan genereart it in authentisearre POST-fersyk, wêrfan de eigenskippen wurde beskreaun yn it JMAP-sesjeobjekt. It fersyk is yn applikaasje/json-formaat en bestiet út in inkeld JSON-oanfraachobjekt. De tsjinner genereart ek ien antwurdobjekt.

В spesifikaasjes (punt 3) de auteurs jouwe it folgjende foarbyld mei in fersyk:

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

Hjirûnder is in foarbyld fan it antwurd dat de tsjinner sil generearje:

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

De folsleine JMAP-spesifikaasje mei foarbyldimplementaasjes kinne fûn wurde op offisjele webside projekt. Dêr pleatsten de skriuwers ek in beskriuwing fan de spesifikaasjes foar JMAP kontakten и JMAP kalinders - se binne rjochte op it wurkjen mei kalinders en kontaktlisten. Troch neffens skriuwers, Kontakten en kalinders waarden skieden yn aparte dokuminten, sadat se koenen wurde fierder ûntwikkele en standerdisearre ûnôfhinklik fan de "kearn". Boarne koades foar JMAP - in repositories op GitHub.

JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post
/ Px Hjir /PD

Perspektiven

Nettsjinsteande it feit dat it wurk oan 'e standert noch net offisjeel is foltôge, wurdt it al ymplementearre yn produksjeomjouwings. Bygelyks, de makkers fan de iepen e-posttsjinner Cyrus IMAP ymplementearre syn JMAP ferzje. Untwikkelders fan FastMail frijlitten serverkader foar it nije protokol yn Perl, en de auteurs fan JMAP presintearre proxy tsjinner.

Wy kinne ferwachtsje dat der yn de takomst hieltyd mear JMAP-basearre projekten komme. Bygelyks is d'r wat kâns dat ûntwikkelders fan Open-Xchange, dy't in IMAP-tsjinner meitsje foar Linux-systemen, sille oerstappe nei it nije protokol. Wegerje IMAP se tige gemeenteleden freegje, foarme om de ark fan it bedriuw.

Untwikkelders fan 'e IETF en FastMail sizze dat hieltyd mear brûkers de needsaak sjogge foar in nije iepen standert foar messaging. De auteurs fan JMAP hoopje dat yn 'e takomst mear bedriuwen begjinne mei it útfieren fan dit protokol.

Us ekstra boarnen en boarnen:

JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post Hoe kinne jo cookies kontrolearje op GDPR-neilibjen - in nij iepen ark sil helpe

JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post Hoe te bewarjen mei in applikaasje-programmearring-ynterface
JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post DevOps yn in wolktsjinst mei it foarbyld fan 1cloud.ru
JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post De evolúsje fan wolkarsjitektuer 1cloud

JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post Potinsjele oanfallen op HTTPS en hoe te beskermjen tsjin harren
JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post Hoe kinne jo in server op it ynternet beskermje: 1cloud.ru ûnderfining
JMAP - in iepen protokol dat IMAP sil ferfange by it útwikseljen fan e-post In koart edukatyf programma: wat is Continuous Integration

Boarne: www.habr.com

Add a comment