4 poin oleh GN⁺ 2025-12-14 | 2 komentar | Bagikan ke WhatsApp
  • Kode inti jaringan Tor sedang dialihkan dari bahasa C yang lama ke Arti berbasis Rust
  • Basis kode C lama memiliki kerentanan seperti buffer overflow, use-after-free, dan kerusakan memori
  • Versi baru Arti 1.8.0 menghapus pola yang dapat diprediksi dan mengurangi risiko pelacakan melalui perancangan ulang timeout sirkuit
  • Ditambahkan perintah baru yang memungkinkan operator layanan onion untuk memigrasikan kunci secara otomatis dari Tor berbasis C ke Arti
  • Peralihan ini merupakan kemajuan teknis penting bagi proyek Tor untuk meningkatkan keamanan dan stabilitas

Perubahan utama di Arti 1.8.0

  • Inti dari rilis ini adalah penerapan circuit timeout rework

    • Circuit Dirty Timeout (CDT) pada Tor lama mengendalikan kapan sirkuit diakhiri dengan satu timer tunggal
    • Pendekatan ini dapat diprediksi sehingga pengawas lalu lintas bisa mengidentifikasi polanya
    • Arti 1.8.0 memperkenalkan timeout berbasis penggunaan dan timer individual, sehingga sirkuit diakhiri pada waktu acak saat menerima koneksi baru atau ketika sedang idle
    • Ini mengurangi risiko fingerprinting
    Iklan
  • Ditambahkan perintah eksperimental arti hsc ctor-migrate

    • Operator layanan onion dapat memindahkan restricted discovery keys dari Tor berbasis C ke keystore milik Arti
    • Kunci-kunci ini digunakan untuk autentikasi klien, dan perintah baru tersebut mendukung migrasi otomatis tanpa pekerjaan manual
  • Peningkatan tambahan

    • Berbagai komponen internal juga ditingkatkan, termasuk arsitektur routing, implementasi protokol, dukungan cache direktori, dan konfigurasi listener port OR
    • Rincian perubahan dapat dilihat di log perubahan resmi untuk Arti 1.8.0
    Iklan

Latar belakang peralihan ke Rust

  • Jaringan Tor telah beroperasi dengan basis bahasa C sejak awal 2000-an
  • Namun, basis kode C terus menimbulkan kerentanan keamanan karena masalah keamanan memori
  • Karena itu, proyek Tor sedang mendorong proyek penulisan ulang Arti dengan memanfaatkan keamanan memori Rust
  • Arti mengimplementasikan ulang fungsi Tor dalam Rust dengan tujuan memperkuat keamanan, stabilitas, dan kemudahan pemeliharaan

Makna teknis

  • Peralihan ke Rust mengarah pada penguatan mendasar terhadap struktur jaminan anonimitas Tor
  • Penghapusan perilaku sirkuit yang dapat diprediksi dan otomatisasi pengelolaan kunci membantu meningkatkan tingkat perlindungan privasi pengguna
  • Pembaruan Arti yang berkelanjutan dinilai sebagai sinyal percepatan penggantian bertahap Tor berbasis C

