世界で最も成功した匿名通信システム「Tor」
長い歴史を持つこのシステムは、今でもユーザーに世界最高レベルの匿名性を与えてくれます
しかし、誤った使い方や誤った環境で使用した場合、Torはその意味を失ってしまいます
この記事ではTor初心者向けに、Torについての誤解やTorの弱点について書いていきたいと思います
1. TorのIP匿名化は完璧
まず多くの方々が誤解しがちなのがTorのIP匿名化は突破可能なのではという点です
これははっきり言ってしまえば100%あり得ません
TorのIP匿名化を正面から破りたいのならExit,Middle,Entryの順にそれぞれのノードに接続ログの開示をさせる必要があります
しかしTorのノードの運営者は匿名性の重要性を信じており、多くの場合開示を拒否したり、ログを消去していたりします
またTorノードは多くの場合(たとえデフォルト設定でも)複数の国にまたがっており、強制捜査や現地のプロバイダに協力を求める際には複数の国の警察の協力、法律の遵守が求められますが、国際協力が進まない現在の世界ではそれは望めません
また、諜報機関がTorユーザーのプライバシーを犯すために、通信先を監視するスパイノードを設置しているという話もありますが、
Torのノードは世界に6000以上存在するため、Torユーザーの行動を本気で監視したいのなら大量のスパイノードとそれを用意、維持する人員や資金が必要になります
Torを突破しても既にISP側のログが消えていたり、ノーログVPNや二重Torを使われていたりする可能性もあるのに、わざわざそんなことに膨大なカネや人員を使う組織などいません
以上の理由からTorのIP匿名化は完璧であるということが言えます
また、初心者にありがちなのはTorだけだと不安でVPNや串を併用することですが
ISPからTor使用を隠す以外の目的でVPNや串を使うことはかえって匿名性を下げることにもつながります
Torを一回通せば匿名性は十分です
不安ならばtorrcの編集を行いましょう
torrcで諜報組織の影響力が強い国や開示に応じやすい国のノードを避けることができます
特に5eyesとjpのノードは避けるべきだと言われています
しかしtorrcが厳しすぎると速度が極端に遅くなったり、ノード数が絞られて匿名性が落ちるので気を付けましょう
参考
2. IP以外の匿名化に努めよ
これは一番重要なことです
例えばTorを使って匿名で内部告発をしても自分の名前を横に添えていては意味がありません
これは本名に限らず
メアド、電話番号、決済手段のみならず会話やユーザー名、ファイルのメタデータ、口調にブラウザの情報まであらゆることがパズルのピースになります
これを防ぐために
メアドはTor経由で登録、SMS認証は代行サービスをTor経由で、決済はMoneroやミキシングを通して洗浄したBitcoinやギフトカードなどを使う、ユーザー名パスワードにリアルの情報は使わず、自分語りは控える(最重要)
などの対策を行えます
また、使用するサイトの下見を生IPで行っていたり、仄めかしなどを生IPで行うのも危険です
↑これはあくまでTorを使った一人の犯罪者の逮捕劇ですが、見ればどれだけ自分語りや慢心が恐ろしいかがおわかりいただけると思います
後述する様々な問題も、IP以外の匿名化に比べれば些細な問題です
初心者の方々は絶対に気を付けてください
3. TorブラウザはTor Browser Bundle以外使わない
これは初心者の皆様ならできていると思います
Tor Browser BundleはTor Project公式が作ったソフトで、Torそのものと混同されがちな存在です
Torを経由したウェブアクセスのほとんどがTBBのものであり
逆にTBB以外を使うとユーザーエージェントなどのフィンガープリントが浮いてしまいます
また、TBBは後述するDNSリーク、WebRTCリークやJSエクスプロイトへの対応、その他のセキュリティや匿名性を高める機能を多数搭載しています
これと同じことを他のブラウザでやろうとすると多数のオプション選択、十数のアドオン導入が必要でしょう
TBBはこれまでのTorの歴史が生んだ技術の結晶です
これを使わずして他に何を使う
4. マルウェアには気を付ける
まあこれはネット全般に言えることです
特に.onionドメイン上で運営されるhidden serviceは表層ウェブ以上の無法地帯です
ダウンロードしたものがウイルス入りだったりというのはまだいい方です
最悪なのはJavaScript/Flashエクスプロイトです
どちらもクライアント側で悪意のあるスクリプトを動かすことが可能です(FlashはTBBでは無効)
過去に児ポサイトを乗っ取ったFBIがTor Browser(のベースである火狐)の脆弱性を突きJavaScriptを使って生IPで自前のサーバーに通信させるマルウェアを訪問者に入れさせました
あくまでこの例では犯罪者に使われましたが、いつか同じことを善良な市民にも仕掛けてくるかもしれません
「見る」ことが違法である児ポサイトならともかく、普通のサイトにそんなものは仕込まれないのでJSを無理にオフにする必要はありません
しかし、JavaScriptエクスプロイトは表層深層問わずどこでも遭遇する可能性があるので必要ならJSをオフにするべきでしょう
TBBなら標準搭載のNoScriptでスクリプトが使えるサイトを絞り込むことも可能なので活用しましょう
5. 中間者攻撃とフィッシングに気をつけろ
これもネット全般に言えることです
多くの場合ウェブサイトなどはhttpsによるサーバー証明と暗号化通信がなされています
しかし、これが機能していないhttpサイトや期限切れのサイトになると、暗号化が行われず盗聴が可能だったり、成りすましによって悪意のあるサーバーに接続されることがあります
これは普通のブラウジングでも同じことですがTorではさらに深刻な問題になります
また、TBB以外のソフトが通信するときもTLSなどの暗号化がなされていないことがあります
Torユーザーが使う秘匿性の高い(違法)サービスは暗号化通信に対応してないことがあります
このとき、通信はExitノードにつくまでは暗号化されますがTor Exitノードを管理している人間は平文で見ることができます
実際にこういうスパイノードの盗聴によって平分通信でbitcoinをミキシングしていた人々がbitcoinを盗み取られた事があります
参考
TBBの場合デフォルトではHTTPSeverywhereが入っているのですべてのサイトを強制的にhttpsにもできます(対応してない場合はアクセスできない)
使いたいサービスが暗号化に対応しているかきちんと確認したり、不安ならVPNを通して暗号化したりしましょう
また、onionドメインでもフィッシングが存在します
hidden serviceは多くが法的にグレーなものを扱っており、運営者も匿名性を重んじるので、多くの場合でサーバー証明が必要なhttp"s"に対応していません
hidden serviceへ接続される際はTor側の機能で最後まで暗号化されるのでスパイノードに盗聴される心配はありません
しかしURLがランダムで覚えづらい文字列なことを利用して頭文字などが似ているURLのフィッシングサイトが作られることがあります
そもそもonionは詐欺やフェイクが多いので金を使わないことをおすすめしますし、使うならしっかり裏を取ってください
6.DNS・WebRTCリークやその他の攻撃やリスク
DNSリークはその名の通りドメインネームシステムにおける名前解決の機能を提供するDNSサーバーを使った攻撃です
多くの場合デフォルトではISPが用意したDNSサーバーが利用されており、ISPやDNSサーバーの管理者はあなたの接続したサービスをある程度知ることができます
Tor Browser Bundleでは、名前解決にTorに内蔵されたDNSを使うことでDNSリークを防いでいます
なのでそれほど心配する必要はありませんが不安ならば後述する匿名化に特化したOSを利用してください
WebRTCリークは、ブラウザなどが使用するWebRTCというプロトコルを悪用した攻撃です
WebRTCリークはTorが対応していないUDPという通信プロトコルを用いる攻撃で、誤ってブラウザに搭載されているWebRTCの機能を用いてTorを通さず通信させようとします
これについても、Tor Browser Bundleでは、WebRTCを無効にすることで対策しています
心配ならばこのようなリークテストのサイトで調べてみましょう
この他にも、タイミング攻撃などの手法や未知の脆弱性もあります
しかし、その多くはすでに対策がなされていたり実現が難しかったりします
心配ならば後述するWhonixやTails、QubesによるOSレベルでの匿名化を利用してください
また、少し前のことですがTorやTailsを検索したユーザーがNSAに監視されてたことが明らかになりました
できるだけ生IPやリアルで使うアカウントで不穏なことは調べない方がいいです
また、ISPはTorを使っていることがわかります(もちろん内容は暗号化されているのでわからない)
ブリッジの使用やVPNの併用はこれらの問題に対するいい解決策になります
7. OSレベルでの匿名化
Torの発展とともにOSの中には匿名化に特化した特殊なOSが登場しました
Tailsは0chiakiという犯罪者が使用したことでも有名です
Tailsは通信の全てをTor経由にすることで生IPの漏洩のリスクを軽減し、システムを終了する度に不要なデータをクリーンし、必要なデータを暗号化して保存します。
USBやCDからの起動を前提として作られており、携帯性も高く、都合の悪い証拠なども残しにくいですが、Tailsのセキュリティは完璧ではありません
実際にFBIがTailsを使ってFaithbookで子供に児ポを送らせていた男性を動画プレーヤーの脆弱性を突いて逮捕しています
参考
そこで私がおすすめするのはWhonixです
Whonixは仮想マシン上で動くOSで、GatewayとWorkstationの2つの仮想マシンを用いて、GatewayのTor透過プロキシを通らない限りWorkstationが外部と通信できないようにします
こうすることでWorkstationは生IPに関する情報を一切持たず、マルウェアにroot権限を握られても、仮想化ソフトの脆弱性を突かれるか、Gatewayをハックされない限りは完全な匿名化を行えます
これは先述したJavaScriptやマルウェアなどに対しての耐性を大幅に上げることができますし、未知の脆弱性にも対応している可能性が高いです
WhonixはTailsと違い、証拠の処理が面倒ですが、それもQubesOSのLiveUSB(内のWhonix)によって克服することができます
また、KaliやUbuntuなどの任意のOSをTor経由にさせることも可能なのでかなり汎用性の高いツールでもあります
おわり
色々と雑で文章も下手ですが最後まで読んでくださりありがとうございました