E-Mail - ein Rant.

E-Mail - ein Rant.
Photo by Chad Peltola / Unsplash

E-Mails. Der Dreh- und Angelpunkt "moderner" Kommunikation. Egal - ob eine Bestellung bei dem Shopbetreiber des geringsten Misstrauens, oder der Anmeldungsbestätigung auf einer dubiosen Seite, bis hin zu Benachrichtigungen des Online-Bankings - sie ist einfach nicht mehr wegzudenken. Doch irgendwie ist nicht alles so super wie man jetzt denken mag.

Hinter den Kulissen

Doch jeder, der schon einmal versucht hat einen Mail-Server aufzusetzen, richtig zu konfigurieren oder mit den Protokollen direkt zu arbeiten, wird sich schnell in Entsetzen und "WTF-Momenten" wiederfinden.

Beginnen wir doch einmal auf der untersten Ebene. Den Protokollen, aus naiven Tagen, als Authentifizierung erst einmal optional war. Vertrauen war die Währung, ein guter Witz, wie man schnell festgestellt hat.

Ankommende Post

IMAP (Internet Messages Access Protocol), also das Protokoll zum Abrufen von Mails, ist der Motor für mehr oder weniger moderne Mail-Clients. Die Spezifikation für dieses Protokoll, direkt aus den Lenden der Unterwelt, wurde schon 1980 vorgestellt. Die Basis hat sich dabei doch seither nicht maßgeblich weiterentwickelt. Abwärtskompatibilität heißt hier das Zauberwort welches Tot und Verderben bringt. Verschlüsselung frei Haus ist ein Fremdwort, STARTTLS und IMAP over TLS sind nachgepatcht und genauso beschissen wie es klingt. Die Standard-Ports werden schon von vorneherein von vielen Webhostern etc. geblockt. Zu hoch die Spam-Gefahr.

Hierbei wird immer nur auf die Protokolle aufgebaut, also der Text in Verschlüsselung eingepackt, aber eben in einem neuen Layer. Bildlich gesprochen etwas Panzer-Tape um die transparente Datenleitung.

Letztendlich ist IMAP also Plain Text. In jeglicher Hinsicht. Die Anmeldedaten werden im Stil einer Postkarte durch das Internet verschifft und landen so schnell mal in den Händen zwielichtiger Angreifer.

Man-in-the-middleman-Attacken sind ein Kinderspiel und sogar der 10-jährige Kevin bekommt das noch hin. Die Nachricht kann dabei aber auch unterwegs einfach problemlos modifiziert werden! Prüfsummen? Checks jeglicher Art? - Fehlanzeige!

Von POP3 rede ich an dieser Stelle erst gar nicht. Ein geistiger Unfall in einem Zustand mir nicht begreiflicher geistiger Umnachtung.

Natürlich kann man jetzt argumentieren das ja letztendlich das alles "damals" okay war. Schön und gut, aber wir haben mittlerweile 2021 und man patcht an den falschen Stellen! Warum nicht einfach das Grundproblem überarbeiten und einfachmal einen cleanen Schnitt schaffen?! IMAP reloaded oder BIMAP (Better IMAP)

Ausgehende Post

SMTP steht für Simple Mail Transfer Protocol und ist wirklich so simpel wie es klingt. Jedenfalls mehr oder weniger.

Hier ist wieder standardmäßig alles Plain-Text, welch Überraschung!

Senden kann hierbei reintheoretisch jeder für jede Domain. Das ist per Protokoll möglich und bei falscher Konfiguration winkt der Server das auch durch! Solange man Zugangsdaten hat und den Server richtig misshandelt. Hier kommt man kinderleicht in den Genuss von unendlicher Möglichkeiten den Posteingang vieler unschuldiger Anwender mit Spam zu fluten.

DKIM - Signierung als weitere Krücke

Hier kommen dann lustige Dinge ins Spiel wie DKIM aka Domain Keys Identified Mail, mit dieser Technologie signiert man den Mail-Content und stellt sicher das die Mail nicht unterwegs modifiziert wurde. Jedenfalls bis der private Key nicht geleakt wurde. Hier gibt es für Server-Admins viel Spaß und Freude bei der Konfiguration.

Aber das reicht natürlich nicht, den wie bereits erwähnt kann jeder jeden Müll verschicken, jetzt kann der Spammer im schlimmsten Fall sogar seinen Schrott signieren! Großartig, der Müll wurde unterwegs nicht noch schlimmer!

SPF - Ja, der Server darf das!

SPF steht für Sender Policy Framework und will hier Abhilfe schaffen. Man legt fest welche Server im Namen einer Domain versenden dürfen und welche böse sind und abgelehnt werden sollen. Vor Angst der Falschkonfiguration wird das aber leider nicht überall umgesetzt. Die Folge ist so etwas wie SPF, aber wir lassen alles durch oder viel zu lose Regeln. Von der Shared-IP-Range des Anbieters bis hin zu komplett falschen Richtlinien findet man hier eigentlich fast alles.

