RFC5280とは(X.509 PKI 証明書と CRL プロファイル)

概要

RFC5280は、インターネットにおいて利用される X.509 v3 証明書と X.509 v2 証明書失効リスト(CRL)について記述されている。

RFC 5280 PKI Entities
Request for Comments: 5280

要約

RFC5280は、11章の章立てで構成されている。
以下は、一部について要約したものになる。

3.1. X.509 Version 3 Certificate(X.509 v3 証明書)

1988年の証明書形式は、バージョン1(v1)形式。
1993年のX.500改訂時、2つのフィールドが追加され、バージョン2(v2)形式になった。
1996年6月に、バージョン3(v3)形式の標準化が完了した。

4.1. Basic Certificate(基本証明書フィールド)

基本証明書は、以下の3つで構成されている。
tbsCertificate」「signatureAlgorithm」「signatureValue
(日本語訳)
「署名される証明書」+「署名アルゴリズム」+「署名値」

Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }

TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
— If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
— If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
— If present, version MUST be v3
}

Version ::= INTEGER { v1(0), v2(1), v3(2) }

CertificateSerialNumber ::= INTEGER

Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }

Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime }

UniqueIdentifier ::= BIT STRING

SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }

Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension

Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
— contains the DER encoding of an ASN.1 value
— corresponding to the extension type identified
— by extnID
}

Request for Comments: 5280

4.1.1. Certificate Fields(証明書フィールド)

基本証明書の証明書フィールドは、以下の3つで構成されている。
(英語)
「tbsCertificate」+「signatureAlgorithm」+「signatureValue」
(日本語訳)
「署名される証明書」+「署名アルゴリズム」+「署名値」

4.1.1.1. tbsCertificate(署名される証明書)

TBSは、「To-Be-Signed」の略で、「署名される」という意味になる。

以下のフィールドが含まれる。

  • バージョン
  • シリアル番号
  • 署名アルゴリズム
  • 証明書発行者の名前
  • 証明書の有効期間
  • サブジェクトの名前
  • サブジェクトの公開鍵
  • 証明書拡張

4.1.1.2. signatureAlgorithm(署名アルゴリズム)

CAが証明書に署名する際に利用する署名アルゴリズムの識別子が含まれている。
[RFC3279]、[RFC4055]、[RFC4491]でサポートされる署名アルゴリズム等を記載する。
(例)
sha256WithRSAEncryption (1.2.840.113549.1.1.11)
sha384WithRSAEncryption (1.2.840.113549.1.1.12)
sha512WithRSAEncryption (1.2.840.113549.1.1.13)

ecdsa-with-SHA256 (1.2.840.10045.4.3.2)
ecdsa-with-SHA384 (1.2.840.10045.4.3.3)
ecdsa-with-SHA512 (1.2.840.10045.4.3.4)

4.1.1.3. signatureValue(署名値)

ASN.1 DERでエンコードされたtbsCertificateで計算されたデジタル署名が含まれる。この署名を生成することにより、CAはtbsCertificateフィールドの情報の有効性を証明する。

4.1.2. TBSCertificate(署名される証明書)

証明書のサブジェクトとそれを発行したCAに関連する情報が含まれている。
サブジェクトと発行者の名前、サブジェクトの公開鍵、有効期間、バージョン番号、シリアル番号が含まれており、オプションの一意の識別子フィールドが含まれる場合がある。

4.1.2.1. Version(バージョン)

拡張機能が使用される場合、バージョンは3でなければならない。(値は2)

4.1.2.2. Serial Number(シリアル番号)

CAによって各証明書に割り当てられた正の整数である必要がある。
特定のCAによって発行された証明書ごとに一意である必要がある。
20オクテット(160ビット=16進数40桁)よりも長いserialNumber値を使用してはならない。

4.1.2.3. Signature(署名)

CAが証明書に署名するために使用するアルゴリズムのアルゴリズム識別子が含まれる。
4.1.1.2のsignatureAlgorithmフィールドと同じアルゴリズム識別子を含める必要がある。

4.1.2.4. Issuer(発行者)

証明書に署名して発行したエンティティを識別する。
一般的なDirectoryStringタイプは、PrintableString、TeletexString、BMPString、UTF8String、UniversalStringが選択肢として定義される。

4.1.2.5. Validity(有効期限)

証明書の有効期間が開始する日時(notBefore)と証明書の有効期間が終了する日時(notAfter)の2つが存在する。どちらもUTCTimeまたはGeneralizedTimeとしてエンコードできる。

4.1.2.5.1. UTCTime

