
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 banca, salute e finanza.
S/MIME è un metodo a lungo consolidato per inviare email crittografate e firmate, basato su standard pubblici di Internet. Ci imbattiamo regolarmente in requisiti per S/MIME, in particolare da industrie regolamentate come il settore bancario, sanitario e finanziario. S/MIME è spesso richiesto quando si comunica tra aziende e agenzie governative, ad esempio.
Un altro standard di posta sicura, PGP (chiamato scherzosamente “Pretty Good Privacy”), è utilizzato maggiormente per comunicazioni sicure da persona a persona. È meno popolare ora perché le versioni consumer dei client email web più popolari come Gmail e Outlook/Hotmail non sono in grado di visualizzare email crittografate. Questo è un motivo per cui molte comunicazioni da persona a persona che richiedono privacy si sono spostate su piattaforme come WhatsApp (e molte altre) che offrono crittografia end-to-end nativa.
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 rispondono ai requisiti, così come le versioni aziendali di alcuni client web come Microsoft Office 365. Configurare le chiavi richiede lavoro, ma molte organizzazioni lo considerano ancora utile, nonostante recenti rivelazioni di vulnerabilità che richiedono rimedi per bloccare il caricamento di contenuti remoti.
S/MIME è in giro dal 1995 e ha subito diverse revisioni; la versione attuale è coperta da RFC 5751. Richiede lo scambio di chiavi pubbliche, un compito non banale che spesso richiede il supporto di un team IT o una risorsa simile. Per le organizzazioni che gestiscono infrastrutture email internamente, implementare S/MIME richiede considerazioni aggiuntive per piattaforme come PowerMTA e Momentum, che trattiamo nella nostra guida a S/MIME per email sicure interni. Tuttavia, ci sono approcci automatizzati per semplificare questo processo, come raccogliere chiavi pubbliche dei destinatari tramite sistemi basati su email che possono semplificare la gestione delle chiavi per flussi di email generati da app. Questo è il punto in cui le soluzioni commerciali di aziende come i partner di SparkPost Virtru e Echoworkx entrano in gioco, rendendo la sicurezza più facile per la corrispondenza aziendale da persona a persona (vedi il nostro guida SparkPost/Echoworkx per maggiori informazioni).
Detto ciò, esaminiamo un po' più a fondo il semplice vecchio S/MIME e vediamo cosa possiamo fare con esso.
Perché dovrei preoccuparmi?
La versione breve:
La crittografia garantisce la privacy dei messaggi.
La firma fornisce l'autenticazione (del mittente), la non ripudiabilità dell'origine e i controlli di integrità del messaggio.
S/MIME funziona in modo diverso rispetto a 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 proteggere il trasporto dei messaggi dal server di invio al server di ricezione.
La parte "opportunistica" significa tuttavia che se il server di invio non riesce a negoziare una connessione sicura, invieremo l'email in testo semplice. Questo non è adatto se vuoi assicurarti che il messaggio sia sicuro per l'intero percorso. 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 server di posta (ecco perché si chiama Transport Layer Security). MIME (incluso S/MIME) si occupa del contenuto del messaggio e del suo trattamento, e può essere considerato parte del "livello di presentazione".
S/MIME protegge il contenuto del messaggio per l'intero percorso ("end to end") dall'origine del messaggio al client di posta del destinatario, includendo il corpo del messaggio.

S/MIME crittografa il corpo del messaggio con la chiave pubblica del destinatario. Il corpo del messaggio non può essere decodificato senza la chiave privata del destinatario—non da nessun "intermediario" come il tuo ISP, SparkPost, o il server di posta del destinatario.
La chiave privata non viene mai divulgata; è tenuta solitamente dal destinatario. Il messaggio criptato viaggia su Internet fino al server di posta in ricezione. Quando arriva nella casella del destinatario, viene decrittato (solitamente automaticamente) con la loro chiave privata e diventa leggibile.
Alcune insidie di S/MIME di cui essere a conoscenza:
S/MIME ha l'effetto collaterale di impedire la scansione dei messaggi in arrivo a livello server per malware perché il carico del messaggio è in forma crittografata e quindi non identificabile.
Nota che le intestazioni del messaggio (Da:, A:, Oggetto: ecc.) non sono crittografate, quindi il contenuto della linea dell'oggetto deve essere creato tenendone conto.
Firma – autenticazione
S/MIME fornisce anche al destinatario la capacità di verificare che l'identità del mittente del messaggio sia realmente quella dichiarata.
La posta elettronica del mittente ha un certificato allegato, che, proprio come il certificato di un sito web sicuro, può essere rintracciato fino a un'autorità di emissione. 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 si presenti così.

