JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird

Anfang dieses Monats auf Hacker News wurde rege diskutiert JMAP-Protokoll unter der Leitung der IETF entwickelt. Wir beschlossen, darüber zu sprechen, warum es notwendig war und wie es funktioniert.

JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird
/ PxHere /PD

Was mir an IMAP nicht gefallen hat

Protokoll IMAP wurde 1986 eingeführt. Viele in der Norm beschriebene Dinge sind heute nicht mehr relevant. Das Protokoll kann beispielsweise die Anzahl der Zeilen eines Briefes und Prüfsummen zurückgeben MD5 - Diese Funktionalität wird in modernen E-Mail-Clients praktisch nicht genutzt.

Ein weiteres Problem hängt mit dem Verkehrsverbrauch zusammen. Mit IMAP werden E-Mails auf dem Server gespeichert und regelmäßig mit lokalen Clients synchronisiert. Wenn aus irgendeinem Grund die Kopie auf dem Gerät des Benutzers beschädigt wird, müssen alle E-Mails erneut synchronisiert werden. In der modernen Welt, in der Tausende mobiler Geräte mit dem Server verbunden werden können, führt dieser Ansatz zu einem erhöhten Verbrauch von Datenverkehr und Rechenressourcen.

Schwierigkeiten ergeben sich nicht nur mit dem Protokoll selbst, sondern auch mit den E-Mail-Clients, die damit arbeiten. Seit seiner Entstehung wurde IMAP mehrfach überarbeitet – die aktuelle Version ist heute IMAP4. Gleichzeitig gibt es viele optionale Erweiterungen dafür – im Netzwerk veröffentlicht neunzig RFCs mit Ergänzungen. Einer der jüngsten ist RFC8514, eingeführt im Jahr 2019.

Gleichzeitig bieten viele Unternehmen eigene proprietäre Lösungen an, die den Umgang mit IMAP vereinfachen oder sogar ersetzen sollen: Google Mail, Outlook, Nylas. Das Ergebnis ist, dass bestehende E-Mail-Clients nur einige der verfügbaren Funktionen unterstützen. Eine solche Vielfalt führt zu einer Marktsegmentierung.

„Außerdem sollte ein moderner E-Mail-Client nicht nur Nachrichten weiterleiten, sondern auch mit Kontakten arbeiten und mit dem Kalender synchronisieren können“, sagt Sergei Belkin, Entwicklungsleiter beim IaaS-Anbieter 1cloud.ru. – Heutzutage mögen Protokolle von Drittanbietern LDAP, CardDAV и CalDAV. Dieser Ansatz verkompliziert die Konfiguration von Firewalls in Unternehmensnetzwerken und eröffnet neue Vektoren für Cyberangriffe.“

JMAP soll diese Probleme lösen. Es wird von FastMail-Experten unter der Leitung der Internet Engineering Task Force (IETF) entwickelt. Das Protokoll läuft auf HTTPS, nutzt JSON (daher eignet es sich nicht nur für den Austausch elektronischer Nachrichten, sondern auch für die Lösung zahlreicher Aufgaben in der Cloud) und vereinfacht die Organisation der Arbeit mit E-Mails in mobilen Systemen. Neben der Verarbeitung von Briefen bietet JMAP auch die Möglichkeit, Erweiterungen für die Arbeit mit Kontakten und einen Kalenderplaner anzubinden.

Merkmale des neuen Protokolls

JMAP ist Staatenloses Protokoll (zustandslos) und erfordert keine permanente Verbindung zum Mailserver. Diese Funktion vereinfacht die Arbeit in instabilen Mobilfunknetzen und schont den Akku der Geräte.

Eine E-Mail in JMAP wird in einem JSON-Strukturformat dargestellt. Es enthält alle Informationen aus der Nachricht RFC5322 (Internet Message Format), das möglicherweise von E-Mail-Anwendungen benötigt wird. Laut den Entwicklern soll dieser Ansatz die Erstellung von Clients vereinfachen, da potenzielle Schwierigkeiten (im Zusammenhang mit) gelöst werden MIME, Header lesen und kodieren) antwortet der Server.

Der Client nutzt die API, um Kontakt zum Server aufzunehmen. Dazu generiert es eine authentifizierte POST-Anfrage, deren Eigenschaften im JMAP-Sitzungsobjekt beschrieben sind. Die Anfrage liegt im application/json-Format vor und besteht aus einem einzelnen JSON-Anfrageobjekt. Der Server generiert außerdem ein Antwortobjekt.

В Spezifikationen (Punkt 3) Die Autoren stellen mit einer Bitte folgendes Beispiel zur Verfügung:

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

Nachfolgend finden Sie ein Beispiel für die Antwort, die der Server generiert:

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

Die vollständige JMAP-Spezifikation mit Beispielimplementierungen finden Sie unter die offizielle Seite Projekt. Dort veröffentlichten die Autoren auch eine Beschreibung der Spezifikationen für JMAP-Kontakte и JMAP-Kalender — Sie zielen auf die Arbeit mit Kalendern und Kontaktlisten ab. Von Text Autoren, Kontakte und Kalender wurden in separate Dokumente aufgeteilt, damit sie unabhängig vom „Kern“ weiterentwickelt und standardisiert werden konnten. Quellcodes für JMAP - in Repositorys auf GitHub.

JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird
/ PxHere /PD

Chancen

Obwohl die Arbeiten am Standard noch nicht offiziell abgeschlossen sind, wird er bereits in Produktionsumgebungen implementiert. Zum Beispiel die Erfinder des offenen Mailservers Cyrus IMAP hat seine JMAP-Version implementiert. Entwickler von FastMail freigegeben Server-Framework für das neue Protokoll in Perl und die Autoren von JMAP vorgestellt Proxy Server.

Wir können davon ausgehen, dass es in Zukunft immer mehr JMAP-basierte Projekte geben wird. Beispielsweise besteht eine gewisse Wahrscheinlichkeit, dass Entwickler von Open-Xchange, die einen IMAP-Server für Linux-Systeme erstellen, auf das neue Protokoll umsteigen. Lehnen Sie IMAP strikt ab Community-Mitglieder fragen, rund um die Werkzeuge des Unternehmens entstanden.

Entwickler von IETF und FastMail sagen, dass immer mehr Benutzer die Notwendigkeit eines neuen offenen Standards für Messaging erkennen. Die Autoren von JMAP hoffen, dass in Zukunft mehr Unternehmen mit der Implementierung dieses Protokolls beginnen werden.

Unsere zusätzlichen Ressourcen und Quellen:

JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird So überprüfen Sie Cookies auf DSGVO-Konformität – ein neues offenes Tool hilft dabei

JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird So sparen Sie mit einer Anwendungsprogrammierschnittstelle
JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird DevOps in einem Cloud-Dienst am Beispiel von 1cloud.ru
JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird Entwicklung der 1cloud Cloud-Architektur

JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird Mögliche Angriffe auf HTTPS und wie man sich davor schützt
JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird So schützen Sie einen Server im Internet: 1cloud.ru-Erfahrung
JMAP – ein offenes Protokoll, das IMAP beim E-Mail-Austausch ersetzen wird Ein kurzes Bildungsprogramm: Was ist kontinuierliche Integration?

Source: habr.com

Kommentar hinzufügen