Plaintext HTTP in a modern world
jcs.org
jcs.org
The problem here is that if someone can intercept your unencrypted traffic, they can also disable the headers that instruct the browser to switch to HTTPS. That means that unless you're getting your site preloaded into the browser as requiring HTTPS, folks on modern browsers who hit an unencrypted URL on a malicious network are as good as compromised, and they can not only read the traffic but modify it as well. And unless you disable non-HTTPS traffic, there's nothing you can do about it.
I would strongly recommend against taking the steps in this article unless you're running a site specifically for vintage computing enthusiasts.
The proliferation of CDNs made this mostly moot (big exception are huge companies or individuals who want to control everything using their own IP addresses) to the point governments tend to try to actively intercept requests due to the stubborn opaqueness.
And to the extent that websites do use CDNs, then your isp is no longer your concern for privacy, the CDN is.
And unless your typical user is actually a developer, you are out of the park.
I forgot about SNI leakage. That's a valid point.
There are CDNs you wouldn't have thought to be actually CDNs. Most Wordpress sites (outside of WordPress.com) are actually being run on WordPress.com infrastructure, and even if not they are often shared installations such as from Namecheap or GoDaddy, which shares the same addresses. Not to mention alternative building sites like Wix, Squarespace, Carrd, or even GitHub (surprise!). Or independent shopping sites, most are actually just Etsy (operates on etsy.com) or Shopify (you can use a domain if you want to). And that's scratching the surface of how changed web is now.
You have underestimated how centralised is the web now. This can be bad or good (despite comments from second-hand critics, the French Minitel was amazing for its time, and on the flipside Facebook).
"What can you learn from an IP?" https://irtf.org/anrw/2019/slides-anrw19-final44.pdf
https://blog.apnic.net/2019/08/23/what-can-you-learn-from-an...
This is asking for everybody else to put in the time and effort for you to do the computing equivalent of restoring classic cars. Someone proposing a new Internet protocol in 2021 doesn't need to include compatibility with freaking _System 6_ Macs.
No chance? Everything has to be public? WTF? How does he arrive at this conclusion?
In Appendix 1 of the Gemini protocol one of the status codes is "SENSITIVE INPUT". It specifically gives the example of passwords.
One of the error codes in the Appendix is "CGI ERROR". This would seem to contemplate generating content dynamically, e.g., a user submitting ad-hoc queries to a database.
I would love it if all websites did not force the use of TLS and provided a plain HTTP option, but there are easier solutions for older computers than trying to get the web to change. (Good luck with that.)
One solution to to use a gateway the user controls, sitting between the vintage computer and the internet.
One can run a proxy on the gateway and have control over changing/deleting request and response headers like Upgrade-Insecure-Requests, Upgrade and Strict-Transport-Security, and TLS offloading/termination.
It works for me. Both for older software and older hardware.
Older versions of Otter Browser too, I think. https://sourceforge.net/projects/otter-browser/files/otter-b...
Uncompress it in a folder, and run.
Since other people were also having this problem, I ultimately put together a nice little installer. It's very Mac-focused, but if you have access to a Mac, you could extract the pkg to see how Squid (the proxy I use) is configured: https://jonathanalland.com/downloads/wowfunhappy-https-proxy...
It's probably not worth the effort to set up something like this for your parents, but I do think these sorts of proxies are a good (if imperfect) solution for old systems. You could plausibly set them up at the router level too.
That said, an IE6 user agent connecting to a TLS 1.2-only site showing up in server logs is probably a source of amusement and perplexion for some...
The Gemini FAQ[2] addresses this point:
> Old machines are awesome, and keeping them running, online and useful for as long as possible is an awesome thing to do. But it also makes no sense for the vast majority of internet users to sacrifice any and all privacy protection to facilitate this. Remember, though, that Gemini does not aim to replace Gopher, so the retro-compatible internet is not directly endangered by it. In fact, people serving content via Gopher right now are strongly encouraged to start also serving that same content via Gemini simultaneously. Retrocomputing fans can continue to access the content via Gopher, while modern computer users who wish to can switch to Gemini and reap some benefits.
The blog post also says:
> This requirement seems poorly thought out, especially considering the Gemini protocol doesn’t even support forms (other than a single text box on a search form) so there’s no chance of users submitting private data, and there’s no mechanism for client-server sessions so clients can’t be authenticated, meaning everything served pretty much has to be public anyway.
While it's true that Gemini doesn't do uploading, simple text input (using query strings) can still easily hold private data.
More importantly, this completely ignores that TLS protects browsing history, and the integrity of pages. When I browse Gemini I don't have to worry about anyone watching what pages I visit, or changing them on the fly. TLS is the reason for that.
Finally, the claim that "client's can't be authenticated" is false. Gemini uses client certificates to allow users to log in to services such as private directories, message boards, and virtual plant growing games[3].
1: https://gemini.circumlunar.space/
2: https://gemini.circumlunar.space/docs/faq.html
3: https://github.com/michael-lazar/astrobotany or gemini://astrobotany.mozz.us
If you truly don't have legacy clients trying to visit your website then 99%+ visitors won't see any difference in behaviour. So no reason NOT to do this.
First, a response without the redirect is still a "successful" request. This easily allows a middle man to observe and modify the response and request. With a 301 redirect, the server is not sending any html/json/etc content to the server - just the header.
Search engines, HTTP caches, bookmark managers, etc they all accept and update their indices upon 301 redirects. Non-browser user agents are unlikely to read and interpret CSP headers.
I am firmly set that these older user agents without SSL support, or ones with old vulnerable implementations are not worth supporting. You are taking the security level of everyone down, just to support that likely minority. They are already having problems with several other sites. They upgrading their hardware/software is the easier compromise to make, compared to the web site lowering the security for everyone.
The article is aimed at personal websites and blogs where security is not a significant concern.
Whats the downside of search engines and bookmark managers using the HTTP url ? Users who visit the link will get upgraded anyway.
A modern embedded system with limited CPU power that can't do TLS 1.2? An ESP8266, one of the cheapest modern embedded systems can do TLS without problems. Heck, I've seen one or two ATTiny85's doing TLS (with some stability problems... But they're not called tiny for nothing).
If the AmigaOS project can do TLS (builtin since a decade ago) with less than half of the resources that the authour says results in an unreasonable wait time (their System6), maybe it isn't actually the hardware that is the problem.
The author is actually pretty explicit that they're talking about a System 6 Mac, which has all the hardware necessary not to be too slow for TLS. It's just that it's so old that finding a working SSL library for it is difficult, which on some fronts I can sympathise with...
But SSL should still be a requirement to prevent your users from having crap injected by whoever the hell is between you and them.
Eh, maybe not CPU wise, but 4MB of RAM are a bit shortish.
I tried to emulate some m68k macs, and definitely, as the PC, 8MB are the minimum enough (with paging) to browse without issues with an old Netscape release, or icab.
PC's have it easier because a stripped Minix2 with Lynx and some light SSL library could do that with ease on a high 486/Pentium and 4MB of RAM.
One day I'll compile a modern Dillo with mbedtls for a virtual 486 with 4-8MB under Qemu.
It paged to disk. Including dropping functions in and out of flash to disk. I did mention it was unstable, right? But it's still doable.
nc apitman.com 2052 <<< /txt/feedAside from addressing the CSS and JS minimalism required for such sites to accommodate older browsers, how would one get the server settings done on Apache on a shared web host? The author provides instructions only for nginx.
I recently found a 6 year old Android phone and tried to use it.
I can't use Google Play Store to install apps because I can't log into my Google Account, apparently because of old certificates or SSL versions, or something.
I can't use Google Chrome to download APKs. Downloads get stuck at 0%, apparently because Chrome doesn't trust the certificates. And when I browse, Chrome tells me that the site is not secure.
And I was unable to transfer APKs via USB. I don't really know why, I have developer mode and all of that enabled.
So, I guess it's bricked.
Or, from a a PC from Linux hosting a directory of APK's (if you connect your phone to the same wireless lan): python2 -m SimpleHTTPServer 8080
connect from your phone to http://ip_from_pc:8080 and it will work.
Then send the Fdroid/Fedy APK to install new browsers.
There are many things HTTPS (and HTTP/2+3 or websockets for that matter) can't do, the energy use is not an issue now as long as money is "free" and there still is stored sunrays in the ground, but eventually everything will use HTTP/TCP again.
I for one do my own security over HTTP and I save alot of time/energy doing it!
Also you're going to need one hell of an adaptor to connect Ethernet from 1980 to modern Ethernet. The bit protocol is the same, but the hardware is radically different. I have never used the original Ethernet, but I have personally built 10base2 networks (still have terminators in various bit boxes) and I've seen some setups with 10base5 which is the earliest Ethernet that was actually commercially deployed:
There's actual quite a number of them (like [0]) around. They can be large, but considering you can go from parallel to modern ethernet _and_ you have a choice of adapter, it's not really as big a problem as you might be foreseeing.
That's a Plipbox. One side of it speaks 10baseT (or maybe 100baseT, it doesn't really matter) and the other is a literal Centronics-style parallel port, not Ethernet at all.
The idea is, your Amiga can do PLIP (IP over the Parallel port) and this box turns that into Ethernet traffic which you can drop into any network with IP.
But if you've got some 10base5 or earlier Ethernet, this does not help you at all.
...what am I missing? Cable and DSL modems have ethernet ports don't they? Ethernet ports still support 10Mb/s and hall-duplex right? You might need a transceiver to physically adapt the connection, but its still ethernet... well, unless we're talking about pre-802.3 ethernet of which I'm not sure how compatible the frames are.
The oldest "safe" version is TLS 1.2, which only gained browser support late 2013, so 7 years ago.
The article recommends not using the older unsafe versions for the sake of older browsers.
Once a feature has been out on all major browsers for a year than its fair game to use. Its also not wasting your time trying to develop a modern web app which has support for netscape navigator.
Going off the usage stats of the site I work on, almost everyone is on the latest version of their browser and the ones that are not always end up upgrading after a warning notice is sent out about old borwsers.
I have some bad news for you: if you use HTTPS, they also know what's on the pages you're looking at.
A Pentium3 can run Dillo with mbedtls just fine.
I realize that "plain" is acceptable here, but I never got into it.