MTA-STS

MTA-STS ist eine Methode, mit der anhand einer unabhängig vom SMTP definierten Policy zum einen die Maildomain mit den zuständigen Mailservern verknüpft wird (Verifizierung der MX-Records)  und zum zweiten TLS-Regeln aufgestellt werden, anhand derer zB die Verwendung von TLS erzwungen werden kann.

Ein man-in-the-middle-Angriff kann mit herkömmlichen Methoden nicht abgefangen werden. Das SMTP-Protokoll handelt mit Klartext-Anweisungen (STARTTLS) die Verschlüsselung aus. Ein man-in-the-middle kann diese unterdrücken und so die Mailübertragung im Klartext erzwingen. Dies funktioniert, weil praktisch alle Mailsysteme weltweit als Fallback den unverschlüsselten Mailaustausch anbieten, um auch mit Legacy-Systemen kommunizieren zu können. Eine Verweigerung des Empfangs oder Sendens von Klartext lässt sich derzeit nur erreichen, in dem jeder Beteiligte manuell gepflegte Listen von Mailpartner-Domains konfiguriert, für die TLS erzwungen werden soll.

Mit MTA-STS wird nun auf einer Website der empfangenden Domain eine Policy hinterlegt, auf welchen MX-Hosts man Mails empfangen möchte und ob die Verschlüsselung zwingend notwendig ist oder nicht. Der sendende Mailserver kann diese per HTTPS erlangten Daten mit den DNS-MX-Records vergleichen und so einen man-in-the-middle-Versuch erkennen. DNSSEC ist bei der Policy-Abfrage zwingend notwendig, damit der Angreifer diese Policy nicht fälschen kann. Ein Problem entsteht aber dann, wenn die Domains der MX-Hosts aus der Policy wiederum nicht DNSSEC-geschützt sind. Denn dann könnte ein Angreifer bei Kenntnis der Policy dem sendenden Server gefälschte DNS-Antworten mit seinen eigenen Mailservern als Ziel unterjubeln. Als zweites kann der sendende Mailserver die TLS-Policy beachten und ausschließlich verschlüsselten Versand der Mails zulassen.

Voraussetzung hierfür ist, dass der sendende Mailserver MTA-STS unterstützt und für die Empfänger-Maildomain eine entsprechende Policy veröffentlicht wurde. Der DFN-MailSupport unterstützt derzeit das veröffentlichen einer Policy, der Mailer ist allerdings nicht in der Lage, einen MTA-STS-Check durchzuführen. Konkret: der Empfang von Mails kann per MTA-STS unterstützt werden, das Versenden von Mails jedoch nicht.

Da die MTA-STS-Spezifikation jedoch vorsieht, dass zuerst DANE überprüft werden muss, und MTA-STS nur zum Einsatz kommen soll, falls DANE fehlschlägt, empfehlen wir, MTA-STS zu überspringen und sich darauf zu konzentrieren, DNSSEC in der eigenen Maildomain zu implementieren.

1. Beschreibung des Verfahrens

Verhalten des Senders:

  • Wenn die empfangende Domain, hier uni-beispiel.de, DANE unterstützt, dann kein MTA-STS durchführen sondern DANE.

  • Abfragen eines TXT-Records der empfangenden Domain, z.B. _mta-sts.uni-beispiel.de TXT „v=STSv1; id=20190326T143500“
    Die id dient als Policy-Versionskontrolle.

  • Pflegen des Policy-Caches: Verwerfen einer abgelaufenden Policy und Download der Policy von https://mta-sts.uni-beispiel.de/.well-known/mta-sts.txt.

  • Abgleich der MX-Records der empfangenden Domain mit den in der Policy genannten MX-Hosts.

  • Kontaktaufnahme mit den erlaubten MX-Hosts.

  • Erzwingung von TLS je nach Policy.

Da in der Policy die Hostnamen der DFN-MailSupport-Server auftauchen ist es besser, wenn auch der Inhalt der Policy vom DFN-MailSupport gepflegt wird. Eine teilnehmende Einrichtung kann deshalb ihre Policy-URL via Proxy zu uns delegieren. Hierzu haben wir einen TXT-Record und eine Policy aufgestellt:

2. Konfiguration

Am DFN-MailSupport teilnehmende Einrichtungen müssen nun folgendes konfigurieren, damit ihre Domains MTA-STS unterstützen:

3. Validierung der Konfiguration

Zum Testen ihrer Konfiguration können sie folgende Validatoren verwenden: