JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen

Anfang des Monats wurde auf Hacker News aktiv diskutiert das JMAP-Protokoll, das unter der Aufsicht der IETF entwickelt wird. Wir beschlossen, darĂŒber zu sprechen, warum es notwendig war und wie es funktioniert.

JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen
/ PxHere / PD

Was stimmte nicht mit IMAP

Protokoll IMAP wurde 1986 eingefĂŒhrt. Viele Dinge, die im Standard beschrieben werden, sind heute nicht mehr relevant. Zum Beispiel kann das Protokoll die Anzahl der Zeilen in einer E-Mail und PrĂŒfziffern zurĂŒckgeben, MD5 — diese FunktionalitĂ€t wird in modernen E-Mail-Clients praktisch nicht mehr verwendet.

Ein weiteres Problem betrifft den Datenverbrauch. Im Fall von IMAP werden E-Mails auf dem Server gespeichert und regelmĂ€ĂŸig mit lokalen Clients synchronisiert. Wenn aus irgendeinem Grund die Kopie auf dem EndgerĂ€t des Benutzers „beschĂ€digt“ wird, muss die gesamte E-Mail erneut synchronisiert werden. In der heutigen Welt, in der Tausende von MobilgerĂ€ten mit dem Server verbunden sein können, fĂŒhrt dieser Ansatz zu einem erhöhten Datenverbrauch und Ressourcenaufwand.

Die Schwierigkeiten ergeben sich nicht nur aus dem Protokoll selbst, sondern auch aus den E-Mail-Clients, die damit arbeiten. Seit der EinfĂŒhrung von IMAP wurde es mehrfach verschiedenen Revisionen unterzogen – die aktuelle Version ist IMAP4. Außerdem gibt es viele optionale Erweiterungen dafĂŒr – im Netz veröffentlicht gibt es neunzig RFCs mit ErgĂ€nzungen. Eine der neuesten ist RFC8514, die 2019 vorgestellt wurde.

Viele Unternehmen bieten gleichzeitig eigene proprietĂ€re Lösungen an, die die Arbeit mit IMAP vereinfachen oder es sogar vollstĂ€ndig ersetzen sollen: Gmail, Outlook, Nylas. In der Folge stellen bestehende E-Mail-Clients nur einige der verfĂŒgbaren Funktionen bereit. Diese Vielfalt fĂŒhrt zu einer Marktsegmentierung.

„DarĂŒber hinaus sollte ein moderner E-Mail-Client nicht nur Nachrichten weiterleiten, sondern auch mit Kontakten arbeiten und sich mit dem Kalender synchronisieren können“, sagt Sergey Belkin, Leiter der Entwicklungsabteilung des IaaS-Anbieters 1cloud.ru. „Heute werden zu diesen Zwecken externe Protokolle wie LDAP, CardDAV und CalDAVverwendet. Dieser Ansatz erschwert die Konfiguration von Firewalls in Unternehmensnetzwerken und eröffnet neue Angriffsvektoren fĂŒr Cyberangriffe“.

Die angesprochenen Probleme sollen durch JMAP gelöst werden. Es wird von Fachleuten von FastMail unter der Leitung des Internet Engineering Steering Group (IETF) entwickelt. Das Protokoll funktioniert ĂŒber HTTPS, verwendet JSON (aus diesem Grund eignet es sich nicht nur fĂŒr den Austausch von E-Mails, sondern auch zur Lösung einer Reihe von Aufgaben in der Cloud) und vereinfacht die Organisation der Arbeit mit E-Mails in mobilen Systemen. Neben der Verarbeitung von E-Mails bietet JMAP auch die Möglichkeit, Erweiterungen fĂŒr den Umgang mit Kontakten und einem Kalenderplaner zu integrieren.

Eigenschaften des neuen Protokolls

JMAP ist ein zustandsloses Protokoll und erfordert keine stÀndige Verbindung zum E-Mail-Server. Diese Besonderheit vereinfacht die Arbeit in instabilen mobilen Netzwerken und ermöglicht eine Einsparung der Akkulaufzeit der GerÀte.

