* 仕様書

[REFS[
- [2] '''[CITE@en-US-x-hixie[HTML Standard]] <http://www.whatwg.org/specs/web-apps/current-work/#fingerprinting-vector>'''
- [15] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-10.8>
]REFS]

* 一覧

[17] [[利用者]]の行動や好みに関するもの:
[FIG(middle list)[
- [[ストレージ (Web)]]
- [[HTTPキャッシュ]]
- [[実体タグ]]
- [[HTTP認証]]
- [[クライアント証明書]]
- [CODE(HTTP)@en[[[Cookie:]]]]
- [CODE(JS)@en[[[document.cookie]]]]
- [CODE(JS)@en[[[navigator]]]] [[オブジェクト]]
- [[利用者スタイルシート]]
- [9] [[HSTSスーパークッキー]]
- [[代替サービス]]
- [CODE(HTTP)@en[[[Upgrade-Insecure-Requests:]]]]
- [[PKP]]
- [13] [[ブラウザー拡張]]によっては[[文書]]の処理などに影響を与えるものもあります。
それらもまた [[fingerprinting vector]] となり得ます。
- [7] [[XML文書]]が[[整形式]]でないときの [[navigation]] や [CODE(DOMi)@en[[[DOMParser]]]]
などの結果は [[Webブラウザー]]の種類や[[利用者]]の[[ロケール]]によって変化するので、
[[fingerprinting vector]] といえます。
- [CODE(HTMLe)@en[[[isindex]]]]
- [CODE(HTTP)@en[[[Referer:]]]]
- [CODE(HTTP)@en[[[Origin:]]]]
- [CODE(HTTP)@en[[[Accept-Language:]]]]
- [CODE(HTTP)@en[[[DNT:]]]]
- [CODE(HTTP)@en[[[Prefer:]]]]
- [CODE(HTTP)@en[[[From:]]]]
- [CODE(CSS)@en[[[font-family]]]]
- [CODE(CSS)@en[[[:visited]]]]
- [CODE(JS)@en[[[Date]]]]
- [[DeviceOrientation Event]]
- その他[[ロケール]]関係一般 [SEE[ [[日時のプライバシー]] ]]
]FIG]

[27] [[利用者]]の[[装置]]に関するもの:
[FIG(middle list)[
- [CODE(JS)@en[window.screen]]
- [CODE[NaN]]
]FIG]

[14] [[利用者]]のネットワーク環境に関するもの:
[FIG(list middle)[
- [[IPアドレス]]
- [CODE(HTTP)@en[[[Via:]]]]
- [CODE(HTTP)@en[[[Forwarded:]]]]
- [CODE(HTTP)@en[[[X-Forwarded-*:]]]]
]FIG]

[16] [[利用者]]の[[クライアント]]に関するもの:
[FIG(middle list)[
- [[利用者エージェント]]がどの機能に対応するか、しないか [SRC[>>2]]
- 扱うことのできる、または起こり得る値の範囲や長さ、個数や種類の制限
- [[利用者エージェント]]依存の挙動が認められているもの
- [[HTTPヘッダー]]の順序
- [CODE(HTMLe)@en[[[embed]]]]
- [CODE(HTMLe)@en[[[object]]]]
- [CODE(DOMa)@en[[[accessKeyLabel]]]]
- [12] [[navigate]]
- 用いる[[TLS拡張]]
- [[ALPN]]
- [[プロトコルの版]]
- [CODE(HTTP)@en[[[ALPN:]]]]
- [CODE(HTTP)@en[[[User-Agent:]]]]
- [CODE(HTTP)@en[[[From:]]]]
- [CODE(HTTP)@en[[[Sec-WebSocket-Extensions:]]]]
- [CODE(HTTP)@en[[[Connection:]]]]
- [CODE(HTTP)@en[[[Upgrade:]]]]
- [CODE(HTTP)@en[[[Accept:]]]]
- [CODE(HTTP)@en[[[Accept-Charset:]]]]
- [CODE(HTTP)@en[[[Accept-Encoding:]]]]
- [CODE(HTTP)@en[[[Accept-Features:]]]]
- [[WebSocket handshake]] でどの[[ヘッダー]]を送信するか
- [[WebSocket]] [[Pingフレーム]]/[[Pongフレーム]]の送信頻度と[[応用データ]]
- [[WebSocket]] [[Closeフレーム]]の[[応用データ]]
- [[HTTP/2]] [CODE[[[SETTINGS]]]] [SRC[>>16]]
- [[HTTP/2]] [[フロー制御]]の方式 [SRC[>>16]]
- [[HTTP/2]] [[優先度]]の用法 [SRC[>>16]]
- [[HTTP/2]] [CODE[[[PING]]]] の送信頻度と [[payload]]
- [[HTTP/2]] [CODE[[[GOAWAY]]]] [[フレーム]]の [[payload]]
- [[HTTP/2]] プロトコル上の反応のタイミング [SRC[>>16]]
- [[HTTP/2]] [[詰め]]欄のエラー処理
]FIG]

* ブラウザーを越えた fingerprinting

[21] 実装方法次第では通常モードと [[private browsing]] モードを紐付けできるかもしれません。
そうでなくても[[IPアドレス]]である程度関係を推定できるかもしれません。

;; [[private browsing]] も参照。

[22] [[デスクトップ]]と[[スマートフォン]]などの同一ブラウザーのプロファイル同期機能により
[[Webブラウザー]]の保存する情報が同期されると、
[[IPアドレス]]や[[利用者エージェント]]の特徴が異なっていても、
それ以外の情報から両者を紐付けできるかもしれません。

[23] [[埋め込みブラウザー]]の実装方法次第で、
通常のブラウザーと[[埋め込みブラウザー]]を紐付けできるかもしれません。

