Tor'un proof-of-work savunması: onion servislere yönelik DDoS'u pahalılaştırmak
Sel altındaki bir onion service normal bir web sitesinin yapabileceğini yapamaz: hız sınırlanacak IP adresi yoktur, çünkü ne ziyaretçiler ne de saldırganlar bir adres açığa çıkarır. Tor'un cevabı - Tor 0.4.8 ile geldi ve Ağustos 2023'te proje blogunda duyuruldu - giriş adımına işlemci zamanı üzerinden fiyat biçmek. Tasarım, Nisan 2020'de George Kadianakis, Mike Perry, David Goulet ve tevador tarafından yazılan 327 numaralı proposal'a dayanıyor; özünü çıplakça koyuyordu: rendezvous devreleri kurmak hem servis hem ağ için pahalıdır ve tek başına hız sınırlama bunu hiç değiştirmedi.
Yalnızca yük altında beliren bulmaca
Şema protokol anlamında şeffaf: ek bir meydan okuma turu yok. Bulmaca parametreleri, istemcilerin zaten indirdiği onion service descriptor'ının içinde duruyor - bir sürüm etiketi, 32 baytlık bir seed, önerilen bir efor düzeyi ve bir sona erme. Önerilen efor sıfırda kaldığı sürece savunma uyur ve introduction'lar aynen eskisi gibi ilerler. Servis aşırı yükü fark edince önerilen eforu yükseltir. İstemciler o zaman proposal'da tanımlanan bulmaca işlevi Equi-X'i, kişiselleştirme dizesi, maskelenmiş servis kimliği, seed, rastgele 16 baytlık bir nonce ve seçilen efordan kurulan bir meydan okuma üzerinde çözer. Yaklaşık 43 baytlık çözüm, INTRODUCE1 hücresinin içinde bir uzantı olarak yol alır. Tor blog'una göre ilk çözüm hızlı bir makinede yaklaşık 5 milisaniye, daha yavaş donanımda ise 30 milisaniyeye kadar sürer; süren bir saldırı altında gereken iş bir dakikalık hesaba doğru tırmanabilir.Kuyruk eforla öder
Bir çözümü doğrulamak kasıtlı olarak ucuzdur; pahalı kısım - rendezvous devresini kurmak - ertelenir. Doğrulanan istekler, iddia edilen efora göre sıralanan öncelik kuyruğuna girer, eşitlikte daha eski kayıtlar kazanır ve bir zamanlayıcı kuyruğu kontrollü bir tempoda boşaltır. Zorluk, 300 saniyelik pencerelerle add-increase/multiply-decrease döngüsünü izler: kuyruk dolu kaldıkça servis eforu, önceki değer artı bir ya da ele alınan introduction'ların ortalama eforu - hangisi büyükse - o düzeye çıkarır; baskı düşünce efor yaklaşık üçte bir oranında erir. İstemciler artan eforla yeniden dener - 1.000 altında ikiye katlayarak, sonra 1,5 ile çarparak - spec'in 8 ve 10.000 olarak koyduğu sınırlar içinde. Seed'ler kabaca iki saatte bir döner; yarış durumlarını önlemek için önceki seed kısa süre geçerli kalır.Sıradan kullanıcılar neden pek fark etmez
Bulmaca yalnızca servis stres altındayken var olduğundan, düşük yükteki sıradan trafik hiçbir şey ödemez. Bir saldırı sırasında birkaç sayfa açan kişi milisaniyeler harcar - blog bunu yavaş bir bağlantıda beklemeye benzetir - oysa milyonlarca introduction gönderen saldırgan her birinin bedelini öder. Tor Project'in özeti:"Blocks attackers while giving real users a chance to reach their destination" - Tor Project blog, Ağustos 2023
Servisler nasıl katılıyor
Operatörler savunmayı torrc üzerinden yönetir. Projenin onion service DoS rehberindeki anahtarlar:- HiddenServicePoWDefensesEnabled - bulmacayı descriptor'da yayımlar ve efora göre sıralanan kuyruğu açar
- HiddenServicePoWQueueRate ve HiddenServicePoWQueueBurst - doğrulanan isteklerin kuyruğu ne hızda boşalttığı
- CompiledProofOfWorkHash - bulmacalarda kullanılan hash işlevini seçen global seçenek










