ブラウザフィンガープリンティングと
TLSフィンガープリンティングによるユーザトラッキングとその対策の研究
2020年2月15日 修士論文発表
大久保研究室 M2 中村綾花

目次
1. 背景
2. フィンガープリンティング
2.1 ブラウザフィンガープリンティング
2.2 TLSフィンガープリンティング
2.3 フィンガープリンティング対策

3. 先行研究4. 既存のフィンガープリンティ
ング対策ツールの評価実験
4.1 実験手法
4.2 実験ツール
4.3 実験結果
4.4 考察5. 対策手法の検討・実験
5.1 対策の検討
5.2 提案手法の実験
5.3 実験構成
5.4 実験結果
5.5 考察5.6 結果考察

6. まとめ
7. 今後の課題

2

1. 背景多くのWebサイトが何らかのユーザートラッキングを行っており、知らないうちに追跡されている
cookieフィンガープリンティング
特にフィンガープリンティングは明示的に拒否しづらい

2014年のAcarらの研究
Alexaのアクセス数上位10,000サイト中5.5%
31. 背景
フィンガープリンティング対策ツールが存在多くはブラウザ拡張機能で提供される

4

1. 背景2019年5月，Firefoxがデフォルトでフィンガープリント採取を防ぐオプションを実装

5

1.背景
ユーザのプライバシーの保護のため、勝手にユーザトラッキングされないことが望ましいフィンガープリンティング対策は重要技術
問題点を発見・改善することによりより良い技術にできる

6

2. フィンガープリンティング

7

2. フィンガープリンティング
フィンガープリンティング(Fingerprinting)とは、通信の特徴から人間の指紋(Fingerprint)のように端末を識別する技術

MachineFingerprinting

Fingerprint（識別情報）
8

2. フィンガープリンティング
フィンガープリンティングには2種類存在
1. アクティブフィンガープリンティング
サーバにアクセスしてきたクライアント上で情報を収集するプログラムを実行させ，クライアントを一意に識別する技術
 ブラウザフィンガープリンティング

2. パッシブフィンガープリンティング
サーバにアクセスしてきたクライアントを，受信パケットの特徴を用いて識別する技術
 TCPフィンガープリンティング →OSの種類まで
 TLSフィンガープリンティング →ブラウザの種類まで
9

2.1 ブラウザフィンガープリンティング
クライアントのブラウザ上でJavaScriptを動作させ，特徴となる情報を収集

10

2.1 ブラウザフィンガープリンティング
使用しているブラウザ特有の情報を収集して識別する

 User-Agent Accept
 解像度
 タイムゾーン etc…

 プラグイン システムフォント
 Canvas API
 WebGL API

https://fingerprintjs.com/demo

11

2.2 TLSフィンガープリンティングHTTPS通信を行う際に発生するネゴシエーショ
ンパケットからクライアントの特徴を収集する
ClientHelloTLS Version
Cipher Suites
Extensions

ClientHelloの特徴は，ブラウザのTLS実装に大きく依存する
12

2.2 TLSフィンガープリンティング

13

2.3 フィンガープリンティング対策フィンガープリンティングを検知して防止，もしくはフィンガープリントを偽装する
ブラウザの拡張機能
JavaScriptの実行防止一部の情報の偽装

ブラウザ固有の機能
Firefoxのフィンガープリント防止機能14

3. 先行研究 ブラウザフィンガープリンティングに関する研究
Eckersleyの研究(2010)
ブラウザフィンガープリンティングで94.2%のクライアン
トのブラウザを一意に識別した
Vastelらの研究 (2018)
ブラウザ拡張によるフィンガープリンティング対策機能を利用するユーザについて，ブラウザの実装に依存するエラーや関数の戻り値を比較することで偽装されたフィンガープリントを検出できる15

3. 先行研究
TLSフィンガープリンティングに関する研究
Husákらの研究
TLSのCipheSuitesとブラウザのUser-Agentで辞書を作成， 99.6%のクライアントのブラウザのUser-Agentを識別可能
Frolovらの研究
11 億個以上のTLS ClientHelloを収集・分析．Torなど通信の匿名化ツールにおける通信と通常のブラウザの通信と比較し，検出可能であることを示した．

対策として，Go用のライブラリuTLSを作成．
16

4. 既存のフィンガープリ
ンティング対策ツールの評価実験

17

4. 既存のフィンガープリンティング
対策ツールの評価実験
既存のフィンガープリンティング対策ツールはブラウザフィンガープリンティングに有効？
TLSフィンガープリンティングにも効果を発揮する？