2049年までの証明書は、有効期限をUTCTimeとしてエンコードする必要がある。
UTCTimeはグリニッジ標準時で表現する必要があり、秒数がゼロの場合でも秒を含める必要がある。
日時はYYMMDDHHMMSSZと表現される。最後のZはUTCを意味する。
年フィールド(YY)は次のように解釈しなければならない。
YYが50以上の場合、年は19YY。
YYが50未満の場合、年は20YY。

4.1.2.5.2. GeneralizedTime

2050年以降の証明書は、有効期限をGeneralizedTimeとしてエンコードする必要がある。
GeneralizedTimeはグリニッジ標準時で表現する必要があり、秒数がゼロの場合でも秒を含める必要がある。
日時はYYYYMMDDHHMMSSZと表現される。最後のZはUTCを意味する。

4.2.1.1. Authority Key Identifier(機関キー識別子)

CAが証明書の署名に使用するプライベート鍵に対応する公開鍵を識別もの。
subjectPublicKeyの値の160ビットSHA-1ハッシュで構成される。

4.2.1.2. Subject Key Identifier(サブジェクトキー識別子)

公開鍵を含む証明書を識別するためのもの。
subjectPublicKeyの値の160ビットSHA-1ハッシュで構成される。

4.2.1.3. Key Usage(キー使用法)

証明書に含まれる鍵の目的(電子署名、事後否認防止、暗号化、証明書への署名、CRLへの署名等​​)を定義する。

      KeyUsage ::= BIT STRING {
           digitalSignature        (0),
           nonRepudiation          (1), -- recent editions of X.509 have
                                -- renamed this bit to contentCommitment
           keyEncipherment         (2),
           dataEncipherment        (3),
           keyAgreement            (4),
           keyCertSign             (5),
           cRLSign                 (6),
           encipherOnly            (7),
           decipherOnly            (8) }

4.2.1.4. Certificate Policies(証明書ポリシー)

1つ以上のポリシーが含まれる。オブジェクト識別子(OID)とオプションの修飾子で構成される。

4.2.1.5. Policy Mappings(ポリシーマッピング)

CA証明書で使用される。
1つ以上のOIDのペアをリストする。
各ペアには、issuerDomainPolicyとsubjectDomainPolicyが含まれる。

4.2.1.6. Subject Alternative Name(サブジェクト代替名)

インターネット電子メールアドレス、DNS名、IPアドレス、およびUniform Resource Identifier(URI)が含まれる。
インターネットメールアドレスが含まれている場合、アドレスはrfc822Nameに格納する必要があり、メールボックスの形式は「Local-part@Domain」になる。
DNS名が含まれている場合、ドメイン名は大文字と小文字を使用できるが、大文字と小文字は区別されない。

4.2.1.9. Basic Constraints(基本制約)

証明書のサブジェクトがCAであるかどうか識別する。

4.2.1.12. Extended Key Usage(拡張キー使用法)

公開鍵を使用できる1つ以上の目的を示す。

anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }

id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }

id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
— TLS WWW server authentication
— Key usage bits that may be consistent: digitalSignature,
— keyEncipherment or keyAgreement

id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
— TLS WWW client authentication
— Key usage bits that may be consistent: digitalSignature
— and/or keyAgreement

id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
— Signing of downloadable executable code
— Key usage bits that may be consistent: digitalSignature

id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
— Email protection
— Key usage bits that may be consistent: digitalSignature,
— nonRepudiation, and/or (keyEncipherment or keyAgreement)

id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
— Binding the hash of an object to a time
— Key usage bits that may be consistent: digitalSignature
— and/or nonRepudiation

id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
— Signing OCSP responses
— Key usage bits that may be consistent: digitalSignature
— and/or nonRepudiation

Request for Comments: 5280

4.2.1.13. Extended Key Usage(CRL 配布点)

CRL情報の取得方法を識別する。
HTTPまたはFTP URIスキームが使用される場合、URIは、[RFC2585]で指定されているように、単一のDERエンコードされたCRLを指す必要がある。

4.2.2.1. Authority Information Access(機関情報アクセス)

このプロファイルは、id-ad-caIssuersとid-ad-ocspの2つのaccessMethod OIDが定義されている。
id-ad-caIssuersの場合、情報がHTTPまたはFTPを介して利用可能な場合、accessLocationはuniformResourceIdentifierである必要があり、URIは[RFC2585]で指定されている単一のDERエンコードされた証明書、またはBERまたはDERエンコードされた「証明書のみ」のCMS内の証明書のコレクションを指す必要がある。
id-ad-ocsp OIDは、この拡張を含む証明書の失効情報がオンライン証明書ステータスプロトコル(OCSP)[RFC2560]を使用して入手できる場合に使用される。

