JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post

Tidligere denne måneden på Hacker News ble aktivt diskutert JMAP-protokoll utviklet under ledelse av IETF. Vi bestemte oss for å snakke om hvorfor det var nødvendig og hvordan det fungerer.

JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post
/ Px /PD

Det jeg ikke likte med IMAP

Protokoll IMAP ble introdusert i 1986. Mange ting som er beskrevet i standarden er ikke lenger relevante i dag. For eksempel kan protokollen returnere antall linjer i et brev og kontrollsummer MD5 - Denne funksjonaliteten brukes praktisk talt ikke i moderne e-postklienter.

Et annet problem er knyttet til trafikkforbruk. Med IMAP lagres e-poster på serveren og synkroniseres med jevne mellomrom med lokale klienter. Hvis kopien på brukerens enhet av en eller annen grunn blir ødelagt, må all e-post synkroniseres på nytt. I den moderne verden, når tusenvis av mobile enheter kan kobles til serveren, fører denne tilnærmingen til økt forbruk av trafikk og dataressurser.

Vanskeligheter oppstår ikke bare med selve protokollen, men også med e-postklientene som jobber med den. Siden opprettelsen har IMAP vært gjenstand for ulike revisjoner mange ganger - dagens versjon er IMAP4. Samtidig er det mange valgfrie utvidelser for det - på nettverket publisert nitti RFC-er med tillegg. En av de nyeste er RFC8514, introdusert i 2019.

Samtidig tilbyr mange selskaper sine egne proprietære løsninger som skal forenkle arbeidet med IMAP eller til og med erstatte det: Gmail, Outlook, nylas. Resultatet er at eksisterende e-postklienter kun støtter noen av de tilgjengelige funksjonene. Et slikt mangfold fører til markedssegmentering.

"I tillegg skal en moderne e-postklient ikke bare videresende meldinger, men kunne jobbe med kontakter og synkronisere med kalenderen," sier Sergei Belkin, utviklingssjef hos IaaS-leverandøren 1cloud.ru. — I dag er tredjepartsprotokoller som LDAP, CardDAV и CalDAV. Denne tilnærmingen kompliserer konfigurasjonen av brannmurer i bedriftsnettverk og åpner for nye vektorer for cyberangrep.»

JMAP er designet for å løse disse problemene. Det utvikles av FastMail-eksperter under veiledning av Internet Engineering Task Force (IETF). Protokollen kjører på toppen av HTTPS, bruker JSON (av denne grunn egner den seg ikke bare for utveksling av elektroniske meldinger, men også for å løse en rekke oppgaver i skyen) og forenkler organiseringen av arbeid med post i mobile systemer. I tillegg til å behandle brev, gir JMAP også muligheten til å koble til utvidelser for arbeid med kontakter og en kalenderplanlegger.

Funksjoner i den nye protokollen

JMAP er statsløs protokoll (statsløs) og krever ikke en permanent tilkobling til e-postserveren. Denne funksjonen forenkler arbeidet i ustabile mobilnettverk og sparer batteristrøm på enheter.

En e-post i JMAP er representert i et JSON-strukturformat. Den inneholder all informasjon fra meldingen RFC5322 (Internet Message Format), som kan være nødvendig for e-postapplikasjoner. I følge utviklerne bør denne tilnærmingen forenkle opprettelsen av klienter, siden løsning av potensielle vanskeligheter (assosiert med MIME, lese overskrifter og koding) vil serveren svare.

Klienten bruker API for å kontakte serveren. For å gjøre dette genererer den en autentisert POST-forespørsel, hvis egenskaper er beskrevet i JMAP-sesjonsobjektet. Forespørselen er i program/json-format og består av et enkelt JSON-forespørselsobjekt. Serveren genererer også ett responsobjekt.

В spesifikasjoner (punkt 3) forfatterne gir følgende eksempel med en forespørsel:

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

Nedenfor er et eksempel på svaret som serveren vil generere:

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

Den fullstendige JMAP-spesifikasjonen med eksempler på implementeringer finner du på offisiell nettside prosjekt. Der la forfatterne også ut en beskrivelse av spesifikasjonene for JMAP-kontakter и JMAP-kalendere — de er rettet mot å jobbe med kalendere og kontaktlister. Av i følge forfattere, kontakter og kalendere ble delt opp i separate dokumenter slik at de kunne videreutvikles og standardiseres uavhengig av «kjernen». Kildekoder for JMAP - in repositories på GitHub.

JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post
/ Px /PD

Prospekter

Til tross for at arbeidet med standarden ennå ikke er offisielt fullført, blir den allerede implementert i produksjonsmiljøer. For eksempel skaperne av den åpne e-postserveren Cyrus IMAP implementert sin JMAP-versjon. Utviklere fra FastMail løslatt serverrammeverket for den nye protokollen i Perl, og forfatterne av JMAP presenterte proxy-server.

Vi kan forvente at det vil komme flere og flere JMAP-baserte prosjekter i fremtiden. For eksempel er det en viss sannsynlighet for at utviklere fra Open-Xchange, som lager en IMAP-server for Linux-systemer, vil bytte til den nye protokollen. Nekter IMAP dem veldig mye spør samfunnsmedlemmer, dannet rundt selskapets verktøy.

Utviklere fra IETF og FastMail sier at flere og flere brukere ser behovet for en ny åpen standard for meldingstjenester. Forfatterne av JMAP håper at flere selskaper i fremtiden vil begynne å implementere denne protokollen.

Våre ekstra ressurser og ressurser:

JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Hvordan sjekke informasjonskapsler for GDPR-overholdelse – et nytt åpent verktøy vil hjelpe

JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Hvordan lagre med et applikasjonsprogrammeringsgrensesnitt
JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post DevOps i en skytjeneste ved å bruke eksemplet med 1cloud.ru
JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Utviklingen av skyarkitektur 1cloud

JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Potensielle angrep på HTTPS og hvordan du kan beskytte deg mot dem
JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Slik beskytter du en server på Internett: 1cloud.ru-opplevelse
JMAP - en åpen protokoll som vil erstatte IMAP ved utveksling av e-post Et kort utdanningsprogram: hva er kontinuerlig integrasjon

Kilde: www.habr.com

Legg til en kommentar