Analysis of Email Domain protection for .ch
Hallo zusammen,
Vor ein paar Wochen habe ich ein kleines privates wissenschaftliches Projekt in Angriff genommen. Ich wollte herausfinden, welche Schutzmechanismen für schweizer Domains eingesetzt werden und wie verbreitet diese sind.
Dazu musste ich erstmal rausfinden, wie viele .ch Domains es überhaupt gibt. In der Statistik von Switch wurde ich fündig. Im Dezember 2014 waren es knapp 2 Mio .ch Domains.
Statistik für Domain-Namen unter .ch und .li
https://www.nic.ch/reg/cm/wcm-page/statistics/?lid=de
Sammeln von .ch Domains
Mit der ChilkatDotNet45.dll und der enthaltenen Klasse chilkat.spider habe ich mir einen Webspider gebaut, welcher das Internet durchsucht.
Die Logik sieht in etwa so aus:
- Suche alle externen URL's der angegebenen Website
- Prüfe alle externen URL's auf .ch
- Prüfe die Domains auf IDN Domains (Domains mit Umlauten) und wandle sie um
- Füge diese .ch Domains einem Array hinzu, falls sie noch nicht im Array enthalten sind
- Suche diese Domains rekursiv nach weiteren externen URL's ab
Mit diesem Script habe ich in etwa sechs Wochen über 12'000 Domains gespidert und dabei über 100'000 .ch Domains gefunden. Damit habe ich rund 5% der .ch Domains in einer Liste - das dürfte ein für die Statistik eine genügend hohe Relevanz aufweisen, dass man daraus eine Ableitung für alle .ch Domains machen kann.
Nun kann ich mir in etwa vorstellen, wie gross so eine Webspider Farm der grossen Suchprovider sein muss und dass die eine ganz anderen Internetzugang haben müssen um aktuelle Suchresultate liefern zu können.
Prüfen der Domains
Endlich konnte ich mich an die Auswertung der Domains machen. Dafür habe ich ein weiteres Script geschrieben.
Für jede Domain sollte folgendes geprüft werden:
- Besitzt die Domain einen MX Record und wird somit für Email genutzt
- Zu jeder dieser MX Records habe ich per SMTP eine Verbindung aufgebaut und auf STARTTLS geprüft
- Besitzt die Domain einen Sender Policy Framework (SPF) DNS Eintrag
- Besitzt die Domain einen Domain Keys (DKIM) DNS Eintrag
- Besitzt die Domain einen DMARC DNS Eintrag
Die Auswertung der gut 100'000 Domains hat dann nochmals etwa drei Tage gedauert.
Für den StartTLS kann es drei Werte geben:
- ALL: Alle MX Records unterstützen StartTLS
- Some: Einige MX Records unterstützen StartTLS
- None: Keine MX Records unterstützen StartTLS
DKIM Erkennung:
Noch ein paar Worte zur DKIM Erkennung. DKIM im DNS abzufragen ist sehr schwierig, da es hier noch einen Selector im Header geben kann. Diesen Selector findet man nur heraus, wenn man ein Mail von der Betreffenden Domain erhält und den Mailheader auslesen kann. Siehe dazu mein Blog Artikel http://blog.icewolf.ch/archive/2015/02/28/spf-dkim-dmarc.aspx
Bei diesem Test habe ich bloss geprüft, ob unter "_domainkey.<Domain>.ch" ein TXT Record existiert. Wie einige Stichproben gezeigt haben, ist dieser Test leider nicht sehr zuverlässig. Da finden sich zum Teil auch SPF Records und andere Einträge unter den Resultaten.
Desweiteren habe ich geprüft, ob denn überhaupt Nameserver Einträge (NS) für die Domain "_domainkey.<Domain>.ch" vorhanden sind. Falls ja, habe ich ein "maybe" als Resultat geloggt. Dieser Test ist noch viel unzuverlässiger. Denn die Resultate zeigen mehr DKIM maybe an als SPF Einträge vorhanden sind, was einfach nicht plausibel ist.
Die Resultate
Nun folgen die Resultate meiner mehrwöchigen Arbeit.
Bei rund 90% der .ch Domains wurden MX Einträge gefunden und können für Email benutzt werden.
Bei 68% der Domains mit MX Records unterstützen alle SMTP Server STARTTLS. Bei weiteren 7% unterstützen einige der SMTP Server STARTTLS.
Man kann also davon ausgehen, dass bei rund 75% aller .ch Domains eine Übermittlung der Emails per TLS stattfindet. Das ist zwar erfreulich und höher als ich es eingeschätzt hätte, jedoch immer noch viel zu wenig!
Deshalb hier ein Aufruf an die Emailadministratoren in der Schweiz: Aktualisiert eure Mailserver, damit STARTTLS unterstützt wird!
Der interessanteste Teil war die Auswertung der SPF, DKIM und DMARC Einträge.
Bei 25'412 Domains wurde ein SPF Record gefunden, was etwa 28% entspricht.
Die 1'211 DKIM Einträgen sind mit Vorsicht zu betrachten, da hier nur auf einen TXT Record von "_domainkey.<Domain>.ch" geprüft wurde, was sich nicht als zuverlässig herausgestellt hat.
Die 112 DMARC Einträge sprechen für sich. Diese Technologie zum Schutz der Domains ist noch nicht in der Schweiz angekommen.
Hier noch eine andere Darstellung derselben Resultate.
Provider
Eine kurze Analyse einiger grosser Provider ergab ein ebenso düsteres Bild. Schade, dass selbst grosse Provider hier nur wenig Anstrengungen unternehmen um die Situation zu verbessern.
Summary
Bei etwas mehr als einem viertel der .ch Domains wird eine Schutztechnologie eingesetzt um die Domains vor unerlaubter Benutzung dritter zu schützen. Hier hat sich als fast einzige Technologie das Sender Policy Framework (SPF) durchgesetzt.
Für mich ist durchaus interessant zu sehen, dass die Schweiz mit ihren durchaus wertvollen Marken nicht mehr unternimmt, dass die Domains nicht von dritten Benutzt werden kann und somit einen Reputationsschaden in Kauf nimmt.