With all the talk of net neutrality, Wikileaks having it’s hosting services pulled, and now the unfolding events in Egypt and elsewhere with internet services being withdrawn, I’ve been doing some thinking around how we might create an independently controlled internet. I’m certainly not the only one thinking about these issues, they’ve been occurring for a long time. While I won’t claim to be an expert on the engineering details, what followers is a random collection of ideas of what I’m thinking about this at the moment, and what I’ve found online that others are doing / have done.
The internet is not (at least how it works today) a public utility, it is a mish-mash of mostly privately owned networks operating with a common agreed protocol and there are various arrangements for how traffic can transit. This creates a vulnerability as internet traffic and our freedom of speech are dependant on our ISP’s and Hosts economic and political situations, our traffic becomes vulnerable to being monitored, blocked or as what is happening in Egypt right now, shut of completely via government edict. We talk about how the web has enabled unparalleled freedom of speech, but this is under threat like never before.
I’m thinking that there is an alternative in terms of how we could run the internet. What if we could make it a public, but community owned not government owned utility? A co-op enterprise on the scale of the GNU project to build out a community owned, maintained and operated tier 1 network, becoming part of the internet backbone. Are there new types of protocols and networking infrastructure that can be designed and built? Can this be done with readily available tools and networking technology? What happens when we build a physical dark-net? What I’m thinking about and proposing is possible is a Pirate Internet, a reference to Pirate radio would serve as an independent, community owned network infrastructure.
Before mainstream internet / web access was available, quite a few people would use their modems to dial up other computers. These Bulletin Board systems (BBS’s) would be connectable by a modem pool, you could leave messages, get messages posted to you, often download a bunch of files. My brother used to connect to a bunch of them on the old Amiga, One was called Quantum, another had a Babylon 5 theme, all of which accessible over a terminal text interface. This was basically an independent internet of its day. Not only could you leave messages and file exchanges with people on the BBS you where connected to, but the e-mail service would store and forward messages on to other BBS’s. I’m not sure if the ones my brothers connected to where part of Fidonet, but basically the BBS host would periodically dial up other BBS’s to deliver mail and other files. This was a way of chatting globally at only a local call rate at the time, as the host computers would dial and forward messages to nearby BBS of the same network. Later on these would become access points for the internet in its own right, mostly allowing e-mail via the internet and a Usenet server, I think my first e-mail address was on one of these, though I never found a use for it at the time. Still there was definitely a kind of nice geekiness to interactions over this independent hidden ‘Net.’ Its also interesting to note that these independent nets are still out there (though most let you connect through the internet now).
Another take on this idea is the Sneaker-net, so called after the footwear. In these networks, the files are exchanged on usb flash drives (or CD’s, Floppy Disks etc…), person to person. This way data is passed via personal connections, mostly intended as a way of distributing large files where bandwidth isn’t available or where physical network connections arn’t present. It’s an old idea, Tetris was spread in the communist countries floppy disk to floppy disk as there was no restriction on people distributing, managing to spread to all corners of the USSR and Communist Countries. There’s also the Aprils Fool joke RFC 1149 (or updated for ‘quality of service’ as RFC 2549) IP over Avian Carriers which has had a few test implementations (just for fun, but demonstrates an interesting point).
On the internet side, there’s some very interesting developments in terms of decentralising the underling internet infrastructure. There are alternative root zone DNS servers, which are servers that act as a reference point for other DNS servers to translate domain names to IP addresses. The most interesting part of having these independently managed root servers is the possibility of introducing new top level domains that are hidden from the rest of the network, for example if you (or your isp) uses OpenNic as reference DNS servers, you can pick up and register sites in the .free and other top level domains. There’s also P2P DNS so we don’t have to be reliant on ISP’s to do domain name translation, but this process is distributed so it can build up censorship resistance. Finally there are true hidden dark-nets on the internet, sort of meta internets. One such as Freenet works by making each part of the network an encrypted cache that stores part of the data itself, so when you want to host content, you push it into the network, and it becomes distributed amongst the nodes as more people download (or falls of the network if it is not popular).
The most exciting for me, in terms of what I am thinking for a Pirate Internet, are the wi-fi mesh networks. There’s quite a few been set up and active, some commercial and others more community owned. An example is (and I’m not sure if it is still going but is very close to what I have been thinking about) consume.net, which from my understanding, is a set of independently operated mesh networks that are all connected together across London. Hosted content can be accessible freely, while there may be a charge to use the network as an access point to the wider internet. What I like about this is the very DIY ad hoc nature of putting together these networks. Another idea I really like is a plan to purchase a communication satellite from a bankrupt telco and move it over Africa to provide free internet. I found Kostas Grammatis TedxAthens Talk quite inspirational, I really like the idea of having an open satellite network available to some of the poorest countries in the world.
Onto my approach, again this is just ideas on what I am thinking about at the moment.
Similar to the technique followed by consume.net, we could develop a set of community owned and maintained mesh networks, say in a single street or locality. Some of which would have access points to the main internet from it, but not every node on the network needs to connect to the main internet, hopefully the hardware should be able to use off the shelf kit (something to research). Attached to each mesh network would be a microwave link to other mesh networks, I’m thinking it could be similar to how pirate stations link their studios to the TX site, easily assemble and distributable instructions, which are then used to link these mesh networks together. This forms an independent backbone for traffic travelling via mesh to mesh, and depending on how scalable this could become a global network. Questions are: how to link cities together? can it cross borders? could we get that satellite capacity? how to make the network resilient from take down and sabotage particularly in heavily censored countries where building a Pirate Internet could be made illegal?
This community owned mesh network would allow for forwarding to the main internet, and could even become part of the internet for allowing traffic to transit (to make this DIY network part of the main internet backbone proper). For added privacy, Tor like onion routing could be implemented and P2P DNS while traffic is travelling over the mesh, so there would be many access points connected to the mesh network you are on, but also traffic could be routed to a different mesh via the microwave link to exit and appear from there.
Where this comes into it’s own though is by providing an underground network, a sort of dark net. There could be two types of network address recognised internally. A .mesh address would be local content, effectively for running your own web-server or e-mail server on your local mesh, with network addressing so that it is reachable from mesh to mesh, this would use standard IP networking methodology, though like the alternative DNS this would only be accessible for those on the mesh (and there would be options to how it could be accessible, but essentially a quick way of adding servers). The second method would take after Freenet, and use encrypted cached storage to push and pull content into the network. These .libre address would be content stores with appropriate keys, and each part of the mesh would have some reserved capacity for caching this content as it travels the mesh.
Another issue to think about is SSL certificates and self signing, or having a network of trust that can sign on your behalf. This would be instead of going to a certificate authority to get credentials to encrypt something on the network, you could self sign, and others could maintain an ‘exception list’ of people they trust that they can vouch for (or revoke their certificate as the case may be), that others on the mesh have the option to subscribe to.
There’s even the possibility of adding other communication types, IP over Ham Radio (good for delivering e-mail). Back in the eighties (according to the manual of the BBC Micro which I still have) there used to be programs broadcast over the air (within the teletext stream). How about using broadcast to send IP data? say updating a local pre-distributed copy of wikipedia, or a Twitter like network which broadcasts latest status updates for everyone and lets the client side device such as a mobile phone figure out the following timeline. That would require an infrastructure independent return path to post, plus public / private key encryption for privacy and to prevent spoofing, but could it work?
There’s lots of things to think about on this issue, I’m still very much researching this, to see what is possible. I’m very interested in having conversations about securing a free internet infrastructure. Asking, and debating, the possibilities for a Pirate Internet?
Former blog post