Jonathan. Frech’s WebBlog

It’s the clients that betray you. (#276)

Jonathan Frech,

One of the saddest realisations I have come across while exploring the web on its protocol level over the past few years is how the majority of mineable data on­ly crosses the wire due to compliance on the victim’s end: there is no ‘singular stateful backend’ that tracks; it is an oligarchic network of ma­chines constantly fed back this state. Referer:, Cookie:, User-Agent:, client hints and from unfuzzed headers extractables as well as foreign-controlled scripts with a plethora of probes are all solely client-powered.
Techniques employing stochastics powered by the bits of leftover bits such as not explicitly client-informative headers, traffic correlation and profiling based on underlying IP properties is most likely still powerful enough to war­rant hardening, yet undoubtedly the bulk is pro­vid­ed by clients.

This begs the ques­tion why so many clients are not subordinate to their users but a trojan window into a foreign-controlled service.

Yet this fight I leave to more politically-inclined folks such as the IETF, the Tor Pro­ject, Brave Soft­ware, the Free­BSD Foundation and what is left of the FSF, GNU and Mozilla to name a few. I wish them the very best but do not ex­pect to be alive to wit­ness their certain (!) victory.

Leaving aside the morally still inexplicit principals of data col­lec­tion, what troubles me is another kind of clients’ breach of trust: forwarding unsanitised content heedlessly imbued by the client with the trust its user allotted it.

-=-

Most prominently, it is the above described carelessness that allows phishing attacks: IDN homograph attacks (colloquially called typosquatting), crafting e-mail address dis­play names and declaring MIME types in particular all are enabled by clients passing unsanitised in­for­ma­tion along.

Fur­ther­more, this be­hav­iour of clients not on­ly aids criminals but manifests itself in more mundane ways: text editors inventing a final newline or ‘intelligently’ handling white­space, shells straying away from auto-completing $PWD’s contents to guessing suitable arguments and operating systems automatically upgrade-borking them­selves.

Too many pieces of soft­ware have forgotten to serve as tools and in­stead morphed into foreign-manipulatable and unforseeably-inventive thus evermore useless agents.

It is this status quo I aspire to remedy in two niches: firstly a min­i­mal vim clone that is still very early in de­vel­op­ment which strives to show the true bytes on disk in an editable manner and secondly the non-TUI CLI-based e-mail client brief that both provides a trust barrier (by e. g. employing homograph hardening and strong coupling be­tween e-mail addresses and known dis­play names) and lets one connect to one rep­re­sent­ation of the message that will go out on the wire on a byte level.

Else where is the point in using these ma­chines?