Show HN: Terminal Phone – E2EE Walkie Talkie from the Command Line (gitlab.com)
TerminalPhone is a single, self-contained Bash script that provides anonymous, end-to-end encrypted voice and text communication between two parties over the Tor network. It operates as a walkie-talkie: you record a voice message, and it is compressed, encrypted, and transmitted to the remote party as a single unit. You can also send encrypted text messages during a call. No server infrastructure, no accounts, no phone numbers. Your Tor hidden service .onion address is your identity.
23 comments
[ 2.5 ms ] story [ 49.7 ms ] threadFor those who use Tor regularly for things other than web browsing: how bad is the real-world latency for pushing a ~20KB Opus audio chunk over Tor these days? Are we talking a 2-3 second delay, or is it much worse?
Modulo cool project love show HN etc.
Interesting that people do this, I wonder how much it improves security? Afterall, any serious surveillance would involve running relays and exits in foreign lands.
'|| true' 76 matches 'echo ""' 50 matches ' [ ' 261 matches '=$(' 90 matches
Why!? That sounds like approximately 20 too many.
Still: Using a line based protocol and base64 encoding the audio data? Not my first choice.
The README doesn't mention it, but I assume both parties have to be online at the same time?
Regarding encryption - what's the point? When communicating with a tor hidden service, the data is already encrypted.
Only starting the sending audio data after the speaker has stopped talking means much longer delays than necessary. Imagine someone talking for a minute.
Thanks for contributing!
The most obvious path is just integrating the authorized clients Tor has already built in. A way to export these keys efficiently to your intended recipient.
More applications using the network means more cover traffic as well.
Agree. The biggest barrier for me using Tor is the perception held by many IT admins is that Tor is synonymous with nefarious. It makes using it inconvenient or impossible in many highly controlled network environments such as enterprise, public access wifi, etc.
send.vis.ee along with ffsend[0] maybe?
0: https://github.com/timvisee/ffsend
I love and use ffsend every day.
You're using opus but you might be interested in abusing the DRED error correcting scheme (which is an experimental part of opus) in it as a codec, as it does pretty good sounding speech at 2kbit/sec. You could send the dred first then the opus compressed audio so that if tor craps out before the transmission completes the receiver still get the audio. (A step further would be to run automatic speech recognition, a send text, dred, then opus. :P ).
A mobile relay should be able to handle 3-5 users nicely. A dedicated machine with a stable connection should be preferred.
You can act as the relay and caller by running two instances, you will need to change your socks port of the second instance so that you can have two addresses.
Relay does not need to have the shared secret, it is simply forwarding payloads, and broadcasting connected client counts.