Come funziona la posta elettronica

La posta elettronica è, come dice la parola stessa, il corrispettivo informatico della posta, cioè la possibilità di inviare messaggi ad un certo indirizzo. Anche se negli ultimi anni è stata soppiantata dalla messaggistica istantanea, l'email rappresenta ancora un mezzo indispensabile per le comunicazioni di tipo professionale o burocratico.


La struttura dei messaggi

I messaggi sono essenzialmente testuali, ma possono contenere allegati, cioè file generici. I messaggi possono avere 3 formati:
  • Testo puro: nessuna formattazione possibile
  • HTML: possono contenere testo formattato, immagini, collegamenti
  • Rich Text: possono contenere testo formattato, immagini, collegamenti
La differenza fondamentale tra HTML e Rich Text è che il primo è uno standard universale (lo stesso utilizzato per i siti web), mentre il secondo è un formato non standard sviluppato da Microsoft (equivalente al formato RTF). Tutti possono contenere allegati.

Un indirizzo è espresso nella forma:
nomeutente@dominio
dove il dominio è quello tipicamente utilizzato per la risoluzione dei nomi sul web (es.: gmail.com o libero.it).
Ad un indirizzo corrisponde una casella di posta, cioè un contenitore di messaggi appartenenti ad un utente, eventualmente organizzati in cartelle e sottocartelle.
Ad ogni dominio corrisponde un server che gestisce tutte le caselle di quel dominio. Ciò è vero solo dal punto di vista logico, perché un dominio può corrispondere a più server reali (per motivi di ridondanza o suddivisione dei carichi di lavoro) e un singolo server può in realtà gestire più domini.
In definitiva, si può pensare alle caselle di posta elettronica in modo simile a quelle che abbiamo per la posta tradizionale fuori delle nostre case: un dominio corrisponde ad un indirizzo specifico, cioè una casa o condominio, e la casella alla singola cassetta, con un nome ad identificarla.

I destinatari dei messaggi sono di 3 tipi: i destinatari principali (normalmente identificati come To: oppure A:), i destinatari in copia (Cc:) e i destinatari nascosti (Bcc:). La differenza tra i primi due tipi è puramente logica; mentre il terzo tipo ha la particolarità di non essere tracciato, e di conseguenza risulta non visibile se non al mittente e a lui stesso.

Infine, ogni messaggio contiene un insieme di informazioni normalmente non visualizzate, non per segretezza, ma perché utili solo in caso di verifiche tecniche ed a chi è in grado di interpretarle: questo insieme di informazioni è detto header. L'header viene incrementalmente popolato dai vari attori (client e server) durante il "viaggio" dal messaggio dal mittente al destinatario. Tra le informazioni che possiamo trovarvi, vi sono i server "attraversati", i controlli antispam ed antivirus subiti, il programma che ha generato il messaggio.
 

Il server

Il server di posta è composto da diversi componenti. Quello che si occupa di mandare e ricevere i messaggi è l'MTA (Mail Transfer Agent) ed utilizza il protocollo SMTP (Simple Mail Transfer Protocol). Quest'ultimo risale ai primi anni '80, dunque ben prima dell'avvento di Internet come la conosciamo; si basa su pochi comandi testuali, ricevuti attraverso una semplice connessione (di tipo telnet).

Il secondo componente fondamentale è il Message Store, cioè quello che gestisce la memorizzazione dei messaggi, suddividendoli logicamente per casella, ed all'interno di questa in cartelle, in modo analogo a quello che avviene sui dischi dei nostri computer. Una di queste cartelle, normalmente chiamata Inbox (in analogia con i raccoglitori della corrispondenza in entrata, in lingua inglese), è quella deputata a raccogliere i messaggi inviati alla casella, prima che vengano poi eventualmente smistati a seconda delle impostazioni o delle azioni dell'utente. 

Tra gli altri componenti, ricordo solo il gestore delle credenziali delle caselle, che può essere parte integrante del mail server, ma più tipicamente è un servizio esterno a cui il server di posta si appoggia (normalmente quando le credenziali sono condivise con altri servizi).


Il client

I client per mezzo dei quali un utente (cioè il possessore di una casella) può interagire con il server sono di 2 tipi:
  • Un programma o applicazione dedicato che viene eseguito sul computer/tablet/smartphone
  • Un applicazione web, cioè accessibile attraverso il browser ad uno specifico indirizzo
