Qubes OSではすべての通信をTorで行うWhonix(フーニクス)が利用可能です。Torを利用してIPアドレスを隠蔽したいのであれば WindowsやUbuntuなどでTorブラウザを使えば十分に思えます。Torブラウザ単独の場合とは違って、Whoinxは仮想環境の中にあるおかげで攻撃者に侵入されても IPアドレスを隠蔽し続けることができるという点がWhonixの最大のアピールポイントです。個別のキューブがハッキングされてもOS全体のセキュリティは何とか持ちこたえる Qubes OS と似たような発想ですが、ハッキングされてもプライバシーを保ちつづけることが Whoinxの設計思想なのです。今回の記事では Whonixの存在意義と Qubes OSにおけるWhonixの基本的な使い方について解説します。
- Torブラウザだけではどうしてダメなのか
- ハッキングされても持ちこたえるWhonixの仮想化のしくみ
- その他のプライバシー・セキュリティ保護の仕組み
- プライバシーを守るにはQubes - Whonix がベストの選択肢
- Qubes - Whonix の構造
- anon-whonix で Torブラウザを使う
- ディスポーザブルキューブで Torブラウザを使う
- Torブラウザの制約
- Torブラウザのアップデート
- 新しい Workstationキューブを作成
- sys-whonix 関連
- Qubes OSのアップデートを Tor経由で行う
Torブラウザだけではどうしてダメなのか
- ネット上のプライバシーの消失
私達ユーザーはインターネットサービス・プロバイダ(ISP)から IPアドレス を割り振られています。これはインターネット上の住所みたいなものでIPアドレスの情報は私達がアクセスするWebサーバーに伝達されます。Webサーバーの管理者はどのIPアドレスがどのページにアクセスしたのかの記録をログの形で保存しています。さらにISPはどのユーザーにどのIPアドレスを割り振ったのかに関する記録を保存しています。またWebブラウザに保存されるクッキーによってIPアドレスが変更されてもユーザーの追跡が可能です。こうしたインターネットの仕組みのせいでインターネットは匿名とは程遠い世界です。誰がどのウェブページに関心があるのか、どんな商品・サービスに強い興味を持っているのか等のありとあらゆるデータがネット上にどんどん漏れていてネット上のプライバシーは完全に消失しているのが実態です。
- Torネットワークの仕組みとTorブラウザ
プライバシーに関心の高い読者の方々はWindowsなどで既にTorブラウザを利用したことがあるかもしれません。Torブラウザは Torネットワークという仕組みで複雑な経路をたどりユーザーがアクセスしたいWebサーバーに到達します。Torネットワークを使うと最低3つのTorノード(入口ノード → 中間ノード → 出口ノード)を経由します。なお "ノード" のかわりに "リレー" とも呼ばれます。
Torネットワークを利用していない場合は
・ユーザー → 目的のWebサーバー
という通信経路ですが、Torネットワークを利用すると
・ユーザー → 入口ノード → 中間ノード → 出口ノード → 目的のWebサーバー
という面倒な通信経路をたどってWebサーバーにアクセスします。
このひどい遠回りのおかげで
・目的のWebサーバーに見えるのは出口ノードのIPアドレスだけ
・出口ノードに見えるのはWebサーバーのIPアドレスと中間ノードのIPアドレスだけ
・入口ノードに見えるのはユーザーのIPアドレスと中間ノードのIPアドレスだけ
ということになります。Torネットワークを使う場合 ユーザーがWebサーバーにアクセスしている事実を知っているのはユーザーただ1人です。
このTorネットワーク内の通信経路は10分ほどで新しい通信経路に切り替えられます1。というのもTorの開発者はTorノードの管理者が悪意のある人である場合も想定しているからです。Torノードの管理者が詳細なログを取っていてもユーザーのプライバシーが守られるようにできています。
Torネットワークを利用する Torブラウザはこのような仕組みでユーザーのIPアドレスを隠蔽しています。しかしIPアドレスの隠蔽だけではプライバシーは守れません。Webブラウザのクッキーを保存しないことなども大事です。また、クッキーをオフにしているユーザーをなんとかして追跡するさまざまなテクニックが開発されていてそれらは Webブラウザ・フィンガープリンティングと呼ばれています。このフィンガープリント対策がしっかり行われていてユーザーのプライバシーをしっかり守っていることも Torブラウザの強みです。
TorブラウザがIPアドレスの隠蔽とフィンガープリント対策によるユーザー追跡の阻止の2つを両方ともやってくれるおかげで、Torブラウザのユーザーは失われたインターネットのプライバシーを取り戻すことができるのです。
- Torブラウザの脆弱性とTorブラウザの限界
Torブラウザによるプライバシー保護は強力ですが、Torブラウザ自身のセキュリティに不備があって攻撃者によってハッキングされてしまえばユーザーのプライバシーを守ることはできません。コンピュータの脆弱性のリストを管理している CVEのウェブサイトで Firefox に関する脆弱性を調べてみると過去に多くの脆弱性が見つかっていることがわかります。TorブラウザはFirefoxベースのブラウザですから、Firefoxに脆弱性がある場合はTorブラウザにも同一の脆弱性があり攻撃を受けるリスクがあります。
Windowsや macOSで、あるいはUbuntuなど普通のLinuxで Torブラウザを使用している場合、Torブラウザのセキュリティホールを突いて攻撃者が侵入してきたらどうなるでしょうか。おそらく攻撃者は Torの通信経路を通さずに通常のネットワークを用いて攻撃者の管理するサーバーに通信するでしょう。そうなるとユーザーのIPアドレスが流出してしまい、Torブラウザの最大の使命である匿名性の保持ができなくなります。
エドワード・スノーデンの暴露によればアメリカの諜報機関NSAは脆弱性を突くハッキング手法(エクスプロイトと呼ばれます)を組織内で開発していると同時に、民間のセキュリティ企業からそのようなエクスプロイトのツールを購入しています。エクスプロイトを民間企業から購入しているのはアメリカだけではありません。非公開の脆弱性を攻撃するゼロデイ・エクスプロイトのマーケットが成長していて、独裁国家の秘密警察が購入しているケースが相次いでいます。さらには途上国の腐敗した警察がギャングにエクスプロイトのツールを横流しすることすらあるそうです。
イスラエルのNSOというセキュリティ企業が開発したPegasus は iOSに対するエクスプロイトですが、多くの国が購入していることが判明しています。メキシコの警察と軍が購入したPegasusがメキシコのドラッグカルテルのギャング組織にも流出して、Pegasusを用いてジャーナリストの暗殺が行われたそうです。
このようにエクスプロイトのツールが秘密警察を始めとする各所に流通しているのが現状です。Torブラウザ自身のゼロデイ脆弱性も相当残っていてると考えるのが妥当でしょう。TorブラウザでアクセスするWebサイトにエクスプロイトが仕掛けられているようなリスクにも対処しないといけません。そうするとTorブラウザを使いさえすれば安心だなどとは到底言えないわけです。
ハッキングされても持ちこたえるWhonixの仮想化のしくみ
上で見たとおりTorブラウザ単独ではハッキングに対してある意味無防備です。 その欠陥を補うべく作られたWhonixは仮想化のメカニズムを採用しました。 Qubes OSが仮想化によって攻撃の悪影響を仮想マシン( = キューブ) 内部にとどめるように設計したのと似たような発想です。 単に仮想化を使うだけではなく、ワークステーションとゲートウェイの2つの仮想マシンに分離したところがWhonixの一番の特徴です。
そもそもソフトウェアのバグを利用してエクスプロイトが行われるのは、攻撃者自身が書いたデータをユーザーが取り込んでそのデータを解釈して実行するときです。例えばPDF閲覧ソフトのバグを利用するには攻撃側がPDFを加工して被害者に渡せばよいのですし、WebブラウザのJavaScriptエンジンのバグを利用して攻撃するには悪意ある JavaScript を仕掛けたWebサイトに被害者を誘導すればよいわけです。Webの閲覧・PDFのダウンロードと閲覧・音楽や動画の視聴などのユーザー自身が能動的に行動する部分が最も攻撃者に狙われやすい部分です。すなわちユーザーの活動領域こそ最もアタックサーフェスの大きい部分です。WhonixはIPアドレスが漏洩する可能性を最小化するために、Torネットワークによる通信が行われる部分とユーザーの活動領域を仮想化で分離することにしたのです。
- ワークステーションとゲートウェイの分離
ユーザーの活動領域は Whonixワークステーション と呼ばれる仮想マシンです。そしてTorの通信を担当するのが Whonixゲートウェイという仮想マシンです。Whonixワークステーションの通信はすべてWhonixゲートウェイを経由して行われます。攻撃者に侵入される可能性の高いWhonixワークステーションが仮にエクスプロイトにより乗っ取られた場合、ネットワークの上流はWhonixゲートウェイであるおかげで攻撃者がWhonixワークステーションからIPアドレスを判別するようなコマンドを打ってもTorの出口ノードのIPアドレスが返ってくるだけです。Whonix以外の環境でTorを使っているとユーザーの操作ミスやソフトウェアのバグで誤ってTorを経由せずに通信が発生するリスクがありましたがそのような失敗を防げることもWhonixの利点です。Whonixではこのように通信担当の仮想マシンを分離独立させることでIPアドレスが厳重に隠蔽されているのです。
上の図はWhonixの仕組みを概念図で説明したものです。第一のやり方ではPCには Windows, Linuxなどの普通のOSをインストールしてそこに VirtualBox か KVMのハイパーバイザーをインストールします。そしてVirutalBoxかKVMにWhonixをインストールします2。
第二のやり方はPCにQubes OSをインストールする場合で、Qubes OS自体が仮想化の仕組みを提供していてQubes OSにWhonixテンプレートをインストールすることが選択できます3。
ハイパーバイザー上のWhonixワークステーションは直接インターネットにはつながっておらず、Whonixゲートウェイに通信がつながっています。ゲートウェイはTorの通信システムをセットアップしてワークステーションのアプリケーションの要求に応じて Torの通信経路を作成していきます。
図ではTorの通信経路が何本も書いてありますが、ワークステーション内のアプリケーションごとに違うTorのルートを通ってインターネットにつながるのです。さらにTorブラウザはWebサイトごとに異なるTorのルートを通るようにできています。この慎重な設計のおかげで中間ノードや出口ノードがバラバラになり4、例えばTorブラウザのタブ1では Hatenaブログ のWebサイトにつなぎ、タブ2では WhonixのWebサイトを見ていても、Hatenaブログと Whonixの両方に関心のある人がいるといった分析ができなくなるのです。Torブラウザ以外のWebブラウザを使ってしまうとこのWebサイトごとに通信経路を分離しなくなって、大量のタブを開いていた場合匿名性が保てなくなる可能性があるので十分注意してください。
ゲートウェイとワークステーションの分離及びTorの利用によってWhonixはIPアドレスを厳重に隠蔽していますが、Whonixワークステーションに一旦攻撃者の侵入を許してしまうと大変です。ホームディレクトリにあるデータはすべて流出し、キー入力をはじめありとあらゆるユーザーの活動が監視されてしまいます。あくまでもIPアドレスの隠蔽だけは何とかして守るというのがWhonixの目標であって、それ以外の部分のプライバシー保護はユーザー任せになっているのがWhonixの限界です。ワークステーション内にはユーザーの正体を明かすようなデータを持たないようにするのはユーザーの責任です。ブラウザフィンガープリンティングから身を守るためにTorブラウザ以外のWebブラウザは絶対に使用しないなど、プライバシーを保つためにユーザー側が注意しないといけないことは山ほどあります。
その他のプライバシー・セキュリティ保護の仕組み
- kloak, sdwdateによるプライバシー保護
WhonixはTor通信を仮想マシンで分離する以外にもいろんな対策を講じてユーザーのプライバシーを守っています。
kloak というキー入力のタイミングを隠蔽するツールによってタイピングのクセからユーザー追跡することを阻止しています
sdwdate はNTPクライアントの代替ソフトです。時刻をTor越しに取得することでプライバシーとセキュリティを守ることができます5
- Kicksecure によるハードニング
Linuxにはたくさんのゼロデイが残っていることを前提にすると、プライバシーを守るためにもOSのセキュリティ強化は欠かせません。 WhonixではLinuxカーネルのパラメータを適切に設定し不要なモジュールを削除するなどしてLinuxのセキュリティを強化しています。この手のITのセキュリティを強化することを "ハードニング" といいます。Whonixにおける具体的なカーネル・ハードニングの一覧はsecurity-misc というパッケージのREADMEを見てください。
実はWhonixにおいて講じられているハードニングの部分を独立させて別のOSが作られています。それが Kicksecure というLinuxのディストリビューションです。これはWhonixからTorの機能を取り除いてsecurity-miscや sdwdate などの機能を盛り込んだDebian派生のディストリビューションです。仮想環境でのゲストOSとして以外にもパソコンに直接インストールして使うことができます6。
ちなみに Whonixはこの Kicksecure OS の派生ディストリビューションです。Debianから派生したのが Kicksecure OSで、Kicksecureから派生したのが Whoinixですから、WhonixはDebianの孫に当たるような存在です。
Linuxのカーネル・ハードニングはカジュアルユーザーには敷居が高くて自分で設定するのは難しいですから、ハードニング済みのディストリというは本当に有り難いです。このようなハードニングをあらかじめ適用して配布しているディストリビューションは私が調べた限りでは非常に数が限られています。有名なところだとAmazon Linuxが取り組んでいるようです。Tailsもカーネル・ハードニングを適用しています。またFreeBSDからフォークしたハードニング適用済みのOSとして HardenedBSDがあります。
プライバシーを守るにはQubes - Whonix がベストの選択肢
Whonixは VirtualBox を利用すればWindowsでもUbuntuでも好きなOSをホストOSに選べます。しかし普段使っているOSをホストOSにする場合、ホストOS自体が攻撃され乗っ取られたときにWhonixがいくらTorを利用してプライバシーを守っていてもホストOS側から敵に監視されてしまいます。
他方Qubes OSは司令塔であるdom0が攻撃される可能性が非常に低い設計がされています。普段Qubes OSで使うのは FedoraやDebianテンプレートベースのappキューブです。これらは仮想マシンとして動いているので仮にappキューブに侵入されても仮想化の壁に阻まれて Whonixベースのキューブに攻撃者が侵入してくる可能性は極めて低いのです。Whonixを最も安全な環境で使いたい場合 Qubes OSの内部でWhonixを利用するのがベストとされています。
Qubes OSにはデメリットもあります。それはインストールに失敗したり、あるいは、インストールしても動かないハードウェアが結構あることです。そのような場合はLinuxをホストOSに持つWhonix専用機を用意することが推奨されています。すなわち新たにPCに何らかのLinuxをホストOSとしてインストールし、その上に VirtualBox を入れ、そこにWhonixを導入しつつ、ホストOSはアップデート以外の用途では使わないようにすることでアタックサーフェスを小さくするのです。WhonixのデベロッパーはホストOSとして Debian か Kicksecure を推奨しています。
Qubes - Whonix の構造
Qubes OSはテンプレートのシステムを使っている関係で、Qubes内部のWhonixは少々複雑な構成になっています。
whonix-gateway-** という名前のキューブがWhoinxゲートウェイのテンプレートです。sys-whonix がそれに基づくインスタンスです。実際にTor通信を行っているのは sys-whonixの方です。whonix-gateway-** でアップデートなどの管理者の作業を行うとその作業はsys-whonixにも反映されます。
whonix-workstation-** という名前のキューブが Whonixワークステーションのテンプレートです。 anon-whonix はそれに基づくインスタンスです。Torブラウザなどのアプリケーションを使う作業は anon-whonixの方でやります。whonix-workstation-** でアップデートや新しいソフトウェアのインストールなどの管理者の作業を行うとその作業は anon-whonixにも反映されます。
- Whonix関連のキューブの使い分けについて
Torブラウザ、オフィスソフト、音楽プレーヤー、PDF閲覧等の普通のアプリケーションを使用するのは、anon-whonix を使うか whonix-workstation-17-dvmのディスポーザブルでやります。
普通のアプリケーションで何か新しいもの(例えばLibreOffice)をインストールしたければ、テンプレートの whonix-workstation-17 で sudo apt install ...
を実行します。
Tor通信の設定を変更する、あるいはTor通信を止めるなどの Tor通信の管理作業をやる場合は sys-whonix で作業します。
なお、2つのwhonixテンプレート(whonix-gateway-17, whonix-workstation-17)のアップデートは Qubes Update で実行してください。
anon-whonix で Torブラウザを使う
anon-whonixキューブで Torブラウザを起動するには以下のように、画面左上Q - グレーキューブ - APPSタブ - anon-whonix - Tor Browser (AnonDist) の順に選んでください。
anon-whonix キューブがまだ起動していなければ、起動するまで少し待たされます。以下は起動した Torブラウザの画面です。Whonixチームが作成したデフォルトの画面が表示されています。
画面上部のURLが表示されるところが検索窓も兼ねているので、ここにキーワードを入力すると DuckDuckGo で検索できます。
- New Tor circuit for this site でTorの通信経路を変更
特定のWebサイトに対してTorの通信が遅すぎることが時折あります。場合によっては通信に失敗してエラーが出るかもしれません。そういうときはTorの通信経路を変更すると通信がある程度まともになる可能性があります。
Torブラウザの右上側のハンバーガーメニュー(三本線)をクリックして New Tor circuit for this site をクリックするか CTRL + SHIFT + L を押すと新しい通信経路に切り替わります。変更されるのは押したときの画面で表示されているWebサイトだけです。それ以外のWebサイトの通信経路は元通りです。またクッキーの消去なども行われないので、そのままWebサイトを使い続けることができます。以下は DuckDuckGo のWebサイトで新しい通信経路に切り替えている例です。
- New identity ボタンでクッキー等をクリア
TorによるIPアドレスの隠蔽だけでは匿名性を守れないことがあります。たとえば、Google や Bing などの検索サイトで
- 先週友達から聞いたおいしいレストランについて検索
- 贔屓のスポーツチームについて検索
- あるミュージシャンのコンサートに今度行きたいのでそれを検索
- Torブラウザについて検索
などのように検索してヒットしたWebサイトを見たとします。Torブラウザといえども、こういうことをやってしまうとブラウザを閉じるまでは検索サイトはクッキーを保存しているので、この4つの検索を実行したのが同一人物であることを検索サイトは知っています。上記4つの事項すべてに同時期に関心を持つ日本人は非常に少ない人数しかいないでしょうから、たとえそれが誰なのかすぐには分からなくても匿名性は大幅に低下しています。 もしもこのあとに人に知られたくないようなこと(病気で悩んでいる、転職を考えている等)を検索してしまうと、検索サイトが持っているデータを見ればあなたが抱えている秘密が漏れるおそれがあります。
Torの New identity という機能は、Web上の活動を立て続けに行った場合に起きてしまう上記のような匿名性の低下・秘密の露呈を防ぐために存在しています。New identity のボタンをクリックすると、Torブラウザからキャッシュ、クッキー、履歴を消去するとともに、ブラウザ内のすべてのウィンドウとタブを閉じ、これまで通信していたサイトには新たな通信経路を作り直します。
TorブラウザのNew identity のボタンはTorブラウザのウィンドウの右上の方にある"ほうき"アイコンです。ここを以下のようにして押します。
するとアイデンティティをリセットしてよいのか確認のポップアップが出ます。すべてのタブとウィンドウが閉じて既存のセッションは中止されるという警告が出ています。
Restart Tor Browser
ボタンを押すと新しいアイデンティティに切り替わります。
これでまったく別の人格で新しいWeb上の活動を秘密裏に行うことができます。
ディスポーザブルキューブで Torブラウザを使う
Qubes OSにはディスポーザブルというその場で新しく作成し、使い終わり次第すぐに削除されるタイプの仮想マシンがあります。永続的に使われるanon-whonixと違って、起動時にマルウェアに感染している可能性がほとんど無い、使用時にマルウェアに感染しても流出を心配するデータを持っていないなどのメリットがあります。詳しくは過去記事をご覧ください。
Whonixワークステーションのディスポーザブルは whonix-workstation-17-dvm のような名前です。これのTorブラウザを起動するには以下のように選択してください。
APPSタブの方の whonix-workstation-17-dvm を選んでください。TEMPLATESタブの whonix-workstation-17-dvm ではありません。 以下の例では disp7923 というディスポーザブル・キューブが作成され、そのキューブ内で Torブラウザが起動しました。
画面左上の Q アイコン経由でチェックするとAPPSタブの中の whonix-workstation-17-dvm の項目の下に disp7923
が新たに表示されています。
ディスポーザブルは起動時のアプリケーションを閉じると自動的にディスポーザブルも永久に消え去ります。ディスポーザブルのTorブラウザで何かファイルをダウンロードした場合、Torブラウザを閉じるとそのダウンロード済みのファイルも巻き添えになって永久に消えてなくなって回復不能です。テキストファイルを編集していた場合なども同様に消去されます。Torブラウザを閉じる前に、他のキューブにファイルを移動させておきましょう。
Torブラウザの制約
- 特定のWebサイトにつながらない
WebサイトによってはTor出口ノードからのアクセスを禁止している場合があります。こういうときにはWebサイトからアクセスできない旨のエラーメッセージが表示されます。Whonix公式のガイドでは解決方法として web.archive.org などのプロキシサイトの利用を提示してます。ただしプロキシサイトは怪しいところも多いので信頼できる運営者かどうかはよく確認したほうがいいでしょう。またYahoo Japanは欧州からのアクセスをすべて禁止していますが、Torの出口ノードは欧州にあることが多いのでやはりYahoo JapanにTorブラウザでアクセスできないことがよくあります。以下は via.hypothes.is というサイトを利用して Yahoo日本のニュースを見ているところです。
- 自分のアカウントにログインしようとするとエラーになる
Googleアカウント等の各種Webサービスにログインしようとするとエラーになったり、キャプチャが出てログインに手間取ることがあります。IPアドレスが国外である、使用ブラウザのクッキーデータが無い、濫用された実績のあるTor出口ノードからアクセスされているなどの要因によって普段ユーザーが使用している環境と大幅に異なるせいで、他人がアカウントを乗っ取ろうとしている可能性があるとWebサイト側が警戒してこのようなことになっているのです。一番厳しい措置を取るところだと、一時的にアカウントにロックがかかることすらあります。
アカウントにログインするようなときは情報を取られるリスクがあるのでプロキシサイトは利用してはいけません。このようなケースでは回避手段はないので、Torを利用することはあきらめざるを得ないでしょう。大抵のWebサイトはVPNならアクセスを許可しているので、普通のブラウザからVPN経由でアカウントにログインすることをおすすめします。そもそもログインすること自体が匿名性を最初から放棄しているも同然なので、Torブラウザを利用する必要性があまりないと思います。
- AppArmorの規制でファイルのアクセスに失敗する
Whonixは AppArmor を利用してアクセス制御を行いセキュリティを大幅に強化しています。この副作用としてTorブラウザからファイルのダウンロード先を選ぶときや、ファイルをアップロードするときにファイルアクセスに失敗することがあります。
/home/user/Downloads
がアクセス可能になっているので、ここをファイルの受け渡しポイントにするといいです。Webメールに添付するドキュメントは予め /home/user/Downloads
に移動させておいて、アップロードのときにこのディレクトリからファイルを選択します。
なおTorブラウザ用のAppArmorのプロファイルは /etc/apparmor.d/home.tor-browser.firefox
です。これは Whonixチームが独自に作成しているものです。Torブラウザのアップデートに対して AppArmor プロファイルのアップデートが追いつかずに動かなくなることがあるそうです。そうなったときの対処法はこちらを参照してください。
Torブラウザのアップデート
[Qubes - Whonix内のTorブラウザのアップデートに関する公式解説はこちらです]
プライバシーを確保する必要性からTorブラウザの実体はホームディレクトリに保存されます。具体的には /home/user/.tb/tor-browser/Browser/
に置かれています。それゆえにアップデートの方法にクセがあります。ホームディレクトリにあるものなので、apt-getコマンドやQubesのツール "Qubes Update"でTorブラウザをテンプレートからアップデートできないのです。
- anon-whonixなどappキューブでのTorブラウザのアップデート
anon-whonixなどの通常のappキューブのTorブラウザはTorブラウザ内部にあるアップデート機能を使ってアップデートします。要は WindowsやUbuntuなどにインストールしてあるTorブラウザのアップデート方法と同じことをやるのです。Torブラウザを起動してしばらくすると、ウィンドウ内部の右上にあるハンバーガーメニューに青緑の点が現れることがあります。これがアップデートがあることの印です。
デフォルトでは勝手にアップデートのダウンロードが始まります。
ダウンロードが完了すると再起動するよう促されます。"Update available ― restart now"のところをクリックするとダウンロードされたものがインストールされます。
以下のようにアップデートが終わってTorブラウザの新しいバージョンが使えるようになりました。
- Tor Browser Downloader とは何か
画面左上 経由でwhonix関連のキューブのアプリケーションメニーを開くと "Tor Browser Downloader (AnonDist)" なる謎めいたアプリケーションが見つかります。APPSタブの anon-whonix と whonix-workstation-17-dvm, さらには TEMPLATESタブの whonix-worksation-17 と whonix-workstation-17-dvm の4つともこのアプリケーションがあります。
結論から先に言いますと、このTor Browser Downloaderは whonix-workstation-17テンプレートにおいてのみ使用してください。これを実行するとTorブラウザの最新版があればそれをダウンロードして /var/cache/tb-binary/に保存します。
anon-whonixなどのappキューブでTor Browser Downloaderを使用してしまうと、最新版のフレッシュインストールが行われブックマークなどのユーザーデータが失われてしまうので通常は使わないようにしてください。以下はanon-whonixでTor Browser Downloaderを実行しバージョンチェックの後に現れる確認画面です。間違ってTor Browser Downloaderを実行した場合、ここで必ず No を選択してください。この警告には次のように書いてあります: "If you would like to keep your browser profile and update rather than re-downloading Tor Browser, you must use Tor Browser's internal updater. In that case, say no now." (Torブラウザを再ダウンロードするのではなくブラウザのプロファイルを保ちながらアップデートしたい場合はTorブラウザの内部アップデート機能を使ってください。その場合は No を押してください。)
ディスポーザブル・テンプレート(画面左上Q経由の TEMPLATESタブ - whonix-workstation-17-dvm)では Tor Browser Downloaderを実行してもエラーが発生して使えないように設計されています。ディスポーザブル(画面左上Q経由の APPSタブ - whonix-workstation-17-dvm)で実行してしまうとダウンロード終了後即座にキューブが消えて無意味な結果に終わります。
さらにいえば whonix-workstation-17テンプレートで Tor Browser Downloaderを手動で実行する必要は通常はありません。普段どおり Qubes Updateツールで whonix-workstation-17テンプレートのアップデート作業を行っていればTorブラウザの最新版があるときには自動的に Tor Browser Downloaderが実行されてTorブラウザの最新版が /var/cache/tb-binary/ 以下にコピーされます。
Create New Qube ツールなどで新規にWhonixワークステーションのキューブを作成した後、そのキューブで初めてTorブラウザを起動するとそのとき /var/cache/tb-binary/以下のデータがそのキューブのホームディレクトリにコピーされます。こうして最新版のTorブラウザが新規キューブで利用できるのです。
WhonixベースのディスポーザブルのTorブラウザを起動した場合も同じことが起こります。新しく作成されたディスポーザブルのホームディレクトリに /var/cache/tb-binary/以下のデータがコピーされるので、ディスポーザブルでも最新版のTorブラウザがすぐに使えます。
whonix-workstation-17テンプレートがアップデートされるとき、通信エラーなどが原因で Tor Browser Downloader の自動実行に失敗することがあります。そのような場合は Torブラウザが古くなってしまうリスクがあります。そういうときは以下のように テンプレートの Tor Browser Downloader を手動で実行してください。
新しい Workstationキューブを作成
Whonix ワークステーションのキューブとしてデフォルトで用意されているものは anon-whonix だけですが、Tor経由の作業をたくさん行う人はワークステーションのキューブをもっと増やしたほうがよいでしょう。以下の例では anon-work という新しいwhonix-workstation-17 ベースのキューブを作成します。
Ctrl + F3 を押して "create new qube" と入力してエンターキーを押すと、 Create New Qubeツールが起動します。
ウィンドウ左側欄は "Application"タブを選択します。
ウィンドウ本体の Basic properties の下の Name のところは新しいキューブの名前を入力します。ここでは anon-work にしました。Label のところは好みのテーマカラーを指定します。
Template の項目の下にあるドロップダウンメニューから whonix-workstation-17 を選んでください。
Network のところのラジオボタンは Tor/Whonix: sys-whonix をクリックします。
Applications のところはアプリケーション・メニューに表示したいものを選びます。
ウィンドウ下部の Create
ボタンを押すと新しいキューブが作成されます。
以下は anon-work キューブの Torブラウザを使用しているところです。
- 多数のWorkstationキューブを作成してプライバシーを守る
anon-whonix単独ですべてのTor経由の作業を行う場合、キューブ内に攻撃者が侵入してきたときにすべての秘密が失われてしまいます。複数のワークステーション・キューブを使用すると、仮想マシンの隔壁にさえぎられて攻撃者が侵入できるのは一つのキューブ内にとどまり、プライバシー侵害が限定的になるメリットがあるのです。プライバシーが大事な新しい分野の作業を始めるときは、ぜひ新しいワークステーション・キューブを作ってみましょう。
sys-whonix 関連
Qubes OSでは sys-whonix キューブがTorの通信を担当しています。Tor の設定関連の作業は sys-whonix内で行います。
- 使用されているTorノードを Tor Control panel で 眺めてみる
IPアドレスを厳重に秘匿するために、Whonixワークステーション系のキューブからはどのTorノードを使っているのか分からないようにできています。実際にどのような経路でTorが通信しているのか知りたい場合は sys-whonixから Tor Control panel を使うとチェックできます。画面左上Qから以下のように操作して Tor Control panel を起動します。
次の画像が起動した Tor Control panel です。
Utilities タブをクリックして Onion Circuits ボタンを押します。
以下は Torブラウザから www.whonix.org のホームページを見ているときのOnion Circuits の様子です。
パソコン → manipogo → rofltor08 → artikel10ams05 → www.whonix.org
の順につながっている様子が見て取れます。個々のTorノードについて調べたいときは Torオフィシャルサイトの Relay Search で調べることができます。DuckDuckGo の検索でも "manipogo tor relay" などのキーワードでTorノードのデータが表示されます。
上の画面に表示された Onion Circuits を見ると、現在利用している入口ノードは manipogo と VeilsOfTheOnion の2つです。この2つがエントリーガードとしてかなりの長期に渡って使用され続けます。また現在実際に利用しているわけではない通信経路がこのあとすぐに使えるように多数作られていることも観察できます。しばらくすると www.whonix.org の通信経路は別のルートに変わっていきます。ちょっとTorブラウザを使うだけでも結構な数のTorノードを利用しているのです。
なおこの Onion Circuits は sys-whonixのアプリケーション・メニューに追加することもできます。sys-whonixのSettingsを開いて Applicationsタブをクリックすると左側欄に Onion Circuits があります。それをクリックして右矢印ボタンを押してから Apply を押せばメニューに追加できます。
- 検閲回避のブリッジを使用してみる
独裁国家など一部の国ではネットの検閲を行っています。こういうところでは Torノードの IPアドレスがブロックされていてデフォルトの設定では Torが使用できないケースがあります。そういうときに使うのがブリッジという仕組みです。ブリッジを使うと
- ユーザー → ブリッジ → Tor中間ノード → Tor出口ノード → (インターネット)
のような経路を使って Torの通信が繋がります。TorノードのIPアドレスは完全に公開されているので簡単にブロックできるが、ブリッジは便利な公開リストがないのですぐにはブロックできないそうです。
日本も含めて自由主義国家では国の政策として Torを規制することは無いので日本のユーザーは特にブリッジを使う必要はないでしょうが、機能を試してみたい場合もあると思うので以下に使い方を説明します。
ブリッジの設定を行うには Anon Connection Wizard か Tor Control panel のどちらかを使います。以下では Tor Control panel を使っています。
Tor Control panel の Control タブをクリックしてウィンドウ右下の Configure を押します。
以下のようにウィンドウ下部の Bridges type のドロップダウンメニューを表示します。ここでは obfs4 という方式を選びました。
Accept
を押すとブリッジを利用したTor接続がスタートします。
ブリッジを用いずに入口ノードから接続する方法に戻すには Tor Control panel から再び Control タブ - Configure のボタンを押して、Bridges typeのドロップダウンメニューから None を選んで Accept を押してください。
obfs4以外の方法で snowflake というものもあるのですが、執筆時点(2024年4月)でWhonixでは使用できないそうです。
- Tor の再起動と停止
Torの調子が悪いときに Torを再起動したい場合は
- Tor Control panel からは Controlタブ - ウィンドウ右下 Restart Tor を押す
- Anon Connection Wizard を起動して Connectのラジオボタンを選んで Next ボタンを2回押す
- スクリーン左上 Q ボタンから sys-whonix キューブのアプリケーション・メニューにある Restart Tor GUI を選択する
のいずれかを実行します。
Tor を停止したいときは
- Tor Control panel の Controlタブ - ウィンドウ右下 Stop Tor を押す
- スクリーン左上 Q ボタンから sys-whonix キューブのアプリケーション・メニューにある Stop Tor を選択する
のいずれかを実行します。
Qubes OSのアップデートを Tor経由で行う
Qubes OSのdom0と Fedora 及び DebianのテンプレートはデフォルトではTorではない普通のインターネット経由でアップデート&インストールします。これを sys-whonix を用いて Torネットワーク経由に切り替えることができます。
Tor経由でアップデートするメリットは匿名性です。Torを経由するのでユーザーが Qubes OSを使用していることを隠蔽することができます。つまりユーザーのIPアドレスから Qubes のアップデートサーバーに接続する通信が誰にも見えなくなります。FedoraやDebianテンプレートをアップデートする際にも必ず Qubes のアップデートサーバーにアクセスしていることに注意してください。
Torによるアップデートにはセキュリティ上の懸念事項があります。出口ノードまで到達すると Torによる通信の暗号化は解除されます。Torノードは誰でも運営できるので中には悪意のある人も混じっているかもしれません。すなわち中間者攻撃のリスクがあります。(Torを使わない)クリアネット経由だとISPというそれなりの大企業のサーバーしか通信は通らないのに比べるとTor経由のアップデートは攻撃にさらされるリスクは高いです。
Tor出口ノードの攻撃以外に、NSA, GCHQなどFive Eyes の諜報機関によるインターネットの検閲を考慮する必要もあるでしょう。以下の地図はスノーデンのリーク文書の一部で、NSAのSTORMBREWという秘密プログラムの解説スライドです。NSAはインターネットケーブルがアメリカに陸揚げする拠点で通信傍受を行っているらしいことがわかります。
ブリティッシュ・テレコムがヨーロッパのインターネット・ケーブルの敷設をやっていることが多いことを考えると、欧州にイギリスの諜報機関の傍受地点があることが推測できます。 Torの出口ノードはヨーロッパかアメリカあたりになることが多いので、Torを利用してアップデートを行うと出口ノードからアップデート用のサーバーまでの途中でNSAやGCHQによる中間者攻撃を受けるリスクがありそうです。
Whonixの開発者の madaidan 氏によればパッケージのアップデートやインストールのときに HTTP で通信しているとゼロデイ攻撃を受けるリスクがあるそうです。 ということは Tor 経由のアップデートで 暗号化なしのHTTP 方式でレポジトリにアップデートを取りに行ってしまうと、出口ノードや諜報機関から攻撃を受ける可能性があります。
Fedoraのミラーサーバーは特にしばしば HTTP方式のレポジトリにつながってしまうので、dom0 及びFedoraテンプレートの/etc/yum.repos.d/ のレポジトリのところを HTTPS のサーバーに限定するよう書き換えることをおすすめします。これは Tor経由でアップデートしない場合でもそうすべきだと思いますが、Tor経由でアップデートするときは必ずやってください。やり方は下の方に書いてあります。
さてTor経由で Qubes をアップデートするには Qubes Global Config を開いて、以下の2つの青枠のところを sys-whonix にして OK を押すと変更されます。
Tor経由でアップデートするとクリアネットの場合よりも相当時間がかかることは覚悟してください。
- Qubes OSアップデートのときの通信プロトコルを HTTPS に限定
Debianテンプレートでのアップデートは https://deb.debian.org/ という公式のレポジトリにつながり、すでに HTTPS 化されているので特に何も変更する必要はありません。Debianは fastly の CDNを利用していて、deb.debian.orgに対する通信は近くの fastly のサーバーにリダイレクトされます。
Dom0 のアップデートの方式を HTTPS に変更するには以下のようにします。
Dom0 のターミナルを開いて nano か vi で /etc/yum.repos.d/ にある fedora.repo と fedora-updates.repo を変更します。
[ft7777@dom0 ~]$ sudo nano /etc/yum.repos.d/fedora.repo
ここで metalink の行の最後に &protocol=https
という条件を追加します。
[fedora] name=Fedora 37 - x86_64 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/37/Everything/x86_64/os/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=x86_64&protocol=https (以下略)
同様に fedora-updates.repo の metalink の行の最後に &protocol=https
を追加します。protocol=https についてはこちらの解説を参照してください。
[ft7777@dom0 ~]$ sudo nano /etc/yum.repos.d/fedora-updates.repo
[updates] name=Fedora 37 - x86_64 - Updates #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/37/x86_64/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f37&arch=x86_64&protocol=https (以下略)
qubes-dom0.repo はすでに HTTPS で yum.qubes-os.org と通信するので何も変更しなくてOKです。
つぎにFedoraのテンプレートのアップデート方式を HTTPS にします。
まずfedora-38-xfce のターミナルを起動します。/etc/yum.repos.d/ に移り、どんなレポジトリファイルがあるか確認します。
[user@fedora-38-xfce ~]$ cd /etc/yum.repos.d/ [user@fedora-38-xfce yum.repos.d]$ ls fedora-cisco-openh264.repo rpmfusion-free-updates-testing.repo fedora-updates-testing.repo rpmfusion-free-updates.repo fedora-updates.repo rpmfusion-free.repo fedora.repo rpmfusion-nonfree-updates-testing.repo google-chrome.repo rpmfusion-nonfree-updates.repo qubes-r4.repo rpmfusion-nonfree.repo
これらのうちデフォルトで有効になっているのは fedora-cisco-openh264.repo, fedora-updates.repo, fedora.repo, qubes-r4.repo です。なお dnf repolist
というコマンドを実行すると有効になっているレポジトリのIDが表示されます。
3つのrepoファイル fedora-cisco-openh264.repo, fedora-updates.repo, fedora.repo の中の有効になっている(enabled = 1)ところだけでいいので、 metalink の行の URLの末尾に &protocol=https
を追加します。
具体的には次のように変えます。
[user@fedora-38-xfce yum.repos.d]$ cat fedora-cisco-openh264.repo [fedora-cisco-openh264] name=Fedora $releasever openh264 (From Cisco) - $basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch&protocol=https (以下略)
[user@fedora-38-xfce yum.repos.d]$ cat fedora-updates.repo [updates] name=Fedora $releasever - $basearch - Updates #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Everything/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch&protocol=https (以下略)
[user@fedora-38-xfce yum.repos.d]$ cat fedora.repo [fedora] name=Fedora $releasever - $basearch #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch&protocol=https (以下略)
以上の作業により Qubes OSのアップデートのとき HTTPS のプロトコルでサーバーにつながるので、セキュリティが向上します。Dom0やテンプレートがアップデートの際に攻撃を受けてしまうと仮想化による防御も意味がなくなり無防備な状態になってしまいます。QubesアップデートのHTTPS化は必須だと思います。
- 入口ノードはエントリーガードとも呼ばれます。Torユーザー1人につき通常使用するエントリーガードは2つになっているようです。そして三ヶ月半ほどの期間同一のエントリーガードを使い続けます。通信経路が変わるたびにエントリーガードは2つからランダムに選ばれ、中間ノードと出口ノードは完全にランダムに割り当てられるようです。エントリーガードに関する詳細はWhonix公式の解説、Torチームの解説をご覧ください。↩
- VirtualBoxやKVMは Type2 ハイパーバイザーと呼ばれます。↩
- PCに直接インストールするハイパーバイザーは Type1 のハイパーバイザーです。Qubes OSは Xenを改造して作られたOSですが、XenはType1ハイパーバイザーです。↩
- 図では入口ノードが4つ使用されていますが、実際にはエントリーガードの仕組みによって使用される入口ノードは通常2つです。↩
- Whonixの Time Attacks のページで時刻合わせのツールを利用した各種攻撃の可能性について解説してあります。↩
- Kicksecure をパソコンに直接インストールしたい場合は、最初にDebianをパソコンにインストールしてからレポジトリに Kicksecureのソースを追加し、必要なパッケージをインストールするとDebianがKicksecureに"生まれ変わる"仕組みを採用しています。こういうやり方を distro morphing というそうです。VirtualBoxで使うにはVirutalBox用のOVAファイルを利用します。Qubes OS内の Debianテンプレート を Kicksecureにdistro morphingすることもできます。↩