5.1. CRL Fields(CRLフィールド)

X.509 v2 CRL構文は以下のとおりとなる。
以下の3つで構成される。
「tbsCertList」+「signatureAlgorithm」+「signatureValue」
(日本語訳)
「tbsCertList」+「署名アルゴリズム」+「署名値」

CertificateList ::= SEQUENCE {
tbsCertList TBSCertList,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }

TBSCertList ::= SEQUENCE {
version Version OPTIONAL,
— if present, MUST be v2
signature AlgorithmIdentifier,
issuer Name,
thisUpdate Time,
nextUpdate Time OPTIONAL,
revokedCertificates SEQUENCE OF SEQUENCE {
userCertificate CertificateSerialNumber,
revocationDate Time,
crlEntryExtensions Extensions OPTIONAL
— if present, version MUST be v2
} OPTIONAL,
crlExtensions [0] EXPLICIT Extensions OPTIONAL
— if present, version MUST be v2
}

Request for Comments: 5280

5.1.1. CertificateList Fields(証明書リストフィールド)

以下の3つで構成される。
「tbsCertList」+「signatureAlgorithm」+「signatureValue」
(日本語訳)
「tbsCertList」+「署名アルゴリズム」+「署名値」

5.1.1.1. tbsCertList(署名される証明書リスト)

以下のフィールドが含まれる。
証明書が失効されるとリストに追加される。

  • バージョン
  • 署名アルゴリズム
  • CRL発行者
  • CRLの発行日
  • CRLの次のリストの発行日(次の発行日までに発行されることはあるが、それ以降に発行されることはない)
  • 失効した証明書リスト
    • シリアル番号
    • 失効日時
    • 理由コード

5.1.1.2. signatureAlgorithm(署名アルゴリズム)

CRL発行者がCertificateListに署名するために使用するアルゴリズムのアルゴリズム識別子が含まれている。
(例)
sha256WithRSAEncryption (1.2.840.113549.1.1.11)
sha384WithRSAEncryption (1.2.840.113549.1.1.12)
sha512WithRSAEncryption (1.2.840.113549.1.1.13)

ecdsa-with-SHA256 (1.2.840.10045.4.3.2)
ecdsa-with-SHA384 (1.2.840.10045.4.3.3)
ecdsa-with-SHA512 (1.2.840.10045.4.3.4)

5.1.1.3. signatureValue(署名値)

ASN.1 DERエンコードされたtbsCertListで計算されたデジタル署名が含まれる。

章立て

RFC5280は、11章の章立てで構成されている。

(日本語訳)

