JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos

A principios deste mes en Hacker News foi discutido activamente Protocolo JMAP desenvolvido baixo a dirección do IETF. Decidimos falar sobre por que era necesario e como funciona.

JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos
/ stocks /PD

O que non me gustou do IMAP

Protocolo IMAP foi introducido en 1986. Moitas cousas descritas na norma xa non son relevantes hoxe. Por exemplo, o protocolo pode devolver o número de liñas dunha carta e as sumas de verificación MD5 - esta funcionalidade practicamente non se usa nos clientes de correo electrónico modernos.

Outro problema está relacionado co consumo de tráfico. Con IMAP, os correos electrónicos almacénanse no servidor e sincronízanse periodicamente cos clientes locais. Se por algún motivo a copia no dispositivo do usuario se corrompe, todo o correo debe sincronizarse de novo. No mundo moderno, cando miles de dispositivos móbiles poden conectarse ao servidor, este enfoque leva a un aumento do consumo de tráfico e recursos informáticos.

As dificultades xorden non só co protocolo en si, senón tamén cos clientes de correo electrónico que traballan con el. Desde a súa creación, IMAP foi sometido a varias revisións moitas veces; a versión actual é IMAP4. Ao mesmo tempo, hai moitas extensións opcionais para iso - na rede publicado noventa RFC con adicións. Unha das máis recentes é RFC8514, presentado en 2019.

Ao mesmo tempo, moitas empresas ofrecen as súas propias solucións propietarias que deberían simplificar o traballo con IMAP ou mesmo substituílo: Gmail, Perspectiva, nylas. O resultado é que os clientes de correo electrónico existentes só admiten algunhas das funcións dispoñibles. Tal diversidade leva á segmentación do mercado.

"Ademais, un cliente de correo electrónico moderno non só debería reenviar mensaxes, senón que tamén debería poder traballar cos contactos e sincronizarse co calendario", di Sergei Belkin, xefe de desenvolvemento do provedor IaaS. 1cloud.ru. — Hoxe, protocolos de terceiros como LDAP, Tarxeta DAV и CalDAV. Este enfoque complica a configuración dos cortalumes nas redes corporativas e abre novos vectores para os ciberataques".

JMAP está deseñado para resolver estes problemas. Está a ser desenvolvido por expertos de FastMail baixo a dirección do Internet Engineering Task Force (IETF). O protocolo funciona enriba de HTTPS, usa JSON (por este motivo é adecuado non só para intercambiar mensaxes electrónicas, senón tamén para resolver unha serie de tarefas na nube) e simplifica a organización do traballo co correo en sistemas móbiles. Ademais de procesar cartas, JMAP tamén ofrece a posibilidade de conectar extensións para traballar con contactos e un programador de calendario.

Características do novo protocolo

JMAP é protocolo sen estado (sen estado) e non require unha conexión permanente ao servidor de correo. Esta función simplifica o traballo en redes móbiles inestables e aforra a batería dos dispositivos.

Un correo electrónico en JMAP represéntase nun formato de estrutura JSON. Contén toda a información da mensaxe RFC5322 (Formato de mensaxe de Internet), que pode ser necesario para as aplicacións de correo electrónico. Segundo os desenvolvedores, este enfoque debería simplificar a creación de clientes, xa que resolve posibles dificultades (asociadas a Mímica, lendo cabeceiras e codificación) o servidor responderá.

O cliente usa a API para contactar co servidor. Para iso, xera unha solicitude POST autenticada, cuxas propiedades se describen no obxecto de sesión JMAP. A solicitude está en formato aplicación/json e consta dun único obxecto de solicitude JSON. O servidor tamén xera un obxecto de resposta.

В especificacións (punto 3) os autores achegan o seguinte exemplo cunha solicitude:

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

A continuación móstrase un exemplo da resposta que xerará o servidor:

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

A especificación JMAP completa con exemplos de implementación pódese atopar en sitio web oficial proxecto. Alí os autores tamén publicaron unha descrición das especificacións para Contactos JMAP и Calendarios JMAP — están dirixidos a traballar con calendarios e listas de contactos. Por segundo autores, contactos e calendarios separáronse en documentos separados para que puidesen ser desenvolvidos e estandarizados independentemente do "núcleo". Códigos fonte para JMAP - en repositorios en GitHub.

JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos
/ stocks /PD

Perspectivas

A pesar de que aínda non se rematou oficialmente o traballo sobre o estándar, xa se está a implementar en ambientes de produción. Por exemplo, os creadores do servidor de correo aberto Cyrus IMAP implementou a súa versión JMAP. Desenvolvedores de FastMail liberado marco do servidor para o novo protocolo en Perl, e os autores de JMAP presentaron servidor proxy.

Podemos esperar que haxa máis e máis proxectos baseados en JMAP no futuro. Por exemplo, hai certa probabilidade de que os desenvolvedores de Open-Xchange, que están a crear un servidor IMAP para sistemas Linux, cambien ao novo protocolo. Rexeitalos moito IMAP preguntan os membros da comunidade, formado arredor das ferramentas da empresa.

Os desenvolvedores de IETF e FastMail din que cada vez son máis os usuarios que ven a necesidade dun novo estándar aberto para a mensaxería. Os autores de JMAP esperan que no futuro máis empresas comecen a implementar este protocolo.

Os nosos recursos e fontes adicionais:

JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Como comprobar as cookies para o cumprimento do GDPR: unha nova ferramenta aberta axudará

JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Como gardar cunha interface de programación de aplicacións
JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos DevOps nun servizo na nube usando o exemplo de 1cloud.ru
JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Evolución da arquitectura 1cloud cloud

JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Potenciais ataques a HTTPS e como protexerse contra eles
JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Como protexer un servidor en Internet: experiencia 1cloud.ru
JMAP - un protocolo aberto que substituirá a IMAP ao intercambiar correos electrónicos Un programa educativo breve: que é a Integración Continua

Fonte: www.habr.com

Engadir un comentario