Ohne noch eine Richtlinie unberechenbar

Doch DKIM und SPF bringen wenig wenn man die Umsetzung nicht erzwingt. Das bringt uns zum dritten Pfeiler der Schrottmühle: DMARC. Das ganze steht für Domain-based Message Authentication Reporting and Conformance. Also quasi für alles in einem Paket. Toll oder?! Die ganzen tollen Vorkehrungen helfen herzlich wenig, wenn die empfangenden Anbieter nicht entsprechend eine Richtlinie gegeben wird wie mit solchen Mails umzugehen ist. Und das ist trotz allem nur eine Empfehlung, keine Garantie. Letztlich kann der Mail-Server des Kunden mit paranoiden Sys-Admins trotzdem alles niederschmettern oder schickt einfach kein Feedback. Klasse!

Mail-Security - ein Symbolbild.

Für diese Berichte gibt es zum Glück ein standardisiertes Protokoll. Man erhält einfach eine Mail mit XML. Das ist genauso cool wie es klingt. Wir nutzen Mails für Mail-Berichte. Zugegebenermaßen eine clevere Entscheidung. Denn man nutzt das was man sowieso schon kennt (und hasst).

Das Auswerten dieser Berichte ist dank einiger Libraries und tausender Service-Anbieter ein Kinderspiel.

Wo ist meine Mail?

Um das ganze noch abzurunden ist es quasi unmöglich festzustellen ob der Empfänger die Mail auch zuverlässig erhalten hat. Per Protokoll sollte sich zwar der Empfänger melden, aber das ist letztlich auch nur eine Empfehlung. Und selbst wenn die Mail den Weg in das Postfach schafft, kann es hier immer noch aufgrund komischer Gegebenheiten oder Filtern die sich für allmächtig halten in den Spam-Ordner geschubst werden.

Und dann gibt es ja noch "intelligente Algorithmen" und "Machine Learning", die Mails clustern. Prominentes Beispiel ist der "intelligente" Posteingang von Gmail. Der Versucht in Werbung, Information etc. zu sortieren. Das klappt in vielen Fällen, aber manchmal haut es eben auch komplett daneben und sorgt beim unwissenden Anwender für Verwirrung.

Standards? - Ja, aber nein.

Und das Beste?! - Jeder Anbieter, Server etc. macht ein eigenes Format, hat eigene Standards, Pattern und sogar Error-Codes. Ja, richtig gehört! SMTP spezifziert Status-Codes so schwammig das man sich nicht einmal sicher sein kann was der Status jetzt genau sagt. Also gibt es zum Beispiel Status 521, dieser steht für "Server does not accept mail", was quasi alles bedeuten kann. Also gibt es tollerweise bei einigen Servern dann Status 521 mit einem Suffix der genauer spezifiziert. Natürlich nur für diesen einen Anbieter.  Parsing mit Standards ist extrem schwer und sogar für Giganten wie AWS mit dem SES-Service ein Problem?! WTF?!

DMARC, wie oben erwähnt bietet z. B. die Möglichkeit Berichte zu erhalten, wenn Mails nicht akzeptiert werden weil ein Mechanismus fehlschlägt. Doch manche Anbieter senden diese schlicht und ergreifend nicht oder nutzen sogar in seltenen Fällen ein komplett eigenes Format?!

Spam

Spam ist eine tolle Sache oder?! Wir brauchen Filter und Antiviren-Scans für Mails. Und das alles zu Kosten legitimer Mails die mal ganz schnell als dubios abgestempelt, in Spam oder Junk verschoben oder einfach mal kommentarlos gelöscht werden.

Wenn man der Statistik von Statista Glauben schenken kann, liegt die Spam-Rate bei guten 50%! Das soll die analoge Post erstmal überbieten!

Sogenannte Spam-Listen sollen Abhilfe schaffen. Doch natürlich gibt es hier längst Listen, die das zu einem Geschäftsmodell ausgebaut haben.

Die SORBS-Liste ist so ein tolles Beispiel. Eine legitime IP kann natürlich gegen eine kleine Gebühr (aka "Spende") wieder freigeschaltet werden. Andere Anbieter bieten auch gerne Angebote für die man für einen kleinen Betrag magisch von der Blocklist ferngehalten wird.

Bei GMX oder Microsoft landet man gerne mal mit einer neuen IP, bei nicht ein mal 5 Mails pro Sekunde, auf der Liste und muss sich wieder freischalten. Neue IPs aufzuwärmen ist ein Akt der Geduld, Eleganz und extremer Zeit. Hier gibt es nach wie vor kein Patent-Rezept. Auch wenn es einem viele Anbieter weiß machen wollen.

