/ belodetek Ltd.

Bypass age verification in UK for porn sites

TL;DR click here or here to get it

In order to protect the vulnerable (teenagers) from the evils of pornography, the UK government, in their infinite wisdom, has enacted a law, which will require pornographic websites to block access to content for anyone underage. So, from April 2019, anyone of legal age in the UK will require to announce to their credit company (and/or porn publisher) that they are looking as opposed to just casually browsing incognito.

Luckily we have the Internet and VPNs. Now for most part, establishing a VPN tunnel to a server in another country (e.g. US), is trivial for a moderately tech-savvy user. As for for the rest, well, a little money thrown at this problem, usually resolves it satisfactorily. Money in this case, is specifically the cost of a VPN subscription and a compatible router.

We've being contracted by FlashRouters to create an extension to DD-WRT, a popular after-market router firmware, using a lesser known feature called MyPage.

This VPN provider independent extension makes it simple to connect to a number of OpenVPN providers, which has the added benefit of allowing the entire network behind the router to browse the Internet as if located in a different country. Problem solved then.

blackbox-ddwrt

Once the app is installed on the router, the interface guides the user to connect to an existing VPN account or to create a new one with a provider of your choice. There is also a soon-to-be-released companion iOS app, which automates router discovery on the LAN and automatically installs the extension on the discovered device(s).

In more technical terms, the MyPage extension is essentially a simple interface to a BusyBox httpd daemon running on the router. In the most basic form it is a shell script with the path configured in the NVRAM. It is executed on a request to http://dd-wrt/MyPage.asp and outputs some HTML/JS to stdout, which is then rendered by the browser. Our extension, reads NVRAM and ships base64 encoded data to the JavaScript code served with the HTML, where it is decoded. The front-end is built around Bootstrap version 4 and uses AJAX to make HTTPS requests to the private AWS hosted API, which provides VPN profiles, servers lists, etc. The front-end also persists data back to NVRAM using the router's own cgi-bin gateway using AJAX POSTs. Our back-end shell script(s) manage OpenVPN client bundled with the router to bring-up and tear-down VPN connections. Our front-end can also read the VPN log files from the backend to signal status updates, etc.

Lastly, we are not the only ones working with MyPage functionality in DD-WRT. Astrill and PureVPN have also published their own implementations.

Happy browsing.

--belodetek

Anton Belodedenko

Anton Belodedenko

I am a jack of all trades, master of none (DevOps). My wife and I are itinerant. I also ski, snowboard and rock climb. Oh, and I like Futurama, duh!

Read More