Eine E-Mail in JMAP wird im JSON-Strukturformat dargestellt. Es enthĂ€lt alle Informationen aus der Nachricht RFC5322 (Internet Message Format), die fĂŒr E-Mail-Anwendungen erforderlich sein kann. Laut den Entwicklern sollte dieser Ansatz die Erstellung von Clients vereinfachen, da der Server fĂŒr die Lösung potenzieller Probleme (im Zusammenhang mit MIME, dem Lesen von Headern und der Kodierung) verantwortlich ist.

Um auf den Server zuzugreifen, verwendet der Client eine API. Dazu stellt er eine authentifizierte POST-Anfrage zusammen, deren Eigenschaften im Sitzungsobjekt JMAP beschrieben sind. Die Anfrage hat das Format application/json und besteht aus einem einzigen JSON-Anfrageobjekt. Der Server generiert ebenfalls ein Antwortobjekt.

Im Spezifikation (Abschnitt 3) Die Autoren geben folgendes Beispiel fĂŒr eine Anfrage an:

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

Unten finden Sie ein Beispiel fĂŒr eine 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 Umsetzungsbeispielen finden Sie auf der offiziellen Website Projekt. Dort haben die Autoren auch die Spezifikationen fĂŒr JMAP Contacts und JMAP Calendars — sie sind auf die Arbeit mit Kalendern und Kontaktlisten ausgerichtet. Laut Aussage den Autoren wurden Contacts und Calendars in separate Dokumente ausgegliedert, damit sie unabhĂ€ngig vom „Kern“ weiterentwickelt und standardisiert werden können. Die Quellcodes fĂŒr JMAP befinden sich in dem Repository auf GitHub.

JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen
/ PxHere / PD

Aussichten

Obwohl die offizielle Arbeit am Standard noch nicht abgeschlossen ist, wird er bereits in Produktionsumgebungen implementiert. Zum Beispiel haben die Entwickler des offenen Mailservers Cyrus IMAP seine JMAP-Version umgesetzt. Die Entwickler von FastMail wurde veröffentlicht prĂ€sentierten den Server-Framework fĂŒr das neue Protokoll in Perl, wĂ€hrend die Autoren von JMAP Proxy-Server.

erwarten, dass in Zukunft immer mehr Projekte auf Basis von JMAP entstehen werden. Zum Beispiel gibt es eine gewisse Wahrscheinlichkeit, dass die Entwickler von Open-Xchange, die einen IMAP-Server fĂŒr Linux-Systeme erstellen, auf das neue Protokoll umsteigen. Die Community-Mitglieder bitten sie dringend, von IMAP abzulassen. die Teilnehmer der Community, die sich um die Werkzeuge des Unternehmens gebildet hat.

Die Entwickler von IETF und FastMail berichten, dass immer mehr Nutzer die Notwendigkeit eines neuen offenen Standards fĂŒr den Nachrichtenaustausch erkennen. Die Autoren von JMAP hoffen, dass in Zukunft mehr Unternehmen dieses Protokoll ĂŒbernehmen werden.

Unsere zusÀtzlichen Ressourcen und Quellen:

JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Wie man Cookies auf GDPR-KonformitĂ€t ĂŒberprĂŒft – ein neues offenes Tool hilft dabei

JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Wie Sie durch die Nutzung von APIs sparen können
JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen DevOps in der Cloud anhand von 1cloud.ru
JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Die Evolution der Cloud-Architektur von 1cloud

JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Potenzielle Angriffe auf HTTPS und Möglichkeiten, sich zu schĂŒtzen
JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Wie man einen Server im Internet schĂŒtzt: Erfahrungen von 1cloud.ru
JMAP – ein offenes Protokoll wird IMAP beim Austausch von E-Mails ersetzen Kurze EinfĂŒhrung: Was ist Continuous Integration

Quelle: habr.com

60GB SSD 8Gb DDR4