Hahaha, this is a good one. Airlines let you pay for in-flight wifi using your airmiles… that means they need to use the internet to get your airmiles account. A hole in the firewall!
This person wrote a bunch of scripts that watched the personal information part of the airmiles profile page, the bit they let you edit to change where you live/your email and so on. Since it’s on the server, the client in the air can see what the client on the ground wrote – what they edited the pii to.
Tada! Accessing the internet through the eye of a needle.
Daemon on the ground polls your airmiles account and processes the HTTP request your skyproxy up in the air leaves there, and then writes back.
Proxy does some chunking because the name field on the account is too small for an entire HTTP header. Ground daemon polls it and reads the chunk, and sends an ACK to the sender so the next chunk can be sent. Using two airmiles accounts saves you having to coordinate send/recieve modes at each.
So this “protocol” has two layers. A transport layer and a networ layer. The transport layer decides which data clients should send to each other; how to split up long messages and how to signal things like “i am ready to recieve another chunk”. TCP is a transport layer protocol, it’s literally in the name (Transport Control Prototol)
The network layer actually sends the data. IP is a network layer protocol.
PySkyWiFi is nothing like TCP or IP.
Data is chunked into segments which identify the proper order to reassemble them.
Use base26 to convert arbitrary strings into the letters [A-Z] which you will probably be allowed in a name field. This significantly reduces the bandwidth of this protocol. You could use more account fields (like first name, address, and so on) per request to massively increase the bandwidth! Hooray!
I love how terrible and effective this is. Really clever way to teach about protocol layers too!!
Oh no, the author is a tech-bro-dad ai researcher for Anthropic looking at… “will the ai kill everyone, and how” type problems. bleugh!