Was ist StartTLS? Funktionsweise, Einsatz & Sicherheitsrisiken
Der Befehl StartTLS (auch bekannt als „Opportunistic TLS“) erweitert das Protokoll Transport Layer Security (TLS), um mithilfe des TLS-Protokolls die Kommunikation von Informationen zu verschlüsseln.
Wie funktioniert StartTLS?
Als Protokollerweiterung für TLS bietet StartTLS den großen Vorteil, dass die Verschlüsselung nicht die Kommunikation mit Clients behindert, die die Methode nicht unterstützen. Mit StartTLS gibt es also weitaus weniger Kompatibilitätsprobleme. Verweigert ein Server jedoch TLS, muss ein Mailprogramm (Client) wissen, wie mit den Daten verfahren werden soll. Ein weiterer Vorteil besteht in der beidseitigen Aushandlung der Verschlüsselung, wodurch bei einem Kommunikationsfehlschlag automatisierte Prozesse das Eingreifen des Admins bzw. Nutzers überflüssig machen.
Beim StartTLS-Verfahren startet eine Verbindung immer unverschlüsselt, und zwar auf dem Port, auf dem Klartext vorgesehen ist. Erst nach Ausführung des StartTLS-Befehls handelt das Protokoll mit dem Client die Verschlüsselung aus, dabei wird auch keine neue Verbindung hergestellt. Dank der StartTLS muss bei einem Fehler in der Kommunikation kein Portwechsel erfolgen und der Client kann einfach auf das vom E-Mail-Server bereitgestellte StartTLS-Verfahren zurückgreifen.

Beispiel: E-Mail
Eine E-Mail soll über das TLS-Verfahren verschlüsselt werden. Das Protokoll StartTLS wird gewählt, um die Verschlüsselungsmethode problemlos in den normalen Betrieb einzubinden. Die entsprechende Option finden Sie normalerweise in der Accountkonfiguration bzw. den Kontoeinstellungen Ihres E-Mail-Clients. Nach dem Senden der E-Mail startet die Kommunikation:
- Der Client sendet einen EHLO-Request, um die Verschlüsselungsmethoden zu erfragen.
- Der Mailserver antwortet mit „250-STARTTLS“ und teilt damit mit, dass er StartTLS akzeptiert.
- Der Client sendet „STARTTLS“, um die Verschlüsselung zu starten.
- Der Server antwortet mit dem Statuscode „220 OK“.
- Schreiben Sie perfekte E-Mails auf Wunsch mit KI-Funktionen
- Sicher: Schutz vor Viren und Spam
- Inklusive: eigene Domain
Einsatzgebiete von StartTLS
StartTLS kommt als Protokollerweiterung hauptsächlich bei der Kommunikation über E-Mail für die Protokolle SMTP, IMAP und POP zum Einsatz. HTTP verfügt über ein eigenes Verfahren (spezifiziert in RFC 2817), das StartTLS allerdings sehr ähnelt. Heutzutage ist der Einsatz von HTTPS (RFC 2818) aber üblicher. StartTLS kann außer bei den genannten E-Mail-Protokollen bei folgenden Protokollen zumindest den Verschlüsselungsprozess einleiten:
Bei Internet-Providern ist StartTLS mittlerweile das mit Abstand beliebteste E-Mail-Verschlüsselungsverfahren, weil es viele unterschiedliche Domains und Zertifikate auf einem Server ermöglicht. Dabei ist das Verfahren nicht unumstritten, weil einige private Details wie die IP-Adresse zunächst unverschlüsselt übertragen werden und Man-in-the-Middle-Angriffe möglich sind, indem StartTLS unbemerkt von Providerseite überschrieben werden kann.
Vorteile und Nachteile von StartTLS
Nachteile werden beim StartTLS-Verfahren in Hinblick auf Sicherheitssoftware erkennbar. Firewalls müssen das Verfahren auf Anwendungsschicht analysieren, um verschlüsselte von unverschlüsselten Daten zu unterscheiden. Ähnliches gilt für Proxys, die am liebsten mit Port-Unterscheidung arbeiten – bei StartTLS allerdings werden die Ports nicht gewechselt. Dadurch wird das entsprechende Caching erschwert oder gar nicht ausgeführt.
In Sachen Datenschutz ist StartTLS nicht unbedenklich. Die meisten E-Mail-Programme nutzen die Option „TLS wenn möglich“, wodurch die Nutzenden nicht mitbekommen, ob die Verbindung zum Mailserver verschlüsselt ist oder nicht. Ebenso erhöht sich die Gefahr einer Man-in-the-Middle-Attacke, indem der Netzwerkbetreiber die StartTLS-Erweiterung einfach herausfiltert und so die Möglichkeit bekommt, den Datenaustausch mitzuprotokollieren. Denn wird der StartTLS-Befehl nicht ausgeführt, werden die Daten unverschlüsselt kommuniziert – und der User bekommt davon in der Regel nichts mit.
Daher empfiehlt sich zunächst ein sorgfältiger Test, der sicherstellen soll, dass der Server auch tatsächlich StartTLS beherrscht. Erst dann sollte man das Verfahren standardmäßig einsetzen. Schlägt die verschlüsselte Kommunikation dabei fehl, muss ein externes Problem vorliegen.
Wie kann ich StartTLS testen?
TLS-Protokolle nutzen je nach Anbieter unterschiedliche Ports. Weil StartTLS aber einfach in die Verbindung eingebettet werden kann und dadurch ein Port-Switching unnötig wird, lässt sich das Verschlüsselungsverfahren einfach mit einer geeigneten Konsole testen. So wird ersichtlich, welchen Port der jeweilige Anbieter für StartTLS verwendet. Mit folgendem Befehl lässt sich (z. B. in Netcat) prüfen, ob ein Mailserver StartTLS als Verschlüsselungsmethode im normalen Betrieb akzeptiert:
$ nc smtp.ionos.de 587
220 kundenserver.de (mreue011) Nemesis ESMTP Service ready
ehlo test.local
250-kundenserver.de Hello test.local [80.187.86.70]
250-8BITMIME
250-SIZE 141557760
250 STARTTLS
STARTTLS
220 OK
bashHier sollte der Befehl „STARTTLS“ vorkommen, um die Verschlüsselung zu aktivieren. Sie können auch sehen, dass private Daten wie die IP-Adresse dabei unverschlüsselt übertragen werden.
Für OpenSSL sieht der Befehl folgendermaßen aus:
$ openssl s_client -starttls smtp -connect smtp.ionos.de:587
CONNECTED(00000005)
[…]
SSL handshake has read 4650 bytes and written 1659 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Protocol: TLSv1.3
Server public key is 3072 bit
This TLS version forbids renegotiation.
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
250 STARTTLS
bashBei SMTP wiederum gestaltet sich die Authentifizierung nicht so einfach. Abhilfe verschafft in den meisten Fällen das „AUTH PLAIN“-Verfahren, bei dem die Zugangsdaten in Base64 kodiert sein müssen. Dabei erstellt man mit dem Perl-Befehl $ perl -MMIME::Base64 -e 'print encode_base64("\000user-ju\000secret")
einen Code, den man anschließend an den SMTP-Server weitergibt (AUTH PLAIN [Code]
). Antwortet der Server anschließend mit Authentication succeeded
(samt Code), war der Test auf StartTLS erfolgreich. Daraufhin lassen sich weitere Mailkommandos ausführen.
Möchten Sie StartTLS auf Servern oder Protokollen testen, die nicht kompatibel zu OpenSSL sind, kann das Tool gnuts-cli (aus dem Paket gnuts-bin) Abhilfe schaffen.