Cool pet project, admirable engineering etc.<p>My comment is about something else: net neutrality, as someone already mentioned.<p>I was teaching English in Laos for school kids. I was amazed that some of their families struggle with providing (nutritious enough) food for their children, yet, everyone had smartphones with always-on 4G,even in the countryside - however, no WiFi almost anywhere.<p>The brains of these kids are like sponge. They WANT to learn, they're shy, but they want to speak, to read, to practice English. They also like to (constantly) sing (something that is badly missing from western schools), so at one point I referred them to "simple English Wikipedia", where they can research their favorite singers with easy-to-process articles.<p>Empty stares.<p>"so instead of Wikipedia.org, you go to simple.wikipedia.org."<p>Still nothing.<p>I had to realize later that even if they knew that this free, always available encyclopedia exists, it's NOT included in their 4G subscription.<p>Yes, you guessed correctly: those subscriptions are sponsored by big US / Chinese corps, so all these kids had were Facebook, Instagram, WhatsApp and TikTok, everything else costs ~10$ which is days worth of meals for whole families there.
My experience with in-flight message-only WiFi is that they're just really slow and the ping times are long. Some services are actively blocked, e.g. Skype wouldn't work at all even for text messages, but browsing the internet is usually allowed. My VPN wouldn't work, but I suspect it might have if I used an obfuscated connection instead of OpenVPN or whatever the default is (e.g. over SSL). I could load GMail in the browser and Wikipedia probably would have worked. It's strongly website dependent. Hacker News is extraordinarily resilient to lousy connections and generally the index would always load without any trouble. It works even on a 3 second ping over satellite internet. Very few websites are that tolerant.<p>The flight crew (BA) knew what's up. They specifically warned us to check which package we were getting, because evidently they get a lot of complaints when people buy the message-only bundle and are surprised that nothing works.<p>Singapore gave out free passes for single devices last time I flew with them. It was possible to rotate MAC addresses by forgetting the connection and then re-joining. The connection was quite good, you could watch YouTube in potato resolution. It's quite fun to chat to people and send them photos out of the window.
Many years ago (2012) Delta inflight wifi would allow DNS queries out without paying. Being a very frequent flyer I used to run an ip-over-dns tunnel using Iodine[1]. It was slow but worked. I wonder if they’ve blocked that hole yet.<p>[1] <a href="https://code.kryo.se/iodine/" rel="nofollow">https://code.kryo.se/iodine/</a>
I wonder if anyone has stated a general law along the lines of "if you can send and receive a bit, you can send and receive anything."<p><i>The only issues ended up being that 1) WhatsApp messages are limited to 1600 characters</i><p>Concidentally, that's not much bigger than the MTU of standard Ethernet. I don't know how "transparent" the data channel is with respect to non-ASCII (and probably Unicode), but if you use one of the various binary-to-text encodings that exist, you could probably implement Ethernet over WhatsApp. ;-)
The real, important value of implementing IP over WhatsApp (in a proper, transparent way as other commenters are stating, and not from a chatbot as in the article) is not to avoid paying $5 for WiFi on a plane, but to protest the lack of net neutrality in an effective way.
I've tried this before, it's a fucking nightmare lol it's not full-duplex at all so this severely limits your ability to do things at a reasonable speed for most shit. For me it was because at the time Zuckerbutt was giving out 'free' internet in the third world, but only for whatsapp, instagram, and facebook, so me and my friends wanted to see if this was exploitable, but it was just way too slow. It really gave me an impression of how fast TCP runs at normally which I took for granted before, and ideally bidirectionally fast.<p>For airport wifi I use a DNS tunnel or simple MAC rotation, for in-flight... well if they could make it quality someday maybe but every time I've shelled out like 50 bucks for an hour or whatever the ripoff deal is it doesn't work well enough to do anything. I hear the DNS tunnel method does work on some of them though, I should try that someday.<p>As a side note those in-flight screens in the backs of seats are interesting in this 'why the hell would they do this' kind of way. I managed to crash one when I noticed it had a USB port (bad idea on their part)... It was super easy, I tried to read the USB key but then just removed it when it was accessing the thing and the whole thing just went down. Apparently it was running x-windows on some type of *nix because I could see that default background with an X for the cursor. They should really get rid of those because I'm sure that they could be misused for nefarious ends.
Of all the possible websites to choose as an example, Wikipedia is a strange choice since, unlike most websites, one can download its database and query it offline. For example,<p><a href="https://en.wikipedia.org/wiki/Wikipedia:Database_download" rel="nofollow">https://en.wikipedia.org/wiki/Wikipedia:Database_download</a><p><a href="https://download.kiwix.org/zim/" rel="nofollow">https://download.kiwix.org/zim/</a><p>Some other ways to search and read Wikipedia offline:<p><pre><code> XOWA: (S: XOWA)
WikiTaxi: S: WikiTaxi (for Windows)
aarddict: S: Aard Dictionary
BzReader: S: BzReader and MzReader (for Windows)
Selected Wikipedia articles as a printed document: Help:Printing
Wiki as E-Book: S: E-book
WikiFilter: S: WikiFilter
Wikipedia on rockbox: S: Wikiviewer for Rockbox</code></pre>
“WhatsApp messages are limited to 1600 characters”
If that is UTF32 we have 51200 bytes or 50kB per message.<p>“the basic free accounts I was using rate-limit to ~1QPS”
That is 400kbit/s.
Can we have multiple accounts?
40 accounts would give us a theoretical maximum speed of 16Mbit/. Would probably closer to 10Mbit/s in real life, enough to watch movies.<p>Example library for sending/receiving WhatsApp text:
<a href="https://github.com/open-wa/wa-automate-python" rel="nofollow">https://github.com/open-wa/wa-automate-python</a>
Almost a decade ago a French mobile carrier had their entire domain and subdomains zero-rated - one of the subdomains had a phpBB forum - someone created a little script to tunnel full layer 3 communication over the forum’s private messaging functionality. I’d imagine it would slaughter the DB if you tried to pass any significant traffic though it but as a demonstration it was cool and worked fine.
One thing that would be interesting is scanning for open ports. Once you find an open port, make a Twilio API and text the number (Since most airlines enable texting via SMS/Whats APP) that triggers opening the port on your VPS that is opened on the airplane.<p>Once you do that, you can tunnel into your VPS through the airlines open port or SSH into the machine. If you create a SOCKS5 proxy, then all traffic in your browser will tunnel through the VPS.<p>Haven't tried this, but just a thought.
The last time I was on an flight that had WiFi (AA about 5 years ago) I tried 2 ways to get around the captive portal, both successful:<p>1. Setting my useragent to iOS Safari and trying to download the Gogo Player app to watch one of the free films. If you have Android this just serves the APK but on iOS it just has to dump you to the App Store. This seemed to give me a good half hour of connectivity.<p>2. I went on the live chat and asked for a free connection. The agent gave it to me.
This reminds me of back in the day when internet cost on mobile phones. An og "hacker" could text a website to some number he had set up and it would MMS him back a picture of the website. Worked in a pinch. This was in 2005-2008ish. I can't remember who did it though. So many years ago.
Wait, is this filtering based on IP or DNS? How do they make sure their whitelist remains up to date? (I assume it's HTTPS, so those are basically the only two options...)<p>If it's DNS based, there should be simpler workarounds, so I guess it's just IP based?
nice! next up: encapsulate ip to provide full networking (with terrible latency)<p>also just in case someone is wondering, a more ergonomic solution specifically for reading wikipedia on a plane is <a href="https://kiwix.org" rel="nofollow">https://kiwix.org</a>
I actually had a very similar idea but the twist is in Africa we don't have access to affordable internet for the average student but we have greatest discounted bundles for social media apps like whatsApp, instagram and facebook. I wanted to use whatsApp to send a screenshot of googles first result page for a given query.
This is basically a chat bot interface.<p>Google used to have a way to ask for searches via SMS a while ago: <a href="https://www.youtube.com/watch?v=J937N9m-XtE" rel="nofollow">https://www.youtube.com/watch?v=J937N9m-XtE</a><p>But "tunneling" to me implies some transparent layer allowing you to browse Wikipedia via the same way of interaction.
Would this be extended to tunnel an SSH session over WhatsApp?<p>While obviously not super convenient, it'd be interesting to type commands and get results.<p>Of course any interactive terminal wouldn't work, but for simple commands, executing scripts and seeing logs etc. this should work.
For some reason I just eat these kinds of projects up. As a kid I went on a cruise with my parents with very limited internet access and discovered HTTP-over-DNS (using TXT records), which remains my favorite captive portal workaround.
here an idea:<p>take a screenshot of the website and send it back as a compressed base64 text or what ever will produce smallest result<p>then decode that image from the text on your phone
If anyone's looking to reproduce this but in a no-code way then I have a setup to send and receive WhatsApp messages via email[1] using android VM and tasker which could be modified/extended for retrieving other data.<p>But OP method has lesser moving parts and more easily reproducible if coding is not the barrier.<p>[1] <a href="https://abishekmuthian.com/send-and-receive-whatsapp-messages-through-email/" rel="nofollow">https://abishekmuthian.com/send-and-receive-whatsapp-message...</a>
My first thought was to abuse the Web client. Run a server somewhere which hooks into JS in headless Chrome, parses commands and sends messages (requires a dummy user). The client could be based on the Web client, too. But I'm not sure if it's feasible and it's probably against the Terms of Use.
Telegram has a lot of bots that do essentially this. But because WhatsApp is owned by Facebook, they have more business deals so you zero-rating in these situations.
You'd be surprised what kind of automations people build on top of WhatsApp. Also, you can use free alternatives to the Twilio API to do more than just text-based automation.
I fail to see the practicality of this. Since the reason presented was not to pay for WiFi but you still have to pay a service like Twillio if you want to construct a Whatsapp to whatever gateway.<p>Also, why not construct a Whatsapp to HTTP gateway, since pictures and other binary data can be transformed with ease into text by something like base64 encoding. Sure, it would still not be practical, but it would be a better proof of concept.
In a good world we would have free wikipedia access anywhere, no cost.<p>Then we could learn anything we needed.<p><a href="https://xkcd.com/548/" rel="nofollow">https://xkcd.com/548/</a>
Cool project, but to me this feels like the "how to make a meal out of free condiments at restaurants" life hacks.<p>In my opinion, just pay for the service. Satellite internet systems are not cheap to stand up or operate.
nice project, I've did something like this too, except I tunneled the internet traffic through SMS, so I could access the internet through my feature phone lol
Sure, it's always interesting to investigate vulnerabilities and design deficiencies, and it can be beneficial especially when the goal is improving security for everyone.<p>But it's hard for me to celebrate someone whose motivation seems to be that they are simply too cheap to pay for something that other, more honest, people are willing to pay for. In this case, it probably doesn't affect anyone else if the author only downloads a few articles, but in general, if internet bandwidth on an airplane is a limited resource, then using large amounts up in this way to the detriment of others would just be stealing.