情報処理安全確保支援士 2019年 秋期 午前2 問06
問題文
X.509 における CRL (Certificate Revocation List)に関する記述のうち、適切なものはどれか。
選択肢
ア:PKI の利用者は、認証局の公開鍵がWebブラウザに組み込まれていれば、CRLを参照しなくてもよい。
イ:認証局は、発行した全てのディジタル証明書の有効期限をCRLに記載する。
ウ:認証局は、発行したディジタル証明書のうち失効したものについては、シリアル番号を失効後1年間CRLに記載するよう義務付けられている。
エ:認証局は、有効期限内のディジタル証明書のシリアル番号を CRL に記載することがある。(正解)
🔒 解説は解答すると表示されます
CRLの記載内容【午前2解説】
正解の理由
X.509 の CRL (Certificate Revocation List) は、認証局が失効(取り消し)した証明書の管理情報を一覧化したもので、失効した証明書のシリアル番号を含めて記載することがあります。したがって選択肢エ「認証局は、有効期限内のディジタル証明書のシリアル番号を CRL に記載することがある。」が適切です。
CRL の各エントリには少なくとも失効した証明書のシリアル番号(serialNumber)と失効日時(revocationDate)が含まれ、必要に応じて失効理由(reasonCode)や無効化日時(invalidityDate)などの拡張(entryExtensions)を付加できます。CRL 自体にも lastUpdate/nextUpdate 等の情報や CRL の番号(CRLNumber)などの拡張が含まれます。証明書の有効期限(expiration)は通常 CRL に記載されません(証明書の有効期限は証明書自体に含まれる)。
CRL の各エントリには少なくとも失効した証明書のシリアル番号(serialNumber)と失効日時(revocationDate)が含まれ、必要に応じて失効理由(reasonCode)や無効化日時(invalidityDate)などの拡張(entryExtensions)を付加できます。CRL 自体にも lastUpdate/nextUpdate 等の情報や CRL の番号(CRLNumber)などの拡張が含まれます。証明書の有効期限(expiration)は通常 CRL に記載されません(証明書の有効期限は証明書自体に含まれる)。
解法ステップ
- CRL の目的を確認する:失効した証明書の情報を利用者に通知するためのリストであることを思い出す。
- RFC(例:RFC 5280)や X.509 の記載項目を想起する:CRL のエントリに含まれる典型的なフィールド(serialNumber、revocationDate、entryExtensions)を確認する。
- 各選択肢と照合する:CRL が「有効期限」を記載するか、CRL の参照義務や保持期間に関する規定があるかを検証する。
- 結論:CRL は失効した証明書のシリアル番号等を含みうる、という観点からエを選ぶ。
選択肢別の誤答解説
- ア: 「公開鍵がブラウザに組み込まれていれば CRL を参照しなくてよい」
誤りです。ブラウザにルート CA の公開鍵(信頼したルート)が組み込まれていても、その CA が発行した個々の証明書の失効情報(失効の有無)を確認する必要があります。多くの実装は CRL や OCSP(Online Certificate Status Protocol)で失効確認を行いますし、ブラウザは独自の失効情報(例:CRLSet、OneCRL)や OCSP ステープリングなど複数の手法を使います。信頼の根拠(ルートの存在)と失効確認は別の役割です。 - イ: 「認証局は発行した全ての証明書の有効期限を CRL に記載する」
誤りです。CRL は失効した証明書の情報を列挙するためのものであり、発行したすべての証明書の有効期限を記載するものではありません。証明書の有効期限は各証明書自体に含まれます。CRL のエントリは通常シリアル番号と revocationDate 等で構成され、証明書の expiration を CRL に書くことは一般的ではありません。 - ウ: 「失効したものはシリアル番号を失効後1年間 CRL に記載する義務がある」
誤りです。一般的な X.509 の規格や RFC において「失効後1年間 CRL に記載する」という普遍的な保持期間の義務は定められていません。CRL の保持期間や保持方針は認証局の運用方針(CP/OP)や法的要件によって異なります。したがって「必ず1年間」という断定は誤りです。 - エ: 「有効期限内の証明書のシリアル番号を CRL に記載することがある」
正しいです。CRL は“失効(revoked)された証明書”を列挙するものなので、失効の時点でその証明書がまだ有効期限内ならば、そのシリアル番号は CRL に記載されます(失効したため有効性は失われているが、有効期限の日時は将来である場合がある)。また CRL エントリには revocationDate や失効理由等を含めることができます。
よくある誤解
- 「ルート証明書がブラウザに入っていれば失効確認不要」
→ 信頼(ルートの存在)と失効確認(該当発行証明書が取り消されていないか)は別問題です。信頼できても失効している証明書は使えません。 - 「CRL はすべての証明書の一覧」
→ CRL は失効した証明書のみを列挙します。全発行証明書のリストではありません。 - 「CRL に証明書の有効期限が書かれている」
→ ほとんどの場合、CRL のエントリには失効日時が書かれますが、証明書の持つ有効期限(notAfter)は通常 CRL に記載されません。
補足コラム
CRL の主な構造(RFC 5280 準拠の概念)
- TBSCertList(署名対象部分)
- version
- signature
- issuer
- thisUpdate(この CRL の作成日時)
- nextUpdate(次回更新予定)
- revokedCertificates[](各エントリ)
- userCertificate(証明書のシリアル番号)
- revocationDate(失効日時)
- entryExtensions(reasonCode, invalidityDate 等)
- crlExtensions(CRL 全体に対する拡張、CRLNumber 等)
- signatureAlgorithm / signatureValue(CRL を署名するための情報)
代替技術として OCSP があり、CRL がリスト配布型なのに対し、OCSP は単一証明書の即時応答形式で効率的です。さらに OCSP ステープリングや短期証明書の運用など、失効確認の遅延や帯域問題を緩和する仕組みも普及しています。
FAQ
Q. CRL と OCSP、どちらが優れている?
A. 用途によります。CRL はオフラインでの照会や一括配布に向き、OCSP はリアルタイム照会で応答が小さいためオンライン確認に向きます。現実には両者を使い分けたり、ブラウザ独自の失効リストを併用したりします。
A. 用途によります。CRL はオフラインでの照会や一括配布に向き、OCSP はリアルタイム照会で応答が小さいためオンライン確認に向きます。現実には両者を使い分けたり、ブラウザ独自の失効リストを併用したりします。
Q. CRL の更新頻度は決まっている?
A. 標準で強制される頻度はありません。CRL 内の nextUpdate フィールドで次回更新の目安を示します。運用ポリシーやリスクに応じて頻度を決定します。
A. 標準で強制される頻度はありません。CRL 内の nextUpdate フィールドで次回更新の目安を示します。運用ポリシーやリスクに応じて頻度を決定します。
Q. CRL は改ざんされないのか?
A. CRL は認証局が署名して配布するため、受信者は CRL の署名検証により真正性を確認します。
A. CRL は認証局が署名して配布するため、受信者は CRL の署名検証により真正性を確認します。
関連キーワード: CRL、失効日時、シリアル番号、revocationDate、RFC5280、OCSP、CRL拡張、CRL配布先、CRLNumber、revocationReason

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

