JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email

All'inizio del mese su Hacker News si è discusso attivamente del protocollo JMAP, sviluppato sotto la direzione dell'IETF. Abbiamo deciso di parlare di perché sia stato necessario e come funziona.

JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email
/ PxHere / PD

Cosa non va con l'IMAP

Protocollo IMAP è stato introdotto nel 1986. Molti aspetti descritti nello standard non sono più attuali oggi. Ad esempio, il protocollo è in grado di restituire il numero di righe di un'email e le checksum MD5 — questa funzionalità è praticamente inutilizzata nei moderni client di posta.

Un altro problema è legato al consumo di traffico. Nel caso dell'IMAP, le email sono memorizzate sul server e sincronizzate periodicamente con i client locali. Se per qualche motivo la copia sul dispositivo dell'utente si 'rovina', è necessario risincronizzare l'intera posta. In un mondo moderno, dove migliaia di dispositivi mobili possono connettersi al server, questo approccio porta a un aumento del consumo di traffico e delle risorse computazionali.

Le complessità non riguardano solo il protocollo stesso, ma anche i client di posta che lo utilizzano. Da quando è stato creato, l'IMAP ha subito numerose revisioni: la versione attuale è l'IMAP4. Esistono molte estensioni opzionali per questo protocollo nel rete. pubblicati novanta RFC con aggiustamenti. Uno dei più recenti è RFC8514, presentato nel 2019.

Molte aziende offrono anche soluzioni proprietarie, progettate per semplificare l'uso di IMAP o per sostituirlo del tutto: Gmail, Outlook, Nylas. Ciò significa che i client di posta esistenti supportano solo alcune delle funzionalità disponibili. Questa varietà porta a una segmentazione del mercato.

«Inoltre, un moderno client di posta non deve semplicemente inoltrare messaggi, ma deve essere in grado di gestire contatti e sincronizzarsi con il calendario», afferma Sergey Belkin, responsabile dello sviluppo del provider IaaS 1cloud.ru. «Oggi, per questi scopi, si utilizzano protocolli esterni come LDAP, CardDAV e CalDAV. Questo approccio complica la configurazione dei firewall nelle reti aziendali e apre nuovi vettori per gli attacchi informatici.

JMAP è progettato per affrontare questi problemi. È sviluppato da specialisti di FastMail sotto la guida del Consiglio di ingegneria di Internet (IETF). Il protocollo funziona sopra HTTPS, utilizza JSON (per questo motivo è adatto non solo per lo scambio di email, ma anche per risolvere una serie di compiti nel cloud) e semplifica l'organizzazione del lavoro con la posta nei sistemi mobili. Oltre a gestire le email, JMAP prevede anche la possibilità di collegare estensioni per lavorare con contatti e un calendario-pianificatore.

Caratteristiche del nuovo protocollo

JMAP è un protocollo senza stato (stateless) e non richiede una connessione costante con il server di posta. Questa caratteristica semplifica l'uso in reti mobili instabili e consente di risparmiare la batteria dei dispositivi.

Un'email in JMAP è rappresentata in formato JSON. Contiene tutte le informazioni del messaggio RFC5322 (Internet Message Format), che potrebbe essere utile per le applicazioni di posta. Secondo gli sviluppatori, questo approccio dovrebbe semplificare la creazione di client, poiché il server gestirà le potenziali complessità (relative a MIME, la lettura degli header e la codifica).

Per interagire con il server, il client utilizza l'API. A tal fine, forma una richiesta POST autenticata, le cui proprietà sono descritte nell'oggetto sessione JMAP. La richiesta ha formato application/json ed è composta da un solo oggetto JSON di richiesta. Il server genera anche un oggetto di risposta.

In specifiche (punto 3) gli autori forniscono il seguente esempio di 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 di risposta che genererà il server:

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

È possibile trovare la specifica JMAP completa con esempi di implementazione su sito ufficiale progetti. Lì, gli autori hanno pubblicato la descrizione delle specifiche per JMAP Contacts e JMAP Calendars – sono destinati a lavorare con calendari e liste di contatti. Secondo le parole degli autori, Contacts e Calendars sono stati separati in documenti distinti, in modo da poter essere sviluppati e standardizzati indipendentemente dal "nucleo". I codici sorgente per JMAP sono disponibili nel repository su GitHub.

JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email
/ PxHere / PD

Prospettive

Nonostante il fatto che ufficialmente il lavoro sullo standard non sia ancora completato, è già in fase di implementazione in ambienti di produzione. Ad esempio, i creatori del server di posta open source Cyrus IMAP hanno realizzato la versione JMAP. Gli sviluppatori di FastMail hanno rilasciato un framework server per il nuovo protocollo in Perl, e gli autori di JMAP hanno presentato un proxy server.

Ci si può aspettare che in futuro ci saranno sempre più progetti basati su JMAP. Ad esempio, esiste una certa probabilità che gli sviluppatori di Open-Xchange, che stanno creando un server IMAP per sistemi Linux, passeranno al nuovo protocollo. I membri della community chiedono con forza di rinunciare a IMAP, formata attorno agli strumenti dell'azienda.

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

Le nostre risorse e fonti aggiuntive:

JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email Come verificare i cookie in conformità con il GDPR: un nuovo strumento open source

JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email Come risparmiare utilizzando un'interfaccia API
JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email DevOps nel servizio cloud: l'esempio di 1cloud.ru
JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email L'evoluzione dell'architettura cloud di 1cloud

JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email Attacchi potenziali su HTTPS e metodi di protezione
JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email Come proteggere un server su internet: l'esperienza di 1cloud.ru
JMAP — il protocollo aperto che sostituirà l'IMAP per lo scambio di email Un breve corso introduttivo: che cos'è l'Continuous Integration

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster