Die Antwort hängt bis zu einem gewissen Grad davon ab, was Sie mit "sicher" meinen.
Erstens erfasst Ihre Zusammenfassung den Unterschied zwischen SSL / TLS und STARTTLS nicht ganz.
- Mit SSL / TLS öffnet der Client eine TCP-Verbindung zu dem "SSL-Port", der dem Anwendungsprotokoll zugewiesen ist, das er verwenden möchte, und beginnt sofort mit dem Sprechen von TLS.
- Mit STARTTLS öffnet der Client eine TCP-Verbindung zu dem "Klartext-Port", der dem zu verwendenden Anwendungsprotokoll zugeordnet ist, und fragt den Server "Welche Protokollerweiterungen unterstützen Sie?". Der Server antwortet dann mit einer Liste von Erweiterungen. Wenn eine dieser Erweiterungen "STARTTLS" ist, kann der Client "Okay, lass uns TLS verwenden" sagen und die beiden beginnen TLS zu sprechen.
Wenn der Client so konfiguriert ist, dass TLS erforderlich ist, sind die beiden Ansätze mehr oder weniger gleichermaßen sicher. Es gibt jedoch einige Feinheiten, wie STARTTLS verwendet werden muss, um die Sicherheit zu gewährleisten, und es ist für die STARTTLS-Implementierung etwas schwieriger, diese Details richtig zu machen.
Wenn der Client dagegen so konfiguriert ist, dass TLS nur verwendet wird, wenn TLS verfügbar ist, und wenn TLS nicht verfügbar ist, muss der Client zunächst versuchen, eine Verbindung zum vom Protokoll verwendeten SSL-Port herzustellen, und wenn dies der Fall ist schlägt fehl, stellen Sie eine Verbindung zum Klartext-Port her, und versuchen Sie, STARTTLS zu verwenden, und greifen Sie schließlich auf Klartext zurück, wenn TLS in beiden Fällen nicht verfügbar ist. Für einen Angreifer ist es ziemlich einfach, die SSL-Port-Verbindung zum Scheitern zu bringen (es sind lediglich einige zeitlich gut abgestimmte TCP-RST-Pakete oder das Blockieren des SSL-Ports erforderlich). Für einen Angreifer ist es etwas schwieriger, die STARTTLS-Aushandlung zu vereiteln und den Datenverkehr im Klartext zu halten. Und dann kann der Angreifer nicht nur Ihre E-Mail lesen, sondern auch Ihren Benutzernamen / Ihr Kennwort für die zukünftige Verwendung erfassen.
Wenn Sie also eine Verbindung zu einem Server herstellen, von dem Sie bereits wissen, dass er TLS unterstützt (wie dies beim Senden oder Lesen von E-Mails der Fall sein sollte), sollten Sie SSL / TLS verwenden. Wenn die Verbindung angegriffen wird, schlägt der Verbindungsversuch fehl, aber Ihr Kennwort und Ihre E-Mail-Adresse werden nicht gefährdet.
Wenn Sie jedoch eine Verbindung zu einem Dienst herstellen, von dem Sie nicht wissen, ob er TLS unterstützt, ist STARTTLS möglicherweise geringfügig besser.
Als STARTTLS erfunden wurde, waren "passive" Angriffe nur zum Abhören sehr verbreitet, "aktive" Angriffe, bei denen der Angreifer Datenverkehr injizierte, um die Sicherheit zu verringern, waren weniger verbreitet. In den rund 20 Jahren seitdem sind aktive Angriffe praktikabler und häufiger geworden.
Wenn Sie beispielsweise versuchen, einen Laptop an einem Flughafen oder an einem anderen öffentlichen Ort zu verwenden und Ihre E-Mails über das dort bereitgestellte WLAN zu lesen, wissen Sie nicht, wie sich das WLAN-Netzwerk auf Ihren Datenverkehr auswirkt. In WLAN-Netzwerken werden bestimmte Arten von Datenverkehr häufig an "Proxys" weitergeleitet, die sich zwischen Ihren Client-Anwendungen und den Servern befinden, mit denen sie kommunizieren möchten. Für diese Proxys ist es trivial, STARTTLS zu deaktivieren und "einen Port nach dem anderen zu testen", um Ihren Client dazu zu bringen, auf Klartext zurückzugreifen. Ja, das passiert und ist nur ein Beispiel dafür, wie Ihr Datenverkehr von einem Netzwerk ausspioniert werden kann. Und solche Angriffe sind nicht auf staatlich unterstützte Drei-Buchstaben-Agenturen beschränkt.