メインコンテンツまでスキップ

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 EncodingValueNote
PKCS #7 wrapped X.509 certificate1UNSPECIFIED
PGP Certificate2UNSPECIFIED
DNS Signed Key3UNSPECIFIED
X.509 Certificate - Signature4
Kerberos Token6UNSPECIFIED
Certificate Revocation List (CRL)7
Authority Revocation List (ARL)8UNSPECIFIED
SPKI Certificate9UNSPECIFIED
X.509 Certificate - Attribute10UNSPECIFIED
Deprecated (was Raw RSA Key)11DEPRECATED
Hash and URL of X.509 certificate12
Hash and URL of X.509 bundle13
  • 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).