JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos

A principios de mes, en Hacker News se discutió activamente el protocolo JMAP, desarrollado bajo la dirección de la IETF. Decidimos hablar sobre por qué es necesario y cómo funciona.

JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos
/ PxHere / PD

¿Qué le falta a IMAP?

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

Otro problema está relacionado con el consumo de tráfico. En el caso de 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", es necesario volver a sincronizar todo el correo. En el mundo moderno, donde miles de dispositivos móviles pueden estar conectados al servidor, este enfoque lleva a un mayor gasto de tráfico y recursos computacionales.

Las dificultades no solo surgen con el propio protocolo, sino también con los clientes de correo que trabajan con él. Desde la creación de IMAP, ha sido sometido a numerosas revisiones; la versión actual es IMAP4. A pesar de esto, existen numerosas extensiones opcionales para él — en línea se publicaron hay noventa RFC con complementos. Uno de los más recientes es RFC8514,presentado en 2019.

Al mismo tiempo, muchas empresas ofrecen soluciones propietarias que deberían simplificar el trabajo con IMAP o reemplazarlo por completo: Gmail, Outlook., NylasComo resultado, los clientes de correo existentes solo admiten algunas de las funciones disponibles. Esta diversidad conduce a la segmentación del mercado.

«Además, un cliente de correo moderno no solo debe reenviar mensajes, sino también trabajar con contactos y sincronizar con el calendario», dice Sergey Belkin, jefe del departamento de desarrollo del proveedor de IaaS. 1cloud.ru«Hoy en día, para estos fines se utilizan protocolos externos como LDAP., CardDAV y CalDAVEste enfoque complica la configuración de firewalls en redes corporativas y abre nuevos vectores para ciberataques».

JMAP se creó para resolver los problemas mencionados. Está siendo desarrollado por especialistas de FastMail bajo la supervisión del Consejo de Ingeniería de Internet (IETF). El protocolo funciona sobre HTTPS, utiliza JSON (por esta razón, es adecuado no solo para intercambiar correos electrónicos, sino también para abordar una serie de tareas en la nube) y simplifica la organización del trabajo con correos en sistemas móviles. Además del procesamiento de correos, JMAP también permite la conexión de extensiones para trabajar con contactos y calendarios.

Características del nuevo protocolo

JMAP es un protocolo sin estado (stateless) que no requiere una conexión constante con el servidor de correo. Esta característica simplifica el trabajo en redes móviles inestables y permite ahorrar batería en los dispositivos.

Un correo electrónico en JMAP se presenta en formato de estructura JSON. Esta contiene toda la información del mensaje RFC5322 (Formato de Mensaje de Internet), que puede ser necesaria para las aplicaciones de correo. Según los desarrolladores, este enfoque debería simplificar la creación de clientes, ya que el servidor se encargará de resolver las posibles complejidades (relacionadas con MIME, la lectura de encabezados y la codificación).

Para comunicarse con el servidor, el cliente utiliza la API. Para ello, forma una solicitud POST autenticada, cuyas propiedades están descritas en el objeto de sesión de JMAP. La solicitud tiene un formato application/json y consiste en un solo objeto de solicitud JSON. El servidor también genera un objeto de respuesta.

En la especificación (punto 3) Los autores presentan el siguiente ejemplo de 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, un ejemplo de 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 completa de JMAP con ejemplos de implementación se puede encontrar en el sitio web oficial el proyecto. Allí, los autores también han incluido la descripción de las especificaciones para JMAP Contacts y JMAP Calendars — están dirigidas a trabajar con calendarios y listas de contactos. Según palabras los autores, Contacts y Calendars se han separado en documentos individuales para poder desarrollarlos y estandarizarlos de manera independiente al 'núcleo'. El código fuente de JMAP está en el repositorio en GitHub.

JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos
/ PxHere / PD

Perspectivas

A pesar de que oficialmente el trabajo en el estándar aún no ha concluido, ya se está implementando en entornos de producción. Por ejemplo, los creadores del servidor de correo abierto Cyrus IMAP han implementado su versión JMAP. Los desarrolladores de FastMail no se manifiesta un marco de servidor para el nuevo protocolo en Perl, y los autores de JMAP presentaron servidor proxy.

Se puede esperar que en el futuro haya más proyectos basados en JMAP. Por ejemplo, hay una cierta probabilidad de que los desarrolladores de Open-Xchange, que crean un servidor IMAP para sistemas Linux, adopten el nuevo protocolo. Los miembros de la comunidad piden explícitamente que se deshagan de IMAP, que se ha 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 la mensajería. Los autores de JMAP esperan que en el futuro más empresas comiencen a implementar este protocolo.

Nuestros recursos y fuentes adicionales:

JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Cómo verificar las cookies conforme al GDPR — ayudará una nueva herramienta de código abierto

JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Cómo ahorrar usando una interfaz de programación de aplicaciones
JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos DevOps en el servicio en la nube utilizando 1cloud.ru como ejemplo
JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Evolución de la arquitectura de la nube 1cloud

JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Ataques potenciales a HTTPS y cómo protegerse de ellos
JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Cómo proteger un servidor en Internet: la experiencia de 1cloud.ru
JMAP: el protocolo abierto que reemplazará IMAP en el intercambio de correos electrónicos Breve introducción: ¿qué es la Integración Continua?

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster