Google Chromeの「OK, Google」起動ワードは危険?プライバシー懸念の実態と無効化方法を徹底解説
テックメディアが得意なことといえば、話題性に飛びつき、恐怖をあおること。そしてプライバシーやセキュリティに関して、検証も不十分なまま断片的な情報を流すことです。新しいタブやGoogle検索ページで「OK, Google」ホットワードを使えるようにする、ChromeおよびChromiumの音声機能をめぐる騒動も、その典型例でした。
この機能自体は目新しいものではありませんが、あるDebianユーザーが「Chromium 43のダウンロードに新たなクローズドソースのバイナリブロブが含まれていた」と報告したことで、話題が一気に爆発しました。コミュニティ全体が大騒ぎになり、Googleが諜報機関と手を組んでいるとの非難が飛び交い、多くのユーザーが他のブラウザへ移行していきました。しかし、テックメディアが苦手とするのは、実際に問題を解決する手助けをすること。そこで本記事では、「ChromeやChromiumがあなたを監視しているかもしれない」という状況において、どう対処すればよいのかを実践的に解説します。
まず最初に考えるべきこと
最も基本的な問いかけはこれです。「もしGoogleを信用していないなら、なぜその製品を使っているのか?」。企業が自分の行動をプロファイリングし、広告に利用していると恐れながら、なぜChromeを使い続けるのでしょうか?行動は言葉よりも雄弁です。プライバシーとセキュリティが本当に心配なら、そもそもそのブラウザを使うべきではありません。
同じ理屈で、Googleを信用しないなら、Google製品全般を使うべきではないということになります。しかし現実には、スマートフォンでの個人情報収集を受け入れ、ブラウザには膨大な検索履歴を残し、しかもGoogleアカウントにログインしたまま使い、メールやチャットで機密性の高い情報までやり取りしています。ここが現実のチェックポイントです。「新しい機能が加わったからブラウザが悪用される」と心配するなら、他のすべてを見落としていることになります。
技術的な詳細
それでは本題に入りましょう。Chromeの設定画面で「検索」セクションを開くと、音声機能を有効化するオプションがあります。こちらはデフォルトで無効になっています。
さらに詳しい情報を確認したい場合は、chrome://voicesearch にアクセスしてください。このページでは、当該機能に関する追加の技術的詳細を閲覧できます。WindowsとLinuxのどちらでも確認可能で、筆者はWindows 7とCentOS 7(定番の選択肢ではありませんが、参考情報を複数確保するため)の両環境でテストしました。念のため、2つのロケールでも検証しています。
機能は有効か、無効か?
音声検索のオン/オフを切り替えると、WindowsではマイクのYes/Noステータスは確実に変化しますが、Linuxでは機能の実際の状態が反映されない場合があります。ただし、これはやや誤解を招く表示であり、詳細は後述します。オーディオキャプチャとNaClは常に有効のままです。「Hotword Search Enabled」の値は、どのオプションを選択しても変化しません。共有ライブラリと拡張機能のステータスも同様です。
CentOS 7のマシンでも結果は同じでした。
このページには、注目すべき情報がまだあります。前述の通り、voicesearchは拡張機能として提供されており、加えて共有モジュールも存在します。そして、あの騒動の発端となったのが、まさにこのクローズドソースの共有バイナリブロブだったのです。それでは、拡張機能の詳細を見ていきましょう。
拡張機能
WindowsでのパスはProgram Filesを指し、Linuxでは /opt 配下に配置されています。ところが非常に奇妙なことに、両プラットフォームともこれらのパスは無効で、実際には何も存在しません。
Extension Id: nbpagnldghgfoolbancepceaanlmhfmd
Extension Version: 0.0.1.4
Extension Path: C:\Program Files (x86)\Google\Chrome\Application\43.0.2357.130\resources\hotword
Extension State: ENABLED
システム全体を検索しても(Linuxで find コマンドを使うなど)、ユーザーのホームディレクトリ内のユーザープロファイルに格納された共有モジュール以外は見つかりません。
find / -name \*hotword\*
/home/roger/.config.../x86-64_en-us/hotword.data
/home/roger/.config.../x86-64_en-us/hotword-x86-64.nexe
/home/roger/.config.../0.3.0.5_0/hotword_ru.nmf
/home/roger/.config.../hotword_pt-br.nmf
/home/roger/.config.../hotword_.nmf
...
さらに、この拡張機能は拡張機能の一覧に表示されません。これもChrome/Chromiumユーザーからの大きな不満でした。拡張機能である以上、一覧に表示され、ユーザーがその状態を制御できるべきだからです。
ただし、--show-component-extension-options フラグを付けてGoogle Chromeをコマンドラインから起動すれば、音声検索を含む完全な一覧を表示できます。とはいえ、有効化・無効化・アンインストールは一切できず、これもフラストレーションと不安を募らせる要因となっていました。
共有モジュール
共有モジュールは、記載された場所、つまりユーザープロファイル内に実際に存在します。パスはやや入り組んでいます。WindowsとLinuxのどちらでも、同じ名前・同じ拡張子(nexe)で提供されています。共有モジュールは基本的に2つのファイルで構成されており、うち1つはデータファイルで、hotword設定ファイルから各言語の設定やその他の構成情報を読み込みます。
Shared Module Id: lccekmodgklaepjeofjdjpbminllajkg
Shared Module Version: 0.3.0.5
Shared Module Path: C:\Users\...\AppData\Local\Google\Chrome\User Data\Default\Extensions\lccekmodgklaepjeofjdjpbminllajkg\0.3.0.5_0
Shared Module State: ENABLED
設定情報は、地域・言語ごとのファイル群とマニフェストとして提供され、いずれもJSON形式で記述されています。特別なものではありません。ごく標準的なChrome拡張機能の構成です。
{
"description": "Support files for Chrome Hotwording.",
"key": "...MIIBIjB",
"manifest_version": 2,
"minimum_chrome_version": "39",
"name": "Chrome Hotword Shared Module",
"platforms": [ { "lang": "de", "nacl_arch": "arm", ... }, { ... } ]
}
nexeファイルは確かにバイナリであり、デバッグシンボルは削除されています。
file ./.config/google-chrome.../x86-64_en-us/hotword-x86-64.nexe
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
Chromeの実行をトレースして、音声検索設定の切り替え時やホットワード使用時に何が起こるかを確認したい場合は、さらにもう1つの隠しフラグが必要です。デフォルトの状態ではサンドボックスの制約によりトレースできません。
strace -f -s512 -o /tmp/chrome /opt/google/chrome/chrome
The setuid sandbox is not running as root.
Failed to move to new namespace: PID namespaces supported,
Network namespace supported, but failed: errno = Operation not permitted
--disable-setuid-sandbox を付けて実行する必要があります。ただし、実行内容に特に有用な情報はなく、ボタンのクリックやチェックボックスの状態変更はシステムコールやライブラリ呼び出しには反映されません。すべて内部関数による処理だからです。不審に思えるかもしれませんが、これはごく普通の実装です。
小括
- システム設定で「OK, Google」ホットワードのオン/オフを切り替えると、voicesearchのマイク状態は変化します。ただし、この設定に影響を与えるのはこの手段だけではなく、他の2つのオーディオ設定は影響を受けません。ホットワード、拡張機能、共有モジュールは、ブラウザの設定メニューで使われていようといまいと、常に有効と表示されます。
- この機能は拡張機能として一覧に表示されますが、その実体はファイルシステム上に存在しません。特殊なフラグ付きでChromeを起動した場合のみ、一覧に現れます。
- 共有モジュールはWindowsとLinuxで同じ名前を持ち、ユーザープロファイル内に格納されています。デバッグシンボルは削除されており、トレースしても音声検索に関連する活動は検出されません。
音声検索を無効にする方法
ブラウザとマイクを実際にテストしてみると、「OK, Google」は有効時には動作し、無効時には動作しないことが確認できます。また、上記の設定にかかわらず、Google検索ページのマイクアイコンを使えば常に音声検索が可能です。その際、Chromeはマイクの使用を許可するかどうか尋ねてきます。
ブラウザが「聞く」能力を完全に無効化したいのであれば、共有モジュールを取り除くのが確実です。ファイルの権限を変更するか、別のフォルダへ移動するか、削除してしまいましょう。
chmod 000 ~/.config/.../x86-64_en-us/hotword-x86-64.nexe
こうすると、次のような挙動になります。Windowsの場合、chrome://voicesearch ページのマイクステータスは、チェックボックスを明示的にオン/オフしない限り変化しません。hotwordファイルが存在しなくても、ブラウザはエラーも例外も出さず正常に動作します。ただし、音声検索は機能しなくなります。hotword実行ファイルの移動・削除・権限剥奪は、確実に効果を発揮します。
Linuxの場合、共有モジュールが欠如するとマイクのステータスは「No」に変わり、Google検索ページの音声ボタンを明示的にクリックしない限り、ホットワードによる音声検索は利用できなくなります。
共有モジュールと拡張機能のステータスは、ファイルを削除しても両プラットフォームともENABLEDと表示され続けます。ただし、そのタイプは既知の認識可能なプラットフォームから「未定義」のものへと変わります。
さて、ファイルを削除した以上、次回のブラウザアップグレードで復活する可能性は理論上あります。その点は注意が必要です。繰り返しますが、信頼できない製品は使うべきではありません。Googleの動向が本当に気になるなら、Chromeに手を出すべきではありません。実際、この記事の目的は「対処は可能であり、事態は当初見えるほど悪質ではない」ことを示すことにありました。あなたにはシステムを制御する力があり、今やブラウザの挙動も理解できているはずです。
まとめ
Googleは、1つのパッケージの中で矛盾するメッセージをあまりにも多く提示している点で、自ら首を絞めています。有効、無効、Yes、No――この機能には半ダース近い組み合わせがあり、そのどれもが技術が実際に動作しているか否か、どのように動作しているのかを正しく反映していません。しかし実態はかなり単純です。GUIの設定メニューこそが状態を支配しています。そして本当に不安であれば、共有モジュールを削除すれば、メニューで何を選択しようと機能は完全に消滅します。
Chromiumユーザーの憤慨は理解できますが、その恐怖の根拠は実在しません。とはいえ、Google側もホットワード機能をもっと透明性が高く、操作・調整しやすい設計にすれば済んだ話です。しかし、悪意を示す証拠は何もありません。あったとすれば、それは単なる不完全な実装です。もちろん、より根源的な「信頼」の問題は残ります。ここでのアドバイスはシンプルです。安心感の持てないソフトウェアは使わないこと。Chromeであれ、他のどんなプログラムであれ同じです。文句を言っても何も解決しません。それだけの話です。
というわけで、解説は以上です。これはMicrosoftがGWXでユーザーに対して行ったような強引な仕打ちほどではありませんが、近い水準にはあります。そして、このバイナリブロブが将来的に何をするかは誰にも分かりませんし、我々には制御権がありません。おそらくそれこそが本当の懸念なのでしょう。しかし必要ならファイルを削除すれば解決します。この記事を書いた理由はそれです。読者一人ひとりが、自分にとって最善の選択を判断できる材料を提供するため。ちなみに、Googleはその後、Chromiumビルドからこの拡張機能を取り除いています。もう心配はいりません。それでは、また次回。
-
Firefox 91以降でProton UIを元に戻す方法!userChrome.cssによる見た目の復元ガイド
Firefox 91がリリースされました。このバージョンアップが何を意味するのかご存じでしょうか。実は、Firefox 91からはabout:config経由でProtonインターフェースを無効化できなくなったのです。なぜこれが大きな問題なのか?答えはシンプルで、ProtonのUIが非常に使いにくいからです。 少し振り返ってみましょう。Mozillaはこれまで何度もFirefoxのUI変更を行ってきましたが、今回正式採用されたのが「Proton」と呼ばれるデザインです。その見た目が決して優れているとは言えないことは、以前ご覧いただいた通りです。Firefox 89でProtonが標準になった当
-
Google Chromeの起動・終了でデスクトップアイコンが更新される問題とその解決策
ここしばらくで出会う(あるいは読むことになる)中でも、最も奇妙な小さなトラブルをご紹介します。筆者のWindowsマシンの1台で、不思議な現象が発生しました。Google Chrome(執筆時点では最新版)を起動するたび、ブラウザを閉じるたび、さらにはGmailアカウントにサインインまたはサインアウトするたびに、デスクトップ上のすべてのアイコンが更新されてしまうのです。 いろいろ調べてみると、2015年に報告されたChromiumのバグレポートが見つかり、そこには回避策についても言及されていました。もちろん、当時の具体的な回避策は今では使えません。Chromeのウィンドウ枠からユーザーアイコン