/
870.txt
275 lines (215 loc) · 11.4 KB
/
870.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
[2] いくつかの [[Webブラウザー]]には、 [DFN[[[private browsing]]]]
等の呼称で[[履歴]]を残さない等の[[プライバシー]]に配慮された動作モードが用意されています。
* 通常モードとの挙動の違い
[FIG(short list)[ [37] 通常モードと [[private browsing]] の挙動の違う機能
- [CODE[:visited]]
- [CODE[SharedWorker]]
]FIG]
* 実装
[1] [CITE@ja[プライベート ブラウジングを行う(シークレット モード) - Chrome ヘルプ]] ([TIME[2014-11-04 07:36:45 +09:00]] 版) <https://support.google.com/chrome/answer/95464?hl=ja>
[3] [[Firefox]]
* セッション
[18] [[利用者]]からすると通常モードも private モードも同じ [[Webブラウザー]]アプリケーションの異なる動作モードですが、
技術的には2つの異なる[[利用者エージェント]]と考えるのが適当そうです。
[EG[
[19] [[クッキー]]の扱いでは、同じ[[ドメイン]]でも異なる[[セッション]]とみなされます。
]EG]
[EG[
[20] 同じ[[起源]]の[[閲覧文脈]]でも、異なる[[関連する類似起源閲覧文脈の単位]]に属します。
]EG]
;; [21] 両モードで同じ [[HTTP接続]]を共有するのは、実装上リスクがあるかもしれません。
[[HTTP/2]] では同一ホストには同じ[[接続]]を使うことが原則となっていますが、
通常モードと秘密モードでは別の[[接続]]を使うべきかもしれません。
* プロファイル
[4] いくつかの [[Webブラウザー]]には、複数の[[プロファイル]]を利用できるものがあります。
これは private browsing 同様に[[履歴]]等を通常モードと区別するものですが、
区別しつつ保存してセッションを再開できるのが違います。
[5] [[Chrome]] の [[private browsing]] は1つしか使えませんが、
[[プロファイル]]の切り替えの機能では複数同時に使い分けられます。
* 履歴等の機能
[6] [[Webブラウザー]]には履歴等の機能として次のようなものがあります。
;; [7] [[private browsing]] モードでの動作は、実装により異なります。
[FIG(short list)[
- 閲覧履歴
-- 履歴表示機能
-- [[URL]] の[[補完]]
-- [CODE(CSS)@en[[[:visited]]]]
-- [[ダウンロード]]履歴
-- [[窓]]の表示位置
- [[キャッシュ]]
-- [[bfcache]]
-- [[HTTPキャッシュ]]
-- [[AppCache]]
-- [[既知HSTSホスト]]
-- [[既知ピン付きホスト]]
-- [[代替サービス]]
-- [[HTTPS state]]
-- [[CORS preflight cache]]
-- [[DNSキャッシュ]]
-- [[prerender]]
- 閲覧オプション
-- [[代替スタイルシート]]選択
-- [[ズーム]]
-- [[文字コード]]選択
-- セキュリティー等の警告の非表示設定
-- [[画像]]表示
-- [[JavaScript]]
-- [[プラグイン]]
-- [CODE(HTMLe)@en[object]] の[[フォールバック]]を表示するべきか
-- [[ポップアップ]]
-- [[Geolocation API]]
-- [[getUserMedia]]
-- [[Notification]]
-- [[Fullscreen]]
-- [[Pointer Lock]]
-- [[ダウンロード]]の設定
-- [[綴り検査]]の設定
-- [[自動翻訳]]の設定
-- [[volume]]
-- [[Vibration]]
-- [CODE(HTMLa)@en[ping]] 送信可否
- [[ストレージ]]
-- [[Cookie]]、[[Web Storage]] など[[ストレージ (Web)]] 参照
- [[フォーム]]、[[認証]]
-- [[authentication entry]]
-- [[proxy authentication entry]]
-- [[フォームデータ]]の自動補完
-- [[パスワードマネージャー]]からの自動補完
-- [[TLS-OBC]]
-- [[証明書データベース]]
- 動作設定
-- [[言語]]設定
-- [[利用者スタイルシート]]
-- [[DNT]]
-- [[第三者クッキー]]の受け入れ
-- [[prefetch]] 設定
- [[栞]]
-- [[栞]]/[[お気に入り]]
-- [[フィード]]
- [[拡張機能]]
-- [[プラグイン]]
-- [[Webブラウザー]]の拡張
-- [[内容取扱器]]
-- [[プロトコル取扱器]]
-- [[OpenSearch]] による検索機能登録
]FIG]
[15] private モードの履歴等は通常のモードには引き継がれないのが普通です (それが private
モードの趣旨でもあります)。
[14] 通常のモードでの履歴等が private モードに引き継がれるかどうかは場合によります。
例えば通常モードの[[クッキー]]は private モードに引き継がれませんが、
通常モードの補完候補が private モードでも補完候補として使われるかもしれません。
;; [16] 補完候補は[[利用者]]に示されるだけで[[著者]]からはわかりません。
;; [17] [[HTTPキャッシュ]]を両者で共有すると、 [[ETag]] によって通常モードと private
モードを[[著者]]が紐付けできてしまうかもしれません ([[スーパークッキー]]脆弱性)。
キャッシュするページの内容やキャッシュ取得と通常の取得との時間差による推測も可能かもしれません。
[27] 各種履歴類が [[private browsing]] モードでまったく保存されないのか、
通常モードとは別管理で (セッション終了まで) 一時保存されるのかは、
実装方針次第です。しかし[[著者]]に観測できてしまうのは好ましくなさそうで、
場合によっては[[Web互換]]でないかもしれません。
[EG[
[28] 例えば [[Web Storage]] が完全に無効になるのは不適切かもしれません。
セッション終了まで (もしかしたら通常モードより短時間でも良いかもしれませんが)
一時的にはデータが保持されるべきかもしれません。
]EG]
[EG[
[29] [CODE(CSS)@en[:visited]] は[[著者]]から観測できないので、
[[URL]] を表示したかどうかの履歴をまったく保存しなくても良いかもしれません。
]EG]
* 匿名化
[8] [[匿名化]]のためには次のような機能が必要かもしれません。
[FIG(short list)[
- [[串]]の利用
- [[Tor]] の利用
- [CODE(HTTP)@en[[[User-Agent:]]]] や [CODE(JS)@en[[[navigator]]]] の匿名化
- [[Geolocation API]] の値の匿名化
- [[装置]]情報の匿名化
-- [[Media Queries]]
-- [CODE(DOMi)@en[[[Screen]]]] など [[CSSOM View]]
- 利用可能な[[フォント]]の制限
- 利用可能な[[プラグイン]]や[[ブラウザー拡張]]の制限
]FIG]
;; [9] [[fingerprinting]] も参照。
[12] [[a plausible language]] の決定に当たっては、匿名化時の値として
[CODE[[[en-US]]]] が提案されています [SRC[>>13]]。
[REFS[
- [13] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-03-15 01:40:28 +09:00]] 版) <https://html.spec.whatwg.org/#a-plausible-language>
]REFS]
* 対象外
[34] [[プラットフォーム]]の提供する機能までには秘匿化・履歴削除の効果が及ばないかもしれません。
例えば、次のような機能に注意が必要です。
[FIG(list)[
- [[IME]] の[[履歴]]や[[辞書]]
- [[ファイル]]の[[アップロード]]や[[ダウンロード]]の履歴や結果
- [[画面写真]]
- [[ネットワーク]]の[[履歴]]
- [[アプリケーション]]の利用履歴、[[監査]]記録
]FIG]
* 実装
[10] [CITE@en-US[Safari bug saves Web page URLs in Private mode | MacIssues]]
([TIME[2015-04-05 11:50:16 +09:00]] 版)
<http://www.macissues.com/2015/03/17/safari-bug-saves-web-page-urls-in-private-mode/>
[FIG(quote)[
[FIGCAPTION[
[11] [CITE@en-US[When Private Browsing Isn't Private On iOS: HTML5 And AirPlay]]
([TIME[2015-04-05 11:51:17 +09:00]] 版)
<https://ma.ttias.be/when-private-browsing-isnt-private-on-ios-html5-and-airplay/>
]FIGCAPTION]
> HTML5 storage on those iOS devices have a shared state. Everything stored in HTML5 storage in Incognito Mode can be accessed in normal mode.
]FIG]
[22] [CITE@en-US[private-browsing - Mozilla | MDN]]
([TIME[2014-12-21 23:54:37 +09:00]] 版)
<https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/private-browsing>
[23] [CITE@en[Private Mode Browsing]]
([TIME[2014-10-15 09:49:02 +09:00]] 版)
<http://w3ctag.github.io/private-mode/>
[24] [CITE@ja[「Firefox 42」公開、トラッキング保護付きプライベートブラウジング機能を正式搭載 -INTERNET Watch]]
([[株式会社インプレス]] 著, [TIME[2015-11-06 14:33:53 +09:00]] 版)
<http://internet.watch.impress.co.jp/docs/news/20151104_728710.html>
[25] [CITE@en[Re: Proposal to add a browsing context named "_private"]]
([[Joel Weinberger]] 著, [TIME[2016-01-14 10:26:41 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-webappsec/2016Jan/0079.html>
[26] [CITE@ja[Microsoft Edge、InPrivateモードで閲覧したWebサイトの情報を保存していた | スラド IT]]
([TIME[2016-01-31 22:45:53 +09:00]] 版)
<http://it.srad.jp/story/16/01/30/2044207/>
[FIG(quote)[
[FIGCAPTION[
[30] [CITE[Subscribe to Push Notifications | Web Fundamentals - Google Developers]]
( ([TIME[2016-04-19 23:17:25 +09:00]]))
<https://developers.google.com/web/fundamentals/getting-started/push-notifications/step-06?hl=en>
]FIGCAPTION]
> Chrome currently does not support the Push API in Incognito Mode.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[31] [CITE[ios - (How) Can a web site determine if Safari Private Browsing is turned on? - Ask Different]]
([TIME[2016-07-10 13:15:48 +09:00]])
<http://apple.stackexchange.com/questions/131587/how-can-a-web-site-determine-if-safari-private-browsing-is-turned-on>
]FIGCAPTION]
> I have noticed that while in private Browsing mode, Safari will not request favicons, so in theory a site could block caching of the favicon and make a pretty good guess that Private Browsing is on.
> In contrast, on iOS, Safari doesn't request favicons at all. But it will, even in Private Browsing mode, request any "apple-touch-icon" if you access the Sharing panel (the apple-touch-icon is used as the Home Screen icon if you subsequently "Add to Home Screen" for that URL).
]FIG]
[32] [CITE[web browser - Can web sites detect whether you are using private browsing mode? - Information Security Stack Exchange]]
([TIME[2016-07-10 13:19:31 +09:00]])
<http://security.stackexchange.com/questions/9037/can-web-sites-detect-whether-you-are-using-private-browsing-mode>
[33] [CITE@en-US[Contextual Identities on the Web | Tanvi Vyas]]
([TIME[2016-07-19 11:14:56 +09:00]])
<https://blog.mozilla.org/tanvi/2016/06/16/contextual-identities-on-the-web/>
[35] [CITE@en[expand 'clock drift' section in privacy/security]]
([[igrigorik]]著, [TIME[2016-10-01 09:57:36 +09:00]])
<https://github.com/w3c/hr-time/commit/4f49403c3c2ceb3d9e87a1efd0c3eba5b61c2587>
[FIG(quote)[
[FIGCAPTION[
[36] [CITE@ja[ウェブブラウザーのプライベートブラウジング機能、認知していた人は23.1% -INTERNET Watch]]
([[株式会社インプレス]]著, [TIME[2016-10-31 12:46:31 +09:00]])
<http://internet.watch.impress.co.jp/docs/news/741212.html>
]FIGCAPTION]
> Mozilla Japanは、オンラインプライバシーに関する意識調査の結果を発表した。調査対象は国内のインターネット利用者10~60代以上の1236名。調査期間は1月14日~17日。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[38] [CITE[Release Notes for Safari Technology Preview 28 | WebKit]]
([TIME[2017-05-04 02:14:13 +09:00]])
<https://webkit.org/blog/7516/release-notes-for-safari-technology-preview-28/>
]FIGCAPTION]
> Changed private browsing sessions to not look in keychain for client certificates (r215125)
]FIG]