S/MIME è un metodo consolidato per inviare email criptate e firmate, basato su standard pubblici di Internet. Ci imbattiamo regolarmente in requisiti per S/MIME, in particolare da settori regolamentati come quello bancario, sanitario e finanziario. S/MIME è spesso richiesto quando si comunica tra imprese e agenzie governative, ad esempio.
Un altro standard di posta sicura, PGP (divertentemente nominato “Pretty Good Privacy”), è utilizzato principalmente per comunicazioni secure tra persone. È meno popolare ora perché le versioni consumer dei client email web come Gmail e Outlook/Hotmail non possono visualizzare email criptate. Questa è una delle ragioni per cui gran parte della comunicazione tra persone che richiede privacy è passata a piattaforme come WhatsApp (e molte altre) che offrono una crittografia nativa end-to-end.
Sia PGP che S/MIME richiedono un client di posta che possa utilizzare chiavi e certificati. Molti client desktop e mobili, inclusi Apple Mail, Microsoft Outlook, e Mozilla Thunderbird soddisfano questi requisiti, così come le versioni aziendali di alcuni client web come Microsoft Office 365. Impostare le chiavi richiede lavoro, ma molte organizzazioni lo considerano comunque utile, nonostante recenti rivelazioni di vulnerabilità che richiedono rimedi per bloccare il caricamento di contenuti remoti.
S/MIME esiste dal 1995 e ha subito diverse revisioni; l'attuale versione è coperta da RFC 5751. Richiede lo scambio di chiavi pubbliche, un compito non banale che spesso richiede il supporto di un team IT o risorse similari. È qui che le soluzioni commerciali di aziende come i partner di SparkPost Virtru e Echoworkx entrano in gioco, rendendo la sicurezza più semplice per la posta aziendale da persona a persona (vedi il nostro come fare SparkPost/Echoworkx per ulteriori informazioni).
Detto ciò, approfondiamo un po' di più il semplice S/MIME e vediamo cosa possiamo fare con esso.
Perché dovrei interessarmi?
La versione breve:
La crittografia ti offre privacy nei messaggi.
La firma ti offre autenticazione (del mittente), non ripudio dell'origine e controlli di integrità del messaggio.
S/MIME funziona in modo diverso da DKIM e DMARC e può coesistere con essi.
Privacy
Se i tuoi messaggi non contengono nulla di personale, privato o legalmente importante, probabilmente non avrai bisogno di pensare a S/MIME. I moderni sistemi di consegna email come SparkPost utilizzano già “TLS opportunistico” per assicurare il trasporto del messaggio dal server di invio a quello di ricezione.
Il fatto che sia “opportunistico” significa però che se il server di invio non riesce a negoziare una connessione sicura, invieremo l'email in testo semplice. Questo non è adatto se desideri forzare che il messaggio sia sicuro fino in fondo. Puoi dare un’occhiata a quali provider di caselle di posta affermano di supportare TLS e quali lo fanno effettivamente. Supponendo che il server del destinatario supporti TLS, il tuo messaggio è protetto in questo modo:
TLS protegge le conversazioni tra i server di posta (ed è per questo che si chiama Transport Layer Security). MIME (incluso S/MIME) si occupa del contenuto dei messaggi e del loro trattamento, e può essere considerato parte del “livello di presentazione”.
S/MIME protegge il contenuto del messaggio fino in fondo (“end to end”) dall'origine del messaggio al client di posta del destinatario, incapsulando il corpo del messaggio.
S/MIME cripta il corpo del messaggio con la chiave pubblica del destinatario. Il corpo non può essere decifrato senza la chiave privata del destinatario—non da nessuna “persona in mezzo” come il tuo ISP, SparkPost o il server di posta del destinatario.
La chiave privata non viene mai divulgata; è mantenuta in esclusiva dal destinatario. Il messaggio criptato viaggia su Internet verso il server di posta ricevente. Quando arriva nella casella di posta del destinatario, viene (di solito automaticamente) decriptato con la loro chiave privata e diventa leggibile.
Alcuni aspetti di S/MIME di cui essere a conoscenza:
S/MIME ha l'effetto collaterale di prevenire la scansione dei messaggi in arrivo da malware da parte dei server, poiché il payload del messaggio è in forma crittografata e quindi non identificabile.
Nota che le intestazioni del messaggio (Da:, A:, Oggetto: ecc.) non sono criptate, quindi il contenuto della riga dell'oggetto deve essere creato tenendo conto di ciò.
Firma – autenticazione
S/MIME offre anche al destinatario la possibilità di verificare che l'identità del mittente del messaggio sia chi dice di essere.
All'email del mittente è allegato un certificato che, piuttosto come il certificato su un sito web sicuro, può essere ricondotto a un'autorità emittente. C'è una descrizione completa del processo di firma qui.
Adotteremo l'approccio di firmare prima l'email, e poi criptarla, in modo che il processo appaia così.
Non ripudio
Un altro utile vantaggio della firma per il destinatario è il non ripudio dell'origine. Considera una situazione in cui un'email viene utilizzata per approvare un contratto. Il destinatario riceve il contratto in un messaggio dal mittente. Se il mittente in seguito cerca di dire: “No, non ti ho mai inviato quel messaggio”, allora il messaggio ricevuto mostra che il certificato del mittente è stato in effetti utilizzato.
Integrità del messaggio
Il processo di firma crea un'impronta del messaggio sorgente in chiaro (nota come digest del messaggio), cripta il digest usando la chiave privata del mittente, e lo include nel messaggio consegnato. Il client di posta del destinatario può verificare se il corpo del messaggio è stato manomesso.
Forse potresti dire: “Pensavo che DKIM mi desse controlli di integrità del messaggio!” Bene sì, DKIM fornisce controlli di integrità del corpo del messaggio e delle intestazioni del messaggio – garanzie anti-manomissione. Tuttavia, il fallimento (o l'assenza) di DKIM non causerà di solito che il messaggio in arrivo venga contrassegnato come completamente non valido, ...a meno che una politica DMARC di `p=reject` non sia in atto (maggiori informazioni su DMARC qui). DKIM è uno dei tanti fattori utilizzati dall'ISP per l'assegnazione affidabile di reputazione a un dominio ed è, chiaramente, una parte essenziale del tuo stack di messaggistica.
Riepilogo: da end-to-end (S/MIME) a server-to-server (DKIM, DMARC, TLS)
S/MIME è una capacità di livello di presentazione che può funzionare tra due utenti finali email (con certificati/chiavi validi) senza alcuna azione da parte dell'amministratore email. S/MIME fornisce crittografia e firma ed è personale per ciascun utente.
S/MIME è legato all'indirizzo di invio completo (parte locale e parte dominio), quindi, ad esempio, alice@bigcorp.com e bob@bigcorp.com avrebbero bisogno di avere certificati diversi. Al contrario, DKIM verifica che l'email provenga dal dominio di firma. DKIM è un argomento a sé; questo articolo è un buon punto di partenza.
La configurazione di DKIM e DMARC è effettuata dal tuo amministratore email (lavorando sul server di posta e sui record DNS). Una volta impostati, sono attivi per domini, piuttosto che per singoli utenti.
Come si collega a SparkPost?
I sistemi di posta per la messaggistica tra persone, come Microsoft Exchange Server, hanno a lungo supportato S/MIME.
Se stai utilizzando SparkPost per inviare a destinatari specifici con client email in grado di leggere S/MIME, allora potrebbe avere senso firmare i tuoi messaggi con S/MIME. La firma S/MIME aggiunge ulteriore assicura che il messaggio provenga effettivamente da te (o dal tuo sistema), e non è stato manomesso, il che può essere prezioso in alcune situazioni. Tutto ciò di cui hai bisogno è la tua chiave e un po' di software gratuito che dimostreremo nella parte 2 di questo articolo.
Utilizzare la crittografia S/MIME è una scelta separata da fare. Avrai bisogno della chiave pubblica per ognuno dei tuoi destinatari. Ottenerla potrebbe essere semplice come chiedere loro di inviarti (o alla tua app) un'email firmata. Esploreremo uno strumento pratico per inviare email firmate e criptate S/MIME tramite SparkPost in un post successivo.
Quali client supportano S/MIME?
Gmail consumer
Il normale client web di Gmail visualizza le firme delle email in arrivo (vedi sotto), ma non è configurato per conservare la tua chiave privata per leggere messaggi criptati. Anche se ciò fosse possibile tramite plugin di terze parti, caricare la tua chiave privata non è una grande idea dal punto di vista della sicurezza.
Non sono riuscito a far decifrare le firme nei messaggi nemmeno su Yahoo! Mail.
Le versioni consumer di Microsoft Outlook/Hotmail ti avvertono della presenza di una firma S/MIME, ma non ti danno accesso completo per visualizzare o controllare il certificato.
Posta aziendale ospitata
Per le organizzazioni con posta ospitata, Microsoft Office 365 e G Suite Enterprise hanno supporto per S/MIME.
Client di posta Outlook
Il Microsoft Outlook basato su client (es. 2010 per Windows) funziona:
Cliccare sulle icone ti fornisce maggiori informazioni:
In Outlook 2010 / Windows, il negozio dei certificati viene accesso tramite File / Opzioni / Centro di protezione / Impostazioni del Centro di protezione / Sicurezza email / Importa / Esporta.
Thunderbird – multipiattaforma e gratuito
Se stai cercando un client gratuito, Mozilla Thunderbird è la soluzione giusta. È disponibile su PC, Mac e Linux e supporta S/MIME su tutte queste piattaforme. Ecco come appare un messaggio su Mac. L'icona della “busta sigillata” indica che il messaggio è stato firmato, e il lucchetto indica che è stato criptato.
Cliccare sulla busta/l'uccello mostra informazioni sul messaggio:
Thunderbird ha il proprio negozio di chiavi, accessibile in modi simili su ciascuna piattaforma:
Mac tramite Preferenze / Avanzate / Certificati / Gestisci certificati
PC: menu (“hamburger” in alto a destra), Avanzate / Certificati / Gestisci certificati
Linux: menu (“hamburger” in alto a destra), Preferenze / Avanzate / Gestisci certificati
Mac Mail
Mac Mail supporta anche S/MIME. Si basa sulla tua chiave di sistema per mantenere le tue chiavi.
Mail iOS
Per prima cosa, importa il certificato del tuo account email in questo modo, poi puoi visualizzare email firmate e criptate S/MIME. Non sembrano nemmeno così diversi sullo schermo di visualizzazione.
Android
Alcuni dispositivi e app supportano S/MIME; c'è molta varietà. Samsung ha una guida.
Infine…
Questa è una rapida panoramica dei casi pratici di S/MIME. Se desideri ottenere i tuoi certificati email, c'è un elenco di fornitori qui. Ho trovato Comodo che funziona bene (gratuito per uso non commerciale – aprilo in Firefox, non in Chrome).
Nella parte 2, esploreremo come applicare la firma e la crittografia S/MIME ai messaggi che invii tramite SparkPost.
Ulteriori letture
Microsoft ha un buon articolo introduttivo su S/MIME qui.
Per maggiori informazioni sulla vulnerabilità EFAIL e su come è stata affrontata, questo è il sito definitivo. Altre spiegazioni facili da seguire sono qui e qui.