Il primo tipo ha il vantaggio di avere un interfaccia utente più completa, molte impostazioni, una capacità di indicizzazione e ricerca maggiore; lo svantaggio è quello di avere un suo archivio dei messaggi, sia inviati che ricevuti, memorizzati sul disco locale del dispositivo, il che rende complesso (se non impossibile) sincronizzare client su dispositivi diversi, e che necessita di essere sottoposto a backup per evitare il rischio di perdere lo storico dei messaggi.
Il secondo tipo ha il vantaggio di interagire direttamente con il Message Store, rappresentandone di fatto una visualizzazione, evitando la necessità di un archivio locale, e rendendo possibile l'utilizzo (anche simultaneo) da diversi dispositivi mantenendo sempre le stesse capacità; ha lo svantaggio di avere un'interfaccia normalmente meno funzionale e con performance minori, inoltre necessita di una connessione di rete attiva per poter accedere anche solo allo storico dei messaggi.

Il programma di posta interagisce con il server tipicamente attraverso diversi protocolli, riassunti nella tabella seguente.

Protocollo
Tipologia
Utilizzo
SMTP
Trasmissione dei messaggi
Dal client al proprio MTA: per l’invio di un nuovo messaggio.
Tra MTA: per la trasmissione dei messaggi  tra domini differenti.
Sempre.
POP
Ricezione dei messaggi spostandoli (a meno di impostazioni diverse) dalla cartella Inbox del Message Store all'archivio locale.
Quando si utilizza sempre lo stesso client.
Quando si hanno limiti di spazio sul server.
IMAP
Accesso a tutte (a meno di impostazioni diverse) le cartelle del Message Store.
Quando si deve accedere alla casella da client differenti.
Quando non si hanno limiti di spazio sul server.
EAS (ActiveSync)
Sincronizzazione delle cartelle del Message Store con quelle dell'archivio locale.
Sincronizza anche calendario, contatti e task. 
Quando è necessario avere i messaggi sincronizzati su tutti i client e sul server.
Nota: Il server deve supportare questo protocollo.

    In pratica: tutti i programmi di posta utilizzano sempre il primo per inviare i messaggi; ed uno degli altri 3 per riceverli (o gestirli all'interno della struttura di cartelle). Da notare anche che, mentre POP e IMAP cercano nuovi messaggi nella casella, e lo fanno solo ogni tanto (la frequenza è impostabile, tipicamente ogni 5 minuti), EAS permette al Message Store di "inviare" i messaggi al client senza richiesta in tempo quasi reale.


    Il processo di invio di un messaggio

    Cosa succede quando premiamo l'invio? Ecco qua:
    1. Il client invia il messaggio sotto forma di comandi SMTP al suo MTA (cioè il server di invio impostato).
    2. L'MTA controlla prima di tutto se il client è autorizzato all'invio di messaggi; se lo è, procede all'invio di una copia del messaggio ad ogni destinatario, altrimenti lo respinge.
    3. Se il destinatario appartiene allo stesso dominio del mittente, il messaggio non esce dal server, e passa direttamente al Message Store.
    4. Se invece il destinatario appartiene ad un altro dominio, identifica il server responsabile per quel dominio (utilizzando i servizi DNS, in particolare per la posta esiste un tipo di identificazione specifica, le entry di tipo MX).
    5. Una volta identificato, invia, sempre tramite SMTP, il messaggio al server in questione.
    6. Per prima cosa, il server ricevente normalmente effettua una serie di controlli per verificare l'attendibilità del mittente (per fare qualche esempio: se il server mittente è un server di posta noto e risulta responsabile per quel dominio; se appartiene a qualche black list; se il mittente è un indirizzo valido).
    7. Solo dopo verifica se l'indirizzo destinatario è accettabile (cioè: se esiste, se non è disabilitato, se non ha la casella piena, se la dimensione del messaggio non è superiore al limite massimo, etc).
    8. In caso positivo, manda il messaggio al Message Store che lo memorizza nella cartella Inbox della casella destinataria.
    9. Il client preleva (secondo le modalità del protocollo utilizzato) il messaggio.
    Questo è il processo normale, in assenza di problemi. Però i problemi accadono. I più tipici sono i seguenti:
    • Se il server mittente non riesce a trovare il server destinatario (normalmente perché il dominio non esiste), invia un messaggio di errore alla casella del mittente.
    • Se il server mittente non riesce a contattare il server destinatario, mette il messaggio in attesa per poi riprovarci (l'intervallo di tempo tra un tentativo e l'altro, e il numero massimo di tentativi, sono impostazioni dell'MTA). In caso di mancato invio alla fine dei tentativi, invia alla casella mittente un messaggio di errore.
    • Se la casella del destinatario non esiste o non può ricevere il messaggio, l'MTA invia alla casella mittente un messaggio di errore. 
    Il messaggio di errore contiene le indicazioni dell'indirizzo destinatario e il motivo per cui non è stato possibile recapitare il messaggio originale.
     

    La sicurezza

    I rischi a cui la posta elettronica è esposta sono essenzialmente 3:
    • SPAM, cioè i messaggi pubblicitari indesiderati
    • Virus o malware in genere (generalmente come allegati)
    • Phishing, cioè il furto di dati riservati o credenziali
    In tutti questi 3 casi, la debolezza che sta alla base è il mancato controllo dell'indirizzo mittente: utilizzare un indirizzo non esistente o usarne uno altrui è banalissimo. Gli indirizzi destinatari, invece, sono raccolti sia in modo legale (attraverso dati pubblici, effetto inevitabile dell'utilizzo della proprio casella) che fraudolento (furti o raccolta ingannevole di dati); oppure possono essere indovinati sulla base di altri dati (per esempio, conoscendo nome e cognome di una persona, e per quale azienda lavora, si possono ricavare facilmente il nome utente ed il dominio).

    Metodologie di blocco di queste mail sono implementati sia a livello del server (con dei filtri a monte dell'arrivo nella casella) che nei client stessi. Normalmente i criteri utilizzati da questi filtri sono:
    • Provenienza da server che notoriamente spediscono questo tipo di messaggi
    • Presenza di parole chiave tipiche
    • Presenza di allegati di determinati tipi (archivi compressi oppure eseguibili)
    • Presenza di collegamenti fasulli (cioè l'indirizzo che si legge è diverso dalla destinazione effettiva)
    • Presenza di errori grammaticali o di traduzione
    Il problema è che questi filtri non sono infallibili: di fatto tirano ad indovinare sulla base delle loro impostazioni, che sono aggiornate continuamente ma sempre in ritardo rispetto alla presenza in rete di nuovi messaggi pericolosi. Quindi è normale che una piccola percentuale di messaggi validi vengano riconosciuti come pericolosi o indesiderati, ma anche che messaggi di questo tipo passino i filtri. Per questi motivi, normalmente i messaggi non vengono cancellati ma messi in un'area apposita della casella dove possono essere controllati dal proprietario.

    Da notare anche che, essendo i messaggi trasmessi in forma testuale (più gli allegati, che hanno comunque una codifica molto semplice), sono intercettabili e quindi leggibili in modo estremamente semplice. Di conseguenza, non dovrebbero mai contenere informazioni sensibili.


    La posta elettronica certificata

    In Italia è stato introdotto il sistema della posta elettronica certificata (PEC) che ha valore legale equivalente a quello della raccomandata con ricevuta di ritorno. La PEC altro non è che una posta elettronica a cui sono stati aggiunti una serie di verifiche e di comunicazioni aggiuntive.

    La prima attenzione da porre è che i gestori di PEC sono solo quelli autorizzati dalla Pubblica Amministrazione. Inoltre, per essere una comunicazione valida, il messaggio deve avere sia come mittente che come destinatario una casella PEC. Se uno o l'altro sono caselle normali, i messaggi sono equivalenti a messaggi normali e non hanno nessun valore legale, ma vengono comunque ricevuti.

    Le caratteristiche principali di una comunicazione valida sono:
    • Il mittente riceve conferma (o meno) dell'accettazione (da parte del proprio server), di presa in carico e di consegna (da parte del server del destinatario). Ai fini legali la conferma di lettura non viene considerata.
    • Tutti i messaggi, inclusi quelli di conferma e di errore, sono firmati digitalmente
    • I log dei server devono essere conservati per 30 mesi.

    Nessun commento:

    Posta un commento