So funktioniert’s
Ein Mailserver nennt nach dem EHLO des Gegenübers seine Fähigkeiten. Steht STARTTLS darunter, kann die Gegenseite mit dem Befehl STARTTLS einen TLS-Handshake anstoßen; danach läuft die restliche Sitzung verschlüsselt, samt Absender, Empfänger und Inhalt. Das gilt zwischen Mailservern auf Port 25, für Mailprogramme auf Port 587 und in gleicher Weise bei IMAP und POP3.
Zwischen Mailservern ist STARTTLS opportunistisch: Bietet der Empfänger es nicht an oder scheitert der Handshake, stellt der Absender üblicherweise unverschlüsselt zu. Das Zertifikat prüft er dabei meist nicht, denn ohne Vorgabe weiß er nicht, welcher Name gelten soll. Erst MTA-STS oder DANE machen TLS zur Pflicht und legen fest, welches Zertifikat gültig ist.
Für Mailprogramme gibt es mit Port 465 auch implizites TLS, bei dem die Verbindung von Anfang an verschlüsselt ist; RFC 8314 empfiehlt das für die Einlieferung. Zwischen Mailservern bleibt STARTTLS auf Port 25 der Standard.
Warum gefährlich
Weil die Ankündigung im Klartext kommt, kann ein Angreifer auf dem Netzweg die Zeile STARTTLS einfach aus der Antwort entfernen. Der Absender glaubt dann, der Empfänger könne kein TLS, und die Mail geht lesbar über die Leitung. Dieses STARTTLS-Stripping ist ohne MTA-STS oder DANE für den Absender nicht zu erkennen.
Bietet dein Mailserver gar kein STARTTLS an, etwa nach einem Update mit falscher Konfiguration, kommen alle eingehenden Mails unverschlüsselt bei dir an. Absender mit MTA-STS im Modus enforce oder mit DANE stellen dann überhaupt nicht mehr zu.
So vermeidest du es
- STARTTLS auf allen MX-Hosts aktivieren und ein gültiges Zertifikat einer öffentlichen CA hinterlegen, dessen Namen den MX-Hostnamen enthalten.
- Mindestens TLS 1.2 anbieten und TLS 1.0 sowie 1.1 abschalten.
- Für Mailprogramme Port 465 mit implizitem TLS oder 587 mit verpflichtendem STARTTLS anbieten und Anmeldungen ohne TLS sperren.
- MTA-STS oder DANE einrichten, damit Absender STARTTLS-Stripping bemerken und nicht im Klartext ausweichen.
- Nach Updates und Zertifikatswechseln prüfen, ob der Server STARTTLS weiterhin ankündigt.
So erkennt DomainWarn es
Der Check SMTP verbindet sich auf Port 25 mit bis zu fünf MX-Hosts, sendet EHLO, prüft, ob STARTTLS angeboten wird, und führt den Handshake durch; eine Mail liefert er dabei nie ein. Fehlt STARTTLS oder scheitert die Aushandlung, eröffnet DomainWarn den Incident „Mailserver ohne STARTTLS“. Fällt STARTTLS an einem Server weg, der es vorher anbot, kommt die kritische Änderungsmeldung „STARTTLS am Mailserver weggefallen“ hinzu. Der SMTP-Check läuft nur, wenn Port 25 für die Prüfserver freigeschaltet ist.
Für die Einlieferung kannst du den Check Zertifikat auf den Hostnamen des Mailservers mit Port 587 oder IMAP auf Port 143 richten; er baut die Verbindung dann per STARTTLS auf und prüft Zertifikat und Protokoll. STARTTLS-Stripping auf fremden Netzwegen kann DomainWarn nicht beobachten – dagegen helfen MTA-STS und DANE, deren Einrichtung die gleichnamigen Checks prüfen.
DomainWarn prüft das für alle deine Domains regelmäßig und meldet sich, wenn etwas fehlt oder sich ändert.