既存の人気フィンガープリンティング対策ツールを調査
18

4.1 実験手法
既存のフィンガープリンティング対策ツールの性能評価
ブラウザの状態ごとに2種類のフィンガープリントを
 通常状態
 フィンガープリンティン
それぞれ比較，変化が発生するかを調査
グ対策導入状態
 ブラウザフィンガープリ
ント TLSフィンガープリント ブラウザフィンガープリ
ント TLSフィンガープリント比較
19

4.2 実験手法
BrowserStackによるクリーンな仮想ブラウ
ザを利用
FirefoxGoogle Chrome20

4.3 実験ツール
選定条件
ブラウザ固有のもの
利用者が1000人以上のブラウザ拡張機能

Firefox, Google Chrome合わせて24個該当

21

4.3 実験ツール
ブラウザ

ツール名

機能概要

Firefox

トラッキング防止機能

ブラウザにデフォルトで存在するトラッキング防止機能

Canvas Blocker

JavaScript で取得される情報を偽装またはブロック

Canvas Defender

Canvas の偽装

ScriptSafe

フィンガープリンティングのブロック

Canvas Fingerprint Defender

Canvas の偽装

Spoof Timezone

タイムゾーンの偽装

AntiBrowserSpy
TrackingBlocker

フィンガープリンティングスクリプトのブロック，User-Agent の偽装

Trace

複数のトラッキングスクリプトからの保護

AudioContext Fingerprint
DefenderAudioContext の偽装

WebGL Fingerprint Defender

WebGL の偽装
22

ブラウザ ツール名Chrome

機能概要

Canvas Fingerprint Defender

Canvas の偽装

WebGL Fingerprint Defender

WebGL の偽装

CanvasFingerprintBlock

Canvas のブロック

AudioContext Fingerprint Defender

AudioContext の偽装

Browser Plugs Fingerprint Privacy
Firewall

複数のフィンガープリントの偽装

Canvas DefenderCanvas の偽装

ScriptSafe

フィンガープリンティングのブロック

Canvas Blocker (Fingerprintprotect)

Canvas の偽装

JustBlock Security

広告のブロック，トラッキングスクリプ
トからの保護Random User-Agent

User-Agent の偽装

Trace - Online Tracking Protection

複数のトラッキングスクリプトからの保護

AntiBrowserSpy - TrackingBlocker

フィンガープリンティングスクリプトのブロック，User-Agent の偽装

TunnelBear Blocker

広告と複数のトラッキングスクリプトのブロック

Spoof Timezone

タイムゾーンの偽装23

フィンガープリンティング
対策ツールの評価実験
実験結果

24

4.4 実験結果
ブラウザ

ツール名

Firefox

トラッキング防止機能

ブラウザフィンガープリン
ト

TLSフィンガープリントxx

Canvas Blocker○x

Canvas Defender

○x

取得不可x

Canvas Fingerprint
Defender○x

Spoof Timezone○xAntiBrowserSpy
TrackingBlocker

取得不可

x

Trace

○x

AudioContext
Fingerprint Defender○x○x

ScriptSafe

WebGL Fingerprint
Defender

変化: ○, 変化なし: x25

ブラウザ

ツール名Chrome

ブラウザフィンガープリ
ント

TLSフィンガープリン
トCanvas Fingerprint Defender○x

WebGL Fingerprint Defender○x

CanvasFingerprintBlock○x

AudioContext Fingerprint
Defender○xBrowser Plugs Fingerprint
Privacy Firewall○xCanvas Defender

xx

取得不可

x

Canvas Blocker (Fingerprintprotect)○x

JustBlock Security○xRandom User-Agent○x

Trace - Online TrackingProtection○x

AntiBrowserSpy TrackingBlocker

取得不可xTunnelBear Blocker

取得不可

x○x

ScriptSafe

Spoof Timezone26

4.5 考察1. ChromeのCanvasDefender拡張機能
フィンガープリントの変化が起こらない→対策効果が発揮されていない
調査に利用したBrowserStackの問題
環境上のLocalStorageにアクセスできないことによる
JavaScriptのエラー

27

4.5 考察2. Firefoxのトラッキング防止機能
フィンガープリントの変化が起こらない→対策効果が発揮されていない
 Disconnect社の提供するドメインベースのブラックリスト ユーザ側で編集が不可能

28

