Tor
Onion Browserは、Mike Tigas氏がiPhoneやiPod touchなどのiOS端末向けに開発するWebブラウザで、2012年4月に公開されiOS 5.1に対応する初版よりApp Storeから入手可能。ソースコードもGitHubにあり、その内容を確認することができる。特に独裁国での使用時に真価を発揮するBridge接続に対応し、初期設定の検索エンジンもDuckDuckGoで、WebKitによる描画を除けばJavaScriptの制限やHTTPS Everywhereを含むその他の機能も概ねTor Browserに準ずる。 起動時には、動物のイラストとともにシュールなメッセージが表示される。また、Onion Browserの稼働中にiOS端末が待受画面になった場合、一旦閉じてブラウザを再起動する必要がある。
なお、iOS端末向けの純正Torブラウザは存在しないため、Tor公式サイトでこれの使用を推奨しており、事実上の公認ブラウザとなっている。
iPadで稼働するOnion Browser
iPhoneで稼働するOnion Browser 2.8.1
ほとんどのソフトウェアは、UDPを用いてDNSを参照するため、TCP専用であるTorネットワークを経由せず直接参照してしまい、匿名性が不完全になる可能性がある。
DNS規格自体はUDPとTCPの両方をサポート (RFC 2136) しており、多くのDNSサーバー実装も両対応となっているが、DNSを参照する多くのソフトウェアではUDPを用いるのが一般的であるという事が問題の根底にある。TCPを用いたDNS参照をサポートしているソフトウェアであれば、この問題の影響を受けることはない。
以上のことより、古いバージョンのTorでは、HTTP通信を行う場合に、TCPを用いたDNS参照をサポートしているPrivoxy(localhost、ポート番号8118)をWebブラウザとTorの間に設置し、併用することが推奨されていた。
バージョン0.2.0.1-alpha以降のTorは、DNS参照をTorネットワーク経由で行うDNSリゾルバが搭載された。
org/svn/projects/design-paper/tor-design.html#tth_sEc5
↑ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc5.2
↑ https://gnunet.org/sites/default/files/Wright-2004.pdf
↑ https://support.torproject.org/en-US/tbb/tbb-2/
↑ https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
↑ https://www.torproject.org/docs/faq.html.en#WarningsAboutSOCKSandDNSInformationLeaks
↑ Rogue Nodes Turn Tor Anonymizer Into Eavesdropper's Paradise
↑ Low-cost Traffic Analysis of Tor.(pdf)
↑ 匿名化ツール「Tor」ユーザーの身元が特定された可能性 ソフト更新を呼びかけ IT MECIA 2014年8月4日
↑ https://svn.torproject.org/svn/projects/design-paper/tor-design.html#tth_sEc6.2
これを使用するには、ユーザはシステム(localhost)上の任意のDNSリクエストを、指定したポート(TCP:9053)で動作するTorのDNSリゾルバ経由で処理させるよう、リダイレクトする必要がある (iptables 等を用いて)。こうすることでDNS漏洩問題は解決され、SOCKSに非対応のアプリケーションでも安全にTor経由の通信を行うことができるようになるが、少々設定が複雑で、パケットがリークする可能性があるため、安易に使うべきではない。
代替案として、公式のFAQでは、以下のSOCKSベースの解決策が挙げられている:
SOCKS 4a (ホスト名を使う)を用いる
SOCKS ベースのポートフォワーダ(socat 等)を用いて、SOCKS 経由で通信させる
tor-resolve を用いて、Tor経由でホスト名を解決。その後、アプリケーションに解決されたIPアドレスを渡す