情報処理安全確保支援士 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

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