4.6 結果考察
24個のツール中，初期状態と比較した結果
ブラウザフィンガープリ TLSフィンガープリンントト変化: 17個取得不可: 5個
変化なし: 2個
既存のフィンガープリンティ
ング対策ツールはTLSフィンガープリンティン
グに対して効果を発揮していない

全て変化なし

突合すれば検出されるおそれ特徴として追跡される可能性
29

5. 対策手法の検討・実験30

5.1 対策の検討
ブラウザフィンガープリンティング対策と同時にTLSフィンガープリンティング対策を行えば良い

ブラウザフィンガープリンティング

WebサイトTLSフィンガープリンティング31

5.1 対策の検討
本研究では，従来のブラウザフィンガープリンティング対策ツールを適用
Man In The Middleを行うProxyを設置，TLSのClientHelloを変更して代わりに通信させることで実現32

5.2 提案手法の実験
1. MITM Proxy を構築，Proxy の証明書を実験端末に信頼できるものとしてインストール
2. 何も対策を施さない状態(通常状態)，ブラウザフィンガープ
リンティング対策ツールを適用した状態(BFP対策)，TLSフィンガープリンティング対策を適用した状態(TLSFP対策)，ブラウザ・TLS両方のフィンガープリンティング対策を適用した状態(提案手法)，それぞれの状態で10回フィンガープリン
ティング収集サイトにアクセス
3. フィンガープリントが収集された回数と一意なフィンガープリントが生成された回数を比較
33

5.3 実験構成
端末:
Windows10,macOS 各1台
ブラウザ:
Firefox, Google Chromeブラウザフィンガープリンティング対策ツール:
Canvas Fingerprint Defender(Firefox,Chrome)
MITM Proxyの構築:
既存のプログラムを改変，Frolovらの
uTLSラ イブラリ(ClientHelloをランダマイズ)34

提案手法の実験
実験結果

35

5.4 実験結果
ブラウザフィンガープリント

TLSフィンガープリント

OS, ブラウザ

対策状況

Windows10Firefox

通常状態

110220

BFP対策

1010220

TLSFP対策

1102020

提案手法

10102020

通常状態

110

120

BFP対策

1010

120

TLSFP対策

11020

20

提案手法

10102020

Windows10
Chrome

総回数

Unique FP

総回数

Unique FP36

5.4 実験結果
ブラウザフィンガープリント

TLSフィンガープリント

OS, ブラウザ

対策状況

macOSFirefox

通常状態

110220

BFP対策

1010220

TLSFP対策

1102020提案手法

10102020

通常状態

110120

BFP対策

1010120

TLSFP対策

1102020

提案手法

10102020macOS
Chrome

総回数

Unique FP

総回数

Unique FP37

5.5 考察
通常状態のFirefoxが2種類のTLSフィンガープリントを生成した事象送信されるパケット中のextensionのパディングの有無により2種類生成(0303)(130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f
0035000a)((0000)(0017)(ff01)(000a000e000c001d00170018001901000101)(000b0
パディング
0020100)(0023)(0010000e000c02683208687474702f312e31)(00050005010000000
なし
0)(0033)(002b0009080304030303020301)(000d0018001604030503060308040805
080604010501060102030201)(002d00020101)(001c00024001))(0303)(130113031302c02bc02fcca9cca8c02cc030c00ac009c013c01400330039002f
0035000a)((0000)(0017)(ff01)(000a000e000c001d00170018001901000101)(000b0
パディング 0020100)(0023)(0010000e000c02683208687474702f312e31)(00050005010000000
0)(0033)(002b0009080304030303020301)(000d0018001604030503060308040805
あり
080604010501060102030201)(002d00020101)(001c00024001)(0015))
38

5.6 結果考察
通常状態： どれも変化なし
BFP対策のみ： ブラウザフィンガープリントのみが変化
TLS対策のみ: TLSフィンガープリントのみが変化
提案手法(BFP対策&TLS対策):
ブラウザ・TLSのフィンガープリント両方変化提案手法の適用により，フィンガープリンティングを用いたトラッキングを困難にできる可能性がある39

6. まとめ現状のフィンガープリンティング対策の多くはブラウザフィンガープリンティングのためのものであり，TLSフィンガープリンティング対策ができていない→両方のフィンガープリントを組み合わせた場合追跡される可能性がある

対策として，MITM Proxyを使ったTLSフィンガープリンティング対策を併用することでトラッキングを困難にできる可能性がある40

7. 今後の課題
トラッキング回避のために有用であるフィンガープリントの変更方法を検討

より簡単に利用するため，ブラウザ自身にTLSフィンガープリンティング対策のための実装を施すべき

41