証明書失効リスト(しょうめいしょしっこうリスト、: Certificate Revocation List, CRL)は、公開鍵基盤 (PKI) における失効した(信頼できない)公開鍵証明書のリスト(正確には、証明書のシリアル番号のリスト)である。

RFC 5280 で定義されている証明書の失効理由は、以下の 2 つに大別できる。

Revoked(失効)
例えば、認証局 (CA) が不正に証明書を発行したことが判明した場合や、秘密鍵を紛失したと考えられる場合、証明書は不可逆に失効とされる。また、証明書の発行を受けた者がCAの定めた規則に反する行為(文書偽造など)をしていると判明した場合も失効とされることがある。最も多い失効理由は、秘密鍵が漏洩してしまい、認証の役に立たなくなった場合である[要出典]
Hold(停止)
有効な状態に戻すことができる。例えば、ユーザーが秘密鍵を紛失したか盗まれた可能性があると考えたときに一時的に証明書を停止させ、後日それが間違いで誰もその間秘密鍵にアクセスできなかったことが判れば、再度証明書を有効にできる。その場合、その証明書のシリアル番号はCRLから削除されることがある。

CRLは定期的に生成され、公開される。また、証明書が失効となった場合、即座にCRLを公開することもできる。CRLはCAが適切な証明書付きで発行する。たいていのCRLには次回発行予定日時がある。この日時は発行日時から 24 時間以内であることが多い[要出典]。CRLはPKIを使ったアプリケーションが証明書の有効性を検証するのに使われる。

DNS偽装DoS攻撃を防ぐため、CRLには発行者のデジタル署名が付与されている。たいていのCRLの発行者とCAは同一で、同じ鍵を共有するが、それぞれ別々で違う鍵を使うこともできる。CRLを使う前にその有効性を検証するためには、CRL発行者の証明書が必要であり、それは通常公共のディレクトリ・サービスにある。

証明書の失効日時は、CRLには含まれないこともある。期限切れの証明書は全て無効であると見なせるが、期限が切れていない証明書が必ずしも有効とは限らない。実際の運用において証明書や鍵の管理に間違いがありうるため、CRLや他の証明書の有効性検証技術はPKIに必須である。注目すべき事例として、マイクロソフトの証明書が誤ってある個人に発行されたことがある。その人物は ActiveX Publisher Certificate システムを管理しているCA(ベリサイン)にマイクロソフトを装ってアクセスすることに成功した。マイクロソフトは暗号サブシステムにパッチを当て、その証明書が使われる前に状態をチェックする必要があると判断した。短期的修正として、関連するマイクロソフトのソフトウェア(主に Windows)にパッチが発行され、問題の2つの証明書が必ず「失効」とされるようにした。

CRLが用意される証明書は、X.509/公開鍵証明書であることが多い(最も多く使われているPKI手法であるため)。

全てのCRLにまつわる問題

編集

証明書がどこにどのように保管されていても、その証明書を使う際には必ず検証しなければならない。さもないと、失効した証明書を誤って有効とする可能性がある。つまりPKIをうまく使うには、現在のCRLに必ずアクセスしなければならない。このようなオンラインでの検証必要性は、共通鍵暗号プロトコルを使ったPKIの主な利点である証明書の「自己認証性」を無効にする。ケルベロス認証もオンラインサービス(ケルベロスの場合は鍵配布センタ)の存在に依存している。

CRLが必要だということは、何者か(あるいは何らかの組織)が方針を強制する必要があることを意味しており、運用方針に反する証明書を失効させる必要があることを意味している。証明書が間違って撤回されるとしたら、大きな問題が生じる。認証局は証明書発行の運用方針を強制すると同時に、同じ運用方針を解釈して失効の可否や時期を決定する責任も負う。

証明書を受け入れる前にCRL(または他の証明書状態サービス)を使う必要があるということは、PKIに対するDoS攻撃の可能性を生じる。有効なCRLがないために証明書を受け入れられなかった場合、証明書に依存している全てのアクションができなくなる。このような問題はケルベロス認証にもあり、現在の認証トークンの検索に失敗するとシステムにアクセスできなくなる。包括的な解決策はまだ知られていないが、様々な観点でのワークアラウンドが考案されており、その一部は実際に使われている。

CRLの代替手段として、Online Certificate Status Protocol (OCSP) という証明書検証プロトコルがある。OCSPはネットワークの帯域幅を浪費しないという利点があり、多数の状態検証をほぼリアルタイムに実施できる。

外部リンク

編集
  • RFC 5280 - Internet X.509 Public Key Infrastructure Certificate

関連項目

編集