Chrome のシークレットモードを巡る攻防。プライバシーを守りたいユーザー、収益化を模索するサイト運営者

HARBOR BUSINESS Online / 2019年8月23日 15時30分

写真

Gerd Altmann via Pixabay

Contents1 Chrome 76 に加えられた変更が話題に2 多数で回るシークレットモードを見破る方法3 Chrome 76 の仕組みを回避する手法が登場4 プライバシーの保護と収益化の攻防

◆Chrome 76 に加えられた変更が話題に

 Google Chrome のバージョン76で、ある変更が加えられて話題になっている。それは、表示しているWebページ側で、現在の状態がシークレットモードかどうか検出できないようになったことだ(参照:Protecting private browsing in Chrome)。

 Google Chrome を使っている人の中には、そもそもこのモードの存在を知らない人もいるだろう。パソコンで閲覧しているなら「Ctrl+Shift+n」(Mac の場合: ⌘+shift+n)で、シークレットモードが始まる。

 シークレットモードでは、通常の表示とは異なり、Webブラウザ自体が暗い色使いになる。そして閲覧履歴や Cookie などの情報がWebブラウザに保存されなくなる。このモードは、プライベート ブラウジングを実現するためのもので、閲覧履歴を保存しない(Google Chrome ヘルプ)。英語版の Google Chrome では、このモードのことを Incognito mode(お忍びモード)と呼ぶ。

 先ほど挙げた Google のブログ エントリ「Protecting private browsing in Chrome」では、シークレットモードの意義をこう説明している。「共有または借用したデバイスのプライバシーを保護したい、または閲覧履歴から特定の行動を除外したい。政治的弾圧や家庭内虐待などの状況では、人々はウェブでの行動とプライベートブラウジング機能の使用を隠すための、重要な安全上の理由があるかもしれない」と。

◆多数で回るシークレットモードを見破る方法

 このような理由があり設けられているシークレットモードだが、Chrome 76 までは通常モードかシークレットモードかを判定することが公然とおこなわれてきた。「how to detect Incognito mode」というキーワードでネット検索すると、その方法が多数出てくる。その一例を挙げておこう(参照:Stack Overflow)。

 この判定には「FileSystem API」というWebブラウザの部品が利用される。「FileSystem API」は、保存容量が小さい Cookie の代わりに、大容量のデータをWebブラウザに保存できる機能だ。Webブラウザに履歴を残さないシークレットモードには無用なため、シークレットモードではこれまで無効になっていた。

 そこで、この「FileSystem API」が有効かどうかを調べることで、簡単にシークレットモードか否かを判定できたわけだ。この処理は、プログラム1行で実現できる。

 こうしたシークレットモードの判定は、誰にとって需要があったのか。一例はネットメディアである。有料で記事を配信しており「1週間のうち5件の記事は無料」としているようなところだ。

 こうしたメディアでは、同じ人が何回記事を読んだのか知る必要がある。しかし、シークレットモードでは、同じ人が何回訪れたのか判定するのが難しい。履歴が残らないために、毎回まっさらな状態でアクセスしてくるからだ。

 そのため少なからぬ人が、シークレットモードで制限を回避して記事を読んでいた。他の方法を利用して判定するにしても、IPアドレスを使えば、会社などから閲覧している人を全て同一人物と見なしてしまい不都合だ。ネットメディアの中には、制限回避をしている人を弾くために「シークレットモードでは一律で閲覧不可」にするなどの対策をしていた。

 しかし、そうした行為は、個人を特定し難くするというシークレットモードの趣旨に反する。

 そのため7月30日に登場した Chrome 76 で「FileSystem API」の挙動が変更された。シークレットモードでは、一時的な仮想RAMを作り、その上で「FileSystem API」を有効にするようになった。そうすることで、これまでのように「FileSystem API」の有無でシークレットモードか否かを判定することができなくなった。

 それが、Chrome 76 時点での、Google の対策だった。

◆Chrome 76 の仕組みを回避する手法が登場

 こうした対策はイタチごっこになりやすい。Chrome 76 の対策には、すぐさま回避する方法が案出された(参照:CNET Japan)。

 複数の方法が編み出されており、その1つは「Quota Management API」というマイナーな仕組みを利用したものだ。この「Quota Management API」は、HTML5 のオフラインのストレージを管理するためのものだ。このAPIを利用して、クライアント側のストレージの容量を知ることができる(参照:Vikas Mishra)。

 筆者も実験してみたが、シークレットモードでは通常モードよりも小さな値が返ってくる。これはシークレットモード判定への対策に、小さな仮想RAMを作ったのが原因だと思われる。判定のためだけに用意しているので、大きな容量にする必要はないと考えたのだろう。その穴を突かれたわけだ。

 もうひとつの方法は、「Filesystem API」の書き込み速度を測定するというものだ。HDDにデータを保存するのと、仮想RAMにデータを保存するのでは、前者の方が時間が長く掛かる。そのため大きなデータを作り、保存速度を比較すれば、シークレットモードか否かを判定できる(参照:Jesse Li)。

 こうした抜け穴は、既に修正の取り組みが開始されている。すぐに穴は塞がれ、新しい方法が考案されるだろう。

◆プライバシーの保護と収益化の攻防

 今回は、シークレットモード周りで、プライバシーを保護したいというユーザー側の意思と、個人を特定して収益化をしたいという企業側の思惑のあいだで対立が生じた。

 匿名化と収益化は、対立しやすい概念だ。Chrome を送り出している Google 自体、個人情報の収集によって、広告を最適化して収益を上げている。完全に匿名のWeb世界では、その収益性は格段に落ちるだろう。

 Google がWebブラウザを支配する社会では、シークレットモードは、あくまでも緊急避難的なモードであり、デフォルトのモードになることはない。

 昨今は、2018年5月に施行した「EU一般データ保護規則」(General Data Protection Regulation; GDPR)によって、個人情報の取り扱いが厳しくなっている。将来的には、個人が匿名でアクセスしたいと望むなら、それを弾くのではなく、受け入れる体制がサイト管理者側には求められているのではないか。

【柳井政和】

やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。

この記事に関連するニュース

トピックスRSS

ランキング