Telegram is an instant messaging app, well known for its focus on security and encryption. It’s used by government officials, journalists, and the paranoid, and can also handle VoIP calls, in addition to its text messaging capability. [PiMaker] wondered if all this encryption could be put to good use, and decided to try and route IP over Telegram, as you do.
The project is called Teletun, and it works! It uses telgram-cli, a command line interface for the instant messaging network. The actual IP routing is handled with a Python script, and [PiMaker] recommends that in use, the user should “pray to the gods for mercy”. Reports are that bandwidth is limited, but latency can go as low as 100ms, which suggests Telegram is indeed a fairly instant messenger.
Tunneling over instant messaging services is good practice for any aspiring hacker, but likely to be unwieldy for any practical purpose. If you can think of one, other than irritating the intelligence agents tapping your communications, throw it down in the comments below. Otherwise, consider other oddball ways to (ab)use Telegram.
We presume this is an improvement in bandwidth compared to similar previously proposed standards like https://tools.ietf.org/html/rfc1149
IPoAC actually had very high bandwidth capability – https://spectrum.ieee.org/tech-talk/computing/networks/pigeonbased-feathernet-still-wingsdown-fastest-way-of-transferring-lots-of-data.
The protocol has been tested many times, https://www.blug.linux.no/rfc1149/writeup/
I can’t find the link right now, but some group performed an experiment and tested IPoAC against their ISP. The ISP lost.
However, the quoted 100ms latency would certainly beat IPoAC.
With recent advances in high density NAND flash, the bandwidth of that protocol is HUMUNGOUS, like transatlantic fibre pipe huge. Ping time still sucks though.
FedEx remains the highest bandwidth network.
Never underestimate the bandwidth of the family station wagon.
Or a backpack full of 360kB floppies and a decent pair of sneakers. Beat the heck out of dialing into the office. #MeIn1987. Even better when those newfangled 1.44MB ones came out #slackware1.0. Glorious times those were, being able to mount a NFS disk 4000 km away over SLIP from my basement.
Looks like Amazon made it into a service: a truck of hard drives
https://aws.amazon.com/snowmobile/
A number of cloud services offer physical media transport options, from mailing them an external HDD upwards. Even for home users who’ve “only” accumulated a couple of terabytes of stuff they want backed up, the upload times can be months.
There was actually talk, back when the ARPANet/MilNet split was happening, about tunneling IP inside SMTP (or telnet inside of SMTP?) Alas, it doesn’t seem to have made it to any of the 1-April RFCs, and I don’t think I saved a copy of the discussion.
Trying to route IP over SMS is actually a thing and has real use cases. See USSD (https://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data) and SMS PDU mode for more background. There’s also IP-based protocols like CoAP that has been proposed to run over SMS (https://tools.ietf.org/html/draft-becker-core-coap-sms-gprs-06).
This brings me to exact opposite idea: Using VPN (eg. wireguard) as instant messenger. That might be more practical…
so you are routing IP, over an application layer, down through the other layers, and over IP Again? why?
I just got off a flight that offered free WiFi, limited to only a few IM protocols, and Telegram happened to be one. They offered actual WiFi with internet access for a fee, but this could be a clever way to bypass that for basic imap email or whatever.
There’s a major European airline that offers BYOD onboard entertainment over WiFi with some creepy “send postcard via Facebook” service. They apparently deployed it the easiest way possible and m.facebook.com is reachable without the paid service.
Hey that’s actually my project – I was wondering why I suddenly got GitHub stars again :)
By the way, the issue wasn’t just the low bandwidth, but rather that Telegram rate-limits you after a few packets. Enough time to start a quick SSH session, but not too much more.
Thanks for the mention!