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!