/
104.txt
119 lines (87 loc) · 6.46 KB
/
104.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
[1] [DFN[[[Certificate Download Specification]]]] は、[[証明書]]の[[ダウンロード]]に関する仕様書です。
* 仕様書
[REFS[
- [2] [CITE@en-US[NSS Certificate Download Specification - Mozilla | MDN]] ([TIME[2014-05-07 16:41:21 +09:00]] 版) <https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Certificate_Download_Specification>
]REFS]
* ファイル形式
[13] 次のファイル形式が規定されています。
[FIG(short list)[
- [[PKCS#7 certificate chain]]
- [[Netscape Certificate Sequence]]
- [CODE[[[.pem]]]]
]FIG]
[14] また [[DER]] 符号化された[[証明書]]も採用しています。
* MIME 型
[9] 次の [[MIME型]]が規定されています。
[FIG(short list)[
- [CODE(MIME)@en[[[application/x-x509-user-cert]]]]
- [CODE(MIME)@en[[[application/x-x509-ca-cert]]]]
- [CODE(MIME)@en[[[application/x-x509-email-cert]]]]
]FIG]
;; [10] >>3 の時点では [CODE(MIME)@en[[[application/x-x509-email-cert]]]] はまだ無かったようです。
>>18 や >>4 には含まれており、 [[Netscape4]] 時代に追加されたものと思われます。
;; [11] [CODE(MIME)@en[[[application/x-x509-server-cert]]]]
も使われることがあるようですが、当仕様書には含まれていません。
[15] これらの [[MIME型]]はファイル形式を示すものではなく (>>13 のいずれでも良いようです)、
[[ダウンロード]]した[[証明書]]をどう処理するべきかを指定するもののようです。
;; [16] 用途によって少しずつ[[証明書]]に記述するべき内容も違っているので、
広義のファイル形式ではあるのですが...
[23] [CODE(MIME)@en[[[application/x-x509-user-cert]]]] は、
[[Webブラウザー]]の[[利用者]]の[[証明書]]を表しています。
最初の[[証明書]]は[[利用者]]の[[証明書]]でなければなりません。 [SRC[>>2]]
;; [12] [CODE(HTMLe)@en[[[keygen]]]] [[要素]]を含む[[フォームの提出]]で[[公開鍵]]を受け取った[[サーバー]]が[[証明書]]を生成し、
[[Webブラウザー]]に[[ダウンロード]]させるために使うことができます。
[25] [CODE(MIME)@en[[[application/x-x509-ca-cert]]]] は、
[[CA証明書]]を表しています。
最初の[[証明書]]は[[CA証明書]]でなければなりません。 [SRC[>>2]]
[27] [CODE(MIME)@en[[[application/x-x509-email-cert]]]] は、
他の[[利用者]]の [[S/MIME]] 用[[証明書]]を表しています。
最初の[[証明書]]は[[利用者]]の[[証明書]]でなければなりません。 [SRC[>>2]]
;; [29] 人や [[CA]] が [[Webサイト]]に[[証明書]]を用意して、
その人宛に[[電子メール]]を送りたい人がこれを[[ダウンロード]]して使うことが想定されています
[SRC[>>2]]。
* 処理
[20] 与えられた[[ファイル]]に[[証明書]]が複数含まれる場合、
最初の[[証明書]]が文脈依存の方法で処理されます [SRC[>>2]]。
[21] ここでいう文脈依存の方法は、[[ダウンロード]]の際の [[MIME型]]により決まります。
[[NSS]] を使った[[サーバー]]では、管理画面オプションの選択肢により決まります。 [SRC[>>2]]
[FIG(list)[
- [24] [CODE(MIME)@en[[[application/x-x509-user-cert]]]] なら、
[[証明書]]に対応する[[秘密鍵]]が[[利用者]]のローカル鍵データベースに存在しなければ、
エラーを表示して停止します [SRC[>>2]]。そうでなければ、[[利用者]]の[[証明書]]としてローカルデータベースに追加します。
- [26] [CODE(MIME)@en[[[application/x-x509-ca-cert]]]] なら、
[[CA]] を信頼するかどうかを決めるダイアログを表示します [SRC[>>2]]。
- [28] [CODE(MIME)@en[[[application/x-x509-email-cert]]]] なら、
他の[[利用者]]の[[証明書]]としてローカルデータベースに追加します。
]FIG]
[22] 最初以外の[[証明書]]は、 [CODE[[[BasicConstraints]]]] により
[[CA証明書]]であるとされており、既にローカル証明書データベースに含まれていないなら、
信頼されていない [[CA]] としてローカル証明書データベースに追加されます。 [SRC[>>2]]
* 歴史
[REFS[
- [3] [CITE[Netscape Certificate Download Specification]] ([TIME[2015-04-11 23:26:48 +09:00]] 版) <http://web.archive.org/web/19970709163955/http://home.netscape.com/eng/security/downloadcert.html>
- [18] [CITE[Netscape Certificate Download Specification]] ([TIME[2015-04-12 13:21:05 +09:00]] 版) <http://web.archive.org/web/20000511091621/http://www.netscape.com/eng/security/comm4-cert-download.html>
- [4] [CITE[Netscape Certificate Management System Installation and Deployment Guide:]] ([TIME[2011-02-10 11:26:52 +09:00]] 版) <http://docs.oracle.com/cd/E19957-01/816-5533-10/dwnld.htm>
- [5] [CITE@en[CA:Certificate Download Specification - MozillaWiki]] ([TIME[2015-04-11 18:26:28 +09:00]] 版) <https://wiki.mozilla.org/CA:Certificate_Download_Specification>
]REFS]
[6] >>3 は1996年6月28日付けの [[Netscape3]] 版、 >>18 が [[Netscape4]] 版です。
[7] >>4 は [[NES]]、 >>5 と >>2 は [[Firefox]] へと受け継がれた版です。
[8] >>2 が2014年5月7日更新で、現時点で最新となっています。
[17] [CITE@en[249004 – Importing false CA certificate leading to error -8182 (perm DoS), especially exploitable by email]]
([TIME[2015-04-12 13:19:44 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=249004>
[FIG(quote)[
[FIGCAPTION[
[19] ([TIME[2015-04-12 13:24:24 +09:00]] 版)
<http://web.archive.org/web/20060929031003/http://www.alw.nih.gov/pki/docs/ns-ca.txt>
]FIGCAPTION]
> The browser uses the public key encoded in the certificate to
> associate the certificate with the appropriate private key in
> its local key database. Now, the certificate is "installed".
]FIG]
[31] [CITE[Issue 37142 - chromium - Intermediate certs received along with generated client cert will not be saved - An open-source project to help move the web forward. - Google Project Hosting]]
([TIME[2015-04-12 15:36:22 +09:00]] 版)
<https://code.google.com/p/chromium/issues/detail?id=37142>
[30] [CITE[Issue 136534 - chromium - Offer the ability to download application/x-x509-user-cert responses - An open-source project to help move the web forward. - Google Project Hosting]]
([TIME[2015-04-12 15:38:51 +09:00]] 版)
<https://code.google.com/p/chromium/issues/detail?id=136534>