Portál AbcLinuxu, 11. května 2025 16:50
Příspěvek na blogu Toru představuje projekt Arti. Jedná se o implementaci Toru v programovacím jazyce Rust. Projekt je sponzorován Zcash Open Major Grants (ZOMG).
Tiskni
Sdílej:
So far, it's a not-very-secure not-very-complete client.
Don't use Arti for real privacy yet.
Arti doesn't yet run as a relay at all. It doesn't support Tor's anti-censorship features yet, and it can't connect to onion services yet.
Finally, note that today's Arti is missing several key security features for privacy: you shouldn't use it for browsing if you have actual privacy needs at all.
Z toho co som cital je Arti viac zamerane na to aby sa primarne dal pouzit ako zabudovana kniznica a nie ako SOCKS proxy, co je primarny use case tej originalnej implementacie. Ak tymto sposobom vzniknu viacere aplikacie so vstavanou podporou Tor, tak ta snaha nebude marna.
To je určitě fajn, ale tady je základem dobře navržené a stabilní API, na které se budou moci aplikace napojovat. Tím návrhem rozhraní by se mělo začít. Dneska je bohužel stále základem API ve formě céčkovských funkcí, na které se dá napojit prakticky z libovolného jazyka.
A když už to API budou mít, tak mohou upravit původní implementaci, aby ho poskytovala. A současně s tím psát jinou v lepším jazyce.
Na druhou stranu: SOCKS sice znamená, že musím spustit minimálně dva procesy a ty spolu komunikují přes soket (místo toho, aby se jen volaly funkce v rámci jednoho jazyka a procesu), což má nějakou režii, ale zároveň je to krásně univerzální a prakticky nikdy nebude úzkým hrdlem to spojení s místní proxy (Tor nebo podobná síť je řádově pomalejší). Místo Toru pak můžu použít třeba SOCKS proxy poskytovanou SSH klientem nebo čímkoli jiným a ten program nemusím vůbec měnit. Je tam volnější vazba, není tam pevná závislost na jedné konkrétní knihovně (Toru, I2P atd.).
Kdyby byla snaha, tak by šlo skloubit obojí dohromady. Mít jednoduché abstraktní API v podobě céčkovských funkcí a jednou z jeho implementací by byla Tor knihovna (psaná klidně v tom Rustu, D, Go, C++ nebo čemkoli modernějším než C) tzn. běželo by vše v rámci jednoho procesu a jinou implementací toho API by bylo napojení na SOCKS proxy nebo třeba HTTP proxy (CONNECT), což by byl jen tenký adaptér, který by se spojil s jiným procesem reálně poskytujícím tu proxy.
Nevím, jaké diskuse o návrhu probíhali u tohoto projektu a jak dlouho nad tím rozhraním někdo přemýšlel, ale u spousty dnešního softwaru mi přijde, že lidi hned začnou psát kód, aniž by měli pořádně rozmyšlený ten návrh, ale hlavně, že to je v moderním jazyce. (náhodný příklad – podobné věci potkávám každou chvíli)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.