3.6 Certificate Payload (証明書ペイロード)
3.6 Certificate Payload (証明書ペイロード)
Certificate ペイロードは本文書では CERT と記し, IKE 経由で証明書や認証関連情報を運ぶ. 証明書が利用可能なら交換に含めるべきである (SHOULD). ピアが HTTP_CERT_LOOKUP_SUPPORTED で他から取得できると示した場合は Hash と URL 形式を使うべきである. 「証明書」という名称はやや誤解を招く. すべての認証が証明書を使うわけではなく, 証明書以外のデータも運べる.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload |C| RESERVED | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cert Encoding | |
+-+-+-+-+-+-+-+-+ |
~ Certificate Data ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 12: Certificate Payload Format
- Certificate Encoding (1 オクテット) - Certificate Data の内容の種類. 最新値は [IKEV2IANA].
| Certificate Encoding | Value | Note |
|---|---|---|
| PKCS #7 wrapped X.509 certificate | 1 | UNSPECIFIED |
| PGP Certificate | 2 | UNSPECIFIED |
| DNS Signed Key | 3 | UNSPECIFIED |
| X.509 Certificate - Signature | 4 | |
| Kerberos Token | 6 | UNSPECIFIED |
| Certificate Revocation List (CRL) | 7 | |
| Authority Revocation List (ARL) | 8 | UNSPECIFIED |
| SPKI Certificate | 9 | UNSPECIFIED |
| X.509 Certificate - Attribute | 10 | UNSPECIFIED |
| Deprecated (was Raw RSA Key) | 11 | DEPRECATED |
| Hash and URL of X.509 certificate | 12 | |
| Hash and URL of X.509 bundle | 13 |
- Certificate Data (可変長) - 証明書データの実際の符号化.
ペイロード型は 37 である.
本文書で構文を定める型: "X.509 Certificate - Signature" は送信者の AUTH を検証する公開鍵を持つ DER 符号化 X.509. チェーン送信用に複数 CERT を使い, 最初だけが AUTH 検証鍵を持つ. "Certificate Revocation List" は DER 符号化 CRL. Hash と URL は 20 オクテット SHA-1 ([FIPS.180-4.2012]) と DER へ解決する URL で長いデータを置換し, キャッシュ時の効率と IP フラグメントに伴う DoS 軽減 [DOSUDPPROT] に寄与する.
バンドル型は次の ASN.1 定義を用いる:
CertBundle
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-cert-bundle(34) }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
IMPORTS
Certificate, CertificateList
FROM PKIX1Explicit88
{ iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7)
id-mod(0) id-pkix1-explicit(18) } ;
CertificateOrCRL ::= CHOICE {
cert [0] Certificate,
crl [1] CertificateList }
CertificateBundle ::= SEQUENCE OF CertificateOrCRL
END
実装は認証のために最大 4 枚の X.509 を送受信できるよう設定できなければならない (MUST). Hash と URL の 2 形式 (HTTP URL) も同様 (MUST). 複数枚のとき最初の証明書は AUTH 署名に使った秘密鍵に対応する公開鍵を含めなければならない (MUST).
hash-and-URL には http: を必ず支持しなければならない (MUST). 他スキーム [URLS] は未定義であり, 文書がない限り使うべきではない (SHOULD NOT).