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!