前のページ 目次 次のページ

最終更新日:2002年12月12日


4.2  CRL モデル

4.2.1  CRL 概要

失効された証明書の一覧を「CRL (証明書失効リスト)」といいます。CRL は、証明書を発行した CA が運用ポリシーに則り、即時的に、また定期的な周期で発行します。CRL には更新日時の領域があり、ある時点での証明書の有効性を確認できるようになっています。期間内に新たに失効された証明書が無くても CRL は発行されます。

CRL には失効された証明書のシリアル番号、CRL の発行者名(通常は CA の名前と同じ)、更新日、次回更新日などが記載されています。有効期限切れとなった証明書は CRL には記載されません。CRL には発行者の電子署名が付与されているため、第三者による改ざんを防ぐことができます。また、CA 以外が CRL を発行する場合もあります。詳細は 4.2.7 を参照してください。

発行された CRL は、リポジトリ [57] と呼ばれるサーバーに格納して利用者に公開します。証明書利用者 (Relying Party) は、定期的にリポジトリから CRL を取得することで、利用する証明書の有効性を確認できます(図 4-1)。

図 4-1 CRL モデル概要

CRL は、決められた周期で発行されるため、証明書が失効された場合でも、次回の CRL が発行されるまでは失効情報が利用者に伝わりません(図 4-2)。CRL の発行周期を長くすると、失効情報が利用者に通知されるまでの時間が長くなります。逆に、発行周期を短くすると、利用者が CRL を取得するための負荷が増大してしまいます。CRL の発行周期は、セキュリティポリシーとシステムの要件にあわせて適切な期間を設定することが重要になります。

図 4-2 CRL の定期的発行

4.2.2  CRL のフォーマット

CRL は、更新日時や発行者などを表す基本領域と、失効された証明書のリストおよび発行者の署名から構成されます(図 4-3)。失効された証明書のリストには、証明書そのものではなくシリアル番号が記載されます。

CRL は、初版の X.509 (1988年版)においてバージョン1 (CRLv1) が定義され、現在では X.509 (1997、 2000年版)においてバージョン 2 (CRLv2) が定義されています。CRLv2 においては、CRLv1 における拡張性、機能の制限などの欠点に対応するため、CRL 拡張と CRL エントリ拡張という 2つの拡張領域を設けています。

図 4-3 CRL の構成

以下に Internet Explorer で CRL を表示した例を示します(図 4-4)。発行者や更新日時などの基本領域と、失効された証明書のシリアル番号の一覧が記載されています。

 

図 4-4 Internet Explorer で CRL を表示した例

 

以下に CRL のプロファイルを示します(表 4-1)。

表 4-1 CRL 標準領域

領域名

説明

tbsCertList

(署名前証明書リスト)

CRL の署名対象部分です。

 

version

(バージョン)

CRL のバージョンを表します。

signature

(署名アルゴリズム)

CRL 発行者の署名アルゴリズム OID です。
signatureAlgorithm と同じものを指定します。

issuer

(発行者)

CRL 発行者を X.500 識別名に記載します。

thisUpdate

(今回更新日時)

CRL の更新日時を示します。

nextUpdate

(次回更新日時)

次回の CRL 更新日時を示します。

revokedCertificates

(失効証明書のリスト)

失効された証明書の一覧です。
表 4-2 で詳細を示します。

crlExtensions

(CRL 拡張)

CRL の拡張領域です。CRLv2 以降で使用されます。
表 4-3 で詳細を示します。

signatureAlgorithm

(署名アルゴリズム)

CRL 発行者の署名アルゴリズム OID です。

signature

(署名)

CRL 発行者の電子署名です。

失効証明書のリスト (revokedCertificates) は、失効証明書 (revokedCertificate) の並び(シーケンス)から構成されています。以下に、revokedCertificate の構成を示します(表 4-2)。

表 4-2 revokedCertificate の構成

領域名

説明

userCertificate

(ユーザ証明書)

失効された証明書のシリアル番号です。

revocationDate

(失効日時)

証明書が失効された日時です。

crlEntryExtensions

(CRL エントリ拡張)

個々の失効証明書ごとの拡張領域です。CRLv2 以降で使用されます。

詳細は表 4-5 で示します。

CRLv2 で定義された CRL 拡張(crlExtensions)には、CRL の拡張情報が含まれます。CRL 拡張には、X.509 証明書の拡張領域と同じく Critical フラグが存在します。Critical フ ラグが TRUE の項目は、CRL を利用するアプリケーション側(もしくは、PKI クライアント側)で必ず解釈しなければなりません。解釈できない場合、その CRL を使用してはいけません。