インターネット上のX.509 PKI 証明書と CRL プロファイル

  1. はじめに
  2. 要件および想定
    2.1. 通信およびトポロジー
    2.2. 受容可能性のクライテリア
    2.3. ユーザーの期待
    2.4. 運用管理者の期待
  3. アプローチの概観
    3.1. X.509 v3 証明書
    3.2. 証明書パスおよびトラスト
    3.3. 失効
    3.4. 運用プロトコル
    3.5. 管理プロトコル
  4. 証明書および証明書拡張のプロファイル
    4.1. 基本証明書フィールド
    4.1.1. 証明書フィールド
    4.1.1.1. tbsCertificate
    4.1.1.2. 署名アルゴリズム
    4.1.1.3. 署名値
    4.1.2. TBSCertificate
    4.1.2.1. バージョン
    4.1.2.2. シリアル番号
    4.1.2.3. 署名
    4.1.2.4. 発行者
    4.1.2.5. 有効期限
    4.1.2.5.1. UTCTime
    4.1.2.5.2. GeneralizedTime
    4.1.2.6. サブジェクト
    4.1.2.7. サブジェクト公開鍵情報
    4.1.2.8. 固有な識別子
    4.1.2.9. 拡張
    4.2. 証明書拡張
    4.2.1. 標準拡張
    4.2.1.1. 機関キー識別子
    4.2.1.2. サブジェクトキー識別子
    4.2.1.3. キー使用法
    4.2.1.4. 証明書ポリシー
    4.2.1.5. ポリシーマッピング
    4.2.1.6. サブジェクト代替名
    4.2.1.7. 発行者代替名
    4.2.1.8. サブジェクトディレクトリ属性
    4.2.1.9. 基本制約
    4.2.1.10. 名前制約
    4.2.1.11. ポリシー制約
    4.2.1.12. 拡張キー使用法
    4.2.1.13. CRL 配布点
    4.2.1.14. anyPolicyの禁止
    4.2.1.15. Freshest CRL (a.k.a. Delta CRL Distribution Point)
    4.2.2. プライベートインターネット拡張
    4.2.2.1. 機関情報アクセス
    4.2.2.2. サブジェクト情報アクセス
  5. CRL および CRL 拡張のプロファイル
    5.1. CRL フィールド
    5.1.1. CertificateList フィールド
    5.1.1.1. tbsCertList
    5.1.1.2. 署名アルゴリズム
    5.1.1.3. 署名値
    5.1.2. Certificate List “To Be Signed”
    5.1.2.1. バージョン
    5.1.2.2. 署名
    5.1.2.3. 発行者名
    5.1.2.4. This Update
    5.1.2.5. Next Update
    5.1.2.6. 失効された証明書
    5.1.2.7. 拡張
    5.2. CRL 拡張
    5.2.1. 機関キー識別子
    5.2.2. 発行者代替名
    5.2.3. CRL 番号
    5.2.4. Delta CRL 表示子
    5.2.5. 発行配布点
    5.2.6. Freshest CRL (a.k.a. Delta CRL 配布点)
    5.2.7. 機関情報アクセス
    5.3. CRL Entry 拡張
    5.3.1. 理由コード
    5.3.2. Invalidity 日付
    5.3.3. 証明書発行者
  6. 証明書パス検証
    6.1. Basic パス検証
    6.1.1. Inputs
    6.1.2. 初期化
    6.1.3. Basic 証明書処理
    6.1.4. Preparation for Certificate i+1
    6.1.5. Wrap-Up Procedure
    6.1.6. Outputs
    6.2. パス検証アルゴリズムを使う
    6.3. CRL 検証
    6.3.1. Revocation Inputs
    6.3.2. 初期化および失効状態変数
    6.3.3. CRL 処理
  7. 国際化された名前についての処理ルール
    7.1. DN における国際化された名前
    7.2. GeneralName における国際化ドメイン名
    7.3. DN における国際化ドメイン名
    7.4. 国際化されたリソース識別子
    7.5. 国際化された電子メールアドレス
  8. セキュリティに関する考慮事項
  9. IANA に関する考慮事項
  10. 謝辞
  11. 参考文献
    11.1. 規範的参考文献
    11.2. 参考資料
    付録 A. Pseudo-ASN.1 Structures and OIDs
    A.1. Explicitly Tagged Module, 1988 Syntax
    A.2. Implicitly Tagged Module, 1988 Syntax
    付録 B. ASN.1 Notes
    付録 C. 例示
    C.1. RSA Self-Signed 証明書
    C.2. End Entity 証明書 Using RSA
    C.3. End Entity 証明書 Using DSA
    C.4. 証明書失効リスト

(原文)

Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