Letztendlich schaffen es doch viele Spam und Trap-Versuche in die Posteingänge unserer Mail-Konten. Super! Der Prinz aus Nigeria braucht eben wieder Geld!

Mail-Clients

Zu guter Letzt muss der Wahnsinn ja für den Verbraucher nutzbar gemacht werden. Moderne oder "intuitive innovative" Oberflächen zur Hilfe! Doch oh warte - das so tolle Outlook von Micro$oft läuft ja noch mit dem Internet Explorer aus der Nachkriegszeit! Du willst moderne Features? Ha, der war gut!

margin? Vergiss es mit Gmail im Web. Du willst Standard-HTML? - Nicht mit Internet Explorer! Moderne Layouts bestehen zu gut 25% aus "wenn Internet Explorer, dann", das ist die Realität. Hinter der Klicki-Bunti-Welt der achso tollen Software schuften jeden Tag tausende Entwickler um die Mail ansehnlich zu machen. Und jeder Mail-Client denkt sich anderen Schrott aus, den man dann zurecht schleifen kann. Letztlich ist es immer noch Standard mit TABELLEN-LAYOUTS zu arbeiten?! WTF?! Wir haben mittlerweile moderne Grid-Lösungen etc. aber nicht bei Mails!

E-Mal-Layouting in einer Nussschale.

Dynamik in Mails? - JavaScript?! - Niemals, das wäre ja lebensbedrohlich, so entstehen unschöne Hacks mit seitenlangen Bildern, GIFs etc. die natürlich nicht automatisch nachgeladen werden. Da mittlerweile trickreich Tracking mit sogenannten Tracking-Pixeln stattfindet, um trotzdem nachzuverfolgen was der User denn so mit der Mail treibt oder ob er sie geöffnet hat.

An dieser Stelle sei kurz erwähnt das natürlich die User-Agents so bescheiden zu parsen sind, das der einfachste Weg darin besteht, eine Datenbank zu nutzen die einfach ein Mapping vorhält. Alleine für Outlook gibt es zig User-Agents!

Und letztlich gibt es natürlich etliche Mail-Clients, die alle mit eigenen tollen "Features" punkten und das Leben noch unerträglicher machen. MJML und Co. sind aus der Not heraus entstanden dieses Problem zu umgehen, nur um letztlich noch mehr Schrott zu produzieren. Letztlich bauen wir um ein Problem, das sinnbildlich für einen Brunnen steht, einen ganzen Palast, um zu verhindern, dass die kleine kümmerliche Wasserquelle irgendetwas abbekommt. Letztlich könnte ein Windhauch alles zum einstürzen bringen.

Wenn man sich hier mal ein simples Hello World mit wenigen Zeilen baut, wird im HTML eine Monstrosität von HTML und "if Internet-Explorer" vorfinden.

Mails ohne Frameworks zu bauen ist so zwar möglich, aber ein Akt der Verzweiflung und des Verfluchens. Auch hier ist wieder die Frage - warum wieder im Nachhinein rumfummeln und nicht gleich das eigentliche Problem lösen?

Der Gipfel des Wahnsinns

Mail ist immer noch STANDARD. Und es scheint keinen zu stören wie kaputt Protokolle und Ideen sind. Lieber noch ein weiterer Workaround oder eine weitere verkorkste Technik um Fehler zu überstreichen.

E-Mail - ein Symbolbild

Und letztlich wird es nicht besser. Jede Firma, jeder Mail-Server-Betreiber muss immer einen eigenen Kosmos erschaffen, eigene Lösungen finden und umsetzen. Toll oder?!

Kein Rant ohne Microsoft-Bashing!

Dann kommen lustige Ideen wie Exchange auf, was an sich ganz toll aber in guter Microsoft-Natur natürlich proprietäre Software ist. Aber "wir lieben Open-Source", zumindest solange sie uns was bringt. Zum Kotzen ist das Ganze. Die reverse-engineereden Versionen wie SoGO sind ein trauriger Versuch das was M$ vorbaut irgendwie nachzubauen, ohne großen Erfolg jedoch. Das Debug-Tool dafür gibt es natürlich nur über einen Web-Service dem man ganz ungeniert einfach mal die Anmeldedaten über Klartext in die Hand drückt?!

WTF?!

Disclaimer

Natürlich ist mir bewusst das man nicht von heute auf morgen alles umstellen kann. Klar ist mir auch, das SMTP und Co natürlich standardisiert sind, aber eben zu wenig und zu unvollständig.

Das ist ganz klar als Rant mit einer Prise Salz zu sehen. Schliesslich nutze ich selbst Mail jeden Tag und habe beruflich und privat auch viel hinter den Kulissen damit zu tun. So kam es letztlich auch hierzu.

Ich lasse mich natürlich gerne in den Kommentaren eines Bessern belehren, teilt mir eure Erlebnisse, Lösungen und Frust mit!