[24] [[セッションID]]のようなものを含む [[URL]] を[[利用者]]に与えることで、
同一[[利用者]]の各[[ブラウザー]]や[[埋め込みブラウザー]]、
[[MUA]] などを紐付けできるかもしれません。

* メモ

[1] [CITE[Fingerprinting – WebKit]]
( ([TIME[2014-05-05 01:59:05 +09:00]] 版))
<http://trac.webkit.org/wiki/Fingerprinting>

[3] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-9.7>

[4] [CITE@en[Web Applications 1.0 r8738 Be more explicit about the fingerprinting risk for <input type=submit>]]
( ([TIME[2014-09-03 07:34:00 +09:00]] 版))
<http://html5.org/r/8738>

[5] [CITE@en[WebDriver]]
( ([TIME[2014-11-07 11:15:41 +09:00]] 版))
<https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#h3_fingerprinting>

[6] [CITE@en[RadicalResearch HSTS Super Cookies]]
( ([TIME[2015-01-08 12:25:42 +09:00]] 版))
<http://www.radicalresearch.co.uk/lab/hstssupercookies/>

[8] [CITE@en[CSP-PINNING: Explain fingerprinting risk. · a3781f3 · w3c/webappsec]]
([TIME[2015-02-03 11:28:35 +09:00]] 版)
<https://github.com/w3c/webappsec/commit/a3781f31a1a50d1368b9833df75d6da8ebc5b2c3>

[10] [CITE@en[Fingerprinting Guidance for Web Specification Authors]]
([TIME[2015-02-24 16:31:41 +09:00]] 版)
<http://w3c.github.io/fingerprinting-guidance/>

[11] [CITE[Part2 - browsersec - Browser Security Handbook, part 2 - Browser Security Handbook - Google Project Hosting]]
([TIME[2015-03-31 16:39:37 +09:00]] 版)
<https://code.google.com/p/browsersec/wiki/Part2#Privacy-related_side_channels>

[FIG(quote)[
[FIGCAPTION[
[18] [CITE@ja[HTTP/2のRFCを読んだ感想 - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】]]
([TIME[2015-05-26 17:22:14 +09:00]] 版)
<http://www.scutum.jp/information/waf_tech_blog/2015/05/waf-blog-044.html>
]FIGCAPTION]

> 具体的には、PINGやPUSH_PROMISEなどによってWAF側から積極的にクライアントに対して働きかけ、反応を見ることで実装のフィンガープリンティングがやりやすくなりそうです。例えば、RubyやPythonで作成された攻撃ツールがFirefoxやChromeのフリをしているのを見破ったりすることが容易になるでしょう。

]FIG]


[19] [CITE[Security FAQ - The Chromium Projects]]
([TIME[2015-06-06 06:30:25 +09:00]] 版)
<http://www.chromium.org/Home/chromium-security/security-faq#TOC-Why-isn-t-passive-browser-fingerprinting-including-passive-cookies-in-Chrome-s-threat-model->

[20] [CITE@en[Fingerprinting Guidance for Web Specification Authors (Draft)]]
( ([TIME[2015-11-23 17:28:31 +09:00]] 版))
<http://www.w3.org/TR/2015/NOTE-fingerprinting-guidance-20151124/>

[25] [CITE@en[Re: ''''''[''''''whatwg'''''']'''''' Proposal: navigator.cores]]
([[Adam Barth]] 著, [TIME[2014-05-05 06:49:00 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-whatwg-archive/2014May/0011.html>

[26] [CITE@ja[リワード広告におけるCookieも端末IDも使わないFingerPrintを使った計測方法について:That's the Way to GO!:オルタナティブ・ブログ]]
([TIME[2016-07-12 23:06:19 +09:00]])
<http://blogs.itmedia.co.jp/jinmsk/2013/10/cookieidfingerp-da3d.html>

[28] [CITE@en[Mitigating Browser Fingerprinting in Web Specifications]]
([TIME[2016-08-19 00:30:43 +09:00]])
<https://w3c.github.io/fingerprinting-guidance/>

[29] [CITE[The Design and Implementation of the Tor Browser '''['''DRAFT''']''']]
([TIME[2016-12-26 00:13:46 +09:00]])
<https://www.torproject.org/projects/torbrowser/design/>

[30] [CITE@en[Fingerprinting Guidance for Web Specification Authors (Draft)]]
([TIME[2015-11-23 17:28:31 +09:00]])
<https://www.w3.org/TR/2015/NOTE-fingerprinting-guidance-20151124/>

[31] [CITE@en[Remove registerContentHandler() and several friends]]
([[annevk]]著, [TIME[2017-09-14 20:16:09 +09:00]])
<https://github.com/whatwg/html/commit/b143dbc2d16f3473fcadee377d838070718549d3>

[32] [CITE@en[should BroadcastChannel be disabled if a window does not have access to storage? · Issue #3054 · whatwg/html]]
([TIME[2017-12-21 00:27:52 +09:00]])
<https://github.com/whatwg/html/issues/3054>

[33] [CITE@en[Fingerprinting Protections · brave/brave-browser Wiki]]
([TIME[2020-03-24 10:11:11 +09:00]])
<https://github.com/brave/brave-browser/wiki/Fingerprinting-Protections>

[34] [CITE@en[Mitigating Browser Fingerprinting in Web Specifications]]
([TIME[2019-04-30 03:58:23 +09:00]])
<https://w3c.github.io/fingerprinting-guidance/>


[35] 
[CITE@en[Detectability of assistive technology · Issue #1371 · w3c/aria · GitHub]], [TIME[2024-11-03T09:57:44.000Z]] <https://github.com/w3c/aria/issues/1371>