以下に、CRL 拡張のフォーマットを示します(表 4-3)。

表 4-3 CRL 拡張 (crlExtensions)

領域名

Critical

フラグ

説明

authorityKeyIdentifier

(機関鍵識別子)

FALSE

発行者が CRL に署名する鍵が複数存在する場合、それぞれを区別するために使用します。

issuerAltName

(発行者別名)

FALSE

CRL発行者の別名を表します。

cRLNumber

(CRL番号)

FALSE

CRL の通し番号です。
新しい CRL が発行される毎に 1ずつ増加します。

deltaCRLIndicator

(デルタCRL番号)

TRUE

デルタ CRL に対応するベース CRL の CRL 番号を示します。

issuingDistributionPoint

(発行配布点)

TRUE

CRL が配布される場所(リポジトリなど)を示します。

freshestCRL

(最新CRL)

FALSE

デルタ CRL の位置を示します。

以下に、CRL 拡張に含まれる発行配布点 (issuingDistributionPoint) の構成を示します(表 4-4)。

発行配布点 (issuingDistributionPoint) は、後述する間接 CRL や認証局失効リスト (ARL) で使用されます。

表 4-4 発行配布点 (issuingDistributionPoint)

領域名

説明

distributionPoint

(配布点)

CRL が配布される場所を指定します。
このフィールドは省略可能です。

onlyContainsUserCerts

(ユーザ証明書のみ)

この CRL にユーザ証明書の失効情報のみが含まれるか、否かを指定します。

onlyContainsCACerts

(CA 証明書のみ)

この CRL に CA 証明書の失効情報のみが含まれるか、否かを指定します。

onlySomeReasons

(特定の失効理由)

この CRL に含まれる証明書の失効理由を指定します。
このフィールドは省略可能です。

indirectCRL

(間接 CRL)

この CRL が間接 CRL(4.2.7 参照)か否かを示します。

CRL エントリ拡張は、個々の失効された証明書に対する拡張領域です(表 4-5)。CRL 拡張領域と同じく CRLv2 以降で定義されており、Critical フラグが存在します。

表 4-5 CRL エントリ拡張 (crlEntryExtensions)

領域名

Critical

フラグ

説明

reasonCode

(理由コード)

FALSE

証明書が失効された理由を表します。
詳細は表 4-6 で示します。

holdInstructionCode

(保留指示コード)

FALSE

理由コードで「保留」が指定された証明書の処理方法を指定します。
詳細は表 4-7 で示します。

invalidityDate

(推定無効日)

FALSE

証明書が無効になったと推定される日時を指定します。

certificateIssuer

(証明書発行者)

TRUE

証明書の発行者を示します。
間接 CRL の場合に使用します。

CRL エントリ拡張の理由コード (reasonCode) においては、証明書が失効した理由を指定します(表 4-6)。理由コードで証明書保留 (certificateHold) を指定する場合は、証明書利用者が取るべき行動を保留指示コード(holdInstructionCode)で指定します(表 4-7)。証明書保留の取り扱いは難しいため、運用上の必要性が無ければ使用しないことが推奨されています。

表 4-6 証明書失効理由

領域名

説明

keyCompromise

鍵漏洩(鍵危殆化)

1

証明書利用者の秘密鍵が漏洩した。

cACompromise

CA弱体化(CA 危殆化)

2

CA の信頼性が失われた。

affiliationChanged

所属変更

3

証明書の記載内容が変更した。

Superseded

破棄

4

証明書が破棄された。

cessationOfOperation

運用停止

5

証明書の必要性がなくなった。

certificateHold

証明書保留

6

一時的に保留を示します。
保留指示コードに追加情報を記載します。

removeFromCRL

CRL からの削除

8

有効期間満了や保留の解除によって CRL から削除されることを示します。
デルタ CRL でのみ使用します。

Unspecified

未指定

0

指定なし。

※  値の [7] は未定義となっています。

表 4-7 保留指示コード

領域名

説明

id-holdinstruction-none

何もしない

1

指示なし。推奨されない。

id-holdinstruction-callissuer

発行者に電話する

2

発行者に連絡する。

id-holdinstruction-reject

拒絶する

3

証明書を受け付けない。

4.2.3  CRL 運用方法の種類

CRL については、用途に応じて、様々な運用方法が用いられます(表 4-8)。

