JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails

No início deste mês no Hacker News foi ativamente discutido Protocolo JMAP desenvolvido sob a direção da IETF. Decidimos conversar sobre por que isso era necessário e como funciona.

JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails
/ PxHere /DP

O que eu não gostei no IMAP

Protocolo IMAP foi introduzido em 1986. Muitas coisas descritas na norma não são mais relevantes hoje. Por exemplo, o protocolo pode retornar o número de linhas de uma carta e somas de verificação MD5 - esta funcionalidade praticamente não é usada em clientes de e-mail modernos.

Outro problema está relacionado ao consumo de tráfego. Com o IMAP, os emails são armazenados no servidor e sincronizados periodicamente com clientes locais. Se por algum motivo a cópia no dispositivo do usuário for corrompida, todos os e-mails deverão ser sincronizados novamente. No mundo moderno, quando milhares de dispositivos móveis podem ser conectados ao servidor, esta abordagem leva ao aumento do consumo de tráfego e recursos computacionais.

As dificuldades surgem não apenas com o protocolo em si, mas também com os clientes de e-mail que trabalham com ele. Desde a sua criação, o IMAP foi sujeito a diversas revisões diversas vezes - a versão atual hoje é IMAP4. Ao mesmo tempo, existem muitas extensões opcionais para isso - na rede publicado noventa RFCs com acréscimos. Um dos mais recentes é RFC8514introduzido em 2019.

Ao mesmo tempo, muitas empresas oferecem suas próprias soluções proprietárias que devem simplificar o trabalho com IMAP ou até mesmo substituí-lo: Gmail, Outlook, nylas. O resultado é que os clientes de e-mail existentes suportam apenas alguns dos recursos disponíveis. Essa diversidade leva à segmentação do mercado.

“Além disso, um cliente de e-mail moderno não deve apenas encaminhar mensagens, mas ser capaz de trabalhar com contatos e sincronizar com o calendário”, diz Sergei Belkin, chefe de desenvolvimento do provedor IaaS 1cloud.ru. — Hoje, protocolos de terceiros como LDAP, CardDAVGenericName и CalDAVGenericName. Esta abordagem complica a configuração de firewalls em redes corporativas e abre novos vetores para ataques cibernéticos.”

O JMAP foi projetado para resolver esses problemas. Ele está sendo desenvolvido por especialistas do FastMail sob a orientação da Internet Engineering Task Force (IETF). O protocolo funciona sobre HTTPS, utiliza JSON (por isso é adequado não só para troca de mensagens eletrônicas, mas também para resolver uma série de tarefas na nuvem) e simplifica a organização do trabalho com correio em sistemas móveis. Além de processar cartas, o JMAP também oferece a capacidade de conectar extensões para trabalhar com contatos e um agendador de calendário.

Recursos do novo protocolo

JMAP é protocolo sem estado (sem estado) e não requer uma conexão permanente com o servidor de e-mail. Esse recurso simplifica o trabalho em redes móveis instáveis ​​e economiza bateria dos dispositivos.

Um email no JMAP é representado em um formato de estrutura JSON. Ele contém todas as informações da mensagem RFC5322 (Formato de mensagem da Internet), que pode ser necessário para aplicativos de e-mail. Segundo os promotores, esta abordagem deverá simplificar a criação de clientes, uma vez que a resolução de potenciais dificuldades (associadas a MIME, lendo cabeçalhos e codificação) o servidor responderá.

O cliente usa a API para entrar em contato com o servidor. Para fazer isso, ele gera uma solicitação POST autenticada, cujas propriedades são descritas no objeto de sessão JMAP. A solicitação está no formato application/json e consiste em um único objeto de solicitação JSON. O servidor também gera um objeto de resposta.

В especificações (ponto 3) os autores fornecem o seguinte exemplo com uma solicitação:

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

Abaixo está um exemplo da resposta que o servidor irá gerar:

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

A especificação JMAP completa com exemplos de implementações pode ser encontrada em o site oficial projeto. Lá os autores também postaram uma descrição das especificações para Contatos da JMAP и Calendários JMAP — destinam-se a trabalhar com calendários e listas de contatos. Por palavras autores, Contatos e Calendários foram separados em documentos separados para que pudessem ser desenvolvidos e padronizados independentemente do “núcleo”. Códigos-fonte para JMAP - em repositórios no GitHub.

JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails
/ PxHere /DP

Perspectivas

Apesar de o trabalho no padrão ainda não ter sido oficialmente concluído, ele já está sendo implementado em ambientes de produção. Por exemplo, os criadores do servidor de correio aberto Ciro IMAP implementou sua versão JMAP. Desenvolvedores do FastMail liberado estrutura de servidor para o novo protocolo em Perl, e os autores do JMAP apresentaram Servidor proxy.

Podemos esperar que haja cada vez mais projetos baseados no JMAP no futuro. Por exemplo, há alguma probabilidade de que os desenvolvedores do Open-Xchange, que estão criando um servidor IMAP para sistemas Linux, mudem para o novo protocolo. Recuse-os fortemente ao IMAP membros da comunidade perguntam, formado em torno das ferramentas da empresa.

Os desenvolvedores do IETF e do FastMail dizem que cada vez mais usuários estão vendo a necessidade de um novo padrão aberto para mensagens. Os autores do JMAP esperam que no futuro mais empresas comecem a implementar este protocolo.

Nossos recursos e fontes adicionais:

JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails Como verificar a conformidade dos cookies com o GDPR - uma nova ferramenta aberta ajudará

JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails Como economizar com uma interface de programação de aplicativos
JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails DevOps em um serviço de nuvem usando o exemplo 1cloud.ru
JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails A evolução da arquitetura de nuvem 1cloud

JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails Ataques potenciais em HTTPS e como se proteger contra eles
JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails Como proteger um servidor na Internet: experiência 1cloud.ru
JMAP - um protocolo aberto que substituirá o IMAP na troca de e-mails Um breve programa educacional: o que é Integração Contínua

Fonte: habr.com

Adicionar um comentário