/
505.txt
442 lines (328 loc) · 21.8 KB
/
505.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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
[61] [DFN[public suffix]] あるいは [DFN[eTLD]] ([DFN[effective TLD]])
は、 [[TLD]] や、 [CODE[co.jp]] など実質的に [[TLD]] のように機能する[[ドメイン]]です。
[[TLD]] 内の[[サブドメイン]]の構造は [[TLD]] ごとに異なるため、
機械的に [[eTLD]] を決定することはできません。
そのため [DFN[Public Suffix List]] ([DFN[PSL]]) として一覧表が管理されています。
[62] [[public suffix]] は、1つの[[サイト][eTLD+1]]の単位を決めるもので、
[[セキュリティー]]上も極めて重要となっています。
[EG[
[63] 例えば [CODE[example.co.jp]] や [CODE[a.example.co.jp]] の
[[public suffix]] は [CODE[co.jp]] で、 [CODE[example.co.jp]]
が[[サイト][eTLD+1]]の単位となります。もし [CODE[example.co.jp]]
が[[ドメイン]]が [CODE[co.jp]] や [CODE[jp]] の[[クッキー]]を発行できてしまうと、
異なる[[サイト][eTLD+1]]であるはずの [CODE[test.co.jp]] にも干渉できてしまいます。
それを防ぐため、 [[クッキー]]の処理で [[PSL]] を参照することになっています。
]EG]
* 仕様書
[REFS[
- [14] [CITE@en[Public Suffix List]] ([TIME[2014-07-29 18:50:45 +09:00]] 版) <https://publicsuffix.org/>
-- [15] [CITE@en[View the Public Suffix List]] ([TIME[2014-07-29 17:56:21 +09:00]] 版) <https://publicsuffix.org/list/>
- [20] [CITE@en[RFC 6265 - HTTP State Management Mechanism]] ([TIME[2014-10-12 15:11:47 +09:00]] 版) <http://tools.ietf.org/html/rfc6265#section-5.3>
- [23] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-03-05 09:33:40 +09:00]] 版) <https://html.spec.whatwg.org/#dom-document-domain>
- [25] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-03-05 09:33:40 +09:00]] 版) <https://html.spec.whatwg.org/#dom-external-issearchproviderinstalled>
]REFS]
* 意味
[33] [[PSL]] に掲載された[[ドメイン]] ([[public suffix]]) は、
[[ICANNドメイン]]と[[私的ドメイン]]に分類されます [SRC[>>15]]。
[34] [DFN[[RUBYB[ICANN ドメイン]@en[ICANN domain]]]]は [[gTLD]] や [[ccTLD]] と、
それらの下位で分類を表す ([[gTLD]] や [[ccTLD]] の管理者が決定した)
[[ドメイン]]です。
[EG[
[58] [CODE[com]], [CODE[jp]], [CODE[co.jp]], [CODE[info]] などがあります。
]EG]
[35] [DFN[[RUBYB[私的ドメイン]@en[PRIVATE domain]]]]は、
私企業等
(独自のドメイン階層の販売者、[[クラウド]]サービス事業者、[[DDNS]] 事業者等)
が自身の保有する[[ドメイン]]を第三者に割り当てているものです。
[EG[
[59] [CODE[blogspot.com]] や [CODE[github.io]] などがあります。
]EG]
[NOTE[
[78] [[名前解決]]や [[DNS]] の[[プロトコル]]上は、
両者に特別な違いはありません。
運用上、 [[ICANN]] から直接認知されているかどうかが違うだけです。
[[ICANNドメイン]]は比較的安定しており、
[[私的ドメイン]]は[[ドメイン]]の[[失効]]や売却、事業変更などで流動的ではありますが、
[[ICANNドメイン]]の構造が変更されることも少なからずありませんし、
安定して運用されている[[私的ドメイン]]もありますから、
性格の違いはあまりありません。
[[ICANNドメイン]]は [[ICANN]] の指針に基づき比較的公正に運用されているとされますが、
運用企業の方針や所属国家の政治的影響も受けていますから、
決定的な違いともいえません。
]NOTE]
[60] [[public suffix]] や [[eTLD]] というとき、特に注記がなければ普通はこれら両方を合わせて指しています。
* 演算
** PSL に含まれるか否か
[21] [CODE(HTTP)@en[Set-Cookie:]] [[ヘッダー]]の [CODE(HTTP)@en[Domain]]
[[属性]]の処理では、 [[PSL]] を参照して検査します。
[[Cookie]] の[[利用者エージェント]]は、できれば最新の [[public suffix]]
のリストを使う[['''べきです''']] [SRC[>>20]]。
** PSL ICANN DOMAINS か否か
[41] [[Chrome]] は、[[ワイルドカード証明書]]について、
[[ワイルドカード]] + [[ICANN DOMAINS]] になっていると一致させません。
[32] [[BR]] に従う [[CA]] は [[PSL]] の ICANN DOMAINS に掲載された [[public suffix]]
のみについての[[ワイルドカード証明書]]を発行してはなりません。
;; [[ワイルドカード証明書]]を参照。
** PSL に含まれるか、 [CODE[.]] + 入力が PSL と末尾一致するかのいずれかであるか否か
[24] [CODE(JS)@en[[[document.domain]]]] の[[設定器]]は、
新しい値が適切かどうか [[Public Suffix List]] によって検査しなければ[['''なりません''']]
[SRC[>>23]]。
;; [CODE(JS)@en[[[document.domain]]]] では比較方法も規定されています。
;; [43] これより、[[関連する類似起源閲覧文脈群の単位]]の決定に [[PSL]] が影響します。
** ドメインの public suffix
[42] [[eTLD+1]] は、その定義より、 [[PSL]] に依存して決まります。
[[DMARC]] の [[Organizational Domain]] も同じ意味のようです。
[HISTORY[
[26] [CODE(DOMm)@en[[[IsSearchProviderInstalled]]]] [[メソッド]]は、
判定に [[Public Suffix List]] を使わなければ[['''なりません''']] [SRC[>>25]]。
]HISTORY]
[46] [[Firefox]] は、[[設定]]画面や[[履歴]]表示、[[アドレスバー]]の表示を[[サイト][eTLD+1]]単位とするため、
[[PSL]] を使っています [SRC[>>45]]。
[49] [[Chrome]] は、[[アドレスバー]]の入力が [[URL]] か[[検索]]語か判断するために
[[PSL]] を使っています [SRC[>>45]]。
[44] [[Let's Encrypt]] は[[証明書]]発行頻度制限に [[PSL]]
([[eTLD+1]]) を使っています [SRC[>>45]]。
** 不適用
[65] [[WPAD]] の処理にも [[PSL]] を適用して良さそうなものですが、
実装は他の方法を採っているようです。
[67] [CODE[includeSubDomains]] の処理にも適用されても良いのかもしれませんが、
そうはなっていないようです。
* データファイル
[REFS[
- [40] 生データファイル <https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat>
- [53] テストデータ ([TIME[2016-05-31 20:52:42 +09:00]]) <https://raw.githubusercontent.com/publicsuffix/list/master/tests/test_psl.txt>
]REFS]
[57] [[PSL]] 由来のデータを含む各種[[プログラミング言語]]用[[ライブラリー]]などもありますが、
[[PSL]] はかなり頻繁に更新されていますから、それにどのように追随するのかはよく検討する必要があります。
データファイルが[[ライブラリー]]に埋め込まれていて、たまにしか更新されないものや、
[[ライブラリー]]自体は頻繁に更新されていても[[パッケージマネージャー]]の都合や自社独自の指針などで依存[[ライブラリー]]をたまにしか更新できないような場合、
誤った結果を返したり、場合によっては[[セキュリティー]]的に問題のある状態となることもありますから、
注意が必要です。
* 変化
[77] [[PSL]] は、数日ごとに更新されています。[[実装]]は、それなりの頻度でこれに追随する必要があります。
-*-*-
[70] [[PSL]] の内容が変化する (のを実装がデータファイル更新により適用する) ことで、
プロトコル要素の処理が変化します。それによって、それまで可能だった操作があるときから不可能になったり、
その逆になったりすることがあります。
[EG[
[71] 例えばある時点まで [CODE(JS)@en[document.domain]] の設定により通信できていた
[[Webサイト]]同士が、ある時から通信できなくなるかもしれません。
]EG]
[72] ある意味でこれは非互換な変更が予期せぬタイミングで突然発生するものですが、
実用上はそれが問題となることはまずありません。 [[PSL]] は[[ドメイン名]]管理機関の意向に従い変更されますから、
そもそもそれと矛盾する形で利用されているのはおかしな話です。
;; [73] ただ、新規に追加された [[gTLD]] と矛盾する[[内部名]]を使っていたケースでは、
問題が発生する可能性はあります。
* 代替ルート
[79] [[PSL]] は、[[代替ルート]]には対応していません。
[80] これは、ある意味で [[Web]] が[[代替ルート]]と互換性がないことを表します。
[[代替ルート]]の提供する[[非標準]]の [[TLD]] が [[SLD]] 以下に
[[public suffix]] 相当の階層を設けていないのならば問題ありませんが、
設けているのであれば、本来の[[サイト]]の範囲を超えて[[クッキー]]を設定できるなど、
[[セキュリティー]]の問題が発生するかもしれません。
* 歴史
[54] [[Mozilla]] が導入し、管理し続けています。
[55] 他の[[ブラウザー]]も追随して [[Mozilla]] の提供するデータファイルを使うようになりました。
[[Web]] 技術の[[仕様書]]からも[[規定]]の一部として[[参照]]されるようになりました。
[56] [[Mozilla]] が導入を決めた当初、 [[DNS]] 関連事業者等の中には反対する人達もいました。
しかし現に[[セキュリティー]]の問題が起こって対策が必要な状況であるにも関わらず、
有効な対案を示すことはできませんでした。
[1] [CITE[mozilla-central mozilla/netwerk/dns/effective_tld_names.dat]]
( ([TIME[2011-03-01 01:48:36 +09:00]] 版))
<http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat>
[2] [CITE@en[draft-pettersen-subtld-structure-10 - The Public Suffix Structure file format and its use for Cookie domain validation]]
( ([TIME[2014-05-18 19:19:53 +09:00]] 版))
<http://tools.ietf.org/html/draft-pettersen-subtld-structure-10>
[3] [CITE@en[Bug 25865 – Consider defining Public Suffix]]
( ([TIME[2014-05-28 02:47:14 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=25865>
[4] [CITE@en[Public Suffix List/Uses - MozillaWiki]]
( ([TIME[2014-05-23 07:49:48 +09:00]] 版))
<https://wiki.mozilla.org/Public_Suffix_List/Uses>
[5] [CITE@en[Understanding Domain Names in Internet Explorer - IEInternals - Site Home - MSDN Blogs]]
( ([TIME[2014-05-28 02:54:02 +09:00]] 版))
<http://blogs.msdn.com/b/ieinternals/archive/2009/09/19/private-domain-names-and-public-suffixes-in-internet-explorer.aspx>
[6] [CITE@ja-JP[''''''[''''''IE'''''']'''''' Internet Explorer が 2 文字のドメインに対して Cookie を設定しない]]
( ([TIME[2014-05-28 02:54:25 +09:00]] 版))
<http://support.microsoft.com/kb/310676>
[7] [CITE@en[Re: ''''''[''''''DNSOP'''''']'''''' Public Suffix List]]
( ([TIME[2008-06-12 14:10:38 +09:00]] 版))
<http://www.mail-archive.com/dnsop@ietf.org/msg01002.html>
[8] [CITE@en[Bug List]]
( ([TIME[2014-01-15 03:36:25 +09:00]] 版))
<https://bugzilla.mozilla.org/buglist.cgi?component=Networking%3A%20Domain%20Lists>
[9] [CITE@en[Bug List]]
( ([TIME[2014-01-15 03:36:31 +09:00]] 版))
<https://bugzilla.mozilla.org/buglist.cgi?component=Networking%3A%20Domain%20Lists>
[10] [CITE@en[687165 – Pseudo-TLDs causing problems for Chrome navigations]]
( ([TIME[2014-01-15 03:44:38 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=687165>
[11] [CITE@en[712640 – Split PSL into "registry" and "owner-requested" sections]]
( ([TIME[2014-01-15 03:45:36 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=712640>
[12] [CITE@en[Public Suffix List - MozillaWiki]]
( ([TIME[2013-08-10 14:11:55 +09:00]] 版))
<https://wiki.mozilla.org/Public_Suffix_List>
[13] [CITE@en[687165 – Pseudo-TLDs causing problems for Chrome navigations]]
( ([TIME[2014-09-19 14:57:36 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=687165>
[16] [CITE@en[draft-pettersen-subtld-structure-10 - The Public Suffix Structure file format and its use for Cookie domain validation]]
( ([TIME[2014-08-25 02:38:41 +09:00]] 版))
<https://tools.ietf.org/html/draft-pettersen-subtld-structure-10>
[17] [CITE@en[draft-sullivan-domain-policy-authority-01 - Asserting DNS Administrative Boundaries Within DNS Zones]]
( ([TIME[2014-09-14 18:25:17 +09:00]] 版))
<http://tools.ietf.org/html/draft-sullivan-domain-policy-authority-01>
[18] [CITE[rhcloud.com on the Public Suffix List | OpenShift Forums]]
( ([TIME[2014-10-09 15:51:45 +09:00]] 版))
<https://forums.openshift.com/rhcloudcom-on-the-public-suffix-list>
[19] [CITE[IRC logs: freenode / #whatwg / 20121027]]
( ([TIME[2012-11-22 22:18:53 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20121027#l-133>
[22] [CITE@en[draft-pettersen-dns-cookie-validate-05 - Enhanced validation of domains for HTTP State Management Cookies using DNS]]
( ([TIME[2014-10-16 13:01:02 +09:00]] 版))
<http://tools.ietf.org/html/draft-pettersen-dns-cookie-validate-05>
[27] [[HTML Standard]] の古い版から派生して [[W3C]] [[HTML WG]] が変更を加えて出版した
[[HTML 5.0]] は、(元の [[HTML Standard]] に存在していた) [[W3C]]
が認めている[[標準化団体]]が出版した文書への [[normative reference]]
を削除するなど不可解な編集により仕様としての整合性に欠いていることがありますが、
[[Public Suffix List]] については [[HTML Standard]] と同じまま [[Mozilla]]
の [[Webサイト]]を引用している [SRC[>>28]] ようです。
[REFS[
- [28] [CITE@en-US-x-Hixie[HTML5]] ([TIME[2014-10-25 01:15:24 +09:00]] 版) <http://www.w3.org/TR/2014/REC-html5-20141028/single-page.html#refsPSL>
]REFS]
;; [29] [[特許ポリシー]]に関する独特の解釈に基づき [[URL Standard]] への参照を意味の分からない独自の記述に置き換えたり、
[[仕様書]]ではない文書であるためなのか [[microformats wiki]] への参照を[[規定]]から[[参考]]に置き換えたりしている [[W3C]] [[HTML 5.0]] ですが、
[[特許ポリシー]]が存在せず、仕様書でも無い [[Public Suffix List]] への参照はなぜか[[規定]]のままです。
[30] [CITE@en[Public Suffix List - MozillaWiki]]
([TIME[2015-03-09 17:08:02 +09:00]] 版)
<https://wiki.mozilla.org/Public_Suffix_List>
[FIG(quote)[
[FIGCAPTION[
[31] ([TIME[2014-11-01 05:54:38 +09:00]] 版)
<https://cabforum.org/wp-content/uploads/BRv1.2.3.pdf#page=25>
]FIGCAPTION]
> Note: For purposes of determining the appropriate domain name level or Domain Namespace, the registerable
> Domain Name is the second-level domain for generic top-level domains (gTLD) such as .com, .net, or .org, or, if the
> Fully Qualified Domain Name contains a 2 letter Country Code Top-Level Domain (ccTLD), then the domain level
> is whatever is allowed for registration according to the rules of that ccTLD.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[36] [CITE@en[Mozilla CA Certificate Inclusion Policy — Mozilla]]
([TIME[2015-04-06 23:00:45 +09:00]] 版)
<https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/inclusion/>
]FIGCAPTION]
> Each dNSName in permittedSubtrees must be a registered domain (with zero or more subdomains) according to the Public Suffix List algorithm.
]FIG]
[37] [CITE@en[publicsuffix/list]]
([TIME[2015-09-12 14:24:08 +09:00]] 版)
<https://github.com/publicsuffix/list>
[38] [CITE@en[Public Suffix List]]
([TIME[2015-09-12 14:24:21 +09:00]] 版)
<https://github.com/publicsuffix>
[39] ([TIME[2015-09-22 18:00:55 +09:00]] 版)
<https://www.icann.org/en/system/files/files/sac-070-en.pdf>
[45] [CITE@en[Learn more about the Public Suffix List]] ([TIME[2016-05-22 17:52:10 +09:00]]) <https://publicsuffix.org/learn/>
[47] [CITE@en['''['''chrome''']''' Contents of /trunk/src/net/tools/tld_cleanup/tld_cleanup.cc]]
( ([TIME[2016-05-31 20:40:06 +09:00]]))
<https://src.chromium.org/viewvc/chrome/trunk/src/net/tools/tld_cleanup/tld_cleanup.cc?view=markup>
[48] [CITE@en['''['''chrome''']''' Contents of /trunk/src/net/base/registry_controlled_domains/registry_controlled_domain.cc]]
( ([TIME[2016-05-31 20:40:21 +09:00]]))
<https://src.chromium.org/viewvc/chrome/trunk/src/net/base/registry_controlled_domains/registry_controlled_domain.cc?view=markup>
[50] [CITE@en[RFC 7489 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)]]
( ([TIME[2016-05-31 06:53:47 +09:00]]))
<https://tools.ietf.org/html/rfc7489#section-3.2>
[FIG(quote)[
[FIGCAPTION[
[51] [CITE@en[RFC 7489 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)]]
( ([TIME[2016-05-31 06:53:47 +09:00]]))
<https://tools.ietf.org/html/rfc7489#appendix-A.6.1>
]FIGCAPTION]
> A public suffix list for the purposes of determining the
Organizational Domain can be obtained from various sources. The most
common one is maintained by the Mozilla Foundation and made public at
<http://publicsuffix.org>. License terms governing the use of that
list are available at that URI.
> Note that if operators use a variety of public suffix lists,
interoperability will be difficult or impossible to guarantee.
]FIG]
[52] >>51 [[IETF]] は[[政治的]]にこう言わざるを得ないんだろうけど、何か意味があるんだろうか??
[64] [CITE@en[Define a host's "public suffix" and "registrable domain" by mikewest · Pull Request #72 · whatwg/url]]
( ([TIME[2016-05-31 23:17:23 +09:00]]))
<https://github.com/whatwg/url/pull/72>
[66] [CITE@en[draft-sullivan-dbound-problem-statement-02 - DBOUND: DNS Administrative Boundaries Problem Statement]]
( ([TIME[2016-06-02 05:39:46 +09:00]]))
<https://tools.ietf.org/html/draft-sullivan-dbound-problem-statement-02>
[FIG(quote)[
[FIGCAPTION[
[68] [CITE@en[RFC 7719 - DNS Terminology]]
( ([TIME[2016-06-05 17:09:11 +09:00]]))
<https://tools.ietf.org/html/rfc7719#page-6>
]FIGCAPTION]
>
> Public suffix: "A domain that is controlled by a public registry."
> (Quoted from '''['''RFC6265''']''', Section 5.3) A common definition for this
> term is a domain under which subdomains can be registered, and on
> which HTTP cookies ('''['''RFC6265''']''') should not be set. There is no
> indication in a domain name whether it is a public suffix; that
> can only be determined by outside means. In fact, both a domain
> and a subdomain of that domain can be public suffixes. At the
> time this document is published, the IETF DBOUND Working Group
> '''['''DBOUND''']''' is dealing with issues concerning public suffixes.
> There is nothing inherent in a domain name to indicate whether it
> is a public suffix. One resource for identifying public suffixes
> is the Public Suffix List (PSL) maintained by Mozilla
> (http://publicsuffix.org/).
> For example, at the time this document is published, the "com.au"
> domain is listed as a public suffix in the PSL. (Note that this
> example might change in the future.)
> Note that the term "public suffix" is controversial in the DNS
> community for many reasons, and may be significantly changed in
> the future. One example of the difficulty of calling a domain a
> public suffix is that designation can change over time as the
> registration policy for the zone changes, such as the case of the
> "uk" TLD around the time this document is published.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[69] [CITE@en[RFC 6265 - HTTP State Management Mechanism]]
( ([TIME[2016-06-14 16:06:09 +09:00]]))
<https://tools.ietf.org/html/rfc6265#section-5.3>
]FIGCAPTION]
>
> NOTE: A "public suffix" is a domain that is controlled by a
> public registry, such as "com", "co.uk", and "pvt.k12.wy.us".
> This step is essential for preventing attacker.com from
> disrupting the integrity of example.com by setting a cookie
> with a Domain attribute of "com". Unfortunately, the set of
> public suffixes (also known as "registry controlled domains")
> changes over time. If feasible, user agents SHOULD use an
> up-to-date public suffix list, such as the one maintained by
> the Mozilla project at <http://publicsuffix.org/>.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[74] [CITE@en[Move lib.de.us to the private section (#256)]]
([[weppos]]著, [TIME[2016-08-17 08:59:12 +09:00]])
<https://github.com/publicsuffix/list/commit/f710559ab1d0b78a625e48dec815698c515bcf81>
]FIGCAPTION]
> Per the request of lib.de.us, move it from the ICANN section to the PRIVATE section. This is because some browsers, such as Chrome, prevent wildcard certificates for domains in the ICANN section. lib.de.us centrally manages the infrastructure, and thus hosts a wildcard, but subdomains host independent content and thus need the separation afforded by being on the PSL.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[75] [CITE@en[Add new gTLDs up to 2016-08-17 (#291)]]
([[sleevi]]著, [TIME[2016-08-17 09:29:06 +09:00]])
<https://github.com/publicsuffix/list/commit/4dcaacaf593dde7e2a34436913c24af3bf2bdb06>
]FIGCAPTION]
> This also moves the KRD entries to the PRIVATE section, to facilitate
> the script automation.
]FIG]
[76] [CITE@en[1129618 – please add .onion to public suffix list]]
([TIME[2016-09-01 15:44:16 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=1129618>
[81] [CITE@en[Define a host's "public suffix" and "registrable domain" by mikewest · Pull Request #72 · whatwg/url]]
([TIME[2017-02-20 19:39:47 +09:00]])
<https://github.com/whatwg/url/pull/72>
[82] [CITE@en[25865 – Consider defining Public Suffix]]
([TIME[2017-02-22 11:45:02 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=25865>