説明

証明書の有効性確認方法、証明書検証サーバ、プログラム及び記憶媒体

【課題】証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する検証サーバ、プログラム及び記憶媒体を提供する。
【解決手段】証明書検証サーバ13により、任意の端末装置11から証明書の有効性確認依頼を受信し、第一の認証局から前第二の認証局までの認証パスを構築し、該認証パスの検証を行い、該検証結果を前記証明書の有効性確認依頼元の端末装置11へ送信する、証明書の有効性確認方法であって、前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知し、関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得し、前記取得情報を記憶部に格納し、または前記取得情報に基づき、前記記憶部に記憶されている該当情報を更新し、前記記憶部の情報を用いて、前記認証パスの構築と前記認証パスの検証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵認証基盤(Public Key Infrastructure;以下、「PKI」と記述する)において、証明書の有効性を確認するのに好適な技術に関する。
【背景技術】
【0002】
政府認証基盤(GPKI)をはじめとして、電子文書の作成者を明らかにし、かつ、当該電子文書が改ざんされていないことを保証するために、PKIを利用したシステムが普及してきている。PKIを利用したシステムでは、電子文書に対して、電子署名を行う者(以下、「署名者」と記述する)のみが保有する、秘密鍵(Private Key)と呼ばれる鍵によって電子署名が施される。電子署名が施された電子文書を受信した場合には、上記電子署名を検証することで、電子文書の作成者と、当該電子文書が改ざんされていないこと、を確認する。
【0003】
高い信頼が要求される用途では、電子署名の検証を行うためには、認証局(Certificate Authority;以下、「CA」と記述する)が発行した、上記署名者の公開鍵証明書(以下、「証明書」と記述する)に含まれている、公開鍵と呼ばれる鍵によって、当該電子署名を検証するだけではなく、上記署名者の証明書が電子署名を検証する者(以下、「検証者」と記述する)にとって有効な証明書であるか否か、を確認する必要がある。上記署名者の証明書が上記検証者にとって有効であるか否か、を検証するには、(1)認証パスの構築、(2)認証パスの検証、という、処理が必要である。
【0004】
(1)認証パスの構築の処理において、検証者の信頼するCA(トラストアンカ;以下、「トラストアンカ」は「TA」と記述する)から署名者の証明書を発行したCAまでの信頼の連鎖である、証明書チェーンを構築する。証明書チェーンは、証明書の列であり、証明書の主体者名が次の証明書の発行者名に一致し、また、証明書の主体者の鍵識別子が次の証明書の発行者の鍵識別子に一致している。検証者は、各CAのリポジトリにアクセスして、上記証明書を取得し、上記確認を行う。特に、異なるドメインのCA同士が接続したPKIモデルにおいては、CA同士がお互いに相互認証証明書と呼ばれる証明書を発行し合う。そこで、上記PKIモデルのような複数の異なるドメインに渡る認証パスを構築する場合、証明書チェーンに相互認証証明書が含まれる。認証パスを構築する方法については、非特許文献1に詳細に記述されている。
【0005】
上記(2)認証パスの検証の処理において、上記(1)認証パスの構築の処理で構築した認証パス内の証明書チェーンの証明書が全て有効であることを確かめる。証明書が失効されているか否かを判定するには、CAが発行する証明書失効リスト(Certificate Revocation List;以下、「CRL」と記述する)やOCSP(Online Certificate Status Protocol)レスポンダが利用される。検証者は、CAのリポジトリにアクセスして取得したCRLに、付与されている署名をCAの証明書を利用して検証を行う。または、OCSPレスポンダにOCSPリクエストを送信して取得したOCSPレスポンスに、付与されている署名をOCSPレスポンダの証明書を利用して検証を行う。証明書が添付されていない場合は、CA証明書、または、OCSPレスポンダの証明書をCAのリポジトリにアクセスして取得する。認証パスを検証する方法については、非特許文献2に詳細に記載されている。
【0006】
証明書の有効性を検証するモデルには、検証者自身が証明書の有効性を確認するエンドエンティティモデルと、検証者に代わってオンラインで証明書の有効性を確認する機能を提供する証明書検証サーバを利用する証明書検証サーバモデルがある。証明書検証サーバモデルの仕様は非特許文献2に記述されている。
【0007】
上記証明書検証サーバモデルは、上記エンドエンティティモデルに比べて、次のような利点がある。まず、上記証明書検証サーバモデルでは、上記認証パスを構築する認証パス構築機能をクライアントに実装する必要がないため、クライアントの証明書検証プログラムを小さくすることができる。また、クライアントは上記証明書検証サーバの判定結果を信頼するため、上記証明書検証サーバの設定を変更するだけで、システム構成の変化に柔軟に対応できる。
【0008】
証明書の有効性確認を行う毎に、証明書検証サーバが認証パスを構築し、また、CAから上記CRLを取得するのは効率が悪いため、特許文献1では、証明書検証サーバが上記CRLや上記認証パスを登録することにより証明書の有効性確認処理を高速化する技術が開示されている。
【0009】
また、特許文献2では、上記CRLや上記OCSPレスポンダを利用して得られた証明書の有効性確認結果をキャッシュに記憶し、あらかじめサーバが定めたキャッシュの利用条件に適合した場合、記憶された有効性確認結果データを有効性確認結果としてそのまま利用する技術が開示されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2002−72876号公報
【特許文献2】特開2002−163395号公報
【非特許文献】
【0011】
【非特許文献1】Internet X.509 Public Key Infrastructure Certification Path Building (RFC4158), 「 2. Certification Path Building」, 2005年9月, [online], [平成21年6月16日検索], インターネット<URL:http://www.ietf.org/rfc/rfc4158.txt>
【非特許文献2】Internet X.509 Public Key Infrastructure, Certificate and Certificate Revocation List (CRL) Profile (RFC5280), 「 6. Certificate Path Validation」, 2008年5月, [online], [平成21年6月16日検索], インターネット<URL:http://www.ietf.org/rfc/rfc5280.txt>
【非特許文献3】Delegated Path Validation and Delegated Path Discovery Protocol Requirements (RFC3379), 2002年9月, [online], [平成21年6月16日検索], インターネット<URL:http://www.ietf.org/rfc/rfc3379.txt>
【発明の概要】
【発明が解決しようとする課題】
【0012】
証明書の有効性確認処理の中で、証明書チェーンの証明書の取得、CRLの取得、OCSPレスポンダへの問い合わせ、CRL検証のための証明書の取得、OCSPレスポンスの検証のための証明書の取得は、外部ネットワークへのアクセスが必要となるため、証明書検証サーバにとって、時間的に負荷のかかる処理となっている。
【0013】
上記特許文献1では、証明書検証サーバが、証明書の有効性確認処理毎にCRLを取得する必要がないように、初めて取得したCRLを登録し、有効性確認処理において登録したCRLを利用する機能が記述されている。しかし、OCSPレスポンダから提供されるOCSPレスポンスを登録する機能が記述されていない。また、認証パス構築時に取得した、証明書チェーンの証明書、または、CRLやOCSPレスポンスを検証するための証明書を、登録して利用する機能が記述されていない。そのため、OCSPレスポンダを利用して失効情報を提供するCAが発行する証明書が認証パスに含まれている場合、証明書検証サーバは、証明書の有効性確認処理毎に、OCSPレスポンダに問い合わせを行う必要があり、非効率的である。また、証明書の有効性確認処理毎に、証明書検証サーバは、CAのリポジトリにアクセスし、認証パス構築で必要となる証明書チェーンの証明書や、CRLやOCSPレスポンスを検証するための証明書を、取得する必要があり、非効率的である。
【0014】
また、上記特許文献2では、CRLやOCSPレスポンダを利用して得られた証明書の有効性確認結果をキャッシュする機能と、証明書の発行者、所有者、証明書有効期間などをもとに検証者があらかじめ設定した、キャッシュ有効期間に基づいて、キャッシュした有効性確認結果を更新する機能が記述されている。しかし、検証者の判断でキャッシュ有効期間を設定していることから、CAの鍵更新やCAの危殆化など、CA側の原因で、キャッシュされた証明書の有効性確認結果が、キャッシュ有効期間を経過する前に有効ではなくなる場合がある。上記特許文献2では、そのような場合に、キャッシュした有効性確認結果を更新する必要があることを検知する手段がないため、安全性に問題がある。CA側の原因として、例えば、CAの鍵更新によりCRLの発行者やOCSPレスポンダが新しいCAに変更になる場合や、CAの危殆化により該当するCAが発行した全て証明書が失効になる場合が想定される。
【0015】
本発明は上記課題に鑑みてなされたものであり、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する証明書検証サーバ、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0016】
本発明に係わる証明書の有効性確認方法は、複数の端末装置及び複数の認証局とネットワークに接続された証明書検証サーバにより、任意の端末装置からネットワークを介して証明書の有効性確認依頼を受信し、第一の認証局から第二の認証局までの認証パスを構築し、該認証パスの検証を行い、該検証結果を前記証明書の有効性確認依頼元の端末装置へ前記ネットワークを介して送信する処理を実施する。そして、前記証明書検証サーバは、前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知する処理と、関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得する処理と、前記取得情報を記憶部に格納し、または前記取得情報に基づき、前記記憶部に記憶されている該当情報を更新する処理と、前記記憶部の情報を用いて、前記認証パスの構築と前記認証パスの検証を行う処理とを実施することを特徴とする。前記証明書検証サーバは、次回以降の証明書の有効性確認処理の際に、再度、認証局に問い合せすることなく、前記記憶部の情報を用いて、前記認証パスの構築と検証を行うので、証明書の有効性確認処理を効率的に行うことができる。また、前記証明書検証サーバは、前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知し、関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得し、この取得情報を前記記憶部に反映できるので、証明書の有効性確認処理を安全に行うことができる。
【0017】
また、本発明に係わる証明書検証サーバは、前記証明書の有効性確認方法を実施することを特徴とする。
【0018】
また、本発明に係わるプログラムは、前記証明書の有効性確認方法をコンピュータに実行させることを特徴とする。
【0019】
また、本発明に係わる記憶媒体は、前記プログラムをコンピュータが読み取り可能に記憶されたことを特徴とする。
【発明の効果】
【0020】
本発明によれば、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する証明書検証サーバ、プログラム及び記憶媒体を提供することができる。
【図面の簡単な説明】
【0021】
【図1】本発明を適用する証明書検証システムの全体構成を示す図である。
【図2】端末装置11の構成を示す図である。
【図3】CRLを利用して失効情報を提供する場合のCA装置12の構成を示す図である。
【図4】OCSPレスポンダを利用して失効情報を提供する場合のCA装置12の構成を示す図である。
【図5】検証サーバ13の構成を示す図である。
【図6】端末装置11、CA装置12、検証サーバ13の各々のハードウェア実現例を示す図である。
【図7】検証サーバ13が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である
【図8】CA装置12が鍵更新した場合における、検証サーバ13が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である。
【図9】設定情報保持部410に格納されている、OCSPレスポンスのキャッシュの利用条件を設定したテーブルの構成を示す図である。
【図10】OCSPレスポンス保持部48に格納されている、OCSPレスポンスの情報を記憶したテーブルの構成を示す図である。
【図11】OCSPレスポンス保持部48に格納されている、OCSPレスポンスの情報を記憶したテーブルの他の構成を示す図である。
【図12】検証サーバ13における、通信部40c、定期自動更新部41、CRL更新部42、OCSPレスポンス更新部43、証明書更新部44、証明書検証部45の関係を示す図である。
【図13】証明書検証部45が行う証明書の有効性確認処理を示すフローチャートである。
【図14】証明書検証部45が行う認証パス構築処理(図13、ステップS1002)の詳細を示すフローチャートである。
【図15】証明書検証部45が行う新規の認証パス構築処理(図14、ステップS2003)の詳細を示すフローチャートである。
【図16】認証パス検証部45が行う認証パス検証処理(図13、ステップS1005)の詳細を示すフローチャートである。
【図17】同じく、認証パス検証部45が行う認証パス検証処理(図13、ステップS1005)の詳細を示すフローチャートである。
【図18】同じく、認証パス検証部45が行う認証パス検証処理(図13、ステップS1005)の詳細を示すフローチャートである。
【図19】証明書検証部45が行うCRL検証処理(図17、ステップS4010)の詳細を示すフローチャートである。
【図20】証明書検証部45が行うOCSPレスポンス検証処理(図18、ステップS4016)の詳細を示すフローチャートである。
【図21】証明書更新部44が行う証明書保持部49の更新処理を示すフローチャートである。
【図22】CRL更新部42が行うCRL保持部47の更新処理を示すフローチャートである。
【図23】OCSPレスポンス更新部43が行うOCSPレスポンス保持部48の更新処理を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下に、本発明の実施形態について、図面を参照して、詳細に説明する。
【0023】
図1は、本発明を適用する証明書検証システムの全体構成を示す図である。
【0024】
本発明を適用する証明書検証システムは、電子的に手続を行う複数の端末装置11〜端末装置11(「端末装置11」と総称する)と、証明書発行及び失効業務を行うCA装置12〜CA装置12(「CA装置12」と総称する)と、証明書の失効情報を提供する証明書検証サーバ(以下、「検証サーバ」と記述する)13と、それぞれを接続するインターネット等のネットワーク14からなる。
【0025】
次に、図1の証明書検証システムを構成する各装置について説明する。
【0026】
図2は、端末装置11の構成を示す図である。
【0027】
端末装置11は、処理部20aと記憶部20bと、ネットワーク14を介して他装置と通信を行うための通信部20cと、端末装置11のユーザが作成した電子文書や他の端末装置11から受け取った電子文書の入出力やユーザからの指示の受付を行う入出力部20dと、を有する。
【0028】
処理部20aは、電子文書に対して署名を付与し、署名付き文書を作成する署名付き文書作成部21と、署名付き電子文書の署名及び証明書の検証を行う署名・証明書検証部22と、端末装置11の各部を統括的に制御する制御部23と、を有する。
【0029】
記憶部20bは、ユーザが作成した電子文書を保持する電子文書保持部24と、署名を生成するための秘密鍵と、これと対になる公開鍵の証明書と、当該端末装置11を利用するユーザが信頼するCAのCA証明書を保持する鍵保持部25と、他の端末装置11から受け取った署名付き電子文書と証明書を保持する検証対象保持部26と、を有する。
【0030】
このような構成において、制御部23は、ユーザから、入出力部20dを介して電子文書保持部24に保持してある電子文書を他のユーザに送信すべき旨の指示を受け付けると、当該電子文書を電子文書保持部24から読み出し、これを署名付き文書作成部21に渡す。署名付き文書作成部21は、鍵保持部25に保持されている秘密鍵を用いて、渡された当該電子文書に対する署名を生成する。そして、渡された電子文書に生成した署名を付与して署名付き電子文書を作成する。制御部23は、署名付き文書作成部21で作成された署名付き電子文書と、鍵保持部25に保持されている証明書とを、通信部20cを介して、ユーザから指示された送信先の端末装置11へ送信する。
【0031】
また、制御部23は、通信部20cを介して、他の端末装置11から署名付き電子文書と証明書を受け取ると、これらを関連づけて検証対象保持部26に保持させると共に、これらの検証要求を署名・証明書検証部22に通知する。
【0032】
これを受けて、署名・証明書検証部22は、検証対象保持部26に保持されている署名付き電子文書の署名を、署名付き電子文書とともに受け取った証明書を用いて検証する。そして、署名・証明書検証部22は、署名付き電子文書の署名検証に使用した当該証明書を検証対象証明書として、鍵保持部25に保持する、ユーザが信頼するCAのCA証明書を用いて検証する。署名・証明書検証部22は、当該検証対象証明書の検証処理において、当該検証対象証明書の署名の検証や、有効期間が切れていない事の確認や、その他制限事項の検証や、当該検証対象証明書が失効しているかどうかを確認する。
【0033】
署名・証明書検証部22は、当該検証対象証明書が失効しているかどうかの確認を行うために、検証サーバ13に対して検証要求を送信する。そして、全ての検証が成功し、かつ、検証サーバ13から当該証明書が失効されていない旨の検証結果を受信した場合に、当該検証対象証明書が有効であり、署名付き電子文書が正当なものと扱い、必要に応じて入出力部20dから署名付き文書の署名及び証明書の検証結果を出力する。
【0034】
図3は、CRLを利用して失効情報を提供する場合のCA装置12の構成を示す図である。図4は、OCSPレスポンダを利用して失効情報を提供する場合のCA装置12の構成を示す図である。
【0035】
CA装置12は、処理部30aと、記憶部30bと、ネットワーク14を介して他装置と通信を行うための通信部30cと、証明書等の入出力や当該CA装置12の操作者からの指示の受付や処理結果の出力を行う入出力部30dと、を有する。
【0036】
処理部30aは、証明書を発行する発行部31と、発行部31が発行した証明書の管理を行う管理部32と、CA装置12の各部を統括的に制御する制御部33と、を有する。なお、図4に示すCA装置12は、証明書有効性確認部も有する。
【0037】
記憶部30bは、発行部31が発行した証明書を保持する証明書データベース(DB)34と、証明書データベース34に保持されている各証明書の発行先が記述されていた発行先管理リストを保持する発行先管理リスト保持部35と、CRL保持部36と、を有する。なお、図4に示すCA装置12は、CRL保持部36を有しない。
【0038】
このような構成において、制御部33は、入出力部30dあるいは通信部30cを介して証明書の発行依頼を受け付けると、その旨を発行部31に伝える。これを受けて、発行部31は、これに対する証明書を作成する。この際、CAの秘密鍵で証明書に署名をする。そして、作成した証明書を入出力部30dあるいは通信部30cを介して、郵送あるいは通信により、発行依頼元に渡す。また、この証明書を証明書データベース34に登録すると共に、その発行先(つまり発行依頼元)の情報を、発行先管理リスト保持部35に保持されている発行先管理リストに記載する。
【0039】
また、制御部33は、入出力部30dあるいは通信部30cを介して、証明書の失効依頼を受け付けると、その旨を管理部32に伝える。これを受けて、管理部32は、失効対象の証明書を証明書データベース34から削除すると共に、発行先管理リスト保持部35に保持されている当該証明書の情報に失効状態と失効理由を追記する。
【0040】
そして、図3に示すCA装置12の管理部32は、失効依頼により証明書データベース33から削除した証明書のシリアルナンバー、を記載した失効証明書リスト(CRL)を、定期的に作成し、これをCRL保持部36に保持させる。なお、作成したCRLには、当該CA装置12が発行した証明書のうち、有効期限内にもかかわらず失効した証明書のシリアルナンバーと、当該証明書が失効した日時と、当該証明書が失効した理由がリストに記載される。さらに、CRLには、次回のCRL作成予定時刻が記載され、当該CA装置12の秘密鍵を用いて署名が付与される。
【0041】
また、図3に示すCA装置12の制御部33は、通信部30cを介して、他装置よりCRL取得要求を受け取ると、CRL保持部36に保持されているCRLを、通信部30cを介して、問い合わせをした他装置に送信する。
【0042】
あるいは、図4に示すCA装置12の制御部33は、通信部30cを介して、他装置より証明書の失効情報を問い合わせするためのOCSPリクエストを受け取ると、証明書有効性確認部37が、発行先管理リスト保持部35に保持されている証明書の情報から当該証明書が失効しているか否かを表すOCSPレスポンスを作成し、通信部30cを介して、問い合わせをした他装置に送信する。なお、OCSPレスポンスには、当該証明書の状態が記載され、当該CA装置12の秘密鍵あるいはOCSPレスポンダの秘密鍵を用いて署名が付与される。
【0043】
図5は、検証サーバ13の構成を示す図である。
【0044】
検証サーバ13は、処理部40aと、記憶部40bと、ネットワーク14を介して他装置と通信を行うための通信部40cと、証明書等の入出力や検証サーバ13の操作員からの指示の受付けを行う入出力部40dと、を有する。
【0045】
処理部40aは、定期自動更新部41と、CRL更新部42と、OCSPレスポンス更新部43と、証明書更新部44と、証明書検証部45と、を有する。
【0046】
記憶部40bは、認証パス保持部46と、CRL保持部47と、OCSPレスポンス保持部48と、証明書保持部49と、設定情報保持部410と、を有する。
【0047】
定期自動更新部41は、CRL保持部47に記憶されているCRLを定期的に更新する時間やCRLに記載されている次回更新日時に達するとCRL更新部42に通知する。また、定期自動更新部41は、OCSPレスポンス保持部48に記憶されているOCSPレスポンスに関して、次期更新時刻に達するとOCSPレスポンス更新部43に通知する。また、定期自動更新部41は、証明書保持部49に記憶されている証明書を定期的に更新する時間に達すると、証明書更新部44に通知する。CRLとOCSPレスポンスの定期更新時間は、設定情報保持部410に記憶されている。また、OCSPレスポンスの次期更新時期は、OCSPレスポンスと共に、OCSPレスポンス保持部48に記憶されている。
【0048】
CRL更新部42は、定期自動更新部41から通知を受けると、当該CRLの発行元から最新のCRLを取得し、CRL保持部47に記憶されているCRLを更新する。また、CRL更新部42は、証明書更新部44からのCRL更新通知を受けて、CRL保持部47に記憶されているCRLを更新する。
【0049】
OCSPレスポンス更新部43は、定時自動更新部41から通知を受けると、OCSPレスポンス保持部48にOCSPレスポンスと関連付けて記憶されているOCSPレスポンダのアドレスにアクセスして最新のOCSPレスポンスを取得し、OCSPレスポンス保持部48に保持されているOCSレスポンスの情報を更新する。なお、OCSPレスポンスの更新間隔は、入出力部40dから検証サーバ13の操作員によりCA装置12毎に設定され、設定情報保持部410に記憶されている。また、OCSPレスポンス更新部43は、証明書更新部44からのOCSPレスポンス更新通知を受けて、OCSPレスポンス保持部48に記憶されているOCSPレスポンスを更新する。
【0050】
証明書更新部44は、定時自動更新部41から通知を受けると、当該証明書を発行しているCA装置12の証明書DB34から証明書を取得する。なお、当該証明書が更新されている場合は、証明書更新部44は、証明書保持部49に記憶されている証明書を更新する。また、当該証明書の有効期間が切れている場合や失効している場合、証明書更新部44は、証明書保持部49に記憶されている証明書を削除する。また、証明書更新部44は、証明書検証部45からの証明書更新通知を受けて、証明書保持部49に記憶されている証明書を更新し、更にCRL更新通知及びOCSPレスポンス更新通知をCRL更新部42及びOCSPレスポンス更新部43へ通知する。
【0051】
証明書検証部45は、通信部40cを介して、端末装置11から証明書検証要求を受け付けると、認証パス保持部46に記憶されている認証パスやCRL保持部47に記憶されているCRLやOCSPレスポンス保持部48に記憶されているOCSPレスポンスや証明書保持部49に記憶されている証明書を利用して、有効性確認対象の証明書から検証者のTAまでの認証パスを構築し、認証パス中の証明書の有効性を順に検証する。また、検証サーバ13の署名を付与した証明書の有効性確認結果を、通信部40cを介して、証明書検証要求元の端末装置11に送信する。
【0052】
なお、図2〜図5に示す端末装置11、CA装置12、検証サーバ13の各々は、例えば、図6に示すような、CPU51と、メモリ52と、ハードディスク等の外部記憶装置53と、CD−ROM等の可搬性を有する記憶媒体59から情報を読み取る読取装置54と、ネットワーク14を介して他装置と通信を行うための通信装置55と、キーボードやマウス等の入力装置56と、モニタやプリンタ等の出力装置57と、これらの各装置間のデータ送受を行う内部通信線(例えば、バス)50とを備えた、一般的な電子計算機(コンピュータ)上に構築できる。
【0053】
そして、CPU51が、外部記憶装置53からメモリ52上にロードした所定のプログラムを実行することにより、上述の各処理部を実現できる。すなわち、通信部20c、30c、40cは、CPU51が通信装置55を利用することにより、入出力部20d、30d、40dは、CPU51が入力装置56や出力装置57や読取装置54を利用することにより、そして、記憶部20b、30b、40bは、CPU51がメモリ52や外部記憶装置53を利用することにより実現される。また、処理部20a、30a、40aは、CPU51のプロセスとして実現される。なお、処理部20a、30a、40aは、ハードウェアにより実現しても良い。
【0054】
上記所定のプログラムは、予め外部記憶装置53に格納されていても良いし、上記電子計算機が利用可能な記憶媒体59に格納されており、読取装置54を介して、必要に応じて読み出され、あるいは、上記電子計算機が利用可能な通信媒体であるネットワークまたはネットワーク上を伝搬する搬送波を利用する通信装置55と接続された他の装置から、必要に応じてダウンロードされて、外部記憶装置53に導入されるものであっても良い。
【0055】
図7と図8は、検証サーバ13が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である。図8は、CA装置12が鍵更新をした場合のモデルである。
【0056】
図7において、CA装置12は、CRLを利用して失効情報を提供し、CA装置12に相互認証証明書63を発行している。一方、CA装置12は、OCSPレスポンダを利用して失効情報を提供し、端末装置11にエンドエンティティ(以下、「エンドエンティティ」は「EE」と記述する)証明書61を、また、端末装置11にEE証明書61を、また、端末装置11にEE証明書61を発行している。検証サーバ13は、自己署名証明書62をTAとするEE証明書61の有効性確認要求を受け付けた場合、CA装置12の証明書DB34にアクセスするなどして、TAからEE証明書61までの認証パスを構築する。証明書チェーンは、「相互認証証明書63→EE証明書61」となる。次に、検証サーバ13は、相互認証証明書63が失効であるか否かを確認するために、CA装置12のCRL保持部36に記憶されているCRLを取得し、該当するシリアル番号がCRLに記載されていないか確認するとともに、EE証明書61が失効であるか否かを確認するために、CA装置12の証明書有効性確認部37に問い合わせを行い、証明書の状態を確認し、認証パスの検証を行う。なお、構築した認証パスは、検証サーバ13で管理できるように、TAのDN(Distinguished Name)65の列にTAであるCA装置12を、認証パス情報66の列に「CA装置12―CA装置12」を記述して、認証パス保持部46に記憶される。
【0057】
図8において、CA装置12は、図7と同様である。一方、CA装置12は、OCSPレスポンダを利用して失効情報を提供し、また、CA装置12が鍵更新を行う一世代前のCA装置12にリンク証明書64を、CA装置12が鍵更新を行う二世代古いCA装置12にリンク証明書64を発行している。また、CA装置12は、端末装置11にEE証明書61を、また、端末装置11にEE証明書61を、また、端末装置11にEE証明書61を発行している。検証サーバ13は、自己署名証明書62をTAとするEE証明書61の有効性確認要求を受け付けた場合、検証サーバ13は、CA装置12の証明書DB34にアクセスするなどして、TAからEE証明書61までの認証パスを構築する。証明書チェーンは、「相互認証証明書63→リンク証明書64→リンク証明書64→EE証明書61」となる。次に、検証サーバ13は、相互認証証明書63、リンク証明書64、リンク証明書64が失効であるか否かを確認するために、CA装置12のCRL保持部36に記憶されているCRLを取得し、該当するシリアル番号がCRLに記載されていないか確認するとともに、EE証明書61が失効であるか否かを確認するために、CA装置12の証明書有効性確認部37に問い合わせを行い、証明書の状態を確認し、認証パスの検証を行う。なお、構築した認証パスは、検証サーバ13で管理できるように、TAのDN65の列にTAであるCA装置12を、認証パス情報66の列に「CA装置12―CA装置12―CA装置12―CA装置12」を記述して、認証パス保持部46に記憶される。
【0058】
図9は、設定情報保持部410に格納されている、OCSPレスポンスのキャッシュの利用条件を設定したテーブルの構成を示す図である。
【0059】
証明書に記載されている発行者のDNを、発行者のDN71の列に記憶する。また、発行者のDN71の列に記憶されているCA装置12、が応答するOCSPレスポンスに、次に証明書の状態に関する最新情報が提供可能な時(NextUpdate)が記載されている場合は、nextUpdateの記載有無72の列に「あり」を記憶し、一方、記載されていない場合は、「なし」を記憶する。また、発行者のDN71の列に記憶されているCA装置12、が発行するCA証明書あるいはEE証明書のキャッシュの利用を認める場合は、キャッシュ利用可否73の列に「可」を、また、キャッシュの利用を認めない場合は、「否」をそれぞれ記憶する。また、キャッシュ利用可否73の列に「可」を記憶し、キャッシュを一定間隔で更新する場合は、キャッシュ有効期間74の列にキャッシュを有効とする時間を、CA証明書あるいはEE(End Entity)証明書について記憶する。また、キャッシュ利用可否73の列に「可」を記憶し、キャッシュを特定の時期で更新する場合は、キャッシュ有効期間74の列にキャッシュを有効とする期限を、CA証明書あるいはEE証明書について記憶する。
【0060】
76から710の行に、CA装置12が発行する証明書に対するOCSPレスポンスのキャッシュの利用条件をそれぞれ記憶する。76の行に記憶されているCA装置12が発行したCA証明書のキャッシュは、登録から48時間以内に更新されて、EE証明書のキャッシュはnextUpdateに達すると更新される。また、77の行に記憶されているCA装置12、が発行したCA証明書のキャッシュは、登録から48時間以内に更新されて、EE証明書のキャッシュは毎日7時に更新される。また、78の行に記載されているCA装置12、が発行したCA証明書とEE証明書はキャッシュされない。また、79の行には、発行者のDN71に記憶されていないCA装置12の中で、OCSPレスポンスにnextUpdateを記載していない場合の条件を記憶する。また、710の行には、発行者のDN71に記憶されていないCA装置12の中で、OCSPレスポンスにnextUpdateを記載している場合の条件を記憶する。
【0061】
図10と図11は、OCSPレスポンス保持部48に格納されている、OCSPレスポンスの情報を記憶したテーブルの構成を示す図である。図10では、OCSPレスポンスの証明書の状態が有効であるリストを同じテーブルで管理する場合を、図11では異なるテーブルで管理する場合を、それぞれ示す。
【0062】
発行者DN81の列に、証明書に記載されている発行者のDNを記載する。また、シリアル番号82の列に失効確認を行った証明書のシリアル番号を記憶する。また、OCSPレスポンダアドレス83の列に、検証サーバ13が問い合わせたOCSPレスポンダのアドレスを記憶する。また、次期レスポンス更新時刻84の列に、図9で示したOCSPレスポンスの利用条件とレスポンス登録時刻85の列を元に算出された、次期レスポンス更新時刻84を記憶する。また、レスポンスデータ86の列に、CA装置12が応答したOCSPレスポンスデータを記憶する。また、有効フラグ87の列に、OCSPレスポンスに記載されている証明書の状態が有効である場合は、「1」を記憶し、証明書の状態が無効あるいは不明である場合は、「0」を記憶する。なお、図11は、証明書の状態が有効である場合と、証明書の状態が無効あるいは不明である場合で、それぞれ異なるテーブルで管理するため、有効フラグ87の列は存在しない。
【0063】
88から93の行は、各CA装置12に問い合わせを行った際に取得したOCSPレスポンス、をキャッシュした例を示す。88、89、90の行のCA装置12が発行した証明書に対するOCSPレスポンスのキャッシュは、キャッシュの利用要件を示した図9の76の行を用いて記憶されたものである。また、91、93の行のCA装置12が発行した証明書に対するOCSPレスポンスのキャッシュは、図9の発行者のDN71の行に該当するDNが記憶されていないため、79あるいは710の利用条件を用いて記憶されたものである。また、92の行のCA装置12が発行した証明書に対するOCSPレスポンスのキャッシュは、図9の77の行を用いて記憶されたものである。
【0064】
図12は、検証サーバ13における、通信部40c、定期自動更新部41、CRL更新部42、OCSPレスポンス更新部43、証明書更新部44、証明書検証部45の関係を説明する図である。通信部40cは、証明書検証要求を証明書検証部45に行い、証明書検証要求を受けて、証明書の有効性確認処理を行った証明書検証部45から証明書検証応答を受ける。また、証明書検証部45は、有効性確認処理において、証明書保持部49に保持されている証明書が、CAの鍵更新や危殆化されたことを検知した場合、証明書更新部44に証明書更新通知を行う。また、証明書更新通知を受けた証明書更新部44は、更新したCAが発行するCRLやOCSPレスポンスを更新するために、CRL更新部42にCRL更新通知を、OCSPレスポンス更新部43にOCSPレスポンス更新通知をそれぞれ行う。また、定期自動更新部41は、CRL、OCSPレスポンス、証明書の定期更新時間に達すると、CRL更新部42にCRL更新通知を、OCSPレスポンス更新部43にOCSPレスポンス更新通知を、証明書更新部44に証明書更新通知を送信する。
【0065】
図13は、証明書検証部45が行う証明書の有効性確認処理を示すフローチャートである。
【0066】
証明書検証部45は、通信部40cから証明書検証要求を受信すると、証明書検証要求に含まれているEE証明書(有効性確認対象の証明書)から発行者のDNを抽出し、TA(検証者の信頼点)の自己署名証明書から主体者のDNを抽出する(ステップS1001)。次に、証明書検証部45は、TAからEE証明書の発行者までの認証パスを構築する(ステップS1002)。なお、ステップS1002の認証パス構築処理の詳細(図14)については、後述する。
【0067】
証明書検証部45は、認証パス構築に失敗した場合(ステップS1003でNo)、認証パス構築時に判定したエラーコードを付与して、有効性確認結果を無効とする証明書検証応答を作成する(ステップS1004)。
【0068】
証明書検証部45は、認証パス構築に成功した場合(ステップS1003でYes)、ステップS1001で構築した認証パスの検証を行う(ステップS1005)。なお、ステップS1005の認証パス検証処理の詳細(図16、図17、図18、図19)については、後述する。
【0069】
証明書検証部45は、認証パス検証に失敗した場合(ステップS1006でNo)、認証パス検証で作成したエラー通知から、EE証明書の失効や、EE証明書の署名不正などのEE証明書のエラーを原因とする認証パス検証失敗であるかどうか判断する(ステップS1007)。証明書検証部45は、EE証明書のエラーが原因ではない場合(ステップS1007でNo)、ステップS1001と同一のTAからEE証明書の発行者について、新たな認証パス構築を行うためにステップS1002に戻る。証明書検証部45は、EE証明書のエラーが原因の場合(ステップS1007でYes)、ステップS1004へ進む。
【0070】
また、証明書検証部45は、認証パス検証に成功した場合(ステップS1006でYes)、有効性確認結果を有効とする証明書検証応答を作成する(ステップS1008)。
【0071】
図14は、証明書検証部45が行う認証パス構築処理(図13、ステップS1002)の詳細を示すフローチャートである。
【0072】
証明書検証部45は、ステップS1001で抽出したTAのDNをキーとして、認証パス保持部46を検索し、TAからEE証明書、または、CRL、または、OCSPレスポンスの発行者までの認証パス情報が存在するか確認する(ステップS2001)。証明書検証部45は、対応する認証パスがない場合(ステップS2002でNo)、新規に認証パス構築を行う(ステップS2003)。ステップS2003の新規の認証パス構築処理の詳細(図15)については、後述する。
【0073】
証明書検証部45は、新規の認証パス構築に失敗した場合(ステップS2004でNo)、認証パス構築不可を原因とする有効性確認処理のエラーを作成する(ステップS2005)。
【0074】
証明書検証部45は、新規の認証パス構築に成功した場合(ステップS2004でYes)、認証パス保持部46にステップS2003で構築した認証パス情報を記憶する(ステップS2006)。
【0075】
また、証明書検証部45は、対応する認証パスがある場合(ステップS2002でYes)、対応する認証パス情報を認証パス保持部46から取得し(ステップS2007)、認証パス中の全ての証明書を証明書保持部49から取得する(ステップS2008)。
【0076】
図15は、証明書検証部45が行う新規の認証パス構築処理(図14、ステップS2003)の詳細を示すフローチャートである。
【0077】
証明書検証部45は、証明書の発行者のDNを取得する(ステップS3001)。ただし、証明書検証部45は、初回は、ステップS1001で取得したEE証明書の発行者のDNを取得する。また、証明書検証部45は、CRL検証(図17、ステップS4010)を行うために新規の認証パス構築を行う場合、初回は、CRLに記載されている発行者のDNを取得する。また、証明書検証部45は、OCSPレスポンス検証(図18、ステップS4016)を行うために新規の認証パス構築を行う場合、初回は、OCSPレスポンスに記載されているOCSPレスポンダのDNを取得する。
【0078】
証明書検証部45は、ステップS3001で取得した発行者が発行した証明書群(該当するCA装置12の証明書DB34に保持され、かつ、証明書の種類がCA証明書である証明書)が証明書保持部49にある場合(ステップS3002でYes)、ステップS3007へ進む。
【0079】
証明書検証部45は、証明書保持部49にない場合(ステップS3002でNo)、ステップS3001で取得した発行者のCA装置12の証明書DB34にアクセスし、証明書群を取得する(ステップS3003)。
【0080】
証明書検証部45は、証明書保持部49内に存在するステップS3001で取得した発行者の証明書群と、ステップS3003で取得した証明書群を比較し、更新されていない場合は(ステップS3004でNo)、認証パス構築するため証明書の取得が不可能であるため、新規のパス構築失敗と判断し、処理を終了する。証明書検証部45は、更新されている場合(ステップS3004でYes)、該当するCA装置12が鍵更新したと判断し、証明書更新部44に該当する発行者名と鍵更新が行われた旨を通知する(ステップS3005)。次に、証明書検証部45は、ステップS3003で取得した証明書群を証明書保持部49に保存し(ステップS3006)、ステップS3007へ進む。
【0081】
証明書検証部45は、ステップS3002または、ステップS3003で取得した証明書群中の次の証明書を選択する(ステップS3007)。ただし、反復処理の初回であれば、証明書群の最初の証明書を選択する。
【0082】
証明書検証部45は、ステップS3001で取得した証明書あるいはCRLあるいはOCSPレスポンスの発行者の鍵識別子がステップS3007で選択した証明書の主体者の鍵識別子と一致しない場合(ステップS3008でNo)、ステップS3009へ進む。証明書検証部45は、一致する場合(ステップS3008でYes)、ステップS3010へ進む。
【0083】
証明書検証部45は、証明書群の全ての証明書を選択済みではない場合(ステップS3009でNo)、ステップS3007へ戻る。証明書検証部45は、選択済みの場合(ステップS3009でYes)、ステップS3010へ進む。
【0084】
証明書検証部45は、ステップS3007で選択した証明書を取得し、その証明書の発行者がステップS1001で抽出したTAであれば(ステップS3010でYes)、認証パス構築に成功と判断する。証明書検証部45は、反復処理中にステップS3010で取得した認証パス情報と全ての証明書を取得する(ステップS3011)。証明書検証部45は、TAではない場合(ステップS3010でNo)、ステップS3001へ戻る。
【0085】
次に図16と図17と図18は、認証パス検証部45が行う認証パス検証処理(図13、ステップS1005)の詳細を示すフローチャートである。
【0086】
証明書検証部45は、ステップS2008(図14)あるいは、ステップS3011(図15)で取得した認証パスの全ての証明書(TAが発行した証明書からEE証明書の順番)の中から次の証明書を選択する(ステップS4001)。ただし、証明書検証部45は、1回目は最初の証明書を選択する。
【0087】
証明書検証部45は、選択した証明書を認証パス中の一つ前の証明書で署名検証を行う(ステップS4002)。ただし、証明書検証部45は、1回目は、ステップS1001で取得したTAの自己署名証明書で署名検証を行う。
【0088】
証明書検証部45は、ステップS4003の署名検証に失敗した場合(ステップS4003でNo)、エラーとなった証明書の種類と有効性確認処理のエラーの原因を署名不正とするエラー通知を作成する(ステップS4004)。証明書検証部45は、ステップS4003の署名検証に成功した場合(ステップS4003でYes)、ステップS4005へ進む。
【0089】
証明書検証部45は、ステップS4001で選択した証明書に失効リスト配布点の記載があれば、失効情報の提供方法がCRLと判断し(ステップS4005でCRL)、ステップS4006(図17)へ進み、証明書の機関情報アクセスの領域にOCSPレスポンダの場所の記載があれば、失効情報の提供方法がOCSPと判断し(ステップS4005でOCSP)、ステップS4012(図18)へ進む。
【0090】
証明書検証部45は、ステップS4005でCRLの場合、ステップS4001で選択した証明書の発行者が発行したCRLがCRL保持部47にあるか確認する。証明書検証部45は、CRL保持部47にない場合(ステップS4006でNo)、証明書に記載されている失効リスト配布点のロケーションにアクセスして、最新のCRLを取得する(ステップS4007)。証明書検証部45は、取得したCRLをCRL保持部47に保存する(ステップS4008)。
【0091】
証明書検証部45は、ステップS4001で選択した証明書の発行者が発行したCRLがCRL保持部47にある場合(ステップS4006でYes)、対応するCRLをCRL保持部47から取得する(ステップS4009)。
【0092】
次に、証明書検証部45は、ステップS4007あるいはステップS4009で取得したCRLを検証する(ステップS4010)。なお、ステップS4010のCRL検証処理の詳細(図19)については、後述する。
【0093】
証明書検証部45は、ステップS4010でCRL検証処理に成功した場合、CRLにステップS4001で選択した証明書のシリアル番号があるか確認する(ステップS4011)。
【0094】
証明書検証部45は、ステップS4005でOCSPの場合、ステップS4001で選択した証明書の発行者が応答したOCSPレスポンスがOCSPレスポンス保持部48にあるか確認する。証明書検証部45は、OCSPレスポンス保持部48にない場合(ステップS4012でNo)、証明書に記載されているOCSPレスポンダのロケーションにアクセスし、OCSPレスポンスを取得する(ステップS4013)。証明書検証部45は、取得したOCSPレスポンスをOCSPレスポンス保持部48に保存する(ステップS4014)。
【0095】
証明書検証部45は、ステップS4001で選択した証明書が発行したOCSPレスポンスがOCSP保持部48にある場合(ステップS4012でYes)、対応するOCSPレスポンスをOCSPレスポンス保持部48から取得する(ステップS4015)。
【0096】
次に、証明書検証部45は、ステップS4013あるいはステップS4015で取得したOCSPレスポンスを検証する(ステップS4016)。なお、ステップS4016のOCSPレスポンス検証処理の詳細(図20)については、後述する。
【0097】
証明書検証部45は、ステップS4016でOCSPレスポンス検証に成功した場合、OCSPレスポンス記載されている証明書の状態を確認する(ステップS4017)。
【0098】
証明書検証部45は、ステップS4011でCRLにシリアル番号あることが確認された場合、また、ステップS4017で証明書の状態が失効あるいは不明であった場合、ステップS4001で選択した証明書が有効ではないと判断し(ステップS4018でNo)、ステップS4019へ進む。
【0099】
証明書検証部45は、CRLあるいはOCSPレスポンスに記載の失効理由がCA危殆化でない場合(ステップS4019でNo)、ステップS4021へ進む。
【0100】
証明書検証部45は、CRLあるいはOCSPレスポンスに記載の失効理由がCA危殆化である場合(ステップS4019でYes)、証明書更新部44にステップS4001で選択した証明書の発行者名とCA危殆化の旨を通知し(ステップS4020)、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効した証明書を含むとするエラー通知を作成する(ステップS4021)。
【0101】
また、証明書検証部45は、ステップS4011でCRLにシリアル番号がないことを確認した場合、また、ステップS4017で証明書の状態が有効であった場合、ステップS4001で選択した証明書が有効であると判断する(ステップS4018でYes)。
【0102】
証明書検証部45は、選択した証明書がEE証明書でない場合、ステップS4001へ戻る(ステップS4022でNo)。証明書検証部45は、選択した証明書がEE証明書である場合(ステップS4022でYes)、有効性確認処理結果を有効とする正常終了通知を作成する(ステップS4023)。
【0103】
図19は、証明書検証部45が行うCRL検証処理(図17、ステップS4010)の詳細を示すフローチャートである。
【0104】
証明書検証部45は、ステップS4007あるいはステップS4009で取得したCRLからステップS4001で選択した証明書の発行者までの認証パスを構築する(ステップS5001)。なお、認証パス構築処理は、図14と図15に示す。次に、証明書検証部45は、認証パスの検証を行い、認証パス検証失敗であれば(ステップS5002でNo)、ステップS5003へ進み、一方、認証パス検証成功であれば、CRL検証処理を終了する。
【0105】
また、証明書検証部45は、認証パス途中の証明書で検証失敗の場合(ステップS5003でNo)、ステップS5001に戻り、認証パス構築を繰り返す。証明書検証部45は、認証パス途中の証明書で検証失敗の場合(ステップS5003でYes)、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効したCRL検証不可とするエラー通知を作成する(ステップS5004)。
【0106】
図20は、証明書検証部45が行うOCSPレスポンス検証処理(図18、ステップS4016)の詳細を示すフローチャートである。
【0107】
証明書検証部45は、ステップS4013あるいはステップS4015で取得したOCSPレスポンスから、ステップS4001で選択した証明書の発行者までの認証パスを構築する(ステップS6001)。なお、認証パス構築処理の詳細は、図14と図15に示す。次に、証明書検証部45は、認証パスの検証を行い、認証パス検証失敗であれば(ステップS6002でNo)、ステップS6003へ進み、一方、認証パス検証成功であれば、OCSPレスポンス検証処理を終了する。
【0108】
また、証明書検証部45は、認証パス途中の証明書で検証失敗の場合(ステップS6003でNo)、ステップS6001に戻り、認証パス構築を繰り返す。証明書検証部45は、認証パス途中の証明書で検証失敗の場合(ステップS6003でYes)、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効したOCSPレスポンス検証不可とするエラー通知を作成する(ステップS6004)。
【0109】
図21は、証明書更新部44が行う証明書保持部49の更新処理を示すフローチャートである。
【0110】
証明書更新部44は、定時自動更新部41から更新通知を受けた場合(ステップS7001で定時自動更新部)、更新通知に記載されている発行者に対応するCA装置12の証明書DB34にアクセスし、証明書群を取得する(ステップS7002)。証明書更新部44は、取得した証明書群を証明書保持部49に格納し、証明書群を更新する(ステップS7003)。
【0111】
また、証明書更新部44は、証明書検証部45から更新通知を受けた場合(ステップS7001で証明書検証部)、証明書検証部45からの更新通知に記載されている発行者が発行したCRLを更新するようにCRL更新部42に通知する(ステップS7004)。次に、証明書更新部44は、証明書検証部45からの更新通知に記載されている発行者が発行したOCSPレスポンスを更新するようにOCSPレスポンス更新部43に通知する(ステップS7005)。
【0112】
図22は、CRL更新部42が行うCRL保持部47の更新処理を示すフローチャートである。
【0113】
CRL更新部42は、定時自動更新部41あるいは、証明書更新部44からCRLの更新通知を受信する(ステップS8001)。CRL更新部42は、CRLの更新通知に記載されている発行者のCRLをCRL保持部47から検索し(ステップS8002)、対応する発行者のCRLが存在する場合(ステップS8003でYes)、CRLを発行しているロケーションから最新のCRLを取得する(ステップS8004)。次に、CRL更新部42は、取得したCRLをCRL保持部47に格納し、CRL保持部47を更新する(ステップS8005)。また、ステップS8003で、対応する発行者のCRLが存在しない場合、CRL更新部42は、更新処理を終了する。
【0114】
図23は、OCSPレスポンス更新部43が行うOCSPレスポンス保持部48の更新処理を示すフローチャートである。
【0115】
OCSPレスポンス更新部43は、定時自動更新部41あるいは、証明書更新部44からOCSPレスポンスの更新通知を受信する(ステップS9001)。OCSPレスポンス更新部43は、OCSPレスポンスの更新通知に記載されている発行者のOCSPレスポンスをOCSPレスポンス保持部47のキャッシュテーブルから検索し(ステップS9002)、対応する発行者のOCSPレスポンスが存在する場合(ステップS9003でYes)、OCSPレスポンスを発行しているロケーションに対応する証明書のOCSPリクエストを送信し、OCSPレスポンスを取得する(ステップS9004)。OCSPレスポンス更新部43は、取得したOCSPレスポンスをOCSPレスポンス保持部47のキャッシュテーブルに記憶し、OCSPレスポンス保持部47を更新する(ステップS9005)。OCSPレスポンス更新部43は、キャッシュテーブルの全てのレコードを検索したか確認し、最後のレコードまで検索処理が終了すれば更新処理を終了し、最後のレコードまで検索処理が終了していない場合(ステップS9006でNo)、ステップS9002に戻る。また、ステップS9003で、対応する発行者のOCSPレスポンスが存在しない場合、OCSPレスポンス更新部43は、更新処理を終了する。
【0116】
以上本発明の一実施形態について説明した。検証サーバ13は、端末から証明書の有効性確認の依頼を受けて、端末装置11から送信された証明書検証要求に含まれている、有効性確認対象の証明書と端末が信頼するCAの証明書を、利用して認証パス構築を行い、また、認証パスの全ての証明書の有効性をCA装置12から提供されるCRLとOCSPレスポンスを利用して検証する認証パス検証を行い、証明書の有効性を判定した結果を、端末に証明書検証結果として送付する、証明書検証手段を有する。また、証明書検証手段は、検証サーバ13に記憶されたCRL、または、OCSPレスポンスを利用して、認証パスの検証を行い、CRL、または、OCSPレスポンスが記憶されていない場合は、CA装置12にアクセスして、CRL、または、OCSPレスポンスを取得することを特徴とする。また、証明書検証手段は、検証サーバ13内に記憶されたCA証明書を利用して、認証パスの構築、または、CRLの検証、または、OCSPレスポンスの検証を行い、CA証明書が記憶されていない場合は、CA装置12にアクセスして取得することを特徴とする。また、証明書検証手段は、認証パス構築においてCA装置12の鍵更新を検知し、また、認証パス検証においてCA装置12のCA危殆化を検知し、検証サーバ13内に記憶された証明書を更新することを通知することを特徴する。また、検証サーバ13は、CA装置12のリポジトリにアクセスして取得したCA証明書をCA装置12のDN毎に記憶する証明書記憶手段を持つ。また、検証サーバ13は、CA装置12のリポジトリにアクセスして取得したCRLをCA装置12のDN毎に記憶するCRL記憶手段を有する。また、検証サーバ13は、CA装置12のOCSPレスポンダから取得したOCSPレスポンスを、運用管理者がCA装置12のDN毎に設定したOCSPレスポンスの有効期間あるいは有効時期から次期更新時刻を算出して、CA装置12毎に、証明書の状態(有効、失効、不明)で分類して、記憶するOCSPレスポンス記憶手段を有する。また、検証サーバ13は、運用管理者が設定した定時自動更新時間に達すると、検証サーバ13内に記憶されたCRLを更新することを、または、検証サーバ13内に記憶されたCA証明書を更新することを、通知する定時自動更新手段を有する。また、定時自動更新手段は、検証サーバ13内に記憶されたOCSPレスポンスの次期更新時刻に達すると、検証サーバ13内に記憶されたOCSPレスポンスを更新することを通知することを特徴とする。また、検証サーバ13は、定期自動更新手段、または、証明書検証手段から通知に応じて、CA装置12から新たなCA証明書を取得して、記憶したCA証明書を更新する証明書更新手段を有する。また、証明書更新手段は、証明書検証手段から、CA装置12の鍵更新とCA装置12の危殆化が通知された場合、CRL更新手段に検証サーバ13内に記憶されたCRLを更新することを、また、OCSPレスポンス更新手段に検証サーバ13内に記憶されたOCSPレスポンスを更新することを、通知することを特徴とする。また、検証サーバ13は、定期自動更新手段、または、証明書更新手段から通知に応じて、CA装置12から新たなCRLを取得して、記憶したCRLを更新するCRL更新手段を有する。また、検証サーバ13は、定期自動更新手段、または、証明書更新手段から通知に応じて、CA装置12から新たなOCSPレスポンスを取得して、記憶したOCSPレスポンスを更新するCRL更新手段を有する。
【0117】
上記実施形態によれば、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する検証サーバ、プログラム及び記憶媒体を提供することができる。これにより、証明書の有効性確認処理における、認証パスの構築や認証パスの検証を効率的にかつ安全に行うことができる。
【0118】
また、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【0119】
11・・・端末装置、12・・・CA装置、13・・・検証サーバ、14・・・ネットワーク、20a、30a、40a・・・処理部、20b、30b、40b・・・記憶部、20c、30c、40c・・・通信部、20d、30d、40d・・・入出力部、21・・・署名付き文書作成部、22・・・署名・証明書検証部、23、33・・・制御部、24・・・電子文書保持部、25・・・鍵保持部、26・・・検証対象保持部、31・・・発行部、32・・・管理部、34・・・証明書DB、35・・・発行先管理リスト保持部、36、47・・・CRL保持部、37・・・証明書有効性確認部、41・・・定期自動更新部、42・・・CRL更新部、43・・・OCSPレスポンス更新部、44・・・証明書更新部、45・・・証明書検証部、46・・・認証パス保持部、48・・・OCSPレスポンス保持部、49・・・証明書保持部、410・・・設定情報保持部、50・・・内部通信線、51・・・CPU、52・・・メモリ、53・・・外部記憶装置、54・・・読み取り装置、55・・・通信装置、56・・・入力装置、57・・・出力装置、59・・・記憶媒体。

