JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos

A principios de este mes en Hacker News fue discutido activamente protocolo JMAP desarrollado bajo la dirección del IETF. Decidimos hablar sobre por qué era necesario y cómo funciona.

JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos
/ PxHere /PD

Lo que no me gustó de IMAP

Protocolo IMAP fue introducido en 1986. Muchas cosas descritas en la norma ya no son relevantes hoy en día. Por ejemplo, el protocolo puede devolver el número de líneas de una carta y sumas de verificación. MD5 - esta funcionalidad prácticamente no se utiliza en los clientes de correo electrónico modernos.

Otro problema está relacionado con el consumo de tráfico. Con IMAP, los correos electrónicos se almacenan en el servidor y se sincronizan periódicamente con los clientes locales. Si por alguna razón la copia en el dispositivo del usuario se daña, todo el correo debe sincronizarse nuevamente. En el mundo moderno, cuando se pueden conectar miles de dispositivos móviles al servidor, este enfoque conduce a un mayor consumo de tráfico y recursos informáticos.

Las dificultades surgen no sólo con el protocolo en sí, sino también con los clientes de correo electrónico que trabajan con él. Desde su creación, IMAP ha estado sujeto a varias revisiones muchas veces; la versión actual hoy es IMAP4. Al mismo tiempo, existen muchas extensiones opcionales: en la red publicado noventa RFC con adiciones. Uno de los más recientes es RFC8514introducido en 2019.

Al mismo tiempo, muchas empresas ofrecen sus propias soluciones patentadas que deberían simplificar el trabajo con IMAP o incluso reemplazarlo: gmail, Outlook, nilas. El resultado es que los clientes de correo electrónico existentes sólo admiten algunas de las funciones disponibles. Esta diversidad conduce a la segmentación del mercado.

"Además, un cliente de correo electrónico moderno no sólo debería reenviar mensajes, sino también poder trabajar con contactos y sincronizar con el calendario", afirma Sergei Belkin, jefe de desarrollo del proveedor IaaS. 1cloud.ru. — Hoy en día, protocolos de terceros como LDAP, TarjetaDAV и CalDAV. Este enfoque complica la configuración de firewalls en redes corporativas y abre nuevos vectores para ciberataques”.

JMAP está diseñado para resolver estos problemas. Está siendo desarrollado por expertos de FastMail bajo la dirección del Grupo de Trabajo de Ingeniería de Internet (IETF). El protocolo se ejecuta sobre HTTPS, utiliza JSON (por esta razón es adecuado no solo para intercambiar mensajes electrónicos, sino también para resolver una serie de tareas en la nube) y simplifica la organización del trabajo con el correo en sistemas móviles. Además de procesar cartas, JMAP también ofrece la posibilidad de conectar extensiones para trabajar con contactos y un programador de calendario.

Características del nuevo protocolo.

JMAP es protocolo sin estado (sin estado) y no requiere una conexión permanente al servidor de correo. Esta función simplifica el trabajo en redes móviles inestables y ahorra energía de la batería de los dispositivos.

Un correo electrónico en JMAP se representa en un formato de estructura JSON. Contiene toda la información del mensaje. RFC5322 (Formato de mensaje de Internet), que pueden ser necesarios para las aplicaciones de correo electrónico. Según los desarrolladores, este enfoque debería simplificar la creación de clientes, ya que resolver posibles dificultades (asociadas con MÍMICA, leyendo encabezados y codificando) el servidor responderá.

El cliente utiliza la API para contactar con el servidor. Para hacer esto, genera una solicitud POST autenticada, cuyas propiedades se describen en el objeto de sesión JMAP. La solicitud está en formato aplicación/json y consta de un único objeto de solicitud JSON. El servidor también genera un objeto de respuesta.

В especificaciones (punto 3) los autores proporcionan el siguiente ejemplo con una solicitud:

{
  "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 se muestra un ejemplo de la respuesta que generará el servidor:

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

La especificación JMAP completa con implementaciones de ejemplo se puede encontrar en el sitio web oficial proyecto. Allí los autores también publicaron una descripción de las especificaciones para Contactos JMAP и Calendarios JMAP — están destinados a trabajar con calendarios y listas de contactos. Por de acuerdo a Los autores, los contactos y los calendarios se separaron en documentos separados para que pudieran desarrollarse y estandarizarse aún más independientemente del "núcleo". Códigos fuente para JMAP - en repositorios en GitHub.

JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos
/ PxHere /PD

Perspectivas

A pesar de que el trabajo sobre el estándar aún no se ha completado oficialmente, ya se está implementando en entornos de producción. Por ejemplo, los creadores del servidor de correo abierto. Ciro IMAP implementó su versión JMAP. Desarrolladores de FastMail liberado marco de servidor para el nuevo protocolo en Perl, y los autores de JMAP presentaron servidor proxy.

Podemos esperar que en el futuro haya cada vez más proyectos basados ​​en JMAP. Por ejemplo, existe cierta probabilidad de que los desarrolladores de Open-Xchange, que están creando un servidor IMAP para sistemas Linux, cambien al nuevo protocolo. Rechaza mucho IMAP los miembros de la comunidad preguntan, formado en torno a las herramientas de la empresa.

Los desarrolladores de IETF y FastMail dicen que cada vez más usuarios ven la necesidad de un nuevo estándar abierto para mensajería. Los autores de JMAP esperan que en el futuro más empresas comiencen a implementar este protocolo.

Nuestros recursos y recursos adicionales:

JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos Cómo comprobar que las cookies cumplan con el RGPD: una nueva herramienta abierta le ayudará

JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos Cómo guardar con una interfaz de programación de aplicaciones
JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos DevOps en un servicio en la nube usando el ejemplo de 1cloud.ru
JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos La evolución de la arquitectura en la nube 1cloud

JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos Ataques potenciales a HTTPS y cómo protegerse contra ellos
JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos Cómo proteger un servidor en Internet: experiencia 1cloud.ru
JMAP: un protocolo abierto que reemplazará a IMAP al intercambiar correos electrónicos Un breve programa educativo: qué es la Integración Continua

Fuente: habr.com

Añadir un comentario