JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail

All'inizio di questo mese su Hacker News è stato discusso attivamente Protocollo JMAP sviluppato sotto la direzione dell’IETF. Abbiamo deciso di parlare del perché era necessario e di come funziona.

JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail
/ PxHere /PD

Cosa non mi è piaciuto di IMAP

protocollo IMAP è stato introdotto nel 1986. Molte cose descritte nello standard non sono più rilevanti oggi. Ad esempio, il protocollo può restituire il numero di righe di una lettera e i checksum MD5 - questa funzionalità non è praticamente utilizzata nei moderni client di posta elettronica.

Un altro problema è legato al consumo di traffico. Con IMAP, le e-mail vengono archiviate sul server e periodicamente sincronizzate con i client locali. Se per qualche motivo la copia sul dispositivo dell'utente viene danneggiata, tutta la posta dovrà essere nuovamente sincronizzata. Nel mondo moderno, quando migliaia di dispositivi mobili possono essere collegati al server, questo approccio porta ad un maggiore consumo di traffico e risorse informatiche.

Le difficoltà sorgono non solo con il protocollo stesso, ma anche con i client di posta elettronica che lo utilizzano. Dalla sua creazione, IMAP è stato soggetto a varie revisioni più volte: la versione attuale oggi è IMAP4. Allo stesso tempo, ci sono molte estensioni opzionali sulla rete pubblicato novanta RFC con aggiunte. Uno dei più recenti è RFC8514, introdotto nel 2019.

Allo stesso tempo, molte aziende offrono le proprie soluzioni proprietarie che dovrebbero semplificare il lavoro con IMAP o addirittura sostituirlo: Gmail, Outlook, nylas. Il risultato è che i client di posta esistenti supportano solo alcune delle funzionalità disponibili. Tale diversità porta alla segmentazione del mercato.

"Inoltre, un moderno client di posta elettronica non dovrebbe solo inoltrare messaggi, ma essere in grado di lavorare con i contatti e sincronizzarsi con il calendario", afferma Sergei Belkin, responsabile dello sviluppo presso il provider IaaS 1cloud.ru. — Oggi, protocolli di terze parti come LDAP, CardDAV и CalDAV. Questo approccio complica la configurazione dei firewall nelle reti aziendali e apre nuovi vettori per gli attacchi informatici”.

JMAP è progettato per risolvere questi problemi. È stato sviluppato dagli esperti di FastMail sotto la guida dell'Internet Engineering Task Force (IETF). Il protocollo funziona su HTTPS, utilizza JSON (per questo motivo è adatto non solo per lo scambio di messaggi elettronici, ma anche per risolvere una serie di compiti nel cloud) e semplifica l'organizzazione del lavoro con la posta nei sistemi mobili. Oltre all'elaborazione delle lettere, JMAP offre anche la possibilità di connettere estensioni per lavorare con i contatti e un pianificatore di calendario.

Caratteristiche del nuovo protocollo

JMAP lo è protocollo apolide (senza stato) e non richiede una connessione permanente al server di posta. Questa funzionalità semplifica il lavoro su reti mobili instabili e consente di risparmiare la carica della batteria sui dispositivi.

Un'e-mail in JMAP è rappresentata in un formato di struttura JSON. Contiene tutte le informazioni del messaggio RFC5322 (Internet Message Format), che potrebbe essere necessario per le applicazioni di posta elettronica. Secondo gli sviluppatori, questo approccio dovrebbe semplificare la creazione dei client, poiché risolve le potenziali difficoltà (associate a MIMO, leggendo intestazioni e codifica) il server risponderà.

Il client utilizza l'API per contattare il server. Per fare ciò, genera una richiesta POST autenticata, le cui proprietà sono descritte nell'oggetto sessione JMAP. La richiesta è in formato application/json ed è costituita da un singolo oggetto richiesta JSON. Il server genera anche un oggetto di risposta.

В specificazione (punto 3) gli autori forniscono il seguente esempio con una richiesta:

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

Di seguito è riportato un esempio della risposta che il server genererà:

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

La specifica JMAP completa con implementazioni di esempio può essere trovata all'indirizzo il sito ufficiale progetto. Lì gli autori hanno anche pubblicato una descrizione delle specifiche di Contatti JMAP и Calendari JMAP — hanno lo scopo di lavorare con calendari ed elenchi di contatti. Di secondo autori, contatti e calendari sono stati separati in documenti separati in modo che potessero essere ulteriormente sviluppati e standardizzati indipendentemente dal “nucleo”. Codici sorgente per JMAP - in repository su GitHub.

JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail
/ PxHere /PD

prospettive

Nonostante il lavoro sullo standard non sia ancora stato ufficialmente completato, è già in fase di implementazione negli ambienti di produzione. Ad esempio, i creatori del server di posta aperto Ciro IMAP ha implementato la sua versione JMAP. Sviluppatori di FastMail rilasciato server per il nuovo protocollo in Perl e hanno presentato gli autori di JMAP server proxy.

Possiamo aspettarci che in futuro ci saranno sempre più progetti basati su JMAP. Ad esempio, c'è una certa probabilità che gli sviluppatori di Open-Xchange, che stanno creando un server IMAP per sistemi Linux, passeranno al nuovo protocollo. Rifiuta moltissimo l'IMAP chiedono i membri della comunità, formato attorno agli strumenti dell'azienda.

Gli sviluppatori di IETF e FastMail affermano che sempre più utenti avvertono la necessità di un nuovo standard aperto per la messaggistica. Gli autori di JMAP sperano che in futuro sempre più aziende inizieranno ad implementare questo protocollo.

Le nostre risorse e risorse aggiuntive:

JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail Come verificare la conformità dei cookie al GDPR: un nuovo strumento aperto ti aiuterà

JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail Come risparmiare con un'interfaccia di programmazione dell'applicazione
JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail DevOps in un servizio cloud utilizzando l'esempio di 1cloud.ru
JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail L'evoluzione dell'architettura cloud 1cloud

JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail Potenziali attacchi su HTTPS e come proteggersi da essi
JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail Come proteggere un server su Internet: esperienza 1cloud.ru
JMAP: un protocollo aperto che sostituirà IMAP nello scambio di e-mail Un breve percorso formativo: cos'è l'Integrazione Continua

Fonte: habr.com

Aggiungi un commento