C’è spesso una certa confusione sui diversi termini: SSL, TLS, STARTTLS e STLS.
SSL e TLS
SSL e TLS sono protocolli crittografici, entrambi forniscono un modo per crittografare il canale di comunicazione tra due macchine su Internet (ad esempio un computer client e un server). SSL sta per Secure Sockets Layer e la versione corrente è 3.0. TLS sta per Transport Layer Security e la versione corrente è 1.2. TLS è il successore di SSL., I termini SSL e TLS possono essere usati in modo intercambiabile, a meno che non ci si riferisca a una versione specifica del protocollo.
La numerazione delle versioni non è coerente tra SSL e TLSs. Quando TLS ha assunto SSL come nome del protocollo preferito, è iniziato con un nuovo numero di versione. L’ordinamento dei protocolli in termini di più vecchio al più recente è: SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2.
STARTTLS e STLS
STARTTLS è un comando di protocollo, che viene emesso da un client di posta elettronica. Indica che il client desidera aggiornare la connessione esistente non sicura a una connessione sicura utilizzando il protocollo crittografico SSL/TLS., Il nome del comando STARTTLS viene utilizzato dai protocolli SMTP e IMAP, mentre il protocollo POP3 utilizza STLS come nome del comando.
Testo chiaro/testo normale
Non viene utilizzato alcun protocollo di sicurezza. Tutti i comandi, le risposte e i dati vengono trasferiti in testo normale.
client.Connect("mail.example.com");
Implicare la modalità SSL
Implicare la modalità SSL significa che ci si connette alla porta crittografata SSL / TLS.,
client.ConnectSSL("mail.example.com");
Modalità SSL esplicita
La modalità SSL esplicita significa che ci si connette alla porta di testo e si protegge la connessione emettendo il comando STARTTLS (o STLS) in seguito (si protegge esplicitamente la connessione).
client.Connect("mail.example.com");client.StartTLS();
Protezione della connessione
Indipendentemente dal fatto che si utilizzi la modalità implict (connessione a una porta crittografata SSL / TLS) o explicit (utilizzo di STARTTLS per aggiornare una connessione esistente), entrambe le parti negozieranno quale protocollo e quale versione utilizzare., Questa negoziazione si basa su come client e server sono stati configurati e ciò che ogni lato supporta.
Supporto SSL / TLS
Il supporto per SSL/TLS è praticamente universale, tuttavia le versioni supportate sono variabili. Praticamente tutto supporta SSLv3. La maggior parte delle macchine supporta TLSv1. 0.
TLS vs STARTTLS naming problem
Un fattore di complicazione significativo è che alcuni software di posta elettronica usano erroneamente il termine TLS quando avrebbero dovuto usare “STARTTLS” o “explicit SSL / TLS”., Le versioni precedenti di Thunderbird usavano ” TLS “per significare” applicare l’uso di STARTTLS per aggiornare la connessione e fallire se STARTTLS non è supportato “e” TLS, se disponibile “per significare” utilizzare STARTTLS per aggiornare la connessione, se il server pubblicizza il supporto per esso, altrimenti usa solo una connessione non sicura” (molto problematico, come vedremo di seguito).
Numeri di porta
Per aggiungere sicurezza ad alcuni protocolli esistenti (IMAP, POP3, SMTP), è stato deciso di aggiungere solo la crittografia SSL/TLS come livello sotto il protocollo esistente., Tuttavia distinguere che il software dovrebbe parlare SSL/TLS versione del protocollo piuttosto che il testo e uno, un diverso numero di porta utilizzato per ogni protocollo:
Protocollo | testo Normale | SSL |
---|---|---|
IMAP | 143 | 993 |
POP3 | 110 | 995 |
SMTP | 587 o 25 | 465 |
troppe porte?, Soluzione: Testo normale + STARTTLS
Ad un certo punto, è stato deciso che avere 2 porte per ogni protocollo era dispendioso, e invece è meglio avere 1 porta, che inizia come testo normale, ma i client possono aggiornare la connessione a un SSL/TLS crittografato usando il comando STARTTLS (o STLS per il protocollo POP3).
Problemi STARTTLS
Ci sono stati alcuni problemi con questo. Esiste un sacco di software, che ha utilizzato i numeri di porta alternativi con connessioni SSL/TLS pure., Il software client può essere molto longevo, quindi non puoi semplicemente disabilitare le porte crittografate fino a quando tutto il software non è stato aggiornato.
Ogni protocollo ha ricevuto meccanismi per dire ai client che il server supportava l’aggiornamento a SSL / TLS (ad esempio STARTTLS nella CAPABILITY response di IMAP) e che non dovevano tentare di accedere senza eseguire l’aggiornamento STARTTLS (LOGINDISABLED nella CAPABILITY response di IMAP)., Questo ha creato due situazioni sfortunate:
- Alcuni software hanno semplicemente ignorato l’annuncio “login disabilitato fino all’aggiornamento” (LOGINDISABLED, STARTTLS) e hanno appena provato ad accedere comunque, inviando il nome di accesso e la password dell’utente su un canale di testo chiaro. Il server ha rifiutato il login e la password, ma i dettagli erano già stati inviati su Internet in testo normale.
- Altri software hanno visto l’annuncio “login disabilitato fino all’aggiornamento”, ma poi non avrebbero aggiornato automaticamente la connessione, e quindi riportato errori di accesso all’utente, che hanno causato confusione su ciò che era sbagliato.,
Entrambi questi problemi hanno portato a significativi problemi di compatibilità con i client esistenti, e quindi la maggior parte degli amministratori di sistema ha continuato a utilizzare solo connessioni di testo normale su una porta e connessioni crittografate su un numero di porta separato.
Disabilita il testo normale per IMAP e POP3
Molte aziende (ad esempio Gmail, Outlook.com) disabilitato plain IMAP (porta 143) e plain POP3 (porta 110), quindi le persone devono utilizzare una connessione crittografata SSL/TLS – questo elimina la necessità di avere completamente il comando STARTTLS.
SMTP STARTTLS rimane
L’unica vera eccezione a quanto sopra è SMTP., La maggior parte dei software di posta elettronica ha utilizzato SMTP sulla porta 25 per inviare messaggi al server di posta elettronica per la trasmissione successiva alla destinazione. Tuttavia SMTP è stato originariamente progettato per il trasferimento, non l’invio. Quindi è stata definita un’altra porta (587) per l’invio dei messaggi.
La porta 587 non richiede la richiesta di STARTTLS, tuttavia l’uso della porta 587 è diventato popolare nello stesso periodo in cui si è reso conto che la crittografia SSL / TLS delle comunicazioni tra client e server era un problema importante., Il risultato è che la maggior parte dei sistemi che offrono l’invio di messaggi sulla porta 587 richiede ai client di utilizzare STARTL per aggiornare la connessione. Login e password per l’autenticazione è anche richiesto.
C’è stato anche un ulteriore vantaggio per questo approccio. Allontanando gli utenti dall’utilizzo della porta 25 per l’invio di e-mail, gli ISP possono bloccare le connessioni della porta 25 in uscita dai computer degli utenti, che erano una fonte significativa di spam, a causa dei computer degli utenti infetti da virus di invio di spam.,
Ulteriori letture
Utilizzo di SSL / TLS con IMAP
Utilizzo di SSL / TLS con SMTP
Utilizzo di SSL / TLS con POP3
Tag: IMAP, POP3, SMTP, SSL, TLS