[36] ワイルドカード証明書は、
ドメイン名にワイルドカード文字 *
を使った証明書です。
ワイルドカード文字は、任意のドメイン名ラベルとの一致を表しています。
[27] RFC 6125 の附属書B >>26 には、既存の IETF の仕様における service identity 検査の規定がまとめられています。多くの仕様にはワイルドカードの規定がありますが、 その内容は少しずつ違いがあります。 DNS-ID にはワイルドカードが適用され、 CN-ID には適用されないとするものもあるようです。
[34] ワイルドカード *
を含む名前は、
単一のドメイン名部品に一致するものとします。
>>151, >>168
[159] 例えば *.a.com
は foo.a.com
に一致しますが、
bar.foo.a.com
には一致しません。 >>151
[49] Chrome でも Firefox も、ワイルドカードを使えるのは最左ラベル1つだけのようです。
[50] Chrome でも Firefox でも、ワイルドカードはそれ全体がドメイン名部品でないと認識しないようです。 他の文字と混在させられません。
[51] Chrome は、 ワイルドカード + ラベル0個以上 +
eTLD+1 という形でないと認識しないようです。
eTLD は、 PSL にない場合、 TLD のみとみなします。
ここでいう eTLD は、 PSL のうち、正式に登録されたもの (ICANNドメイン) をいいます
(.herokuapp.com
のようなものは含まないので、
*.herokuapp.com
のようなワイルドカード証明書は有効です)。
[55] Firefox は、 PSL の検査をしておらず、 ワイルドカード + TLD は禁止していますが、ワイルドカード + 複数ラベルの eTLD は禁止していないようです。
[53] 古い時代の Webブラウザーは、 CN にワイルドカード混じりのIPv4アドレスを指定することができてしまいました。 これは脆弱性であり、現行 Webブラウザーでは認められていません。
[12] RFC 6125 は TLS において証明書を使って service identity を検証する方法を規定しており、その中でワイルドカード文字を含むドメイン名の解釈についても規定しています。 この規定は、 RFC 6125 を採用する仕様にのみ適用されます。
[15] 証明書でワイルドカード文字は使用するべきではありません。 ワイルドカード証明書はドメイン内のすべてのホストを自動的に認めてしまうものなので、 管理者にとっては便利かもしれませんが、危険も伴うものです。また、 既存のアプリケーションはワイルドカード文字を認める位置が不明瞭であったり、 差異があったりします。Aラベルや Uラベルでのワイルドカード文字の扱いを定義した仕様もありませんでした。 >>14
[16] ワイルドカード文字の使い方には次のようなバリエーションがあり、 仕様や実装により扱いの違いが生じていることがあります >>14。
[23] 実装がUラベルやAラベルにワイルドカード文字を含めたり、 検査したりすることは強く非推奨です。 ただし最左ラベルがワイルドカード文字でそれ以外が NR-LDHラベル、Aラベル、Uラベルであるのは構いません。 >>14
[24] 例えば xn--kcry6tjko*.example.org
は問題ありますが、
*.xn--kcry6tjko.example.org
は問題ありません。 >>14
[5] クライアントは、ラベルの一部または全部がワイルドカード文字
*
であるDNSドメイン名が識別子として証明書に示されている時に、
参照識別子と一致するか次の通り検査することができます >>4。
[6] 最左ラベル以外にワイルドカード文字が含まれる識別子が証明書に示されていても、 一致するか調べるべきではありません >>4。
[7] bar.*.example.net
との一致を調べるべきではありません >>4。
[8] 証明書に示されている識別子の最左ラベル全体がワイルドカード文字の時は、 参照識別子の最左ラベル以外と比較するべきではありません >>4。
[9] *.example.com
は foo.example.com
と一致しますが、
bar.foo.example.com
や example.com
とは一致しません >>4。
[10] 証明書に示されている識別子のワイルドカード文字が含まれるラベルにその他の文字が含まれる場合に、 一致するか調べても構いません。 >>4
[11] 証明書に示されている識別子のUラベルやAラベルにワイルドカード文字が含まれている時は、 一致するか調べるべきではありません >>4。
[29] public suffix の一部または全部を表すようなワイルドカード文字の使用 (>>20) は禁止するべきであるはず >>28 ですが、 RFC 6125 からそのような規定は欠落しています。
[43] BR はワイルドカード証明書を次のように定義しており >>42、 またワイルドカードFQDN >>41 という語も使っています。
[45] BR に従う CA は (完全に明確とは言えませんが) 最左ラベル全体としてのみ
*
を使う以外のワイルドカードの使用を認められていないようです。
[46] BR に従う CA は *
+ public suffix のドメイン名を持つ証明書を発行してはなりません。
2013年9月1日より前にこの制約に反する証明書を失効 (revoke) させなければなりません。 >>44
[47] この判定の方法は標準化されていないとしつつも、 PSL に従うのが 「best practice」である >>44 とされています。 PSL を使う場合は ICANN DOMAINS のみ採用し、 PRIVATE DOMAINS は使わないべきです >>44。
[1] 159483 – cert name matching: RFC 2818 vs. backwards compatibility (wildcards) ( 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=159483>
[2] IETF - TLS - RFC 2818 wildcard rationale ( 版) <http://ietf.10.n7.nabble.com/RFC-2818-wildcard-rationale-td246010.html>
[3] 903885 – (CVE-2014-1492) Hostname matching code violates RFC 6125 for IDNA ( 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=903885>
[33] 複数のプロトコルでの利用を想定した実装では、プロトコル名などを指定してワイルドカードの動作を切り替えられることがあります。
[37] DNS におけるワイルドカードレコードと直接の関係はありません。
[52] 578697 – (CVE-2010-3170) Browser Wildcard Certificate Validation Issue ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=578697>
[54] 921127 – In PSM don't provide EV treatment when cert includes wildcards in the alt-dns name and common name fields ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=921127>
[56] 285361 – acceptance of wildcard certs makes MITM attacks easier for rogue proxy ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=285361>
[57] 806281 – Certificate validation does not properly prohibit *.<tld> wildcard certificates ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=806281>
[58] Issue 100442 - chromium - Should wildcards in certificates be allowed to match registry controlled TLDs - Monorail ( ()) <https://bugs.chromium.org/p/chromium/issues/detail?id=100442>
[59] 1136616 – mozilla::pkix name matching disallows some characters in reference IDs that are valid in DNS labels ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=1136616>
[60] 1196364 – Proper handling for wildcard certificates for all tlds ( ()) <https://bugzilla.mozilla.org/show_bug.cgi?id=1196364>
[62] Wildcard Certificates Coming January 2018 - Let's Encrypt - Free SSL/TLS Certificates () <https://letsencrypt.org/2017/07/06/wildcard-certificates-coming-jan-2018.html>
[64] 自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ) () <http://blog.livedoor.jp/k_urushima/archives/1839344.html>
*
は最左ラベルとして1つだけ用いられます >>168。