【特許請求の範囲】
【請求項1】
複数の端末装置及び複数の認証局とネットワークに接続された証明書検証サーバにより、任意の端末装置からネットワークを介して証明書の有効性確認依頼を受信し、第一の認証局から前第二の認証局までの認証パスを構築し、該認証パスの検証を行い、該検証結果を前記証明書の有効性確認依頼元の端末装置へ前記ネットワークを介して送信する、証明書の有効性確認方法であって、
前記証明書検証サーバにより、
前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知する処理と、
関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得する処理と、
前記取得情報を記憶部に格納し、または前記取得情報に基づき、前記記憶部に記憶されている該当情報を更新する処理と、
前記記憶部の情報を用いて、前記認証パスの構築と前記認証パスの検証を行う処理とを実施する、
ことを特徴とする証明書の有効性確認方法。
【請求項2】
前記証明書検証サーバにより、
定期的に、前記記憶部に記憶されている前記認証局の証明書もしくは前記第一の証明書状態情報もしくは前記第二の証明書状態情報を更新する処理を更に実施する、
ことを特徴とする請求項1に記載の証明書の有効性確認方法。
【請求項3】
前記第一の証明書状態情報は証明書失効リスト情報であり、前記第二の証明書状態情報はOCSPレスポンス情報である、
ことを特徴とする請求項2に記載の証明書の有効性確認方法。
【請求項4】
前記証明書検証サーバにより、
前記認証パスの構築時に前記任意の認証局の鍵更新を検知し、前記認証パスの検証時に前記任意の認証局の危殆化を検知する処理を実施する、
ことを特徴とする請求項3に記載の証明書の有効性確認方法。
【請求項5】
前記記憶部には、前記OCSPレスポンス情報の登録時刻、次期更新時刻及びキャッシュ利用条件を示す情報が記憶されており、
前記証明書検証サーバにより、
前記OCSPレスポンス情報のキャッシュ利用条件と前記OCSPレスポンス情報の登録時刻とに基づき、前記OCSPレスポンス情報の次期更新時刻を算出し、前記記憶部の該当レスポンス情報の該当次期更新時刻を更新する処理を更に実施する、
ことを特徴とする請求項5に記載の証明書の有効性確認方法。
【請求項6】
前記OCSPレスポンス情報の前記キャッシュ利用条件は、前記認証局及び該認証局に関連する証明書毎に管理されている、
ことを特徴とする請求項5に記載の証明書の有効性確認方法。
【請求項7】
複数の端末装置及び複数の認証局とネットワークに接続された証明書検証サーバで、任意の端末装置からネットワークを介して証明書の有効性確認依頼を受信し、第一の認証局から前第二の認証局までの認証パスを構築し、該認証パスの検証を行い、該検証結果を前記証明書の有効性確認依頼元の端末装置へ前記ネットワークを介して送信する証明書検証サーバであって、
前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知し、関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得し、該取得情報を記憶部に格納し、または該取得情報に基づき、前記記憶部に記憶されている該当情報を更新し、前記記憶部の情報を用いて、前記認証パスの構築と前記認証パスの検証を行う情報処理部を有する、
ことを特徴とする証明書検証サーバ。
【請求項8】
前記情報処理部は、
定期的に、前記記憶部に記憶されている前記認証局の証明書もしくは前記第一の証明書状態情報もしくは前記第ニの証明書状態情報を更新する、
ことを特徴とする請求項7に記載の証明書検証サーバ。
【請求項9】
前記第一の証明書状態情報は証明書失効リスト情報であり、前記第二の証明書状態情報はOCSPレスポンス情報である、
ことを特徴とする請求項8に記載の証明書検証サーバ。
【請求項10】
前記情報処理部は、
前記認証パスの構築時に前記任意の認証局の鍵更新を検知し、前記認証パスの検証時に前記任意の認証局の危殆化を検知する、
ことを特徴とする請求項9に記載の証明書検証サーバ。
【請求項11】
前記記憶部には、前記OCSPレスポンス情報の登録時刻、次期更新時刻及びキャッシュ利用条件を示す情報が記憶されており、
前記情報処理部は、
前記OCSPレスポンス情報のキャッシュ利用条件と前記OCSPレスポンス情報の登録時刻とに基づき、前記OCSPレスポンス情報の次期更新時刻を算出し、前記記憶部の該当レスポンス情報の該当次期更新時刻を更新する、
ことを特徴とする請求項10に記載の証明書検証サーバ。
【請求項12】
前記OCSPレスポンス情報の前記キャッシュ利用条件は、前記認証局及び該認証局に関連する証明書毎に管理されている、
ことを特徴とする請求項11に記載の証明書検証サーバ。
【請求項13】
複数の端末装置及び複数の認証局とネットワークに接続されたコンピュータにより、任意の端末装置からネットワークを介して証明書の有効性確認依頼を受信し、第一の認証局から前第二の認証局までの認証パスを構築し、該認証パスの検証を行い、該検証結果を前記証明書の有効性確認依頼元の端末装置へ前記ネットワークを介して送信する証明書の有効性確認処理を実行させるプログラムであって、
前記証明書の有効性確認処理において、前記コンピュータにより、
前記任意の認証局の鍵更新もしくは前記任意の認証局の危殆化を検知する処理と、
関連する認証局の証明書、第一の証明書状態情報及び第二の証明書状態情報を取得する処理と、
前記取得情報を記憶部に格納し、または前記取得情報に基づき、前記記憶部に記憶されている該当情報を更新する処理と、
前記記憶部の情報を用いて、前記認証パスの構築と前記認証パスの検証を行う処理とを実行させる、
ことを特徴とするプログラム。
【請求項14】
前記コンピュータにより、
定期的に、前記記憶部に記憶されている前記認証局の証明書もしくは前記第一の証明書状態情報もしくは前記第ニの証明書状態情報を更新する処理を更に実行させる、
ことを特徴とする請求項13に記載のプログラム。
【請求項15】
前記第一の証明書状態情報は証明書失効リスト情報であり、前記第二の証明書状態情報はOCSPレスポンス情報である、
ことを特徴とする請求項14に記載のプログラム。
【請求項16】
前記コンピュータにより、
前記認証パスの構築時に前記任意の認証局の鍵更新を検知し、前記認証パスの検証時に前記任意の認証局の危殆化を検知する処理を実行させる、
ことを特徴とする請求項15に記載のプログラム。
【請求項17】
前記記憶部には、前記OCSPレスポンス情報の登録時刻、次期更新時刻及びキャッシュ利用条件を示す情報が記憶されており、
前記コンピュータにより、
前記OCSPレスポンス情報のキャッシュ利用条件と前記OCSPレスポンス情報の登録時刻とに基づき、前記OCSPレスポンス情報の次期更新時刻を算出し、前記記憶部の該当レスポンス情報の該当次期更新時刻を更新する処理を更に実行させる、
ことを特徴とする請求項16に記載の証明書のプログラム。
【請求項18】
前記OCSPレスポンス情報の前記キャッシュ利用条件は、前記認証局及び該認証局に関連する証明書毎に管理されている、
ことを特徴とする請求項17に記載のプログラム。
【請求項19】
請求項13乃至請求項18に記載のプログラムを記憶したことを特徴とする前記コンピュータにより読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2011−15110(P2011−15110A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−156511(P2009−156511)
【出願日】平成21年7月1日(2009.7.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】