Fingerprint対策について
どうもだるまぐです。3日遅れてしまいました。
最近またトラッキング対策にハマりだして、色々してしまっていました。
でその際にお世話になったのがcoveryourtracks.eff.orgです。
このサイトは電子フロンティア財団が作ったトラッカーやFingerprintでどれほど個人ののブラウザーとして識別できるかを試せるサイトです。
このサイトで、Tor Browserで試した結果と出来るだけ同じになるようにしようとあれこれ試していました。
まずユーザーエージェント。これはそこら辺の拡張機能で何とか出来るので初めはMozillaがおすすめしていたUser-Agent Switcher and Managerを使っていました。ですがこれだとnavigator.platform(さっきのサイトの「PLATFORM」の欄)が必ず「Windows」と返されてしまうため、Torの値である「Win32」にすることが出来ず困っていました。
次に「HTTP_ACCEPT Headers」こいつは大体言語の話が検出結果に出てたので、そういえばTorは「プライバシーのために英語版サイトを表示する」て言ってたなと思い返しFirefoxのオプションから日本語を消しました。これが思わぬところでいい結果につながりました。言語を英語にする(英語版のサイトにする)だけで、そこら辺のWebサイトのUIが大きく変わりました。日本語版よりも英語版のほうがUIが圧倒的にきれいになることに気づいたのです。もう日本語版に戻ろうという気が無くなりました。
次はタイムゾーン。こいつも拡張機能だけで何とか出来るのでSpoof Timezoneを使ってEtc/GMTにして対処しました。
そして最後にこれは流石に仕方がないと思っていたCANVAS Fingerprint。でもちょっと調べるとそれに対策できる拡張機能があると知りCanvasBlockerを入れました。
そしてこのCanvasBlocker、めちゃめちゃ凄い拡張機能でした。この拡張機能、CANVAS Fingerprintの対策をするだけでなく、audio・history・window・domRect・textMetrics・navigator・screenといったFingerprint的APIに対処してくれる優れものです。
まずこの拡張機能を入れるだけでCANVAS Fingerprintには対処してくれますが、まだSCREEN SIZE AND COLOR DEPTHの欄がundifinedとなって識別しやすくなってしまったり、WebGL Vendor & Rendererがしっかりと検出されているままでした。それに対処するため、CanvasBlockerのオプションから「APIs」のタブで「Fake minimal screen size」をオンにし、SCREEN SIZEの方は対処できましたが、「Reported webGL unmasked vendor」と「Reported webGL unmasked renderer」の欄を空の状態にしても対策無しの状態になってしまうため、どうにかしたいと考えましたが英語の説明にそれらしき説明もなく、GithubにもWikiが無いため、ソースコードのwebgl.jsを閲覧しました。すると「{undefined}と書くと値をundefinedとして返す」「{false}と書くとfalseとして返す」「{empty}と書くと何も書かれていない文字列として返す」「{disabled}と書くとnullとして返す」という記述があったため、これを順に試しました。すると{disabled}だけがTorの場合と同じ結果「None」になりました。
さらにこの拡張機能、ユーザーエージェントまで改変出来ます。navigatorの部分だけ太字にしたように、以前使っていたUA改変拡張機能の弊害をとっ払ってくれます。
User Agentの値をTorと同じ「Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0」にして、以前の拡張機能を消し、ユーザーエージェント欄もPLATFORM欄もTorと同じになりました。
これでようやく、特定の個人のブラウザとして識別できない超ノーマルなブラウザが完成しました。
まさか自分で人のソースコードを読んで考えて上手くいくなんてことが今までなかったため、自分に自信が持てました。
0コメント