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.

Nonostante abbia TLS nel nome, STARTTLS non significa che TLS verrà utilizzato. Sia SSL che TLS sono protocolli accettabili per proteggere la comunicazione.

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