JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails

Eerder deze maand op Hacker News werd actief besproken JMAP-protocol ontwikkeld onder leiding van de IETF. We besloten te praten over waarom het nodig was en hoe het werkt.

JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails
/ PxHere /PD

Wat ik niet leuk vond aan IMAP

protocol IMAP werd in 1986 geïntroduceerd. Veel dingen die in de standaard worden beschreven, zijn tegenwoordig niet langer relevant. Het protocol kan bijvoorbeeld het aantal regels van een brief en controlesommen retourneren MD5 - deze functionaliteit wordt praktisch niet gebruikt in moderne e-mailclients.

Een ander probleem houdt verband met het verkeersverbruik. Met IMAP worden e-mails op de server opgeslagen en periodiek gesynchroniseerd met lokale clients. Als om wat voor reden dan ook de kopie op het apparaat van de gebruiker beschadigd raakt, moet alle e-mail opnieuw worden gesynchroniseerd. In de moderne wereld, waarin duizenden mobiele apparaten met de server kunnen worden verbonden, leidt deze aanpak tot een groter verbruik van verkeer en computerbronnen.

Er ontstaan ​​niet alleen problemen met het protocol zelf, maar ook met de e-mailclients die ermee werken. Sinds de oprichting ervan is IMAP vele malen onderworpen aan verschillende herzieningen - de huidige versie van vandaag is IMAP4. Tegelijkertijd zijn er veel optionele uitbreidingen voor - op het netwerk gepubliceerd negentig RFC's met toevoegingen. Eén van de meest recente is RFC85142019 geïntroduceerd.

Tegelijkertijd bieden veel bedrijven hun eigen oplossingen aan die het werken met IMAP moeten vereenvoudigen of zelfs moeten vervangen: Gmail, Outlook, nilas. Het resultaat is dat bestaande e-mailclients slechts enkele van de beschikbare functies ondersteunen. Dergelijke diversiteit leidt tot marktsegmentatie.

“Bovendien moet een moderne e-mailclient niet alleen berichten doorsturen, maar ook met contacten kunnen werken en synchroniseren met de agenda”, zegt Sergei Belkin, hoofd ontwikkeling bij de IaaS-provider 1cloud.ru. — Tegenwoordig zijn er protocollen van derden zoals LDAP, CardDAV и CalDAV. Deze aanpak compliceert de configuratie van firewalls in bedrijfsnetwerken en opent nieuwe vectoren voor cyberaanvallen.”

JMAP is ontworpen om deze problemen op te lossen. Het wordt ontwikkeld door FastMail-experts onder leiding van de Internet Engineering Task Force (IETF). Het protocol draait bovenop HTTPS, maakt gebruik van JSON (is daarom niet alleen geschikt voor het uitwisselen van elektronische berichten, maar ook voor het oplossen van een aantal taken in de cloud) en vereenvoudigt de organisatie van het werken met mail in mobiele systemen. Naast het verwerken van brieven biedt JMAP ook de mogelijkheid om extensies aan te sluiten voor het werken met contacten en een agendaplanner.

Kenmerken van het nieuwe protocol

JMAP is staatloos protocol (staatloos) en vereist geen permanente verbinding met de mailserver. Deze functie vereenvoudigt het werken in onstabiele mobiele netwerken en bespaart batterijvermogen op apparaten.

Een e-mail in JMAP wordt weergegeven in een JSON-structuurindeling. Het bevat alle informatie uit het bericht RFC5322 (Internet Message Format), wat nodig kan zijn voor e-mailtoepassingen. Volgens de ontwikkelaars zou deze aanpak het aanmaken van clients moeten vereenvoudigen, omdat het oplossen van potentiële problemen (geassocieerd met MIME, headers lezen en coderen) zal de server reageren.

De client gebruikt de API om contact op te nemen met de server. Om dit te doen, genereert het een geverifieerd POST-verzoek, waarvan de eigenschappen worden beschreven in het JMAP-sessieobject. Het verzoek heeft de indeling Application/JSON en bestaat uit één JSON-verzoekobject. De server genereert ook één antwoordobject.

В specificaties (punt 3) de auteurs geven het volgende voorbeeld mee met een verzoek:

{
  "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 ziet u een voorbeeld van het antwoord dat de server genereert:

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

De volledige JMAP-specificatie met voorbeeldimplementaties is te vinden op de officiële website project. Daar plaatsten de auteurs ook een beschrijving van de specificaties voor JMAP-contacten и JMAP-kalenders — ze zijn gericht op het werken met kalenders en contactlijsten. Door volgens auteurs, contacten en kalenders werden gescheiden in afzonderlijke documenten, zodat ze onafhankelijk van de “kern” verder konden worden ontwikkeld en gestandaardiseerd. Broncodes voor JMAP - in opslagplaatsen op GitHub.

JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails
/ PxHere /PD

Vooruitzichten

Ondanks dat het werk aan de standaard nog niet officieel is afgerond, wordt deze al geïmplementeerd in productieomgevingen. Bijvoorbeeld de makers van de open mailserver Cyrus IMAP implementeerde de JMAP-versie. Ontwikkelaars van FastMail vrijgelaten serverframework voor het nieuwe protocol in Perl, en de auteurs van JMAP gepresenteerd proxy server.

We kunnen verwachten dat er in de toekomst steeds meer op JMAP gebaseerde projecten zullen zijn. Er is bijvoorbeeld enige kans dat ontwikkelaars van Open-Xchange, die een IMAP-server voor Linux-systemen aan het maken zijn, naar het nieuwe protocol zullen overstappen. Weiger IMAP ze ten zeerste leden van de gemeenschap vragen, gevormd rond de tools van het bedrijf.

Ontwikkelaars van de IETF en FastMail zeggen dat steeds meer gebruikers de behoefte zien aan een nieuwe open standaard voor berichtenuitwisseling. De auteurs van JMAP hopen dat in de toekomst meer bedrijven dit protocol zullen gaan implementeren.

Onze aanvullende bronnen en bronnen:

JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails Hoe u cookies kunt controleren op naleving van de AVG - een nieuwe open tool zal helpen

JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails Hoe u kunt besparen met een applicatieprogrammeringsinterface
JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails DevOps in een cloudservice met behulp van het voorbeeld van 1cloud.ru
JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails De evolutie van cloudarchitectuur 1cloud

JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails Mogelijke aanvallen op HTTPS en hoe u zich daartegen kunt beschermen
JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails Hoe een server op internet te beschermen: 1cloud.ru-ervaring
JMAP - een open protocol dat IMAP zal vervangen bij het uitwisselen van e-mails Een kort educatief programma: wat is Continue Integratie

Bron: www.habr.com

Voeg een reactie