Oniux カーネルレベルTor隔離!あらゆるLinuxアプリの通信を匿名化へ?
引用元:https://news.ycombinator.com/item?id=44146830
へえ、約10年前にTorの開発者とこのトピックで話したことあるよ。ネットワーク名前空間がまだ目新しかった頃かな。
もらった意見は「みんな安全だと思っちゃうけど、識別できる情報いっぱい漏らしちゃう簡単な方法だよ」って感じだったから、それ以上深掘りしなかったんだ。
Torの開発者たちがその方針を推したのは根本的な戦略ミスだと思うな。
もちろん、深刻な脅威に直面してる人はTor Browserを使って、他の漏洩手段にも気を配る必要があるよ。
でも、「Tor Everywhere」になってたら、大量監視はもっと難しくなってたはずだ。
だって、今は大量監視で誰がTorを使ってるか検出できるけど、みんなが使ってたら関係なくなるからね。
不思議だね。torsockやtorifyも同じことやってるのに、そっちの方が脆弱なんだから。
torsocksやtorifyで全部をやる場合、Tor経由で足跡を残しちゃうんだよ。Tor Browserみたいにウェブ上に何も痕跡を残さないように特別に設計されてるのとは違う。
カーネルレベルでTorを直接使うってことは、DNSが漏れたりOSのテレメトリが漏れたりするってこと。
いいアイデアだけど、上から下まで完全に実装しないと、間に何も残しちゃダメ。さもないとすぐに匿名じゃなくなっちゃうよ。
これって全部TCPに限られた話じゃないの?
つまり、非TCPの通信はどうやって保護されるの?
詳しいことは知らないんだけど、https://gitlab.torproject.org/tpo/core/onionmasq によると、
“このプロジェクトは、TCPとUDPの状態を扱えるシンプルなユーザー空間のネットワークスタックを実装して、そのトラフィックをTorネットワークに転送できるようにする試みです”
って書いてあるよ。
Tor BrowserユーザーはYouTubeとかDNSをどうしてるの?
あと、HTTP/3についてはどうなの?
DNSはもうTorがやってるよ。
実際、生IPを渡すとTorの出力に警告が出るんだ。これはユーザーが誤ってTor経由でブラウジングしてるのに、DNS解決は普通の安全じゃない方法でやってる可能性があるってこと。
YouTubeは主にTorをかなりスロットリングしてくるし、CAPTCHAの終わらない雪崩やサービス拒否との戦いだよ。
ブリッジノードがこれを解決するんだけど、これは公開されてない出口ノードを経由するんだ。
ブリッジを使っても、Googleのボット検出に引っかかる可能性は高いけどね。
HTTP/3は非サポートだよ。
ありがとう。
”YouTubeは主にTORをスロットリング”
僕が言いたいのは、ストリーミングメディアは通常UDPを使う(YouTubeかどうかは知らないけど、そうだと思う)し、このスレッドによるとTorはTCPしかルーティングしないって話だよね。
だから、YouTubeとか他のストリーミングメディアはTorを経由せずにルーティングされてるってこと?
(YouTubeかどうかは知らないけど、そうだと思う)
YouTubeは標準のHTTPSポート443経由で動画をチャンク単位で配信してるよ。Twitchも同じ。
YouTubeはHTTP/3をサポートしてるから、ブラウザとネットワークもサポートしてればQUIC経由でUDPを使うだろうけど、そうでなければ単にTCPでいくんだ。
TCPじゃない通信はルーティングされず送れないと思うよ。
Torデーモンを普通のUDP DNSサーバーとして使えるし、ネット経由でDNSリクエストを解決してくれるんだ。間違ってるかもしれないけど、I2Pに似てる感じ?I2PだとUDPを使いたいなら、アプリごとに専用のプラグインとかトランスポートが必要だった気がする。
なるほどね、ありがとう。やっぱり最初の印象は正しかったみたい。UDPの対応がないと、どんなユーザーにとっても簡単に設定できて、透過的にプライバシーを守る方法にはならないんだね。
いつものことだけど、”どんなユーザー”をどう定義するかによるね。UDP通信をよく使うユーザーはやり方を変える必要がある、それはそう。でも、コンピューターに詳しくない大多数のユーザーは、ブラウザ以外で何かすることってあんまりないんだよ。UDPを使おうとするユーザーも、個人情報を specifically 漏洩させることにはならず、ただ特定のものが動かない理由が少し confused になるだけだよ。
UDPはルーティングされないの?..
TORプロトコルは natively にはUDPをサポートしてないんだ。でも workarounds はあるよ [0]
[0]: https://www.whonix.org/wiki/Tunnel_UDP_over_Tor
フロントページのインストール手順が動かないよ。バージョン番号を0.4.0から0.5.0に変える必要があるね。
cargo install –git https://gitlab.torproject.org/tpo/core/oniux oniux@0.5.0
ふむ。これはtorsocksみたいにローカルのTorデーモン経由で traffic を流すのかと思ってたんだ。でも、ローカルのTorデーモンを止めると、torify や torsocks は動かなくなるのに、oniux はまだ動くのに気づいたよ。[edit] ドキュメントにもそう書いてあったね。なかなか neat だ。docker 内でも動くけど、–privileged を使う必要があった。binary を debian:12 コンテナにコピーするだけで、そこで動いたよ。
docker run -it –rm –privileged -v ”$PWD/oniux:/usr/bin/oniux” debian:12
たぶん、これは古いC言語のデーモンじゃなくて、Rustで書き直されたライブラリを使ってるんじゃないかな?
https://tpo.pages.torproject.net/core/arti/
Oniuxって、orjailみたいな公式にサポートされてるツールっぽいね。
orjailはもう4年コミットされてないけど、iptablesとかiprouteを使ったシェルスクリプトとしては今でもちゃんと動くよ!
https://github.com/orjail/orjail/blob/master/usr/sbin/orjail
あとorjailには、もっと隔離するためにfirejailと一緒に動かすオプションもあるんだけど、Oniuxにはまだその機能はなさそうだね。
JavascriptなしのURLだよ。
https://raw.githubusercontent.com/orjail/orjail/master/usr/s…
面白い話なんだけど、これはTor開発者がアプリは.onionドメインを解決しようとすべきじゃないって主張したせいで、curlでは5年間も壊れたままなんだよね(ブログの例もそう)。
https://daniel.haxx.se/blog/2025/05/16/leeks-and-leaks/
解決策が見つかるといいね。
アクセスできるけど、絶対やらない方がいいよ!
Chromeだとめちゃくちゃ目立つからね。
Tor BrowserはChromeにはない色んなフィンガープリンティング対策をしてるんだ。
正直、今どきChromeを使ってる人が匿名性を気にしてるとは思わないな〜。
でも、onionサイトにはアクセスできるようになるよ。まあ、onionサイトを運営してる人なら誰でも言うと思うけど、普通のChromeでアクセスするのは最悪のアイデアだよ。
BraveもTorのプライベートタブ機能があるけど、Tor Browserのフィンガープリンティング対策を真似ようとしてるのかな?
いや、真似てないね。
まず、navigator.braveがあるかチェックすればBraveだってわかるよ。
俺が.onionサイトを運営してた時、JavaScriptでこれをチェックして、もしnavigator.braveがあったら特定のページにリダイレクトしてたんだ。
「あれ、君のTor Browserなんか変だよ?Tor hidden services(.onion)を見るときはTor Browserを使うべきだよ。古いバージョンか、それとも全然違うものを使ってるのかな?」ってね。
BraveはChromeだよ。Tor BrowserはFirefoxベースで、色んな tweaks(調整)や初期設定が違ってて、フィンガープリントも違うんだ。
Torでブラウジングするときは、JavaScriptを無効にするべきだよ。JavaScriptは多くの脆弱性の原因だからね。
一番の対策は、Torを使ってるほとんどの人がTor Browserを使ってるってこと。
これで十分な集団になって、他の人と紛れることができるんだ。
Tor Browser以外を使うと、君だけが浮いちゃうよ。
プロキシ環境変数とか設定でTor使うのって前からできたよ。Torの標準ポートは9050ね。SOCKSプロキシ書けば好きなプロトコルで通信流せるし、syncthingでWebサイトとかもいける。ほら、ここに例のコードもあるし! https://github.com/acheong08/syndicate
Windows版Chromeって、ユーザーが触れるプロキシ設定とかPACサポートはないんだよね。でも –proxy-server ってコマンドライン引数は使えるよ。
例にHexchatが出てるけど、これってユーザーの設定そのまま使うの?IRCのユーザー名変え忘れたらヤバくない?
ブラウザ立ち上げたらCookieとか漏れちゃうの?
もっとコメントを表示(1)
TorとかOniuxの主な目的は、送信元IPを分からなくすることだと思うな。フィンガープリンティング対策もしてるけどね。TorでGmailにログインする件(HTTPSじゃない場合ね)も、同じ話ができるでしょ。
ユーザー名が漏れるって、Tor使ってるのがバレるって意味?それとも同じIRCサーバーに繋いでる皆が同一人物ってこと?IRCって切断時間とかログられてて他のネットワーク障害と紐付けられることあるから、匿名で使うのは結構危なそうだよ。
Torが匿名化してくれるのは、主にネットワークからだよ。相手には知られても傍受してる人には知られたくないって使い方はいっぱいあるんだ。接続時間の相関の話だけど、ネットワーク参加者から隠れたいんじゃなくて、場所を隠したいとか、政府とか企業のファイアウォールを避けたいって目的かもしれないよね。
確かIrssiって、デフォルトでシステムユーザー名使う設定だったんだよ。だから初心者がうっかり本名とかを漏らしちゃってた。それ見て、俺はLinuxのユーザー名をいつも一般的なやつに変えたんだ。
俺が言ってたのは、HexChatを普段は「FooBar」ってユーザー名で使ってるけど、Torの時は「SpamEggs」にしたいってケースね。Oniuxで起動して設定ファイル読んだら、「FooBar」のままログイン押しちゃう可能性あるでしょ。
一番よく使われるLinuxユーザー名って結局何なの?rootで普段の作業はしないし、guestも問題あるしね。
「一般的な名前」なんてあるの?
「一番よく使われる」かは分かんないけど、俺はいくつかVMで user をユーザー名に使ってるよ。
この開発体験(DevEx)は本当に素晴らしいね、まさにバカでも使えるレベルだよ!開発チームはナイスワークだね<3
いやいや、全くそうじゃないよ。バカはむしろingenious(巧妙)なんだって。これを使って匿名性をちゃんと保つには、かなり運用に気をつけなきゃいけないから、ほとんどの人は無理だと思うな。
いいね。これをC言語で書き直してくれるなら、ぜひ使ってみたいよ。
これはRust言語で書かれてるんだよ。なんでC言語版が必要なの?
それが何か悪いことしてないか、自分でコードを読んで確認したいからさ。
コードが悪いことしてないか確認するのは無理!XZ攻撃とかThe International Obfuscated C Code Contest見てみなよ。Reflections on Trusting Trustも読むといいかも。
[1] https://www.ioccc.org/
[2] https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_Ref…