JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email

All'inizio del mese su Hacker News si è discusso attivamente del protocollo JMAP, sviluppato sotto la guida dell'IETF. Abbiamo deciso di discutere del motivo per cui è necessario e di come è strutturato.

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

Cosa non va con IMAP

Protocollo IMAP è stato presentato nel 1986. Molte delle cose descritte nello standard non sono più attuali al giorno d'oggi. Ad esempio, il protocollo è in grado di restituire il numero di righe di una email e gli hash di controllo MD5 — questa funzionalità nei moderni client email è praticamente inutilizzata.

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

Le difficoltà sorgono non solo con il protocollo stesso, ma anche con i client email che vi lavorano. Sin dalla sua creazione, IMAP è stato soggetto a numerose revisioni — la versione attuale è IMAP4. Esistono inoltre molti estensioni opzionali — in rete pubblicati novanta RFC con aggiunte. Una delle più recenti è RFC8514, presentata nel 2019.

Molte aziende offrono soluzioni proprietarie che dovrebbero semplificare l'uso di IMAP o addirittura sostituirlo: Gmail, Outlook, Nylas. Ne risulta che i client email esistenti supportano solo alcune delle funzioni disponibili. Questa varietà porta a una segmentazione del mercato.

"Inoltre, un moderno client email non deve solo inoltrare messaggi, ma deve anche essere in grado di lavorare con i contatti e sincronizzarsi con il calendario", dice Sergey Belkin, capo del dipartimento sviluppo di un fornitore IaaS 1cloud.ru. "Oggi per questi scopi si utilizzano protocolli di terze parti come LDAP, CardDAV e CalDAV. Questo approccio complica la configurazione dei firewall nelle reti aziendali e apre nuovi vettori per attacchi informatici."

JMAP è progettato per affrontare i problemi evidenziati. È sviluppato da specialisti di FastMail sotto la supervisione del Consiglio ingegneristico 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 trattare le email, JMAP prevede anche la possibilità di estensioni per la gestione di contatti e calendari.

Caratteristiche del nuovo protocollo

JMAP è un protocollo senza stato (stateless) e non richiede una connessione permanente al server di posta. Questa caratteristica semplifica il lavoro in reti mobili instabili e permette di risparmiare la carica della batteria dei dispositivi.

Un'email in JMAP è rappresentata in formato JSON. Essa contiene tutte le informazioni del messaggio RFC5322 (Internet Message Format), necessarie alle applicazioni di posta. Secondo gli sviluppatori, questo approccio dovrebbe semplificare la creazione di client, poiché la risoluzione di potenziali complessità (relative a MIME, lettura delle intestazioni e codifica) sarà gestita dal server.

Per comunicare con il server, il client utilizza l'API. A tal fine, forma una richiesta POST autenticata, le cui proprietà sono descritte nell'oggetto di sessione di JMAP. La richiesta ha un formato application/json e consiste in un singolo oggetto di richiesta JSON. Il server genera anche un singolo oggetto di risposta.

In specifica (punto 3) gli autori offrono il seguente esempio con la 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 è 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"
}

La specifica completa di JMAP con esempi di implementazione è disponibile su sito ufficiale progetto. Lì gli autori hanno anche pubblicato la descrizione delle specifiche per JMAP Contacts e JMAP Calendars – sono indirizzati alla gestione di calendari e liste di contatti. Secondo gli esperti, i principali problemi dell'Internet delle cose sono le password facilmente indovinabili (spesso sono presenti password di fabbrica preimpostate, accessibili pubblicamente) e i firmware obsoleti dei dispositivi. In migliori dei casi, gli aggiornamenti vengono pubblicati con notevoli ritardi, nel peggiore — non vengono rilasciati affatto (a volte la possibilità di aggiornamento non è nemmeno prevista a livello tecnico). Di conseguenza, molti dispositivi IoT vengono compromessi attraverso modi banali, come vulnerabilità nell'interfaccia web. Quasi tutte queste vulnerabilità sono critiche, ma il produttore ha possibilità estremamente limitate di creare rapidamente una patch e distribuirla come aggiornamento. gli autori, Contacts e Calendars sono stati separati in documenti distinti, per poterli aggiornare e standardizzare indipendentemente dal 'nucleo'. I codici sorgente per JMAP sono disponibili in repository su GitHub.

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

Prospettive

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

Ci si aspetta che in futuro ci saranno sempre più progetti basati su JMAP. Ad esempio, c'è una certa probabilità che gli sviluppatori di Open-Xchange, che creano un server IMAP per sistemi Linux, adottino il nuovo protocollo. La comunità gli chiede di abbandonare IMAP, come richiesto dai membri della comunità, che si è 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 lo scambio di messaggi. Gli autori di JMAP sperano che in futuro più aziende inizieranno a implementare questo protocollo.

JMAP — un protocollo aperto sostituirà IMAP nello scambio di email

JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Tutti parlano delle fughe di dati PII - come può aiutare un fornitore IaaS?

JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Come risparmiare utilizzando un'interfaccia di programmazione delle applicazioni
JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email DevOps nel servizio cloud prendendo come esempio 1cloud.ru
JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Evoluzione dell'architettura cloud 1cloud

JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Attacchi potenziali su HTTPS e metodi di protezione contro di essi
JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Come proteggere un server su internet: l'esperienza di 1cloud.ru
JMAP — un protocollo aperto che sostituirà IMAP per lo scambio di email Breve corso: che cos'è l'Integrazione Continua

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