2 komentar

 
GN⁺ 2025-12-14
Komentar Hacker News
  • Baru-baru ini saya mencoba tes EFF Cover Your Tracks, dan hasilnya menunjukkan bahwa hanya browser Tor dengan JS dimatikan yang sepenuhnya tahan terhadap pelacakan sidik jari
    Bahkan Tor dengan JS aktif dinilai hanya tahan “sebagian”, dan Firefox tidak memberikan hasil meski JS dimatikan. Hasilnya cukup menyeramkan, jadi saya penasaran dengan percobaan orang lain

    • Alat ini punya cacat dalam cara mengukur perlindungan sidik jari. Perlindungan yang memakai randomisasi justru dinilai lebih rendah, sementara hanya pendekatan binning yang dinilai tinggi.
      Sebaliknya, alat yang hanya menguji persistensi seperti fingerprinting.com/demo juga bermasalah.
      Sinyal bahaya yang sebenarnya adalah jika gagal di kedua tes tersebut
    • Saat diuji dengan Safari di macOS, saya mendapat hasil “perlindungan kuat terhadap pelacakan web”.
      Namun, walaupun browser Tor memang cukup mencolok, dari tes ini saja belum tentu bisa disimpulkan bahwa pembedaan sidik jari antar pengguna Tor itu mudah
    • Browser Tor mencoba memperlebar bucket sidik jari lewat cara seperti pembulatan ukuran canvas. Pada akhirnya, bucket terluas yang tak terhindarkan adalah “pengguna Tor” itu sendiri
    • Saat diuji di Debian dengan browser Tor pengaturan bawaan, muncul 8,24 bit informasi identitas.
      Semakin tinggi level keamanan, justru bit identifikasi bertambah, lalu turun lagi ketika JS dimatikan sepenuhnya.
      Artinya, menonaktifkan JS memberikan anonimitas tertinggi
  • Rasanya akan bagus jika Mozilla melanjutkan transisi Firefox ke Rust (oxidizing) lebih jauh lagi. Itu juga akan berdampak positif bagi ekosistem Rust, jadi agak disayangkan

    • Meski begitu, tim Chrome masih terus mendorong adopsi Rust
    • Bahkan setelah Mozilla melakukan PHK besar terhadap para pengembang Rust, porsi Rust dalam kode Firefox meningkat menjadi lebih dari 12%. Chromium masih di bawah 4%, jadi relatif lebih sedikit
      Kalau Rust tetap menjadi ‘senjata rahasia’ Mozilla, penyebaran Rust justru mungkin akan lebih lambat
    • Saya rasa kegagalan proyek Servo bukan karena masalah Rust, melainkan karena keterbatasan internal Mozilla
  • Jika penggunaan Rust membantu mereka memecahkan masalah, itu adalah pilihan yang rasional.
    Bahasa adalah alat yang cocoknya berbeda tergantung proyek, tim, dan masalah yang dihadapi

    • Dibanding “masa transisi bahasa” seperti ini, sering kali saya lebih tertarik pada hal-hal seperti optimasi dependensi atau peningkatan performa
    • Blog aslinya tidak menyalahkan C, jadi menurut saya tidak perlu dibawa-bawa
    • Bahwa bahasa yang aman terhadap memori secara teknis lebih unggul dari sisi keamanan adalah fakta yang jelas.
      Ini bukan klaim fanboy Rust, melainkan bentuk resistensi yang mirip dengan masa ketika dokter atau pilot menolak checklist
    • Rust cocok untuk kasus ini, tetapi tidak cocok untuk sebagian besar proyek UI.
      UI butuh iterasi cepat dan GC itu penting, sementara performa kurang penting. Menulis UI dengan Rust bisa menjadi neraka pemeliharaan
    • Saya tidak suka sikap “ayo tulis ulang semuanya dalam Rust”, tetapi untuk Tor, Rust memang alat yang tepat.
      Karena Tor adalah lingkungan multithreaded di mana keamanan dan performa sama-sama penting.
      Zig bisa jadi alternatif, tetapi belum cukup matang. Pendekatan yang menekankan determinisme seperti Tigerbeetle juga menarik
  • Keluhan terbesar terhadap proyek Tor adalah penurunan kecepatan. Dipindah ke Rust tampaknya tidak akan membuatnya lebih cepat

    • Onion routing memiliki trade-off antara privasi dan performa. Sebagian besar penyebabnya adalah latensi jaringan
    • Lambatnya Tor lebih disebabkan oleh kurangnya jumlah node daripada kodenya. Versi baru hanya lebih aman, bukan lebih cepat
    • Lalu lintasnya berputar mengelilingi bumi dua kali, jadi secara fisik memang timbul latensi. Pada akhirnya ini adalah batas kecepatan cahaya
    • Tor dibuat untuk menjamin anonimitas, bukan untuk streaming video
    • Membangun jaringan anonim yang cepat itu sangat sulit. Meski begitu, Tor belakangan ini jauh lebih cepat dibanding dulu, dan jika hanya beraktivitas di dalam onion maka anonimitasnya makin tinggi
  • Transisi ke Rust kali ini didukung oleh Zcash Community Grants. Bahkan dari R&D kripto pun bisa muncul hasil yang bagus

    • Ungkapan “Pecunia non olet” (uang tidak berbau) jadi teringat.
      Meski begitu, ditambahkan juga candaan bahwa kripto mungkin lebih buruk daripada urine
  • Saya khawatir soal risiko hukum saat menjalankan exit node Tor. Saya penasaran apakah ada cara untuk hanya mengizinkan akses berbasis whitelist

    • Sebaiknya lihat panduan menjalankan exit node di blog resmi Tor.
      Kalau memungkinkan, disarankan mendaftarkannya atas nama organisasi, dan jika ingin membantu dengan cara yang lebih aman maka menjalankan relay lebih baik
    • Jika ingin menghindari sorotan hukum, menjalankan bridge juga bisa jadi cara.
      Atau jalankan guard/middle relay karena itu sangat membantu jaringan
    • Exit node memang sulit, tetapi Anda juga bisa menyumbangkan bandwidth dengan cara seperti meng-host torrent ISO Linux atau server tile OpenMap.
      Hanya saja, beberapa ASN di China perlu diblokir. Trafik unduhan palsu cukup banyak
  • Adopsi Rust ini terasa seperti proses mengganti tiang kayu di benteng tua dengan baja.
    Basis kode Tor yang berbasis C menyimpan jejak kompromi keamanan dan performa selama puluhan tahun, jadi peralihan bertahap ke Rust adalah cara paling realistis untuk meningkatkan keamanan
    Intinya bukan “menulis ulang total”, melainkan mengurangi area yang tidak aman terhadap memori.
    Jika hanya bagian berisiko tinggi seperti parsing, kriptografi, dan batas protokol yang dipindahkan ke Rust, Tor akan menjadi jauh lebih tangguh
    Menarik juga membayangkan apakah ke depannya ini akan berkembang menjadi plugin transport berbasis Rust atau runtime hibrida

  • Sebenarnya keputusan ini bukan hal baru. Tor memulai proyek Arti berbasis Rust pada 2020, dan pada 2022 mengumumkan Arti 1.0
    Mereka menilai bahwa merapikan basis kode C secara bertahap sulit dilakukan, dan merasa puas dengan kecepatan pengembangan, portabilitas, dan masuknya kontributor yang dibawa Rust
    Baru-baru ini pun, menurut changelog Arti, pengembangannya masih sangat aktif

    • Arti dirancang agar bisa ditanamkan ke aplikasi lain dalam bentuk library.
      Misalnya, aplikasi pesan bisa memanfaatkan jaringannya tanpa daemon Tor terpisah. Menurut saya, itu perubahan yang lebih besar
    • Ada juga pendapat bahwa judulnya berlebihan. Tim Tor sudah lama bergerak dengan hati-hati
    • Tautan ini adalah referensi yang jauh lebih baik daripada artikel aslinya. Terlihat strategi yang cukup jelas sampai-sampai perdebatan “kenapa Rust” seperti sudah ditutup dari awal
    • Ada juga yang mempertanyakan apakah Rust memang punya portabilitas antar sistem operasi yang lebih baik daripada C
  • Tor bukan sekadar konsep, melainkan nama yang mencakup protokol (onion routing), jaringan, dan juga implementasi referensi

    • Onion routing adalah protokolnya, sementara Tor adalah jaringan dan implementasi di atasnya
    • Tor benar-benar merupakan produk yang bisa diunduh, dan terdiri dari beberapa komponen
    • Jadi ungkapan “menulis ulang Tor ke Rust” bukanlah hal yang salah
  • Ada usulan bercanda bahwa jika Tor dikompilasi dengan Fil-C, bukankah keamanan memori bisa didapat gratis

    • Namun, transisi ini adalah proyek yang sudah dimulai sebelum Fil-C muncul