Grundsätzliches
- STARTTLS bezeichnet ein Verfahren zum Einleiten der Verschlüsselung einer Netzwerkkommunikation mittels Transport Layer Security (TLS).
- Falls keine zusätzlichen Schutzmaßnahmen gegen einen Downgrade-Angriff umgesetzt werden, handelt es sich dabei um eine opportunistische Verschlüsselung.
- STARTTLS stammt von 1999 und sollte damals verschlüsselte Übertragungen forcieren.
- Seit 2018 werden nur noch vollständig verschlüsselte Übertragungen empfohlen.
- Bei STARTTLS erfolgt der Verbindungsaufbau immer im Klartext und es gibt zudem keine Vorteile mehr gegenüber TLS.
- Darum wird generell die Einstellung „SSL/TLS“ in E-Mail-Clients empfohlen und somit von STARTTLS abgeraten.
Funktionsweise
- Der Client baut zunächst eine unverschlüsselte Netzwerkverbindung zum Server auf und verwendet dabei den für Klartextkommunikation vorgesehenen Port.
- Sofern der Server Unterstützung von STARTTLS signalisiert, sendet der Client den STARTTLS-Befehl.
- Die beiden Kommunikationspartner beginnen mit dem TLS-Handshake und handeln eine Verschlüsselung aus.
- Anschließend wird das Anwendungsprotokoll verschlüsselt fortgesetzt.
Unterscheidung zu TLS/SSL
- STARTTLS unterscheidet sich vom impliziten TLS, bei dem der TLS-Handshake bereits unmittelbar nach Verbindungsaufbau einsetzt
- Die Nutzung von TLS wird hierbei durch Verwendung eines dedizierten Ports impliziert, der ausschließlich für verschlüsselte Kommunikation verwendet wird.
- Bei STARTTLS wird hingegen explizit ausgehandelt, ob TLS genutzt werden soll.
- Der Hauptnachteil von STARTTLS ist, dass dieser Upgrade-Mechanismus gegen Man-in-the-Middle-Angriffe anfällig ist.
- Durch Manipulation der Klartextbefehle kann der Angreifer die TLS-Verschlüsselung verhindern.
- Zum Schutz vor einem solchen Downgrade-Angriff sind zusätzliche Maßnahmen erforderlich, beispielsweise DANE oder MTA-STS.
Bewertung
- In den folgenden Jahren nahm die Verbreitung von TLS weiter zu.
- Bei einer Neubewertung im Jahr 2018 bevorzugen die STARTTLS-Entwickler nunmehr implizites TLS.
- Von einer Klartextübertragung wird gänzlich abgeraten.
E-Mail
- STARTTLS ist seit 1999 als Erweiterung für das Simple Mail Transfer Protocol (SMTP) spezifiziert.
- Der Client beginnt die Verbindung mit dem aus Extended SMTP bekannten Schlüsselwort EHLO.
- Falls eine Unterstützung des Servers gegeben ist, listet er STARTTLS als Erweiterung auf.
- Dem Client steht es anschließend frei mittels des Schlüsselworts STARTTLS den TLS-Handshake einzuleiten.
- Das folgende Beispiel zeigt eine SMTP-Verbindung mit STARTTLS (Server blau, Client grün):
Trying 194.59.156.243...
Connected to ox.xinux.org.
Escape character is '^]'.
220 ox.xinux.org ESMTP Postfix
ehlo kali.secure.local
250-ox.xinux.org
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
STARTTLS
220 2.0.0 Ready to start TLS
Ports
| Protokoll (Port) |
Protokoll mit implizitem TLS (Port)
|
| SMTP (25 oder 587 ) |
SMTPS (465)
|
| IMAP (143) |
IMAPS (993)
|
| POP3 (110) |
POP3S (995)
|
| LDAP(389) |
LDAPS (636)
|
Unterschied
Quelle