- DM terenkripsi baru Twitter(X) (XChat) secara teknis mengklaim sebagai enkripsi end-to-end, tetapi cacat keamanan serius seperti pencurian private key, MITM, dan kebocoran metadata masih tetap ada
- Libsodium Box (enkripsi berbasis secret key) telah diadopsi, tetapi karena tidak mendukung forward secrecy dan memakai perlindungan kunci lemah berbasis PIN 4 digit, ekstraksi private key relatif mudah dilakukan
- Private key dicadangkan/dipulihkan dengan protokol Juicebox, namun keamanan nyatanya sepenuhnya bergantung pada kepercayaan terhadap backend, dan karena Twitter mengoperasikan sendiri semua backend, makna sharding nyaris tidak ada
- Karena tidak ada prosedur out-of-band untuk autentikasi/verifikasi public key, Twitter dapat mengganti kunci lewat serangan MITM (man-in-the-middle), dan metadata pengguna tetap terekspos apa adanya
- Berbeda dari Signal, saat ini perlindungan privasi yang nyata masih kurang, sehingga Signal direkomendasikan sebagai messenger terenkripsi yang dapat dipercaya
Analisis DM terenkripsi baru Twitter
Latar belakang dan ringkasan
- Twitter(X) mengumumkan platform pesan terenkripsi baru XChat, dipromosikan sebagai dibangun dengan Rust dan mengadopsi struktur kriptografi bergaya Bitcoin
- Namun jika melihat implementasinya, Twitter tetap memiliki struktur yang memungkinkannya mengakses private key, melakukan MITM (man-in-the-middle), dan mengumpulkan metadata
- Kesimpulan: disarankan menggunakan Signal, DM Twitter(X) tidak aman karena keterbatasan mendasarnya
Struktur enkripsi dan keterbatasannya
1. Metode enkripsi
- Menggunakan box dari Libsodium (enkripsi berbasis public key)
- forward secrecy tidak didukung: jika private key bocor, semua pesan lama dapat didekripsi (artinya lebih lemah dibanding messenger modern seperti Signal)
- Implementasi aktualnya bukan memakai Rust, melainkan library C (di-binding melalui jni)
2. Penyimpanan dan pemulihan kunci (protokol Juicebox)
- Private key yang dibuat di perangkat disimpan dengan protokol Juicebox
- Kunci disimpan setelah dienkripsi berbasis PIN (4 digit), dan saat pemulihan perlu memasukkan PIN
- Server tidak mengetahui PIN, tetapi karena PIN hanya 4 digit (10 ribu kemungkinan), ia dapat di-crack dengan cepat melalui brute force paralel
- Meskipun Argon2id menerapkan memori 16MB dan 32 putaran, itu bukan hambatan besar bagi penyerang nyata (bahkan di laptop spek rendah pun kurang dari 0,2 detik)
3. Keterbatasan struktur distribusi kunci (sharding)
- Juicebox mendukung distribusi ke banyak backend (sharding), tetapi Twitter mengoperasikan sendiri ketiga backend tersebut
- Pada akhirnya, proses pemulihan kunci sepenuhnya bergantung pada kepercayaan terhadap Twitter, sehingga tidak ada manfaat keamanan mendasar dari sharding
- Juga tidak ada prosedur verifikasi hardware seperti HSM atau SGX untuk berkomunikasi aman dengan backend
4. Kelemahan autentikasi/pertukaran public key
- Public key lawan bicara hanya diterima melalui server Twitter, tanpa sarana verifikasi terpisah (out-of-band)
- Twitter bisa memberikan public key arbitrer kapan pun untuk melakukan serangan man-in-the-middle (MITM)
- Halaman dukungan resmi juga mengakui kelemahan ini dan hanya menjanjikan perbaikan di masa depan, tanpa langkah nyata saat ini
5. Metadata dan masalah lainnya
- Metadata seperti siapa mengirim pesan ke siapa dan kapan, sepenuhnya dapat diketahui Twitter
- Bahkan jika private key tidak bocor, pola komunikasi pengguna tetap terekspos ke perusahaan
Kesimpulan dan rekomendasi
- Karena keterbatasan desain DM terenkripsi ini, dari sisi keamanan dan privasi nyata ia tidak sebanding dengan messenger teruji seperti Signal
- Selama Twitter mengendalikan public key, key store, dan jalur komunikasi sekaligus, ini tidak dapat dianggap sebagai end-to-end encryption yang sesungguhnya
- Sangat direkomendasikan menggunakan messenger dengan protokol yang terbuka dan transparan seperti Signal
1 komentar
Komentar Hacker News
Saya penggemar semua tulisan Matthew Garrett, tetapi saya ingin dengan agak ngotot menegaskan bahwa Signal sejak lama selalu mendukung forward secrecy. Konsep messenger modern yang aman pada dasarnya lahir ketika OTR (Borisov dan Goldberg) hampir pertama kali memperkenalkan gagasan "perfect forward secrecy" dan deniability. Saya melihat Signal sebagai hasil pengembangan dari ide-ide tersebut, beserta sisi rekayasanya (enkripsi yang lebih baik, kode yang lebih baik, packaging yang lebih baik). Yang membuat frustrasi adalah kenyataan bahwa messenger baru bukan mundur ke level "pra-Signal", melainkan ke tingkat keamanan sebelum 2001, yaitu sebelum era modern
Ada tiga hal yang perlu diingat dari berbagai kebocoran di masa lalu. (1) FBI pernah "memaksa" perusahaan untuk diam-diam memasang backdoor. Juga pernah disebut bahwa pengadilan FISA bisa menjatuhkan denda yang sangat merugikan perusahaan. (2) Perusahaan besar dibayar puluhan juta hingga ratusan juta untuk biaya backdoor. Lalu mereka juga ditekan melalui berbagai cara seperti kontrak pemerintah atau lisensi ekspor. Pada akhirnya ini bisa ditafsirkan sebagai kebijakan "uang atau todongan senjata". (3) Dalam kasus persidangan Lavabit, FBI menuntut penyerahan kunci sekaligus pada praktiknya memaksa mereka berbohong kepada pelanggan. Mengingat contoh-contoh seperti ini, wajar jika muncul kecurigaan bahwa enkripsi di platform besar cukup sering sengaja dilemahkan atas permintaan pemerintah, atau diterapkan secara ceroboh karena memang tidak terlalu dipedulikan. Sampai Patriot Act, FISC, interpretasi rahasia, dan praktik-praktik terkait benar-benar dihapuskan dan para pelanggarnya dihukum, saya berasumsi bahwa enkripsi di negara polisi sudah lebih dulu dirusak oleh Five Eyes
Selama orang masih memasang aplikasi berbasis PC dari App Store, situasi terbelakang seperti ini tampaknya akan terus berlanjut
Jika tidak memakai ephemeral key, tidak ada forward secrecy, dan juga tidak ada transcript interactivity, saya jadi bertanya-tanya bagian mana yang benar-benar bergaya 'bitcoin'
Memang ada kriptografi yang dipakai, tetapi secara umum terasa seperti turunan yang tidak menarik dan nyaris tak berguna
Artinya, nilai guna praktisnya hampir tidak ada
Bitcoin sendiri juga bukan saluran komunikasi yang aman
Memang ada penggunaan derivasi kunci berbasis PIN. Tetapi itu lebih mirip cara mengimplementasikan backup daripada karakteristik inti dari messaging itu sendiri, jadi sulit dianggap sebagai fitur esensial
Disebut juga bahwa mereka memakai fungsi hash
Membagikan tautan diskusi sebelumnya:
"XChat terenkripsi" baru dari X juga tidak jauh lebih aman
Lihat komentar terkait
Kalau benar-benar ingin mengenkripsi, sepertinya lebih baik memakai perangkat lunak terpisah dan menukar kunci publik secara langsung saat bertemu
Pertanyaan: Saya akan segera berkunjung ke Beijing, dan ingin tahu apakah Twitter bisa dipakai tanpa VPN
Saya mempertanyakan ungkapan "Bitcoin style encryption". Setahu saya, Bitcoin pada praktiknya lebih bergantung pada teknologi tanda tangan kriptografis daripada "enkripsi" seperti yang biasa kita maksud
Istilah ini sebenarnya tidak berarti apa-apa, hanya istilah pemasaran agar terdengar meyakinkan bagi orang yang tidak akrab dengan teknologinya
Perlu diingat bahwa sumber pernyataan itu sendiri bukan orang yang sangat mendalam secara teknis
Ia memakai istilah itu karena sudah memperkirakan akan memicu isu. Bisa ditafsirkan sebagai pilihan strategis untuk menarik lebih banyak perhatian
Membagikan tautan video penjelasan
https://www.youtube.com/watch?v=sJNK4VKeoBM
Hanya kata bergaya buzzword yang dipakai agar terlihat keren dan terasa seperti sesuatu yang “bernilai”
Saya penasaran apakah XChat yang asli (klien IRC) bisa menggugat X-Twitter karena pelanggaran merek dagang
http://xchat.org/
Saya dulu pengguna IRC pada masa transisi dari XChat ke HexChat, jadi agak bernostalgia. Tapi saya juga kaget mendengar bahwa HexChat sudah dihentikan pengembangannya
Kabar penghentian HexChat
Mungkin bisa, tetapi agar lebih mudah diakui, pihak XChat harus bisa membuktikan nilai komersial dengan baik pada setiap ranah yang dilanggar oleh X, dan merek dagangnya juga harus terdaftar di masing-masing wilayah. Kalau tidak, akan lebih sulit
Hal menarik dari pustaka yang dipakai Twitter (menurut artikel sumber) adalah pengembangnya sendiri menulis di deskripsi pustaka itu:
"Peringatan: pustaka eksperimental! Jangan gunakan ini di produksi sampai sudah ditinjau. Risiko dan potensi bug sangat besar"
https://github.com/ionspin/kotlin-multiplatform-libsodium
Saya kagum kekuatan merek Twitter begitu besar sehingga setelah rebranding pun tetap tidak kehilangan daya hidupnya