Warum ist es so einfach Spam zu schicken? Die Väter des Internet hatten ein wohlwollend-kooperatives Netz im Sinn. Das Sicherheits-Szenario, dass man gegen Ausfälle robust sein wollte, oder wie man heute sagt resilient, waren keine “Innentäter”, sondern physische Angriffe auf die Hardware. Wenn man weiss, dass die Entwicklung des Internet im DARPA begann, also der technisch-wissenschaftlichen Ideenschmiede des amerikanischen Militär, kann man sich denken, dass man vor allem gegen Einwirkung traditioneller Waffensysteme gerüstet sein wollte. Dieser Aspekt funktioniert auch ganz gut.
Schaut man sich dagegen das für E-Mail genutzte SMTP-Protokoll an, sieht man aus heutiger Sicht einige Schwachstellen. So ist die Angabe des Ziels der E-mail frei wählbar. Das Protokoll erwartet nicht, dass das Ziel dem Server bekannt ist. Heutige Server werden fremde Ziele ablehnen mit dem Hinweis Relay denied. Damit wird verhindert, dass der Server quasi als Proxy zur Verteilung von Spam genutzt wird. Früher war das aber eine gängige Methode, eben genau die Zuverlässigkeit des Systems sicherzustellen. Wenn ein Server nicht erreichbar war, konnte einfach ein beliebiger anderer genutzt werden.
Das Protokoll erwartet auch nicht, dass der Absender bekannt ist. Hier besteht ein noch größeres Problem. Der Server kann gar nicht alle Absender kennen. Und er kann auch nicht sinnvoll prüfen, ob der Absender der Email plausiblerweise mit dem Hostnamen des Client zusammen passt. Denn wie eben beschrieben, muss die E-Mail ursprünglich gar nicht vom aktuellen Client des Server sein. Da heute die Weiterleitung über dritte Server kaum noch eine Rolle spielt, behilft man sich heute dem SPF-Format in speziellen TXT-Einträgen im DNS. Damit wird geprüft, ob der Client berechtigt ist, für den Hostnamen Emails zu verschicken.
Ein besonderes Problem ist dann am Ende noch, dass das SMTP-Protokoll mit der eigentlichen E-Mail gar nichts zu tun hat. Das was der Empfänger in seiner Email als Header sieht, sind nicht etwa die Informationen aus dem SMTP-Protokoll. Die gesamte E-Mail sind aus Sicht des SMTP-Protokoll “Nutzlast”. Das bedeutet, was in der Email als Ziel und als Absender steht, ist völlig frei wählbar, was Spammer natürlich gern ausnutzen. Die Quelle kann auch hier mit SPF geprüft werden.
Es gibt neben SPF noch einige weitere Techniken um E-Mail sicherer zu machen. So kann man die Übertragung ähnlich wie bei HTTPS mit TLS absichern. Oder man kann den Header der E-Mail mit DKIM oder DMARC sichern. Aber am Ende bleibt die Erkenntniss, dass nur eine Ende-zu-Ende-Verschlüsselung wirklich Sicherheit bringt. Da diese aber nicht Teil des Protokolls ist, ist das schwer einzuführen. PGP sollte zu dienen, war aber vielen Anwendern zu kompliziert. Auch TLS könnte eine Lösung sein, aber TLS-Zertifikate, die für E-Mail tauglich sind, sind schwer zu bekommen und / oder teuer.
Es ist kompliziert, E-Mail als zuverlässiges und sicheres Medium zu benutzen. Die besten Hilfsmittel sind wohl Virenscanner und der eigene Verstand als “Menschliche Firewall”.