La risposta dipende in una certa misura da cosa intendi per "sicuro".
In primo luogo, il tuo riepilogo non cattura completamente la differenza tra SSL / TLS e STARTTLS.
- Con SSL / TLS, il client apre una connessione TCP alla "porta SSL" assegnata al protocollo dell'applicazione che desidera utilizzare e inizia immediatamente a parlare TLS.
- Con STARTTLS, il client apre una connessione TCP alla "porta in chiaro" associata al protocollo dell'applicazione che desidera utilizzare, quindi chiede al server "quali estensioni di protocollo supportate?". Il server risponde quindi con un elenco di estensioni. Se una di queste estensioni è "STARTTLS", il client può quindi dire "ok, usiamo TLS" e i due iniziano a parlare TLS.
Se il client è configurato per richiedere TLS, i due approcci sono più o meno ugualmente sicuri. Ma ci sono alcune sottigliezze su come STARTTLS deve essere usato per renderlo sicuro, ed è un po 'più difficile per l'implementazione di STARTTLS ottenere quei dettagli giusti.
D'altra parte, se il client è configurato per utilizzare TLS solo quando TLS è disponibile e utilizzare il testo in chiaro quando TLS non è disponibile, ciò che il client potrebbe fare è provare prima a connettersi alla porta SSL utilizzata dal protocollo, e se quello fallisce, quindi connettiti alla porta cleartext e prova a utilizzare STARTTLS, e infine torna a cleartext se TLS non è disponibile in entrambi i casi. È abbastanza facile per un attaccante far fallire la connessione alla porta SSL (bastano alcuni pacchetti TCP RST tempestivi o il blocco della porta SSL). È un po 'più difficile - ma solo un po' - per un attaccante sconfiggere la negoziazione STARTTLS e far sì che il traffico rimanga in chiaro. E poi l'attaccante non solo riesce a leggere la tua e-mail, ma acquisisce anche il tuo nome utente / password per un uso futuro.
Quindi la semplice risposta è se ti stai connettendo a un server che già conosci supporta TLS (come dovrebbe essere il caso quando invii o leggi e-mail), dovresti usare SSL / TLS. Se la connessione viene attaccata, il tentativo di connessione fallirà, ma la password e l'e-mail non verranno compromesse.
D'altra parte, se ti stai connettendo ad un servizio che non sai se supporta TLS, STARTTLS potrebbe essere leggermente migliore.
Quando è stato inventato STARTTLS, gli attacchi "passivi" di solo ascolto erano molto comuni, gli attacchi "attivi" in cui l'attaccante avrebbe iniettato il traffico per cercare di ridurre la sicurezza erano meno comuni. Negli ultimi 20 anni, gli attacchi attivi sono diventati più fattibili e più comuni.
Ad esempio, se stai cercando di utilizzare un laptop in un aeroporto o in qualche altro luogo pubblico e cerchi di leggere la tua posta tramite il wifi fornito lì, non hai idea di cosa stia facendo quella rete wifi con il tuo traffico. È molto comune per le reti wifi indirizzare determinati tipi di traffico verso "proxy" che si interpongono tra le applicazioni client e i server con cui stanno cercando di parlare. È banale per quei proxy disabilitare sia STARTTLS sia "provare una porta poi un'altra" nel tentativo di far tornare il client in chiaro. Sì, questo accade ed è solo un esempio di come il tuo traffico può essere spiato da una rete. E tali attacchi non si limitano alle agenzie di tre lettere supportate dallo stato,