JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails

Tidligere på måneden på Hacker News blev aktivt diskuteret JMAP protokol udviklet under ledelse af IETF. Vi besluttede at tale om, hvorfor det var nødvendigt, og hvordan det fungerer.

JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails
/ Px /PD

Hvad jeg ikke kunne lide ved IMAP

protokol IMAP blev introduceret i 1986. Mange ting beskrevet i standarden er ikke længere relevante i dag. For eksempel kan protokollen returnere antallet af linjer i et brev og kontrolsummer MD5 - Denne funktionalitet bruges praktisk talt ikke i moderne e-mail-klienter.

Et andet problem er relateret til trafikforbrug. Med IMAP gemmes e-mails på serveren og synkroniseres med jævne mellemrum med lokale klienter. Hvis kopien på brugerens enhed af en eller anden grund bliver ødelagt, skal al mail synkroniseres igen. I den moderne verden, hvor tusindvis af mobile enheder kan tilsluttes serveren, fører denne tilgang til øget forbrug af trafik og computerressourcer.

Der opstår ikke kun vanskeligheder med selve protokollen, men også med de e-mail-klienter, der arbejder med den. Siden oprettelsen har IMAP været genstand for forskellige revisioner mange gange - den nuværende version i dag er IMAP4. Samtidig er der mange valgfrie udvidelser til det – på netværket udgivet halvfems RFC'er med tilføjelser. En af de seneste er RFC8514, introduceret i 2019.

Samtidig tilbyder mange virksomheder deres egne proprietære løsninger, der skal forenkle arbejdet med IMAP eller endda erstatte det: gmail, Outlook, nylas. Resultatet er, at eksisterende e-mail-klienter kun understøtter nogle af de tilgængelige funktioner. En sådan mangfoldighed fører til markedssegmentering.

"Desuden skal en moderne e-mail-klient ikke kun videresende beskeder, men være i stand til at arbejde med kontakter og synkronisere med kalenderen," siger Sergei Belkin, udviklingschef hos IaaS-udbyderen 1cloud.ru. — I dag er tredjepartsprotokoller som LDAP, CardDAV и CalDAV. Denne tilgang komplicerer konfigurationen af ​​firewalls i virksomhedens netværk og åbner op for nye vektorer for cyberangreb."

JMAP er designet til at løse disse problemer. Det bliver udviklet af FastMail-eksperter under vejledning af Internet Engineering Task Force (IETF). Protokollen kører oven på HTTPS, bruger JSON (af denne grund er den velegnet ikke kun til at udveksle elektroniske beskeder, men også til at løse en række opgaver i skyen) og forenkler organiseringen af ​​at arbejde med post i mobile systemer. Ud over at behandle breve giver JMAP også mulighed for at forbinde udvidelser til at arbejde med kontakter og en kalenderplanlægning.

Funktioner i den nye protokol

JMAP er statsløs protokol (statsløs) og kræver ikke en permanent forbindelse til mailserveren. Denne funktion forenkler arbejdet i ustabile mobilnetværk og sparer batteristrøm på enheder.

En e-mail i JMAP er repræsenteret i et JSON-strukturformat. Den indeholder alle oplysningerne fra beskeden RFC5322 (Internet Message Format), som kan være nødvendigt af e-mail-applikationer. Ifølge udviklerne skulle denne tilgang forenkle oprettelsen af ​​klienter, da løsning af potentielle vanskeligheder (i forbindelse med MIME, læsning af overskrifter og kodning) vil serveren svare.

Klienten bruger API'et til at kontakte serveren. For at gøre dette genererer den en godkendt POST-anmodning, hvis egenskaber er beskrevet i JMAP-sessionsobjektet. Anmodningen er i program/json-format og består af et enkelt JSON-anmodningsobjekt. Serveren genererer også ét svarobjekt.

В specifikationer (punkt 3) forfatterne giver følgende eksempel med en anmodning:

{
  "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å det svar, 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 fulde JMAP-specifikation med eksempler på implementeringer kan findes på det officielle site projekt. Der postede forfatterne også en beskrivelse af specifikationerne for JMAP-kontakter и JMAP kalendere — de har til formål at arbejde med kalendere og kontaktlister. Ved ifølge forfattere, kontakter og kalendere blev opdelt i separate dokumenter, så de kunne videreudvikles og standardiseres uafhængigt af "kernen". Kildekoder til JMAP - in repositories på GitHub.

JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails
/ Px /PD

Udsigterne

På trods af at arbejdet med standarden endnu ikke er officielt afsluttet, er den allerede ved at blive implementeret i produktionsmiljøer. For eksempel skaberne af den åbne mailserver Cyrus IMAP implementeret sin JMAP-version. Udviklere fra FastMail frigivet serverramme for den nye protokol i Perl, og forfatterne af JMAP præsenteret proxyserver.

Vi kan forvente, at der vil komme flere og flere JMAP-baserede projekter i fremtiden. For eksempel er der en vis sandsynlighed for, at udviklere fra Open-Xchange, som laver en IMAP-server til Linux-systemer, vil skifte til den nye protokol. Afvis IMAP dem meget spørger samfundets medlemmer, dannet omkring virksomhedens værktøjer.

Udviklere fra IETF og FastMail siger, at flere og flere brugere ser behovet for en ny åben standard for meddelelser. Forfatterne af JMAP håber, at flere virksomheder i fremtiden vil begynde at implementere denne protokol.

Vores yderligere ressourcer og kilder:

JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Sådan tjekker du cookies for GDPR-overholdelse - et nyt åbent værktøj vil hjælpe

JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Sådan gemmer du med en applikationsprogrammeringsgrænseflade
JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails DevOps i en skytjeneste ved hjælp af eksemplet med 1cloud.ru
JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Udviklingen af ​​cloud-arkitektur 1cloud

JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Potentielle angreb på HTTPS og hvordan man beskytter sig mod dem
JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Sådan beskytter du en server på internettet: 1cloud.ru-oplevelse
JMAP - en åben protokol, der vil erstatte IMAP ved udveksling af e-mails Et kort uddannelsesprogram: hvad er kontinuerlig integration

Kilde: www.habr.com

Tilføj en kommentar