StartTLS

Der Befehl StartTLS (auch bekannt als STARTSSL oder StartSSL, im Englischen „Opportunistic TLS“) erweitert das Protokoll Transport Layer Security (TLS), um mithilfe des TLS-Protokolls die Kommunikation von Informationen zu verschlüsseln. 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.

Sichern Sie sich Ihr SSL-Zertifikat
  • Verschlüsselt Webseiten-Kommunikation
  • Verhindert Sicherheits-Warnungen
  • Verbessert Google-Platzierung

Wie funktioniert StartTLS?

Als Zusatzbefehl für SSL/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 nicht der Port kontaktiert werden, der Client kann einfach auf das vom E-Mail-Server bereitgestellte StartTLS-Verfahren zurückgreifen.

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 der Nutzer nicht mitbekommt, 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 Nutzer 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.

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:

  1. Der Client fragt den Mailserver mit „250-STARTTLS“, ob die Verschlüsselungsmethode akzeptiert wird.
  2. Bei positiver Rückmeldung („go ahead“) erfolgt der Aufbau der verschlüsselten Verbindung.
  3. Der Client startet die Verbindung neu. Der E-Mail-Verkehr läuft jetzt verschlüsselt.

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.test.server smtp
220 Mailserver ESMTP Exim 4.69 Wed, 18 Jul 2018 12:19:15 +0200
ehlo test
250-Mailserver Hello einsundeins [10.1.2.73]
250-SIZE 78643200
250-PIPELINING
250-STARTTLS
220-go ahead
250 HELP
Quit
221 Mailserver closing connection

Hier 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 -host mail.test.server-port 25 -starttls smtp
CONNECTED(00000003)
[...]
250 HELP
ehlo test
250-Mailserver Hello einsundeins [10.1.2.73]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250 HELP

Bei 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.

Tipp

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.

War dieser Artikel hilfreich?
Page top