Cos'è StartTLS?
Pubblicato: 2020-03-21Vi siete mai chiesti come viene inviata la posta elettronica in modo sicuro da un server all'altro? Quando utilizziamo il Simple Mail Transfer Protocol (SMTP) per inviare la posta, ci affidiamo a una combinazione di StartTLS e Transport Layer Security (TLS) o Secure Sockets Layer (SSL) per crittografare la nostra posta e aiutarla ad arrivare in sicurezza nella posta in arrivo.
Ma cos'è StartTLS?
StartTLS è un comando di protocollo utilizzato per informare il server di posta elettronica che il client di posta elettronica desidera eseguire l'aggiornamento da una connessione non sicura a una sicura utilizzando TLS o SSL. StartTLS viene utilizzato con SMTP e IMAP, mentre POP3 utilizza il comando leggermente diverso per la crittografia, STLS.
Esamineremo le differenze tra TLS e SSL, il processo StartTLS e come testare StartTLS per il tuo programma.
Come funziona StartTLS?
TLS contro SSL
Anche se "TLS" è nel suo nome, StartTLS funziona con entrambi i protocolli di crittografia, TLS e SSL.
Sebbene StartTLS funzioni con entrambi i protocolli, consigliamo di utilizzare TLS su SSL. SSL è un protocollo più vecchio e non è sicuro come il suo successore, TLS. SSLv2 e SSLv3 sono stati entrambi deprecati.
Per riferimento, ecco un elenco di protocolli SSL e TLS dal più vecchio al più recente:
SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
Sia il client di posta elettronica che il server di posta elettronica devono concordare quale connessione utilizzare. Il client di posta elettronica può supportare TLSv1.3, ma il server di posta elettronica può supportare solo fino a TLSv1.2. Ciò significa che entrambe le parti dovranno utilizzare TLSv1.2 per procedere con la crittografia.
Per ulteriori informazioni su TLS e SSL, consulta la nostra pagina dei documenti .
Il processo StartTLS
SMTP si avvia sempre non crittografato. Il comando StartTLS avvia la negoziazione tra server e client. Ecco uno schema della comunicazione che avviene tra il client di posta elettronica e il server di posta elettronica.
- Il processo inizia con l'handshake TCP (Transmission Control Protocol) per aiutare sia il client di posta elettronica che il server a identificarsi reciprocamente.
- Il server identifica con 220 Ready che il client di posta elettronica può procedere con la comunicazione.
- Il client invia al server "EHLO" per informare il server che il client desidera utilizzare Extended SMTP (la versione più avanzata di SMTP che consente di includere immagini, allegati, ecc.).
- Il client invia "250-STARTTLS" al server di posta per chiedere se StartTLS è accettato o meno.
- Se il server restituisce "vai avanti", è possibile creare la connessione StartTLS.
- Il client riavvia la connessione e il messaggio di posta elettronica è stato crittografato.
Ecco una rappresentazione visiva del processo StartTLS.
Quale porta dovresti usare?
La porta che utilizza StartTLS più spesso è la porta 587. Spesso richiede ai client di posta elettronica di utilizzare StartTLS per inviare la posta. Altre porte utilizzate per inviare posta crittografata sono 25, 465 e 2525. Poiché la porta 25 è stata progettata per il trasferimento della posta, non per l'invio, il tuo ISP potrebbe bloccare la posta elettronica inviata tramite questa porta. La porta 465 è la seconda porta più comunemente utilizzata per StartTLS.
TLS opportunistico e forzato
Esistono un paio di modi diversi per impostare il programma di crittografia della posta elettronica utilizzando Opportunistic TLS o Enforced TLS:
Il TLS opportunistico (o TLS esplicito) consente al client di posta elettronica di fornire il livello di crittografia più elevato accettato dal server destinatario. Se il server destinatario non accetta TLS, il client di posta elettronica negozierà con il server e accetterà di eseguire il downgrade a una connessione non crittografata. Il messaggio verrà quindi inviato in un formato di testo normale non crittografato. Questo metodo è utile perché puoi utilizzare la stessa porta sia per la posta crittografata che per quella di testo normale.
Il TLS forzato (o TLS implicito) richiede che la posta venga inviata tramite una connessione protetta. Se la connessione non è crittografata, l'invio della posta verrà bloccato. Questo metodo è molto più sicuro di TLS opportunistico, ma comporta l'eliminazione di più posta.
Entrambi gli approcci sono ampiamente utilizzati nel mondo della posta elettronica, quindi considera ciò che ha più senso per il tuo programma. Se invii e-mail che contengono informazioni personali sensibili, potrebbe essere meglio utilizzare il TLS forzato. D'altra parte, se stai inviando materiale non sensibile, come marketing o promozioni, potresti essere più propenso a utilizzare TLS opportunistico.
Altri casi d'uso TLS
TLS viene spesso utilizzato per crittografare una varietà di metodi di comunicazione al di fuori della posta elettronica. Poiché TLS è un protocollo relativamente semplice e multifase, lo rende facile da adattare a una varietà di tipi di comunicazione. Ciò include browser Web, SMS e Voice over IP. In effetti, molte aziende utilizzano TLS per crittografare tutte le comunicazioni tra i loro server Web e browser, anche se la maggior parte delle comunicazioni non è materiale sensibile.
Per ulteriori informazioni su come Twilio utilizza TLS, consulta la pagina Sicurezza di Twilio .
Perché StartTLS è importante?
SMTP non è protetto per impostazione predefinita, il che significa che se dovessi inviare e-mail tramite SMTP senza StartTLS, l'e-mail potrebbe essere intercettata e facilmente interpretata. Ciò è particolarmente preoccupante quando si inviano informazioni personali sensibili come nomi utente, password o informazioni bancarie.
Senza StartTLS, le tue informazioni personali rischiano di essere rubate.
Quando un client di posta elettronica utilizza StartTLS, informa il server che il contenuto deve essere crittografato. In questo modo, se la posta viene intercettata, il contenuto è stato criptato ed è molto difficile da decifrare. Il server di posta elettronica e il client di posta elettronica sono gli unici che detengono la chiave per decodificare il messaggio.
Svantaggi
Ci sono alcuni svantaggi nell'utilizzo di StartTLS. I client di posta elettronica sono suscettibili agli attacchi man-in-the-middle perché, nella connessione iniziale tra client di posta elettronica e server, gli indirizzi IP non sono crittografati.
L'uso di StartTLS potrebbe anche aggiungere una certa latenza alla connessione SMTP. Questo non sarebbe un ritardo sufficiente per rendere necessario l'invio di e-mail non crittografate, ma è bene tenerlo a mente.
Come faccio a testare StartTLS?
È importante eseguire un test in anticipo per assicurarsi che il server sia in grado di elaborare StartTLS. Se non è in grado di elaborare StartTLS potresti inviare accidentalmente una discreta quantità di email non crittografate e, quindi, suscettibili di vettori di attacco.
Ecco un esempio di come testare StartTLS dal server SMTP di SendGrid.
In che modo Twilio SendGrid utilizza StartTLS?
Twilio SendGrid supporta TLS v1.1 e versioni successive. Le connessioni non crittografate e TLS sono accettate sulle porte 25, 587 e 2525. Oppure puoi connetterti tramite SSL sulla porta 465.
Seguiamo Opportunistic TLS e inviamo al livello di crittografia più alto accettato dal server destinatario. Offriamo anche TLS forzato . È una tua scelta se richiedere o meno che la tua e-mail venga inviata tramite una connessione crittografata. Se il server destinatario non accetta messaggi crittografati, il messaggio viene eliminato e inviamo un evento di blocco.
Interagiresti principalmente con StartTLS quando avvii la richiesta SMTP a Twilio SendGrid, chiedendo di inviare posta. In caso contrario, Twilio SendGrid gestisce la corrispondenza dei certificati TLS, il resto del processo di crittografia e qualsiasi problema che potrebbe sorgere lungo il percorso.
Per ulteriori informazioni su Twilio SendGrid e SMTP, vai al nostro articolo di documentazione, Come inviare un'e-mail SMTP .