Table of Contents

  1. Introduction …………………………………………….4
  2. Requirements and Assumptions ………………………………6
    2.1. Communication and Topology ……………………………7
    2.2. Acceptability Criteria ……………………………….7
    2.3. User Expectations ……………………………………7
    2.4. Administrator Expectations ……………………………8
  3. Overview of Approach ……………………………………..8
    3.1. X.509 Version 3 Certificate …………………………..9
    3.2. Certification Paths and Trust ………………………..10
    3.3. Revocation …………………………………………13
    3.4. Operational Protocols ……………………………….14
    3.5. Management Protocols ………………………………..14
  4. Certificate and Certificate Extensions Profile ……………..16
    4.1. Basic Certificate Fields …………………………….16
    4.1.1. Certificate Fields ……………………………17
    4.1.1.1. tbsCertificate ……………………….18
    4.1.1.2. signatureAlgorithm ……………………18
    4.1.1.3. signatureValue ……………………….18
    4.1.2. TBSCertificate ……………………………….18
    4.1.2.1. Version ……………………………..19
    4.1.2.2. Serial Number ………………………..19
    4.1.2.3. Signature ……………………………19
    4.1.2.4. Issuer ………………………………20
    4.1.2.5. Validity …………………………….22
    4.1.2.5.1. UTCTime ……………………23
    4.1.2.5.2. GeneralizedTime …………….23
    4.1.2.6. Subject ……………………………..23
    4.1.2.7. Subject Public Key Info ……………….25
    4.1.2.8. Unique Identifiers ……………………25
    4.1.2.9. Extensions …………………………..26
    4.2. Certificate Extensions ………………………………26
    4.2.1. Standard Extensions …………………………..27
    4.2.1.1. Authority Key Identifier ………………27
    4.2.1.2. Subject Key Identifier ………………..28
    4.2.1.3. Key Usage ……………………………29
    4.2.1.4. Certificate Policies ………………….32
    4.2.1.5. Policy Mappings ………………………35
    4.2.1.6. Subject Alternative Name ………………35
    4.2.1.7. Issuer Alternative Name ……………….38
    4.2.1.8. Subject Directory Attributes …………..39
    4.2.1.9. Basic Constraints …………………….39
    4.2.1.10. Name Constraints …………………….40
    4.2.1.11. Policy Constraints …………………..43
    4.2.1.12. Extended Key Usage …………………..44
    4.2.1.13. CRL Distribution Points ………………45
    4.2.1.14. Inhibit anyPolicy ……………………48
    4.2.1.15. Freshest CRL (a.k.a. Delta CRL
    Distribution Point) ………………….48
    4.2.2. Private Internet Extensions ……………………49
    4.2.2.1. Authority Information Access …………..49
    4.2.2.2. Subject Information Access …………….51
  5. CRL and CRL Extensions Profile ……………………………54
    5.1. CRL Fields …………………………………………55
    5.1.1. CertificateList Fields ………………………..56
    5.1.1.1. tbsCertList ………………………….56
    5.1.1.2. signatureAlgorithm ……………………57
    5.1.1.3. signatureValue ……………………….57
    5.1.2. Certificate List “To Be Signed” ………………..58
    5.1.2.1. Version ……………………………..58
    5.1.2.2. Signature ……………………………58
    5.1.2.3. Issuer Name ………………………….58
    5.1.2.4. This Update ………………………….58
    5.1.2.5. Next Update ………………………….59
    5.1.2.6. Revoked Certificates ………………….59
    5.1.2.7. Extensions …………………………..60
    5.2. CRL Extensions ……………………………………..60
    5.2.1. Authority Key Identifier ………………………60
    5.2.2. Issuer Alternative Name ……………………….60
    5.2.3. CRL Number …………………………………..61
    5.2.4. Delta CRL Indicator …………………………..62
    5.2.5. Issuing Distribution Point …………………….65
    5.2.6. Freshest CRL (a.k.a. Delta CRL Distribution
    Point) ………………………………………67
    5.2.7. Authority Information Access …………………..67
    5.3. CRL Entry Extensions ………………………………..69
    5.3.1. Reason Code ………………………………….69
    5.3.2. Invalidity Date ………………………………70
    5.3.3. Certificate Issuer ……………………………70
  6. Certification Path Validation …………………………….71
    6.1. Basic Path Validation ……………………………….72
    6.1.1. Inputs ………………………………………75
    6.1.2. Initialization ……………………………….77
    6.1.3. Basic Certificate Processing …………………..80
    6.1.4. Preparation for Certificate i+1 ………………..84
    6.1.5. Wrap-Up Procedure …………………………….87
    6.1.6. Outputs ……………………………………..89
    6.2. Using the Path Validation Algorithm …………………..89
    6.3. CRL Validation ……………………………………..90
    6.3.1. Revocation Inputs …………………………….91
    6.3.2. Initialization and Revocation State Variables ……91
    6.3.3. CRL Processing ……………………………….92
  7. Processing Rules for Internationalized Names ……………….95
    7.1. Internationalized Names in Distinguished Names …………96
    7.2. Internationalized Domain Names in GeneralName ………….97
    7.3. Internationalized Domain Names in Distinguished Names …..98
    7.4. Internationalized Resource Identifiers ………………..98
    7.5. Internationalized Electronic Mail Addresses …………..100
  8. Security Considerations …………………………………100
  9. IANA Considerations …………………………………….105
  10. Acknowledgments ……………………………………….105
  11. References ……………………………………………105
    11.1. Normative References ………………………………105
    11.2. Informative References …………………………….107
    Appendix A. Pseudo-ASN.1 Structures and OIDs ………………..110
    A.1. Explicitly Tagged Module, 1988 Syntax ………………..110
    A.2. Implicitly Tagged Module, 1988 Syntax ………………..125
    Appendix B. ASN.1 Notes ……………………………………133
    Appendix C. Examples ………………………………………136
    C.1. RSA Self-Signed Certificate …………………………137
    C.2. End Entity Certificate Using RSA …………………….140
    C.3. End Entity Certificate Using DSA …………………….143
    C.4. Certificate Revocation List …………………………147

参照

RFC5280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
インターネット上のX.509 PKI 証明書と CRL プロファイル
RFC 5280 – Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile 日本語訳

タイトルとURLをコピーしました