Browse the [modern] web in Internet Explorer 5 & 6

Body

Here's something fun: Enable HTTPS browsing on IE5/Windows 98 with a Flask proxy that handles SSL and rewrites web content.

Windows 98 IE 6 Screenshot

For whatever reason, I have a Windows 98 virtual machine in UTM (which is fantastic on Apple Silicon) that I like to boot in to and take a trip down memory lane. It's fun, and painful at the same time. But, the modern web has moved on from Internet Explorer 6 (and Internet Explorer in general, but we're not celebrating that in this post). Lost in the dust, Internet Explorer of the Windows 98 days doesn't quite work anymore. IE6, released in 2001, came with support for SSL 2.0 and 3.0, and later updates added support for TLS 1.0. At the time, this was sufficient. The web was a different place, less sophisticated in both the technology it used and the threats it faced (generally speaking, of course).

Fast forward to the present, and the world has dramatically changed. We have toasters with wifi and fridges you can talk to. 
The versions of SSL and the initial iterations of TLS (1.0 and 1.1) are now considered insecure due to numerous vulnerabilities. Heartbleed, POODLE, and other less charmingly named vulnerabilities have led to a consensus in the community: SSL and early TLS versions are out. The internet has collectively moved on to TLS 1.2 and 1.3, which offer significantly improved security through stronger encryption algorithms and better protocols for ensuring privacy and data integrity.

For IE 5 and 6, this means being unable to establish secure connections with the vast majority of modern websites, which now mandate the use of TLS 1.2 or higher for all secure browsing.

Furthermore, the push for more secure web standards has led to widespread adoption of HTTP Strict Transport Security (HSTS), a policy that forces browsers to connect to websites over HTTPS only, using modern encryption protocols. 

So, wanting to get the modern web on Windows 98, and therefore IE5 then 6 after updating, I wrote a simple proxy in Flask to rewrite URLs to get around HTTPS requirements. Run the Flask server, and navigate to your server and append the URL you'd like to visit (see above screenshot).

 


This mostly works, and works well enough for website that don't load natively on IE6 (which is pretty much everything).  You can check it out on Github here: https://github.com/snacsnoc/windows98-ie-proxy


I've read about similar projects that others have wrote for their Mac 68k, Mac II Plus as well, to do the same thing: act as a proxy to serve web content, subverting modern security requirements. I've been wanting to do something similar with my Macintosh Plus II, but first I gotta purchase ZuluSCSI before the floppy drive fails hah.


A few projects of note that I'd recommend checking out: