Skip to content

MS_CertificateRevocationList

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

証明書失効リスト (CRL)

※ 元 Wiki の「戻る」は 証明書で発生する問題

概要

証明書失効リスト(CRL : Certificate Revocation List)

  • PKI(公開鍵暗号基盤)における失効した(信頼できない)
    公開鍵証明書のリスト(正確には、証明書のシリアル番号のリスト)。
  • 実際の運用において証明書や鍵の管理に間違いがありうるため、
    CRL や他の証明書の有効性検証技術は PKI に必須。
  • CRL は PKI を使ったアプリケーションが証明書の有効性を検証するのに使われる。
  • 以下は、CRL の発行・公開の方法。
    • CRL は定期的に生成され、公開される。
    • 証明書が失効となった場合、即座に CRL を公開することもできる。
    • CRL は CA が適切な証明書付きで発行する。
      • たいていの CRL には次回発行予定日時がある。
      • この日時は発行日時から 24 時間以内であることが多い。

※ この「次回発行予定日時」までは古い CRL がキャッシュされるため、
失効させても即座には反映されない(最大でその間隔ぶん遅れる)。
これが CRL 方式の本質的な弱点。

失効理由

RFC 5280 で定義されている証明書の失効理由

Revoked(失効)

  • 認証局 (CA) が

    • 不正に証明書を発行したことが判明した場合
    • 秘密鍵を紛失したと考えられる場合

    証明書は不可逆に失効とされる。

  • 証明書の発行を受けた者が
    CA の定めた規則に反する行為(文書偽造など)をしていると判明した場合。

  • 最も多い失効理由:秘密鍵が漏洩してしまい、認証の役に立たなくなった場合。

Hold(停止)

再度証明書を有効な状態に戻すことができる場合。

例えば、ユーザーが秘密鍵を紛失したか盗まれた可能性がある場合、
一時的に証明書を停止させ、後日それが間違いで
誰もその間秘密鍵にアクセスできなかったことが判明した場合、
その証明書のシリアル番号は CRL から削除される。

certificateHold取り消せる唯一の理由コード
逆に言うと、他の理由で一度失効させた証明書は元に戻せない。

失効のチェック方法

CRLファイルをダウンロードしてローカルチェック

  • 認証局(CA)から定期的に最新情報が配布される CRL をダウンロード。
  • 証明書のシリアル番号と CRL のシリアル番号を照合して有効性を確認。

※ ダウンロード先は、証明書の CDP(CRL Distribution Point) 拡張に書かれている。

代替手段、OCSPによるオンラインチェック

OCSP : Online Certificate Status Protocol

  • X.509 公開鍵証明書の失効状態を取得するための通信プロトコル
  • CRL ファイルのダウンロードの代替手段として策定された。
  • デジタル証明書の有効性をリアルタイムで確認できる。
役割 内容
OCSP クライアント OCSP サーバ(OCSP レスポンダ)に対し、デジタル証明書の有効性を確認させる
OCSP サーバ(OCSP レスポンダ) 検証局 (VA:Validation Authority)

※ 問い合わせ先は証明書の AIA(Authority Information Access) 拡張に書かれている。

リアルタイム性の確保

方式 特徴
CRL ファイルをダウンロードして照合する方式なので課題も多い(更新タイミング、ファイルの保存場所、サイズ肥大)
OCSP リアルタイムに問い合わせられるが、検証のたびに CA 側へ通信が発生する(可用性・プライバシー・遅延の問題)

その他のプロトコル(サーバ側で検証まで代行する方式)

  • DPD + DPV
    • 証明書パス構築(DPD:Delegated Path Discovery)
    • 証明書パス検証(DPV:Delegated Path Validation)
  • SCVP(Simple Certificate Validation Protocol)
    • シンプル証明書検証プロトコル
    • 有効期限とパスにおける正当性も含めてチェックする。

補足(最新化): OCSP の弱点(毎回の問い合わせ)は OCSP ステープリングで解決されている。 サーバがあらかじめ OCSP レスポンスを取得し、 TLS ハンドシェイク時に証明書と一緒に提示する方式で、 クライアントは CA へ問い合わせずに失効確認できる。

さらに近年は、

  • Chrome の CRLSets、Firefox の CRLite のように、 ブラウザが失効情報を配布する方式
  • 証明書の有効期間そのものを短くして失効確認の重要度を下げる方向 (Let's Encrypt は 90日、業界標準も 398日 → 47日へ短縮の方向)

が主流になりつつある。OCSP は Let's Encrypt が 2025年に提供終了するなど、 縮小方向にある。

参考


Tags: セキュリティ, 暗号化, 証明書

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally