B.4. CRL 拡張機能
B.4.1. CRL 拡張について
最初の発行以来、CRL 形式の X.509 標準が修正され、CRL 内に追加情報が含まれるようになりました。この情報は CRL 拡張機能により追加されます。
ANSI X9 および ISO/IEC/ITU for X.509 CRLs [X.509] [X9.55] で定義されている拡張機能により、追加の属性を CRL に関連付けることができます。RFC 5280 で入手可能な Internet X.509 Public Key Infrastructure Certificate and CRL Profile は、CRL で使用される拡張機能のセットを推奨しています。これらの拡張機能は 標準 CRL 拡張機能 と呼ばれます。
この規格では、カスタム拡張機能を作成して CRL に含めることもできます。これらの拡張機能は、プライベート、プロプライエタリー、または カスタム CRL 拡張機能と呼ばれ、組織または企業に固有の情報を伝達します。アプリケーションは、プライベートの重要な拡張機能を含む CRL を検証できない場合があるため、一般的なコンテキストでカスタム拡張機能を使用することは推奨しません。
Abstract Syntax Notation One (ASN.1) および Distinguished Encoding Rules (DER) 標準は、CCITT 勧告 X.208 および X.209 で指定されています。ASN.1 および DER の概要については、RSA Laboratories の Web サイト (http://www.rsa.com) で入手できる A Layman’s Guide to a Subset of ASN.1, BER, and DER を参照してください。
B.4.1.1. CRL 拡張の構造
CRL 拡張機能は、以下の部分で構成されます。
-
拡張のオブジェクト識別子 (OID)。この識別子は、拡張子を一意に識別します。また、値フィールドの ASN.1 タイプの値や、値が解釈される方法も決定します。拡張機能が CRL に表示されると、OID は拡張機能 ID フィールド (
extnID
) として示されます。また、対応する ASN.1 エンコード構造は、オクテット文字列の値 (extnValue
) として示されます。その例は 例B.4「pretty-print 証明書拡張の例」 に記載されています。 critical
と呼ばれるフラグまたはブール値フィールド。このフィールドに割り当てられた
true
値またはfalse
値は、拡張機能が CRL にとってクリティカルか非クリティカルかを示します。- 拡張機能が重要であり、拡張機能の ID に基づいて拡張機能を理解しないアプリケーションに CRL が送信された場合は、アプリケーションが CRL を拒否する必要があります。
- 拡張機能が重要ではなく、拡張機能の ID に基づいて拡張機能を理解しないアプリケーションに CRL が送信された場合、アプリケーションは拡張機能を無視して CRL を受け入れることができます。
- 拡張の値の DER エンコーディングを含む octet 文字列。
CRL を受信するアプリケーションは、拡張 ID を確認して、ID を認識できるかどうかを判断します。可能であれば、エクステンション ID を使用して、使用する値のタイプを判断します。
B.4.1.2. Sample CRL および CRL Entry 拡張機能
以下は、X.509 CRL バージョン 2 の拡張機能の例です。Certificate System は、以下に示すように、読み取り可能な pretty-print 形式で CRL を表示できます。例に示されているように、CRL 拡張は順番に表示され、特定の拡張の 1 つのインスタンスのみが CRL ごとに表示される場合があります。たとえば、CRL に含まれる Authority Key Identifier 拡張機能は 1 つだけです。ただし、CRL-entry 拡張は CRL の適切なエントリーに表示されます。
Certificate Revocation List: Data: Version: v2 Signature Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5 Issuer: CN=Certificate Authority,O=Example Domain This Update: Wednesday, July 29, 2009 8:59:48 AM GMT-08:00 Next Update: Friday, July 31, 2009 8:59:48 AM GMT-08:00 Revoked Certificates: 1-3 of 3 Serial Number: 0x11 Revocation Date: Thursday, July 23, 2009 10:07:15 AM GMT-08:00 Extensions: Identifier: Revocation Reason - 2.5.29.21 Critical: no Reason: Privilege_Withdrawn Serial Number: 0x1A Revocation Date: Wednesday, July 29, 2009 8:50:11 AM GMT-08:00 Extensions: Identifier: Revocation Reason - 2.5.29.21 Critical: no Reason: Certificate_Hold Identifier: Invalidity Date - 2.5.29.24 Critical: no Invalidity Date: Sun Jul 26 23:00:00 GMT-08:00 2009 Serial Number: 0x19 Revocation Date: Wednesday, July 29, 2009 8:50:49 AM GMT-08:00 Extensions: Identifier: Revocation Reason - 2.5.29.21 Critical: no Reason: Key_Compromise Identifier: Invalidity Date - 2.5.29.24 Critical: no Invalidity Date: Fri Jul 24 23:00:00 GMT-08:00 2009 Extensions: Identifier: Authority Info Access: - 1.3.6.1.5.5.7.1.1 Critical: no Access Description: Method #0: ocsp Location #0: URIName: http://example.com:9180/ca/ocsp Identifier: Issuer Alternative Name - 2.5.29.18 Critical: no Issuer Names: DNSName: example.com Identifier: Authority Key Identifier - 2.5.29.35 Critical: no Key Identifier: 50:52:0C:AA:22:AC:8A:71:E3:91:0C:C5:77:21:46:9C: 0F:F8:30:60 Identifier: Freshest CRL - 2.5.29.46 Critical: no Number of Points: 1 Point 0 Distribution Point: [URIName: http://server.example.com:8443/ca/ee/ca/getCRL?op=getDeltaCRL&crlIssuingPoint=MasterCRL] Identifier: CRL Number - 2.5.29.20 Critical: no Number: 39 Identifier: Issuing Distribution Point - 2.5.29.28 Critical: yes Distribution Point: Full Name: URIName: http://example.com:9180/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL Only Contains User Certificates: no Only Contains CA Certificates: no Indirect CRL: no Signature: Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5 Signature: 47:D2:CD:C9:E5:F5:9D:56:0A:97:31:F5:D5:F2:51:EB: 1F:CF:FA:9E:63:D4:80:13:85:E5:D8:27:F0:69:67:B5: 89:4F:59:5E:69:E4:39:93:61:F2:E3:83:51:0B:68:26: CD:99:C4:A2:6C:2B:06:43:35:36:38:07:34:E4:93:80: 99:2F:79:FB:76:E8:3D:4C:15:5A:79:4E:E5:3F:7E:FC: D8:78:0D:1D:59:A0:4C:14:42:B7:22:92:89:38:3A:4C: 4A:3A:06:DE:13:74:0E:E9:63:74:D0:2F:46:A1:03:37: 92:F0:93:D9:AA:F8:13:C5:06:25:02:B0:FD:3B:41:E7: 62:6F:67:A3:9F:F5:FA:03:41:DA:8D:FD:EA:2F:E3:2B: 3E:F8:E9:CC:3B:9F:E4:ED:73:F2:9E:B9:54:14:C1:34: 68:A7:33:8F:AF:38:85:82:40:A2:06:97:3C:B4:88:43: 7B:AF:5D:87:C4:47:63:4A:11:65:E3:75:55:4D:98:97: C2:2E:62:08:A4:04:35:5A:FE:0A:5A:6E:F1:DE:8E:15: 27:1E:0F:87:33:14:16:2E:57:F7:DC:77:BE:D2:75:AB: A9:7C:42:1F:84:6D:40:EC:E7:ED:84:F8:14:16:28:33: FD:11:CD:C5:FC:49:B7:7B:39:57:B3:E6:36:E5:CD:B6
デルタ CRL は、最後の CRL が公開されてからの変更のみを含む CRL のサブセットです。デルタ CRL インジケーター拡張を含む CRL はデルタ CRL です。
ertificate Revocation List: Data: Version: v2 Signature Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5 Issuer: CN=Certificate Authority,O=SjcRedhat Domain This Update: Wednesday, July 29, 2009 9:02:28 AM GMT-08:00 Next Update: Thursday, July 30, 2009 9:02:28 AM GMT-08:00 Revoked Certificates: Serial Number: 0x1A Revocation Date: Wednesday, July 29, 2009 9:00:48 AM GMT-08:00 Extensions: Identifier: Revocation Reason - 2.5.29.21 Critical: no Reason: Remove_from_CRL Serial Number: 0x17 Revocation Date: Wednesday, July 29, 2009 9:02:16 AM GMT-08:00 Extensions: Identifier: Revocation Reason - 2.5.29.21 Critical: no Reason: Certificate_Hold Identifier: Invalidity Date - 2.5.29.24 Critical: no Invalidity Date: Mon Jul 27 23:00:00 GMT-08:00 2009 Extensions: Identifier: Authority Info Access: - 1.3.6.1.5.5.7.1.1 Critical: no Access Description: Method #0: ocsp Location #0: URIName: http://server.example.com:8443/ca/ocsp Identifier: Delta CRL Indicator - 2.5.29.27 Critical: yes Base CRL Number: 39 Identifier: Issuer Alternative Name - 2.5.29.18 Critical: no Issuer Names: DNSName: a-f8.sjc.redhat.com Identifier: Authority Key Identifier - 2.5.29.35 Critical: no Key Identifier: 50:52:0C:AA:22:AC:8A:71:E3:91:0C:C5:77:21:46:9C: 0F:F8:30:60 Identifier: CRL Number - 2.5.29.20 Critical: no Number: 41 Identifier: Issuing Distribution Point - 2.5.29.28 Critical: yes Distribution Point: Full Name: URIName: http://server.example.com:8443/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL Only Contains User Certificates: no Only Contains CA Certificates: no Indirect CRL: no Signature: Algorithm: SHA1withRSA - 1.2.840.113549.1.1.5 Signature: 68:28:DA:90:D5:39:CB:6D:BE:42:04:77:C9:E4:09:60: C1:97:A6:99:AB:A0:5B:A2:F3:8B:5E:4E:D6:05:70:B0: 87:1F:D7:0E:4B:C6:B2:DE:8B:92:D8:7C:3B:36:1C:79: 96:2A:64:E6:7A:25:1D:E7:40:62:48:7A:24:C9:9D:11: A6:7F:BB:6B:03:A0:9C:1D:BC:1C:EE:9A:4B:A6:48:2C: 3B:5E:2B:B1:70:3C:C3:42:96:28:26:AB:82:18:F2:E9: F2:55:48:A8:7E:7F:FE:D4:3D:0B:EA:A2:2F:4E:E6:C3: C3:C1:6A:E5:C6:85:5B:42:B1:70:2A:C6:E1:D9:0C:AF: DA:01:22:FF:80:6E:2E:A7:E5:34:DC:AF:E6:C2:B5:B3: 1B:FC:28:36:8A:91:4A:22:E7:03:A5:ED:4E:62:0C:D9: 7F:81:BB:80:99:B8:61:2A:02:C6:9C:41:2E:01:82:21: 80:82:69:52:BD:B2:AA:DB:0F:80:0A:7E:2A:F3:15:32: 69:D2:40:0D:39:59:93:75:A2:ED:24:70:FB:EE:19:C0: BE:A2:14:36:D0:AC:E8:E2:EE:23:83:DD:BC:DF:38:1A: 9E:37:AF:E3:50:D9:47:9D:22:7C:36:35:BF:13:2C:16: A2:79:CF:05:41:88:8E:B6:A2:4E:B3:48:6D:69:C6:38
B.4.2. 標準 X.509 v3 CRL 拡張機能のリファレンス
証明書拡張に加えて、X.509 で提案されている標準では、CRL の拡張が定義されており、追加の属性をインターネット CRL に関連付ける方法が提供されています。これらは、CRL 自体の拡張と、CRL の個々の証明書エントリーの拡張の 2 種類のうちの 1 つです。
B.4.2.1. CRL の拡張機能
以下の CRL の説明は、インターネット X.509 v3 公開鍵インフラストラクチャーが提案する標準の一部として定義されています。
B.4.2.1.1. authorityInfoAccess
Authority Information Access 拡張は、デルタ CRL 情報の取得方法を識別します。freshestCRL 拡張機能は完全な CRL に配置され、最新のデルタ CRL の場所を示します。
OID
1.3.6.1.5.5.7.1.1
Criticality
PKIX では、この拡張は重要ではありません。
パラメーター | 説明 |
---|---|
enable | ルールを有効または無効するかどうかを指定します。デフォルトでは、この拡張機能は無効になっています。 |
critical | 拡張がクリティカルとマークされるかどうかを設定します。デフォルトは非クリティカルです。 |
numberOfAccessDescriptions | 0 から任意の正の整数までのアクセス記述の数を示します。デフォルトは 0 です。 このパラメーターを 0 以外の整数に設定する場合は、数値を設定し、OK をクリックしてウィンドウを閉じます。ルールの編集ウィンドウを再度開き、ポイントを設定するフィールドが存在します。 |
accessMethodn | このパラメーターで許可される値は caIssuers のみです。caIssuers メソッドは、利用可能な情報に CRL の署名の検証に使用できる証明書がリストされている場合に使用されます。AIA 拡張が CRL に含まれる場合、他の方法は使用しないでください。 |
accessLocationTypen |
n アクセスの説明のアクセス場所を指定します。オプションは |
accessLocationn |
|
B.4.2.1.2. authorityKeyIdentifier
CRL の Authority Key Identifier 拡張機能は、CRL の署名に使用される秘密鍵に対応する公開鍵を識別します。詳細は、「authorityKeyIdentifier」 の証明書拡張を参照してください。
PKIX 標準では、CA の公開鍵は、たとえば鍵が更新されたときに変更される可能性があるため、または複数の同時鍵ペアまたは鍵切り替えのために CA が複数の署名鍵を持つ可能性があるため、CA が発行するすべての CRL にこの拡張機能を含める必要があることを推奨しています。このような場合、CA は複数のキーペアで終了します。証明書の署名を検証する場合、他のアプリケーションは、署名で使用されたキーを知る必要があります。
OID
2.5.29.35
パラメーター | 説明 |
---|---|
enable | ルールを有効または無効するかどうかを指定します。デフォルトでは、この拡張機能は無効になっています。 |
critical | 拡張がクリティカルとマークされるかどうかを設定します。デフォルトは非クリティカルです。 |
B.4.2.1.3. CRLNumber
CRLNumber 拡張は、CA が発行する各 CRL の連続する番号を指定します。ユーザーは、特定の CRL が別の CRL を上書きするタイミングを簡単に判断できます。PKIX では、すべての CRL にこの拡張が必要です。
OID
2.5.29.20
Criticality
この拡張は重要ではありません。
パラメーター | 説明 |
---|---|
enable | ルールが有効であるかどうかを指定します (デフォルト)。 |
critical | 拡張がクリティカルとマークされるかどうかを設定します。デフォルトは非クリティカルです。 |
B.4.2.1.4. deltaCRLIndicator
deltaCRLIndicator 拡張機能は、デルタ CRL を生成します。これは、最後の CRL 以降に取り消された証明書のみのリストです。また、ベース CRL への参照も含まれています。これにより、ローカルデータベースにすでに存在する未変更の情報を無視しながら、ローカルデータベースが更新されます。これにより、失効情報を CRL 構造以外の形式で格納するアプリケーションの処理時間を大幅に改善できます。
OID
2.5.29.27
Criticality
PKIX では、その拡張が存在する場合はこの拡張が必須でなければなりません。
パラメーター | 説明 |
---|---|
enable | ルールが有効かどうかを指定します。デフォルトでは無効になっています。 |
critical | 拡張機能がクリティカル、または非クリティカルを設定します。デフォルトでは、これはクリティカルになっています。 |
B.4.2.1.5. FreshestCRL
freshestCRL 拡張機能は、デルタ CRL 情報の取得方法を識別します。freshestCRL 拡張機能は完全な CRL に配置され、最新のデルタ CRL の場所を示します。
OID
2.5.29.46
Criticality
PKIX では、この拡張機能は非クリティカルである必要があります。
パラメーター | 説明 |
---|---|
enable | 拡張機能ルールが有効かどうかを指定します。デフォルトでは、これは無効になっています。 |
critical | 拡張にクリティカルまたは非クリティカルのマークを付けます。デフォルトはクリティカルではありません。 |
numPoints |
デルタ CRL の発行ポイントの数を、 |
pointTypen |
n 発行ポイントの発行ポイントのタイプを指定します。 |
pointNamen |
|
B.4.2.1.6. issuerAltName
Issuer Alternative Name 拡張機能を使用すると、メールアドレス、DNS 名、IP アドレス (IPv4 と IPv6 の両方)、URI (Uniform Resource Indicator) などのバインディング属性など、CRL の発行者を使用して、追加の ID を CRL の発行者に関連付けることができます。詳細は、「issuerAltName 拡張」 の証明書拡張を参照してください。
OID
2.5.29.18
パラメーター | 説明 |
---|---|
enable | 拡張ルールが有効であるかどうかを設定します。デフォルトでは無効になっています。 |
critical | 拡張がクリティカルかどうかを設定します。デフォルトでは、これは非クリティカルになります。 |
numNames |
拡張で許可される代替名または ID の合計数を設定します。それぞれの名前には、設定パラメーター ( |
nameTypen | general-name タイプを指定します。次のいずれかになります。
|
namen |
一般名の値を指定します。許可される値は、
|
B.4.2.1.7. issuingDistributionPoint
Issuing Distribution Point CRL 拡張機能は、特定の CRL の CRL ディストリビューションポイントを識別し、エンドエンティティー証明書のみの失効、CA 証明書のみ、または理由コードのセットが制限されている失効証明書など、対象となる失効の種類を示します。
PKIX Part I ではこの拡張は必要ありません。
OID
2.5.29.28
Criticality
PKIX では、その拡張が存在する場合はこの拡張が必須でなければなりません。
パラメーター | 説明 |
---|---|
enable | 拡張機能を有効にするかどうかを設定します。デフォルトは無効です。 |
critical | 拡張機能をクリティカル、デフォルト、または非クリティカルとしてマークします。 |
pointType | 以下から発行配布ポイントのタイプを指定します。
|
pointName |
発行されたディストリビューションポイントの名前を指定します。分散ポイントの名前は、
注記 CRL は、CRL 発行ポイントに対応するディレクトリーエントリーに格納される場合があります。これは、CA のディレクトリーエントリーとは異なる場合があります。 |
onlySomeReasons | ディストリビューションポイントに関連付けられた理由コードを指定します。
許容値は、理由コード ( |
onlyContainsCACerts | 設定されている場合に限り、ディストリビューションポイントにユーザー証明書が含まれることを指定します。デフォルトでは、これは設定されていません。つまり、ディストリビューションポイントにはすべての種類の証明書が含まれています。 |
indirectCRL | ディストリビューションポイントに間接 CRL が含まれていることを指定します。デフォルトでは選択されていません。 |
B.4.2.2. CRL Entry 拡張機能
次のセクションでは、インターネット X.509v3 公開鍵インフラストラクチャーで提案されている標準の一部として定義されている CRL エントリー拡張タイプを示します。これらの拡張機能はすべてクリティカルではありません。
B.4.2.2.1. certificateIssuer
Certificate Issuer 拡張機能は、間接 CRL のエントリーに関連付けられている証明書発行者を識別します。
この拡張機能は、Certificate System でサポートされていない間接 CRL でのみ使用されます。
OID
2.5.29.29
B.4.2.2.2. invalidityDate
Invalidity Date 拡張機能は、秘密鍵が侵害された日付、または証明書が無効になった日付を提供します。
OID
2.5.29.24
パラメーター | 説明 |
---|---|
enable | 拡張機能ルールを有効にするか無効にするかを設定します。デフォルトでは、これは有効になります。 |
critical | 拡張機能をクリティカルまたは非クリティカルとしてマークします。デフォルトでは、これは非クリティカルではありません。 |
B.4.2.2.3. CRLReason
Reason Code 拡張は、証明書失効リストの理由を識別します。
OID
2.5.29.21
パラメーター | 説明 |
---|---|
enable | 拡張機能ルールを有効にするか無効にするかを設定します。デフォルトでは、これは有効になります。 |
critical | 拡張にクリティカルまたは非クリティカルのマークを付けます。デフォルトでは、これはクリティカルではありません。 |
B.4.3. Netscape で定義された証明書拡張のリファレンス
Netscape は、その製品に対して特定の証明書拡張を定義しました。一部の拡張機能は現在廃止されており、その他の拡張機能は X.509 提案標準で定義されている拡張機能に取って代わられています。すべての Netscape 拡張機能は、証明書に存在することでその証明書が他のクライアントと互換性がなくなることがないように、非クリティカルなものとしてタグ付けする必要があります。
B.4.3.1. netscape-cert-type
Netscape Certificate Type 拡張機能を使用して、証明書を使用できる目的を制限できます。これは、X.509 v3 拡張 「extKeyUsage」 および 「basicConstraints」 に置き換えられています。
拡張機能が証明書に存在する場合は、指定した使用に対して証明書を制限します。拡張機能が存在しない場合、証明書はオブジェクト署名を除くすべてのアプリケーションで使用できます。
値はビット文字列であり、個々のビット位置が設定されると、次のように特定の用途のために証明書を認証します。
- ビット 0 - SSL クライアント証明書
- ビット 1 - SSL サーバー証明書
- ビット 2 - S/MIME 証明書
- ビット 3 - オブジェクト署名証明書
- ビット 4 - 予約
- ビット 5 - SSL CA 証明書
- ビット 6 - S/MIME CA 証明書
- ビット 7 - オブジェクト署名 CA 証明書
OID
2.16.840.1.113730.1.1
B.4.3.1.1. netscape-comment
この拡張機能の値は IA5String です。これは、証明書を表示する際にユーザーに表示されるコメントです。
OID
2.16.840.1.113730.13