Tor projesi Rust’a geçiş yapıyor
(itsfoss.com)- Tor ağının çekirdek kodu, mevcut C dilinden Rust tabanlı Arti'ye geçiriliyor
- Mevcut C kodunda buffer overflow, use-after-free, bellek bozulması gibi güvenlik açıkları bulunuyor
- Yeni sürüm Arti 1.8.0, devre zaman aşımı tasarımını yeniden düzenleyerek öngörülebilir kalıpları ortadan kaldırıyor ve izleme riskini azaltıyor
- Onion hizmeti operatörlerinin, C tabanlı Tor’dan Arti’ye anahtarları otomatik olarak taşıyabilmesi için yeni bir komut eklendi
- Bu geçiş, Tor projesi için güvenlik ve kararlılığı artırmaya yönelik önemli bir teknik ilerleme niteliği taşıyor
Arti 1.8.0’daki başlıca değişiklikler
-
Bu sürümün odağında devre zaman aşımının yeniden işlenmesi (circuit timeout rework) yer alıyor
- Mevcut Tor’daki Circuit Dirty Timeout (CDT), devrenin ne zaman sonlandırılacağını tek bir zamanlayıcıyla kontrol ediyordu
- Bu yöntem öngörülebilirdi ve trafik gözlemcilerinin kalıpları tanımlamasına olanak tanıyordu
- Arti 1.8.0, kullanım tabanlı zaman aşımı ve ayrı zamanlayıcılar getirerek devrelerin yeni bağlantıları kabul ederken veya boşta kaldıklarında rastgele zamanlarda kapanmasını sağlıyor
- Böylece parmak iziyle izleme (fingerprinting) riski azaltılıyor
-
Yeni deneysel
arti hsc ctor-migratekomutu eklendi- Onion hizmeti operatörleri, kısıtlı keşif anahtarlarını (restricted discovery keys) C tabanlı Tor’dan Arti’nin anahtar deposuna (keystore) taşıyabiliyor
- Bu anahtarlar istemci kimlik doğrulaması için kullanılıyor ve yeni komut, elle işlem yapmadan otomatik taşıma desteği sunuyor
-
Ek iyileştirmeler
- Yönlendirme mimarisi, protokol uygulaması, dizin önbelleği desteği, OR port dinleyici yapılandırması gibi birçok iç bileşen geliştirildi
- Ayrıntılı değişiklikler, Arti 1.8.0’ın resmi değişiklik günlüğünde görülebilir
Rust geçişinin arka planı
- Tor ağı, 2000’lerin başından bu yana C dili tabanlı olarak çalışıyor
- Ancak C kod tabanı, bellek güvenliği sorunları nedeniyle sürekli güvenlik açıkları üretiyordu
- Bu nedenle Tor projesi, Rust’ın bellek güvenliğinden yararlanan Arti yeniden yazım projesini sürdürüyor
- Arti, Tor’un işlevlerini Rust ile yeniden uygulayarak güvenlik, kararlılık ve bakım kolaylığını güçlendirmeyi hedefliyor
Teknik önemi
- Rust’a geçiş, Tor’un anonimlik sağlama yapısını temelden güçlendiren bir yönelim anlamına geliyor
- Öngörülebilir devre davranışının ortadan kaldırılması ve anahtar yönetiminin otomatikleştirilmesi, kullanıcı gizliliği koruma düzeyinin artmasına katkı sağlıyor
- Arti’nin sürekli güncellenmesi, C tabanlı Tor’un kademeli olarak yerini almasının hızlandığına işaret ediyor
2 yorum
Arti 1.0.0 duyuruldu - Rust ile yazılmış Tor implementasyonu
Hacker News yorumları
Kısa süre önce EFF'nin Cover Your Tracks testini denedim; Tor Browser'da JS kapalıyken parmak izi takibine tamamen dirençli görünen tek durum buydu.
JS açık Tor bile yalnızca “kısmen” dirençli olarak değerlendirildi; Firefox ise JS kapalı olsa bile iyi bir sonuç vermedi. Oldukça ürkütücü bir sonuç, başkalarının deneylerini de merak ediyorum
Tersine, fingerprinting.com/demo gibi yalnızca kalıcılığı test eden araçlar da sorunlu.
Asıl tehlike işareti, her iki testte de başarısız olmak
Yine de Tor Browser kesinlikle dikkat çekiyor, ancak yalnızca bu teste bakarak Tor kullanıcıları arasında parmak izi ayrımı yapmanın kolay olduğu söylenemez
Güvenlik seviyesi arttıkça tanımlayıcı bitler de artıyor, ancak JS tamamen kapatılınca yeniden düşüyor.
Yani JS'yi devre dışı bırakmak en yüksek anonimliğe yol açıyor
Keşke Mozilla, Firefox'un Rust'a geçişini (oxidizing) daha fazla sürdürseydi. Rust ekosistemi için de olumlu olurdu, biraz yazık olmuş
Eğer Rust Mozilla'nın “gizli silahı” olarak kalsaydı, Rust'ın yayılması belki de daha yavaş olabilirdi
Rust kullanmak onların problemlerini çözmeye yardımcı olacaksa, bunun makul bir tercih olduğunu düşünüyorum.
Diller; projeye, ekibe ve probleme göre uyarlanan araçlardır
Bu, Rust fanboyluğu değil; daha çok doktorların ya da pilotların kontrol listelerini reddettiği dönemlerdeki dirence benzeyen bir durum
UI tarafında hızlı iterasyon ve GC önemli, performans ise daha az kritik. Rust ile UI yazmak bakım cehennemine dönüşebilir
Çünkü Tor, hem güvenliğin hem performansın önemli olduğu çok iş parçacıklı bir ortam.
Zig bir alternatif olabilir ama henüz yeterince olgun değil. Tigerbeetle gibi determinism odaklı yaklaşımlar da ilginç
Tor projesine dair en büyük şikâyetim yavaşlık. Rust'a geçince hızlanacakmış gibi gelmiyor
Bu Rust geçişi, Zcash Community Grants desteğiyle gerçekleşti. Kripto para AR-GE'sinden de iyi sonuçlar çıkabiliyor
Ama kripto paranın idrardan bile kötü olabileceğine dair şakalı bir benzetme de eklenmiş
Tor exit düğümü işletirken hukuki risk endişe veriyor. Sadece whitelist tabanlı izin verecek bir yöntem olup olmadığını merak ediyorum
Mümkünse kurum adına kayıt öneriliyor; daha güvenli bir katkı içinse relay işletmek daha iyi
Ya da guard/middle relay çalıştırmak ağa ciddi katkı sağlar
Yalnız bazı Çin ASN'lerini engellemek gerekiyor; sahte indirme trafiği çok oluyor
Rust benimsemesi, sanki eski bir kalenin ahşap direklerini çelikle değiştirme süreci gibi.
Tor'un C tabanlı kodu onlarca yıllık güvenlik tavizlerini ve performans izlerini taşıyor; bu yüzden kademeli Rustlaştırma, güvenliği artırmanın en gerçekçi yolu
Mesele “tam yeniden yazım” değil, bellek açısından güvensiz alanları küçültmek.
Yüksek riskli ayrıştırma, kriptografi ve protokol sınırı bölümleri Rust'a taşınırsa Tor daha sağlam hale gelir
Gelecekte Rust tabanlı pluggable transport ya da hibrit runtime yönünde ilerlemesi de ilginç olabilir
Aslında bu karar yeni değil. Tor, 2020'de Rust tabanlı Arti projesini başlattı ve 2022'de Arti 1.0 duyuruldu
C kod tabanını kademeli olarak refactor etmenin zor olduğuna karar verdiler ve Rust'ın geliştirme hızı, taşınabilirlik ve katkıcı çekme gücünden memnun kaldılar
Yakın tarihli Arti changelog da geliştirme çalışmalarının aktif biçimde sürdüğünü gösteriyor
Örneğin bir mesajlaşma uygulaması, ayrı bir Tor daemon olmadan ağı kullanabilir. Bence asıl büyük değişim bu
Tor, tek bir kavram değil; protokolü (onion routing), ağı ve referans implementasyonu birlikte ifade eden bir ad
Tor'u Fil-C ile derleyip bellek güvenliğini bedavaya elde edebileceklerine dair yarı şakalı bir öneri de vardı