ディジタル証明書の有効性はCRLで確認します。

前回の勉強内容

ponsuke-tarou.hatenablog.com

今回の勉強内容 : ディジタル証明書の有効性はどうすればわかるのか?

勉強のきっかけになった問題

特定の認証局が発行したCRLに関する記述のうち,適切なものはどれか。

ア. CRLには,失効したディジタル証明書に対応する秘密鍵が登録される。
イ. CRLには,有効期限内のディジタル証明書のうち失効したディジタル証明書と失効した日時の対応が提示される。>> 正解
ウ. CRLは,鍵の漏えい,破棄申請の状況をリアルタイムに反映するプロトコルである。
エ. 有効期限切れで失効したディジタル証明書は,所有者が新たなディジタル証明書を取得するまでの間,CRLに登録される。
平成27年秋期問2 CRLに関する記述|情報処理安全確保支援士.com

CRLは、有効期限内に失効したディジタル証明書の一覧です。

  • 英語 : Certificate Revocation List
  • 日本語 : 証明書失効リスト
  • CRLに書いてあること : 証明書のシリアル番号 と 失効日

CRLとは有効期限よりも前に失効させたデジタル証明書の一覧です。有効期限よりも前に失効させるというのは、例えば証明書の誤発行や証明書の秘密鍵紛失で悪用されるのを回避するための処置です。認証局では、そのような証明書をCRLに登録して管理します。
www.infraexpert.com

認証局が管理する、失効済み電子証明書の一覧。
CRLの仕様は、電子証明書と同様にX.509の規格で決められています。また、CRLにはリストを発行した認証局電子署名を行っているので、電子証明書と同じく偽造はほぼ不可能といえます。
www.geotrust.co.jp

本来のユーザーから失効の申し出があると、認証局はその情報を CRL に追加する。また、デジタル証明書の記載内容が変更されることもある。こういった場合も、認証局に申請すると CRL に加えることができる。
用語解説辞典|【公式】NTTPC

CRLは認証局(CA)から定期的に最新のものが配布されています。CRLの仕様はデジタル証明書の仕様を定めたITU-T X.509で標準化されています。
www.secomtrust.net

有効期限前に失効される理由は色々あるらしいです。

  • 送信データを暗号化する鍵データが入ったパソコンを紛失した >> 誰かが使わないように失効させる
  • 間違って発行してしまった >> 使わないから失効させる
  • 被発行者の規則違反 >> 証明したくないから失効させる

受け取ったデジタル証明書は、CRLを突き合わせて有効かを確認できます。

方法1. CRLファイルをダウンロードして突き合わせて確認します。

CRLファイルを実際に見てみました。

qiita.com

方法2. OCSPというプロトコルを使ってオンラインで確認します。

  • 英語 : Online Certificate Status Protocol
  • 日本語 : オンライン証明書状況プロトコル

OCSP(Online Certificate Status Protocol)は、ブラウザなどのクライアントが、認証局が提供するOCSPサーバーに対して証明書のシリアル番号を問合せ、OCSPサーバーが証明書のステイタスを返すという仕組みです。
rms-digicert.ne.jp

OCSP は、オンラインで証明書の失効情報を確認するためのプロトコルであり、RFC2560 に規定されています。証明書利用者(OCSP リクエスタ)は、OCSP レスポンダ(OCSP サーバーとも呼ばれる)に失効情報を問い合わせます。OCSP レスポンダは、問い合わせに対して証明書の状態 について、有効(good)、失効(revoked)、不明(unknown) のいずれかとして返します
f:id:ponsuke_tarou:20180411213603p:plain
KI関連技術に関するコンテンツ

デジタル証明書の有効性をリアルタイムで確認するプロトコルOCSPサーバはCA自身や、CRLを集中管理するVAが運営する。OCSPクライアントはサーバに対してデジタル証明書を確認させることによって、自力でのCRL取得や照合の手間を省略できる。
e-words.jp

リアルタイムでディジタル証明書の失効情報を検証し、有効性を確認するプロトコル。対象となるディジタル証明書のシリアル番号をVA(証明書有効性検証局)に送信し、有効性の検証結果を受け取る機能を提供する。
OCSP|情報セキュリティマネジメント試験.com

OCSPレスポンダにサーバが問い合わせをしてその応答をキャッシュしておいて、そのキャッシュを基にクライアントに送信する方法をOCSP Staplingと言います。

OCSP Staplingとは、WebサーバーなどのSSLサーバ証明書を提示するサーバーが認証局OCSPレスポンダーに問合せを行い、そのキャッシュされた結果を、証明書とともにブラウザなどのクライアントに提示するという仕組みです。
このキャッシュされた結果は、サーバーとクライアントのTLS/SSLハンドシェイクの過程でCertificate Status Requestとして利用されます。
rms-digicert.ne.jp

OCSP Stapling(ステープリング)では、クライアントがOCSP要求を行うのではなく、サーバがOCSP要求を行い、その応答をキャッシュする。サーバはキャッシュしたOCSP応答を、サーバ証明書と一緒にクライアントに送信する。これによりクライアントはOCSP responderに問い合わせる必要がなくなり、HTTPS通信の開始を高速化することができる。
https://camo.qiitausercontent.com/106767202f346a246a3401a6e435c2dff007cff1/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f353231382f66616361363436622d346533302d656164642d343238612d6437623066303332613433362e706e67

qiita.com

OCSP の問題のひとつは、SSL ハンドシェイク時にウェブサーバとクライアント間の通信に加えて、クライアントが OSCP サーバ
へ通信するという実質 3 者間の通信になっておりこれが SSL ハンドシェイク時のオーバーヘッドになっていることです。OCSP
テープリングは、ウェブサーバがウェブブラウザの代わりに OSCP レスポンダに問い合わせ、SSL ハンドシェイクの際に OCSP
スポンスをクライアントに提供するというメカニズムです。※ 8 これはすでに IETF RFC6066 で定義されています。
f:id:ponsuke_tarou:20180412000041p:plain
https://www.jp.websecurity.symantec.com/welcome/pdf/wp_ssl_handshake.pdf

実際に見てみました。

qiita.com

CRLを集中管理して検証してくれるのはVAです。

  • 英語 : Validation Authority
  • 日本語 : 検証局
  • 別名 : 証明書有効性検証局

認証局(CA)と違い、デジタル証明書の発行は行わず、検証機能に特化しているためこのように呼ばれる。クライアントからの問い合わせに応じて、CAの公開鍵で署名の正当性を検証したり、証明書の有効期限を確認したりする。
e-words.jp

デジタル証明書の有効性を確認する検証機能のみを行うので、証明書を発行する認証局とは区別する意味合いから異なる名称がついています。VAがCRLを集中管理することで無効な証明書にすばやく対応することができます。
www.secomtrust.net

クライアントからのディジタル証明書の有効性に関する問い合わせに対し、署名の検証、有効期限の確認、CRLの確認などを行い、有効性の可否を応答する役割をもつPKIの機関。
VA|情報セキュリティマネジメント試験.com

f:id:ponsuke_tarou:20180411220714j:plain