表 4-8 CRL の運用方法

種類

説明

完全 CRL

1つの CRL に全ての失効情報を記載する。

区分 CRL

CRL のサイズを小さくする方法です。
拡張領域のCRL配布点を使用し、CRL を分割して管理します。

デルタ CRL

CRL のサイズを小さくする方法です。
前回からの差分のみを記載した CRL です。

間接 CRL

複数の CRL を 1つにまとめた CRL です。

ARL

CA の失効情報を記載した CRL です。

CRT

OCSP に使用されます。

 

4.2.4  完全 CRL

1つの CRL に全ての失効情報を記載したものを「完全 CRL (Full CRL, Complete CRL)」と呼びます。利用者が取得する CRL は 1つだけなので管理が容易になります。ただし、大規模なドメインで運用した場合は、CRL のサイズが巨大になり、利用者が CRL を取得するための負荷が増大するといった問題があります。

4.2.5  区分 CRL

CRL のサイズが増大する問題を解決するために、失効情報を複数の CRL に分割して公開する方法があります(図 4-5)。

CA は、証明書のシリアル番号や失効理由などから CRL を分割して発行します。分割したそれぞれの CRL を「区分 CRL (Partitioned CRL)」と 呼びます。証明書のCRL 配布点 (CRLDP: CRL Distribution Points) には、対応する CRL の場所が記載されます。クライアントは証明書に記載された CRLDP を見て、取得すべき区分 CRL を判断します。区分 CRL を用いると、CRL のサイズを小さくできるだけでなく、証明書の CRL 配布点(CRLDP)に CRL の所在が記載されるため、クライアントに CRL の所在を通知しなくて良いという利点があります。

図 4-5 区分 CRL による CRL の分割

4.2.6  デルタ CRL

失効情報を迅速に利用者に通知するための方法として、「デルタ CRL (Delta CRL)」があります(図 4-6)。

CA は、定期的に通常の CRL(ベースCRL)を発行し、それよりも短い間隔でベース CRL との失効情報の差分を記載した CRL(デルタCRL)を発行します。ベース CRL は基準 CRL、デルタ CRL は差分 CRL と呼ばれる場合もあります。証明書利用者は、デルタ CRL とベース CRL を取得して、それぞれの失効情報を足し合わせることにより、最新の失効情報を得ることができます。

デルタ CRL の公開場所は、証明書の最新 CRL (freshestCRL) に記載されます。また、デルタ CRL のデルタ CRL 番号 (deltaCRLIndicator) には、対応するベース CRL の CRL 番号 (CRL Number) が記載されています。

デルタ CRL は、完全 CRL もしくは区分 CRL に使用することができます。

X.509 の 2000年版において、それまで曖昧であったデルタ CRL の使用法が明確に定義されました。

図 4-6 デルタ CRL による CRL の分割

図 4-7 デルタ CRL の利用方法

4.2.7  間接 CRL

特定の機関が、複数の CA から発行された CRL をまとめて、1つの CRL として発行することがあります。この CRL を「間接 CRL (Indirect CRL)」と呼びます(図 4-8)。間接 CRL には CRL 発行者の署名が付与されます。利用者は、間接 CRLの発行者が信頼できることを確認する必要があります。

間接 CRL では、CRL 拡張の発行配布点 (issuingDistributionPoint) の indirectCRL フィールドが TRUE となります(表 4-4)。また、CRL エントリ拡張の証明書発行者 (certificateIssuer) に証明書を発行した CA の名前が記載されます。

間接 CRL には、証明書利用者が複数の CA を利用している場合でも、1つにまとめられた CRL のみを確認すればよいという利点があります。

図 4-8 間接 CRL による CRL の統合

4.2.8  ARL

CA 証明書の失効情報のみを記載したリストを「ARL (Authority Revocation Lists: 認証局失効リスト)」といいます。ARL においては、CRL 拡張の発行配布点 (issuingDistributionPoint) の onlyContainsCACerts フィールドが TRUE となります(表 4-4)。ARL は、その CA に証明書を発行した CA が発行します。

4.2.9  証明書失効ツリー

証明書失効ツリー (CRT: Certificate Revocation Tree)」は、米 Valicert 社が開発したハッシュツリーを用いて失効情報を表現するための技術です。この方法は 、CRL に基づかない独自の方式です。CRT は、OCSP のバックエンドとして使用されています。



前のページ 目次 次のページ Copyright © 2002 Information-technology Promotion Agency, Japan. All rights reserved.