- Alat komunikasi bergaya walkie-talkie berbasis Bash untuk mengirim dan menerima suara dan teks secara anonim dengan enkripsi end-to-end (E2EE) melalui jaringan Tor
- Terhubung langsung ke lawan bicara hanya dengan alamat
.onion tanpa server, akun, atau nomor telepon, dengan struktur push-to-talk (PTT) yang merekam pesan suara lalu mengirimkannya
- Menyediakan fitur keamanan kuat seperti pilihan 21 jenis cipher termasuk AES, ChaCha20, Camellia, ARIA, autentikasi HMAC-SHA256, dan derivasi kunci PBKDF2
- Mendukung lingkungan Linux dan Android Termux, dan berjalan hanya dengan alat standar seperti sox·opus-tools·Tor·openssl
- Terdiri dari satu skrip sehingga instalasi dan pemeliharaan sederhana, serta dapat dimanfaatkan untuk riset keamanan dan eksperimen komunikasi berfokus privasi
Ikhtisar
- TerminalPhone adalah skrip Bash yang memungkinkan dua pengguna bertukar suara dan teks secara anonim menggunakan Tor Hidden Service
- Semua komunikasi dilindungi dengan cipher yang dapat dipilih seperti AES-256-CBC (default)
- Alamat
.onion berfungsi sebagai pengenal pengguna
- Tidak memerlukan infrastruktur server atau pendaftaran akun
Fitur utama
- Pesan suara gaya walkie-talkie: direkam lalu dikirim, tanpa streaming real-time
- Obrolan terenkripsi saat panggilan berlangsung: kirim dan terima pesan teks dengan tombol
T
- Deteksi penutupan otomatis dan indikasi status lawan bicara (sedang merekam/menunggu)
- Pilihan 21 cipher dan tampilan negosiasi secara real-time, cipher dapat diubah di tengah panggilan
- Dukungan bridge Snowflake untuk menghindari sensor
- Berbagai fitur tambahan seperti berbagi alamat via QR code, pengubah suara (voice changer), nada notifikasi PTT, dan penerimaan otomatis (auto-listen)
- Autentikasi protokol HMAC-SHA256 untuk mencegah serangan replay
- Mendukung tampilan rute sirkuit Tor dan pengaturan pengecualian negara tertentu
- Satu file Bash, tidak memerlukan hak root, dan tetap berfungsi di lingkungan bandwidth rendah (16kbps)
Instalasi
- Linux: jalankan
git clone lalu bash terminalphone.sh, kemudian instal dependensi otomatis lewat menu 7
- Paket instalasi:
tor, opus-tools, sox, socat, openssl, alsa-utils
- Android Termux:
- Instal aplikasi Termux dan Termux:API dari F-Droid
- Setelah
pkg install termux-api, jalankan bash terminalphone.sh
- Paket tambahan:
ffmpeg, openssl-tool, tor, sox, socat dan lainnya
Cara penggunaan
- Prosedur dasar
- Jalankan
bash terminalphone.sh
- Instal dependensi lewat menu 7
- Jalankan Tor lewat menu 8
- Atur shared secret key di menu 4
- Berikan alamat
.onion kepada lawan bicara
- Menerima: menu 1 “Listen for calls”
- Memanggil: menu 2 “Call an onion address”
- Contoh perintah mode CLI:
bash terminalphone.sh call ADDRESS
bash terminalphone.sh listen
Cara kerja
- Model record-then-send
- Suara yang direkam diproses dengan encoding Opus → enkripsi AES → encoding Base64 → pengiriman via Tor
- Pihak penerima melakukan dekripsi dan pemutaran dalam urutan terbalik
- Pesan protokol berbasis teks mencakup
ID, CIPHER, PTT_START, AUDIO, MSG, HANGUP, PING dan lainnya
- Di Termux,
ffmpeg digunakan untuk mengonversi M4A ke PCM sebelum diproses
Struktur keamanan
- Enkripsi: menggunakan kunci turunan dari PBKDF2 (10.000 iterasi), memberi perlindungan tambahan di lapisan aplikasi terpisah dari enkripsi transmisi Tor
- Negosiasi cipher: saling dipertukarkan saat koneksi dibuat dan saat diubah; jika tidak cocok, header ditampilkan merah
- Jalur transmisi: komunikasi melalui sirkuit Tor Hidden Service tanpa mengekspos IP
- Ketahanan terhadap analisis trafik: pola transmisi tidak teratur untuk mencegah fingerprinting
- Autentikasi: jika shared secret key tidak cocok, dekripsi akan gagal
- Tanda tangan HMAC-SHA256: setiap pesan menyertakan nonce acak untuk memblokir serangan replay
- Keterbatasan:
- Secret key harus ditukar melalui kanal eksternal yang aman
- Tidak ada forward secrecy, sehingga jika kunci bocor komunikasi lama bisa didekripsi
- Tidak dapat melindungi jika keamanan endpoint telah dikompromikan
Lisensi
1 komentar
Komentar Hacker News
Struktur yang memakai alamat onion v3 sekaligus sebagai ID kriptografis dan lapisan traversasi NAT benar-benar rapi
Tidak perlu server STUN/TURN maupun hole punching; cukup jalankan skrip dan Tor yang menangani routing
Penasaran berapa latensi nyatanya saat mengirim potongan audio Opus sekitar 20KB lewat Tor — apakah sekitar 2–3 detik, atau malah lebih parah
Model walkie-talkie membuat pengguna mengikuti urutan ‘dengar-lalu-bicara’, jadi latensi besar tidak terlalu jadi masalah
Dengan STUN, trafik hanya lewat antara dua perangkat, sedangkan VPN seperti Tor harus melewati semua server perantara sehingga biaya trafiknya besar
Jika VPS dibatasi beberapa GB per bulan, ini jadi kendala besar
Mungkin pesan teks lebih baik. Meski begitu, proyeknya sendiri tetap keren
Menarik melihat contoh nyata penggunaan onion service sebagai backend
Sebentar lagi juga akan ada dukungan untuk klien onion Arti yang memungkinkan Tor di-embed langsung ke aplikasi dalam bentuk pustaka Rust
Semakin banyak percobaan seperti ini, semakin besar pula cover traffic di jaringan
Karena itu, di lingkungan terkontrol seperti jaringan perusahaan atau Wi-Fi publik, penggunaan Tor hampir mustahil
Jika tidak harus real-time, sisi penerima juga bisa menambahkan penyesuaian kecepatan pemutaran atau penghapusan jeda untuk mengurangi keterlambatan
Audio dari beberapa orang yang dikirim bersamaan pun bisa diputar cepat
Jika memakai Opus, mungkin layak mencoba fitur eksperimental skema pemulihan kesalahan DRED sebagai bagian dari codec
Walau Tor terputus saat transmisi, sistem bisa diatur agar data DRED dikirim lebih dulu sehingga penerima tetap mendapat suara minimum
Bagian yang menyebut “tersedia 21 algoritma kriptografi” cukup menarik. Rasanya terlalu banyak
Ingin memakai AES-GCM, tetapi autentikasi sulit ditangani hanya dengan OpenSSL saja
Tor sendiri sudah E2EE, jadi lapisan ini pada dasarnya adalah enkripsi berlapis yang redundan. Tetap saja, menyenangkan mengetahui datanya terenkripsi sekali lagi sebelum menyentuh jaringan
GitLab belakangan ini terasa lebih cepat, penasaran apakah memang dioptimalkan atau cuma ilusi karena lazy loading
Saya sangat suka proyek ini. Kalau pengguna ingin bertukar kredensial dengan aman, cara terbaiknya bagaimana? Apakah email PGP cukup baik?
Kalau bisa, idealnya bertukar langsung saat bertemu, atau lewat messenger aman
atau meninggalkannya di ruang fisik (papan tulis, papan pengumuman, rambu, dan semacamnya)
Dengan begitu, koneksi dengan lawan bicara di masa depan tetap dimungkinkan bahkan dalam keadaan sepenuhnya offline
Fitur untuk mengecualikan negara tertentu (Exclude Countries) dari sirkuit Tor terdengar menarik
Ada juga preset seperti Five Eyes, Nine Eyes, Fourteen Eyes, dan pengaturannya memakai ExcludeNodes serta StrictNodes di torrc
Penasaran apakah ini benar-benar membantu meningkatkan keamanan
Fakta bahwa node yang telah dikompromikan memang ada itu nyata, jadi entah efektif atau tidak, menarik bahwa kita punya kendali
Mengingat karakteristik latensi Tor, model walkie-talkie adalah desain yang sangat cerdas
Audio dua arah real-time mulai terasa janggal jika round trip melebihi 150ms, sedangkan Tor menambah 50–200ms per hop
Jika dirancang dengan model store-and-forward, tidak perlu melawan sifat dasar jaringannya
Penasaran codec apa yang dipakai — kalau bukan real-time, trade-off Opus bisa berbeda
Mengejutkan bahwa bahkan di 6kbps pun tingkat keterpahaman suara masih cukup tinggi
Di Termux, akses mikrofon tidak tersedia, jadi audio harus dikonversi lewat aplikasi Termux API dan ffmpeg
Bahkan jeda beberapa detik saja bisa mengurangi obrolan yang tidak perlu
Apakah ini bisa diatur seperti komunikasi grup, sehingga beberapa orang bergabung di kanal yang sama?
Kelihatannya menarik jadi saya sempat melihat-lihat kodenya,
'|| true'muncul 76 kali,'echo ""'50 kali,' [ '261 kali, dan'=$('90 kali'['tidak disarankan,tetapi ingin tahu kenapa pola seperti
'|| true'dianggap bermasalah. Saya sendiri cukup sering memakainya bersamaset -euo pipefailuntuk penanganan error kustom