Non ripudiabilità
Un altro utile vantaggio della firma per il destinatario è la non ripudiabilità dell'origine. Considera una situazione in cui un messaggio email viene utilizzato per approvare un contratto. Il destinatario riceve il contratto in un messaggio dal mittente. Se in seguito il mittente tenta di dire, "No, non ti ho mai inviato quel messaggio", allora il messaggio ricevuto dimostra che il certificato del mittente è stato effettivamente utilizzato.
Integrità del messaggio
Il processo di firma crea un'impronta digitale del messaggio iniziale (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ò rilevare se il corpo del messaggio è stato alterato.
Forse potresti dire, "Pensavo che DKIM fornisse controlli di integrità dei messaggi!" Beh sì, DKIM fornisce controlli di integrità del corpo del messaggio e delle intestazioni del messaggio – garanzie anti-manomissione. Tuttavia, il fallimento di DKIM (o la sua assenza) non di solito causa l'identificazione del messaggio in arrivo come completamente invalido, ...a meno che non sia in atto una policy DMARC di `p=reject` (maggiori informazioni su DMARC qui). DKIM è uno dei molti fattori utilizzati dall'ISP per l'assegnazione affidabile della reputazione a un dominio ed è, naturalmente, una parte essenziale del tuo stack di messaggistica.
Il tuo client di posta ti mostrerà in modo evidente se un messaggio S/MIME non supera i controlli di firma:

Riepilogo: end-to-end (S/MIME) vs server-to-server (DKIM, DMARC, TLS)
S/MIME è una funzionalità del 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 completo di invio (parte locale e parte dominio), quindi, per esempio, alice@bigcorp.com e bob@bigcorp.com dovrebbero avere certificati diversi. Al contrario, DKIM convalida che l'email provenga dal dominio di firma. DKIM è un argomento a sé stante; questo articolo è un buon punto di partenza.
La configurazione di DKIM e DMARC viene gestita dal tuo amministratore email (lavorando sul server di posta e sui record DNS). Una volta configurati, sono attivi per i domini, piuttosto che per singoli utenti.
Come si relaziona questo a SparkPost?
Quali client supportano S/MIME?
Consumer Gmail
Il normale client web di Gmail visualizza le firme delle mail in arrivo (vedi sotto), ma non è configurato per contenere la tua chiave privata per leggere i messaggi criptati. Anche se fosse possibile tramite plugin di terze parti, caricare la tua chiave privata non è una buona idea dal punto di vista della sicurezza.

Non sono riuscito a far decodificare le firme nelle mail da Yahoo! Mail.
La versione consumer degli account Microsoft Outlook/Hotmail ti avvisa della presenza di una firma S/MIME, ma non ti dà accesso completo per visualizzare o controllare il certificato.

Mail aziendale ospitata
Per le organizzazioni con mail ospitate, Microsoft Office 365 e G Suite Enterprise hanno supporto S/MIME.
Client di posta Outlook
Microsoft Outlook basato su client (es. 2010 per Windows) funziona:

Cliccando sulle icone ottieni più informazioni:


Su Outlook 2010 / Windows, l'archivio dei certificati è accessibile tramite File / Opzioni / Centro di Fiducia / Impostazioni del Centro di Fiducia / Sicurezza Email / Importa / Esporta.

Thunderbird – multipiattaforma e gratuito
Se stai cercando un client gratuito, Mozilla Thunderbird fa al caso tuo. È disponibile su PC, Mac e Linux, e supporta S/MIME su tutti questi. Ecco come appare un messaggio su Mac. L'icona della "busta sigillata" indica che il messaggio è firmato, e il lucchetto indica che è stato criptato.

Cliccando sulla busta/lucchetto si visualizzano informazioni sul messaggio:

Thunderbird ha il suo proprio archivio 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 affida al portachiavi del Mac per conservare le tue chiavi.

iOS Mail
Prima, importa il certificato del tuo account email così, quindi puoi visualizzare email firmate e criptate S/MIME. Non sembrano veramente diverse sullo schermo di visualizzazione.



Android
Alcuni dispositivi e app supportano S/MIME; c'è molta varietà là fuori. Samsung ha una guida.
Finalmente…
Ecco la nostra rapida panoramica degli usi pratici di S/MIME. Se vuoi ottenere i tuoi certificati di posta, c'è un elenco di fornitori qui. Ho trovato che Comodo 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 disponibili qui e qui.