In a previous post, I talked about IP over Avian carriers. I have since decided I want to make this a series of posts going into detail about methods for routing internet packets outside of routers and switches. Outside of the ISP network. I'm largely inspired to write about this because of South Korea’s Internet Identity Verification System which was struck down in 2012, the Chinese Great Firewall, Iran shutting down internet access typically during protests, and other places where identity is required for internet access, or too expensive for the region.
While IP over avian carriers was an April fools RFC and my original post was in good fun, looking around, it may be used unironically in certain jurisdictions. So with that in mind, lets look at some alternative information systems, and we'll look at how to make them interoperable. Today's post, the sneakernet, was inspired by Mirrors Edge. Not Mirrors Edge Catalyst (the sequel), but the first game.
The changes came slowly at first. Most didn't realize or didn't care, and accepted them. They chose a comfortable life.
Some didn't and those who refused to conform, were pushed to the sidelines. Criminalized. They became our clients.
Mirrors Edge is a parkour simulator, which makes for some fun gameplay, but more importantly, the game devs chose to frame this gameplay as a necessary communications network. This type of communications network is commonly referred to as "sneakernet".
Now some people are sticklers. Some people will like to say "but it doesn't use TCP, therefore it isn't the internet". We can of course follow TCP protocol over any communications network, I would rather point out that TCP was not the only protocol, its just the one that won out during the protocol wars.. What is the internet then? The internet is a network of networks. That is all. Interoperability will become an issue that we'll discuss.
How should our data be encoded for this transmission? Typical cryptography for any communications network applies. The source and destination will want to exchange cryptographic public keys so that the data stays private should the message be intercepted. In particular, there are 3 concerns in information systems. Data integrity, data availability, and data confidentiality. These 3 concerns are part of the security triad
Okay, so the data in our packet in encrypted and only the receiver can decrypt. Now what? Sneakernet examples are usually portrayed as a USB stick. Its simple and quick and easy to understand, unfortunately however, this will result in compromise. The Universal Serial Bus standard was designed for anything. Joysticks, mice, keyboards, flashdrives, VR headsets I mean really anything. As long as you can install the firmware for it, it'll work. This became the problem. Installing firmware became a barrier to using whatever device was being sold. So, manufacturers began to put the firmware for the device inside of the device and operating systems would grab the firmware from the device and install it automatically. You plug it in, and it works. "Plug and play" they called it.
The problem? Replace the word "firmware" with the word "virus" and you understand the problem.
So, SD cards it is, but not every device has an SD card reader. Every relay in the internet has their connections they're able to reach who then take the packet and take it to its next destination. The runners will need to communicate with their aviaries or whatever data transmission center may be for the next hop. That all being said, I do like some IP over QR codes
Border Gateway Protocol
So the border gateway protocol is going to dox all of our connections. Not only that, but our source and destination will be found out. Not only that, but how are we going to get an IP address anyway? IANA for dang sure isn't about to issue us one. Lets take this step by step
So how do we keep these connections confidential? One way to think about this, is jurisdictional arbitrage. We might be in Russia trying to send a message to someone else in Russia, but we don't have to keep all of the internet routing in Russia. Instead, we can transmit the data to an Aviary or a WISP or pointed a laser over the border, using smoke signals or blinking a flashlight. That point in friendly territory is our proxy. Every connection until this point only knows to delivery the message to this proxy, and the proxy decrypts the rest of the routing information.
We may even have a network of proxies like the TOR network
So, being an unregistered ISP, how do we get an IP address? We may allow our proxies to issue IP addresses, and then sort of layer IP addresses. So we have the IP addresses that are part of IANA IPs, that's one layer, but when our message reaches a router that is going to transmit to non IANA routers, it can look at the second IP provided here, which is the IP issued by our trusted proxies for this secret network. The closest thing that's similar to this is network address translation (NAT).
Maybe the right answer, however, is that we don't bother getting an IP at all
Connectivity Service Payments
Obviously, you'll need to pay your aviary or sneakernet runner to transmit this data on your behalf, and they will need to pay whomever they may be connected to for them to route to the next hop (a network of networks). The lightning network may sound like a convenient option for this, but there's a problem with opening lightning channels with operators who control your flow of information. You will need multiple service providers so that one can tell you about another force closing the channel on you. You'll need to use the alternate service provider to transmit the justice transaction.
Conclusion and Comments
I originally intended to make a post about shooting a laser light at the moon and then encoding a message in a series of blinks to be decoded by a telescope across a vast distance, but it turns out this method requires a 10 foot wide telescope which is very very expensive and obviously not feasible for anyone who would actually have a need for it (operator who can't obtain a UHF license for example). This Reddit thread is where I decided to end my research on that: https://www.reddit.com/r/askscience/comments/qw30x/can_an_amateur_astronomer_test_the_lunar_laser/
However, there are many other communication methods that we have not gotten into yet. While moon lasers may have gotten nixed off the list, there is plenty more.
If you happen to operate in a country with resource constraints (people don't have computers/everyone operates off of a shared computer/no internet access/Australia etc), go ahead and pop a comment and we can troubleshoot methods of getting TCP compatible internet packets to a location that has broader internet access.
A note on Bitcoin nodes: Shout out to BIP 324 which is coming to Bitcoin core version 26 (source: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/26.0-Release-Notes-Draft), however, if ultimately we saw a globally coordinated ban on Bitcoin and all Bitcoin network traffic had to go through these alternate networks (or if we just end up being a space faring civilization) the amount of data we could transmit all at once could be very high, but the time it would take for that data to reach its destination would be measured in days. So we would seriously have to have a conversation about increasing the block time, but also the block size in the same conversation. Could end up with the same aggregate data size build up over time (same effective block size for the given block time), but who knows how that imaginary conversation might go anyway.