JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post

Tidigare denna månad på Hacker News diskuterades aktivt JMAP-protokoll utvecklats under ledning av IETF. Vi bestämde oss för att prata om varför det behövdes och hur det fungerar.

JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post
/ Px /PD

Vad jag inte gillade med IMAP

Protokoll IMAP introducerades 1986. Många saker som beskrivs i standarden är inte längre relevanta idag. Till exempel kan protokollet returnera antalet rader i ett brev och kontrollsummor MD5 - Den här funktionen används praktiskt taget inte i moderna e-postklienter.

Ett annat problem är relaterat till trafikkonsumtion. Med IMAP lagras e-postmeddelanden på servern och synkroniseras med jämna mellanrum med lokala klienter. Om kopian på användarens enhet av någon anledning blir skadad måste all e-post synkroniseras igen. I den moderna världen, när tusentals mobila enheter kan anslutas till servern, leder detta tillvägagångssätt till ökad konsumtion av trafik och datorresurser.

Svårigheter uppstår inte bara med själva protokollet, utan också med e-postklienterna som arbetar med det. Sedan IMAP skapades har det varit föremål för olika revisioner många gånger - den nuvarande versionen idag är IMAP4. Samtidigt finns det många valfria tillägg för det - på nätverket publicerad nittio RFC:er med tillägg. En av de senaste är RFC8514, introducerades 2019.

Samtidigt erbjuder många företag sina egna patentskyddade lösningar som borde förenkla arbetet med IMAP eller till och med ersätta det: gmail, utsikterna, nylas. Resultatet är att befintliga e-postklienter bara stöder några av de tillgängliga funktionerna. Sådan mångfald leder till marknadssegmentering.

"Dessutom ska en modern e-postklient inte bara vidarebefordra meddelanden, utan kunna arbeta med kontakter och synkronisera med kalendern", säger Sergei Belkin, utvecklingschef på IaaS-leverantören 1cloud.ru. — Idag, tredjepartsprotokoll som LDAP, CardDAV и CalDAV. Detta tillvägagångssätt komplicerar konfigurationen av brandväggar i företagsnätverk och öppnar upp nya vektorer för cyberattacker.”

JMAP är designat för att lösa dessa problem. Den utvecklas av FastMail-experter under ledning av Internet Engineering Task Force (IETF). Protokollet körs ovanpå HTTPS, använder JSON (av denna anledning lämpar det sig inte bara för att utbyta elektroniska meddelanden, utan också för att lösa ett antal uppgifter i molnet) och förenklar organisationen av att arbeta med post i mobila system. Förutom att behandla brev ger JMAP också möjligheten att ansluta anknytningar för att arbeta med kontakter och en kalenderschemaläggare.

Funktioner i det nya protokollet

JMAP är statslöst protokoll (statslös) och kräver ingen permanent anslutning till e-postservern. Den här funktionen förenklar arbetet i instabila mobilnät och sparar batteri på enheter.

Ett e-postmeddelande i JMAP representeras i ett JSON-strukturformat. Den innehåller all information från meddelandet RFC5322 (Internet Message Format), som kan behövas av e-postprogram. Enligt utvecklarna bör detta tillvägagångssätt förenkla skapandet av klienter, eftersom man löser potentiella svårigheter (i samband med MIMA, läsa rubriker och kodning) kommer servern att svara.

Klienten använder API:et för att kontakta servern. För att göra detta genererar den en autentiserad POST-begäran, vars egenskaper beskrivs i JMAP-sessionsobjektet. Begäran är i program/json-format och består av ett enda JSON-begäranobjekt. Servern genererar också ett svarsobjekt.

В specifikationer (punkt 3) författarna ger följande exempel med en begäran:

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

Nedan är ett exempel på svaret som servern kommer att generera:

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

Den fullständiga JMAP-specifikationen med exempelimplementeringar finns på officiella hemsida projekt. Där lade författarna också upp en beskrivning av specifikationerna för JMAP-kontakter и JMAP-kalendrar — de syftar till att arbeta med kalendrar och kontaktlistor. Förbi enligt författare, kontakter och kalendrar separerades i separata dokument så att de kunde vidareutvecklas och standardiseras oberoende av ”kärnan”. Källkoder för JMAP - in repositories på GitHub.

JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post
/ Px /PD

Utsikter

Trots att arbetet med standarden ännu inte är officiellt avslutat, implementeras den redan i produktionsmiljöer. Till exempel skaparna av den öppna e-postservern Cyrus IMAP implementerade sin JMAP-version. Utvecklare från FastMail släppte serverramverket för det nya protokollet i Perl, och författarna till JMAP presenterade proxyserver.

Vi kan förvänta oss att det kommer att bli fler och fler JMAP-baserade projekt i framtiden. Det finns till exempel en viss sannolikhet att utvecklare från Open-Xchange, som skapar en IMAP-server för Linux-system, kommer att byta till det nya protokollet. Vägra IMAP dem väldigt mycket frågar samhällets medlemmar, bildad kring företagets verktyg.

Utvecklare från IETF och FastMail säger att fler och fler användare ser behovet av en ny öppen standard för meddelandehantering. Författarna till JMAP hoppas att fler företag i framtiden kommer att börja implementera detta protokoll.

Våra ytterligare resurser och källor:

JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Hur man kontrollerar cookies för GDPR-efterlevnad – ett nytt öppet verktyg hjälper

JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Hur man sparar med ett applikationsprogrammeringsgränssnitt
JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post DevOps i en molntjänst med exemplet 1cloud.ru
JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Utvecklingen av molnarkitektur 1cloud

JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Potentiella attacker på HTTPS och hur man skyddar sig mot dem
JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Hur man skyddar en server på Internet: 1cloud.ru-upplevelse
JMAP - ett öppet protokoll som kommer att ersätta IMAP vid utbyte av e-post Ett kort utbildningsprogram: vad är kontinuerlig integration

Källa: will.com

Lägg en kommentar