(57)【特許請求の範囲】
【請求項１】
証明書の有効性確認依頼を受信し、認証パスの構築処理と、構築した前記認証パスの検証処理を行う検証サーバにおける証明書の有効性確認方法において、
前記検証サーバは、第一の証明書状態情報、第二の証明書状態情報、認証局の証明書を記憶する記憶部を有し、
前記検証サーバにより、前記認証パスの検証処理において、
前記認証パス中の証明書を取得する処理と、
取得した前記証明書もしくは前記記憶部から、前記第一の証明書状態情報もしくは第二の証明書状態情報を取得する処理と、
取得した前記第一の証明書状態情報もしくは前記第二の証明書状態情報に基づいて、任意の認証局の危殆化を検知する処理と、
前記記憶部に記憶されている該当認証局の証明書と、第一の証明書状態情報もしくは第二の証明書状態情報と、を更新する処理とを実施する、
ことを特徴とする証明書の有効性確認方法。
【請求項２】
前記証明書検証サーバにより、
定期的に、前記記憶部に記憶されている前記認証局の証明書もしくは前記第一の証明書状態情報もしくは前記第二の証明書状態情報を更新する処理を更に実施する、
ことを特徴とする請求項１に記載の証明書の有効性確認方法。
【請求項３】
前記第一の証明書状態情報は証明書失効リスト情報であり、前記第二の証明書状態情報はＯＣＳＰレスポンス情報である、
ことを特徴とする請求項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＞
【非特許文献２】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＞
【非特許文献３】Delegated Path Validation and Delegated Path Discovery Protocol Requirements (RFC3379), 2002年9月, [online], [平成21年6月16日検索], インターネット＜URL:http://www.ietf.org/rfc/rfc3379.txt＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
証明書の有効性確認処理の中で、証明書チェーンの証明書の取得、ＣＲＬの取得、ＯＣＳＰレスポンダへの問い合わせ、ＣＲＬ検証のための証明書の取得、ＯＣＳＰレスポンスの検証のための証明書の取得は、外部ネットワークへのアクセスが必要となるため、証明書検証サーバにとって、時間的に負荷のかかる処理となっている。
【００１３】
上記特許文献１では、証明書検証サーバが、証明書の有効性確認処理毎にＣＲＬを取得する必要がないように、初めて取得したＣＲＬを登録し、有効性確認処理において登録したＣＲＬを利用する機能が記述されている。しかし、ＯＣＳＰレスポンダから提供されるＯＣＳＰレスポンスを登録する機能が記述されていない。また、認証パス構築時に取得した、証明書チェーンの証明書、または、ＣＲＬやＯＣＳＰレスポンスを検証するための証明書を、登録して利用する機能が記述されていない。そのため、ＯＣＳＰレスポンダを利用して失効情報を提供するＣＡが発行する証明書が認証パスに含まれている場合、証明書検証サーバは、証明書の有効性確認処理毎に、ＯＣＳＰレスポンダに問い合わせを行う必要があり、非効率的である。また、証明書の有効性確認処理毎に、証明書検証サーバは、ＣＡのリポジトリにアクセスし、認証パス構築で必要となる証明書チェーンの証明書や、ＣＲＬやＯＣＳＰレスポンスを検証するための証明書を、取得する必要があり、非効率的である。
【００１４】
また、上記特許文献２では、ＣＲＬやＯＣＳＰレスポンダを利用して得られた証明書の有効性確認結果をキャッシュする機能と、証明書の発行者、所有者、証明書有効期間などをもとに検証者があらかじめ設定した、キャッシュ有効期間に基づいて、キャッシュした有効性確認結果を更新する機能が記述されている。しかし、検証者の判断でキャッシュ有効期間を設定していることから、ＣＡの鍵更新やＣＡの危殆化など、ＣＡ側の原因で、キャッシュされた証明書の有効性確認結果が、キャッシュ有効期間を経過する前に有効ではなくなる場合がある。上記特許文献２では、そのような場合に、キャッシュした有効性確認結果を更新する必要があることを検知する手段がないため、安全性に問題がある。ＣＡ側の原因として、例えば、ＣＡの鍵更新によりＣＲＬの発行者やＯＣＳＰレスポンダが新しいＣＡに変更になる場合や、ＣＡの危殆化により該当するＣＡが発行した全て証明書が失効になる場合が想定される。
【００１５】
本発明は上記課題に鑑みてなされたものであり、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する証明書検証サーバ、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の代表的な一例は、次の通りである。すなわち、本発明は、証明書の有効性確認依頼を受信し、認証パスの構築処理と、構築した前記認証パスの検証処理を行う検証サーバにおける証明書の有効性確認方法において、前記検証サーバは、第一の証明書状態情報、第二の証明書状態情報、認証局の証明書を記憶する記憶部を有し、前記検証サーバにより、前記認証パスの検証処理において、前記認証パス中の証明書を取得する処理と、取得した前記証明書もしくは前記記憶部から、前記第一の証明書状態情報もしくは第二の証明書状態情報を取得する処理と、取得した前記第一の証明書状態情報もしくは前記第二の証明書状態情報に基づいて、任意の認証局の危殆化を検知する処理と、前記記憶部に記憶されている該当認証局の証明書と、第一の証明書状態情報もしくは第二の証明書状態情報と、を更新する処理とを実施する、ことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する証明書検証サーバ、プログラム及び記憶媒体を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明を適用する証明書検証システムの全体構成を示す図である。
【図２】端末装置１１の構成を示す図である。
【図３】ＣＲＬを利用して失効情報を提供する場合のＣＡ装置１２の構成を示す図である。
【図４】ＯＣＳＰレスポンダを利用して失効情報を提供する場合のＣＡ装置１２の構成を示す図である。
【図５】検証サーバ１３の構成を示す図である。
【図６】端末装置１１、ＣＡ装置１２、検証サーバ１３の各々のハードウェア実現例を示す図である。
【図７】検証サーバ１３が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である
【図８】ＣＡ装置１２が鍵更新した場合における、検証サーバ１３が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である。
【図９】設定情報保持部４１０に格納されている、ＯＣＳＰレスポンスのキャッシュの利用条件を設定したテーブルの構成を示す図である。
【図１０】ＯＣＳＰレスポンス保持部４８に格納されている、ＯＣＳＰレスポンスの情報を記憶したテーブルの構成を示す図である。
【図１１】ＯＣＳＰレスポンス保持部４８に格納されている、ＯＣＳＰレスポンスの情報を記憶したテーブルの他の構成を示す図である。
【図１２】検証サーバ１３における、通信部４０ｃ、定期自動更新部４１、ＣＲＬ更新部４２、ＯＣＳＰレスポンス更新部４３、証明書更新部４４、証明書検証部４５の関係を示す図である。
【図１３】証明書検証部４５が行う証明書の有効性確認処理を示すフローチャートである。
【図１４】証明書検証部４５が行う認証パス構築処理（図１３、ステップＳ１００２）の詳細を示すフローチャートである。
【図１５】証明書検証部４５が行う新規の認証パス構築処理（図１４、ステップＳ２００３）の詳細を示すフローチャートである。
【図１６】認証パス検証部４５が行う認証パス検証処理（図１３、ステップＳ１００５）の詳細を示すフローチャートである。
【図１７】同じく、認証パス検証部４５が行う認証パス検証処理（図１３、ステップＳ１００５）の詳細を示すフローチャートである。
【図１８】同じく、認証パス検証部４５が行う認証パス検証処理（図１３、ステップＳ１００５）の詳細を示すフローチャートである。
【図１９】証明書検証部４５が行うＣＲＬ検証処理（図１７、ステップＳ４０１０）の詳細を示すフローチャートである。
【図２０】証明書検証部４５が行うＯＣＳＰレスポンス検証処理（図１８、ステップＳ４０１６）の詳細を示すフローチャートである。
【図２１】証明書更新部４４が行う証明書保持部４９の更新処理を示すフローチャートである。
【図２２】ＣＲＬ更新部４２が行うＣＲＬ保持部４７の更新処理を示すフローチャートである。
【図２３】ＯＣＳＰレスポンス更新部４３が行うＯＣＳＰレスポンス保持部４８の更新処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下に、本発明の実施形態について、図面を参照して、詳細に説明する。
【００２３】
図１は、本発明を適用する証明書検証システムの全体構成を示す図である。
【００２４】
本発明を適用する証明書検証システムは、電子的に手続を行う複数の端末装置１１１〜端末装置１１Ｍ（「端末装置１１」と総称する）と、証明書発行及び失効業務を行うＣＡ装置１２１〜ＣＡ装置１２Ｎ（「ＣＡ装置１２」と総称する）と、証明書の失効情報を提供する証明書検証サーバ（以下、「検証サーバ」と記述する）１３と、それぞれを接続するインターネット等のネットワーク１４からなる。
【００２５】
次に、図１の証明書検証システムを構成する各装置について説明する。
【００２６】
図２は、端末装置１１の構成を示す図である。
【００２７】
端末装置１１は、処理部２０ａと記憶部２０ｂと、ネットワーク１４を介して他装置と通信を行うための通信部２０ｃと、端末装置１１のユーザが作成した電子文書や他の端末装置１１から受け取った電子文書の入出力やユーザからの指示の受付を行う入出力部２０ｄと、を有する。
【００２８】
処理部２０ａは、電子文書に対して署名を付与し、署名付き文書を作成する署名付き文書作成部２１と、署名付き電子文書の署名及び証明書の検証を行う署名・証明書検証部２２と、端末装置１１の各部を統括的に制御する制御部２３と、を有する。
【００２９】
記憶部２０ｂは、ユーザが作成した電子文書を保持する電子文書保持部２４と、署名を生成するための秘密鍵と、これと対になる公開鍵の証明書と、当該端末装置１１を利用するユーザが信頼するＣＡのＣＡ証明書を保持する鍵保持部２５と、他の端末装置１１から受け取った署名付き電子文書と証明書を保持する検証対象保持部２６と、を有する。
【００３０】
このような構成において、制御部２３は、ユーザから、入出力部２０ｄを介して電子文書保持部２４に保持してある電子文書を他のユーザに送信すべき旨の指示を受け付けると、当該電子文書を電子文書保持部２４から読み出し、これを署名付き文書作成部２１に渡す。署名付き文書作成部２１は、鍵保持部２５に保持されている秘密鍵を用いて、渡された当該電子文書に対する署名を生成する。そして、渡された電子文書に生成した署名を付与して署名付き電子文書を作成する。制御部２３は、署名付き文書作成部２１で作成された署名付き電子文書と、鍵保持部２５に保持されている証明書とを、通信部２０ｃを介して、ユーザから指示された送信先の端末装置１１へ送信する。
【００３１】
また、制御部２３は、通信部２０ｃを介して、他の端末装置１１から署名付き電子文書と証明書を受け取ると、これらを関連づけて検証対象保持部２６に保持させると共に、これらの検証要求を署名・証明書検証部２２に通知する。
【００３２】
これを受けて、署名・証明書検証部２２は、検証対象保持部２６に保持されている署名付き電子文書の署名を、署名付き電子文書とともに受け取った証明書を用いて検証する。そして、署名・証明書検証部２２は、署名付き電子文書の署名検証に使用した当該証明書を検証対象証明書として、鍵保持部２５に保持する、ユーザが信頼するＣＡのＣＡ証明書を用いて検証する。署名・証明書検証部２２は、当該検証対象証明書の検証処理において、当該検証対象証明書の署名の検証や、有効期間が切れていない事の確認や、その他制限事項の検証や、当該検証対象証明書が失効しているかどうかを確認する。
【００３３】
署名・証明書検証部２２は、当該検証対象証明書が失効しているかどうかの確認を行うために、検証サーバ１３に対して検証要求を送信する。そして、全ての検証が成功し、かつ、検証サーバ１３から当該証明書が失効されていない旨の検証結果を受信した場合に、当該検証対象証明書が有効であり、署名付き電子文書が正当なものと扱い、必要に応じて入出力部２０ｄから署名付き文書の署名及び証明書の検証結果を出力する。
【００３４】
図３は、ＣＲＬを利用して失効情報を提供する場合のＣＡ装置１２の構成を示す図である。図４は、ＯＣＳＰレスポンダを利用して失効情報を提供する場合のＣＡ装置１２の構成を示す図である。
【００３５】
ＣＡ装置１２は、処理部３０ａと、記憶部３０ｂと、ネットワーク１４を介して他装置と通信を行うための通信部３０ｃと、証明書等の入出力や当該ＣＡ装置１２の操作者からの指示の受付や処理結果の出力を行う入出力部３０ｄと、を有する。
【００３６】
処理部３０ａは、証明書を発行する発行部３１と、発行部３１が発行した証明書の管理を行う管理部３２と、ＣＡ装置１２の各部を統括的に制御する制御部３３と、を有する。なお、図４に示すＣＡ装置１２は、証明書有効性確認部も有する。
【００３７】
記憶部３０ｂは、発行部３１が発行した証明書を保持する証明書データベース（ＤＢ）３４と、証明書データベース３４に保持されている各証明書の発行先が記述されていた発行先管理リストを保持する発行先管理リスト保持部３５と、ＣＲＬ保持部３６と、を有する。なお、図４に示すＣＡ装置１２は、ＣＲＬ保持部３６を有しない。
【００３８】
このような構成において、制御部３３は、入出力部３０ｄあるいは通信部３０ｃを介して証明書の発行依頼を受け付けると、その旨を発行部３１に伝える。これを受けて、発行部３１は、これに対する証明書を作成する。この際、ＣＡの秘密鍵で証明書に署名をする。そして、作成した証明書を入出力部３０ｄあるいは通信部３０ｃを介して、郵送あるいは通信により、発行依頼元に渡す。また、この証明書を証明書データベース３４に登録すると共に、その発行先（つまり発行依頼元）の情報を、発行先管理リスト保持部３５に保持されている発行先管理リストに記載する。
【００３９】
また、制御部３３は、入出力部３０ｄあるいは通信部３０ｃを介して、証明書の失効依頼を受け付けると、その旨を管理部３２に伝える。これを受けて、管理部３２は、失効対象の証明書を証明書データベース３４から削除すると共に、発行先管理リスト保持部３５に保持されている当該証明書の情報に失効状態と失効理由を追記する。
【００４０】
そして、図３に示すＣＡ装置１２の管理部３２は、失効依頼により証明書データベース３３から削除した証明書のシリアルナンバー、を記載した失効証明書リスト（ＣＲＬ）を、定期的に作成し、これをＣＲＬ保持部３６に保持させる。なお、作成したＣＲＬには、当該ＣＡ装置１２が発行した証明書のうち、有効期限内にもかかわらず失効した証明書のシリアルナンバーと、当該証明書が失効した日時と、当該証明書が失効した理由がリストに記載される。さらに、ＣＲＬには、次回のＣＲＬ作成予定時刻が記載され、当該ＣＡ装置１２の秘密鍵を用いて署名が付与される。
【００４１】
また、図３に示すＣＡ装置１２の制御部３３は、通信部３０ｃを介して、他装置よりＣＲＬ取得要求を受け取ると、ＣＲＬ保持部３６に保持されているＣＲＬを、通信部３０ｃを介して、問い合わせをした他装置に送信する。
【００４２】
あるいは、図４に示すＣＡ装置１２の制御部３３は、通信部３０ｃを介して、他装置より証明書の失効情報を問い合わせするためのＯＣＳＰリクエストを受け取ると、証明書有効性確認部３７が、発行先管理リスト保持部３５に保持されている証明書の情報から当該証明書が失効しているか否かを表すＯＣＳＰレスポンスを作成し、通信部３０ｃを介して、問い合わせをした他装置に送信する。なお、ＯＣＳＰレスポンスには、当該証明書の状態が記載され、当該ＣＡ装置１２の秘密鍵あるいはＯＣＳＰレスポンダの秘密鍵を用いて署名が付与される。
【００４３】
図５は、検証サーバ１３の構成を示す図である。
【００４４】
検証サーバ１３は、処理部４０ａと、記憶部４０ｂと、ネットワーク１４を介して他装置と通信を行うための通信部４０ｃと、証明書等の入出力や検証サーバ１３の操作員からの指示の受付けを行う入出力部４０ｄと、を有する。
【００４５】
処理部４０ａは、定期自動更新部４１と、ＣＲＬ更新部４２と、ＯＣＳＰレスポンス更新部４３と、証明書更新部４４と、証明書検証部４５と、を有する。
【００４６】
記憶部４０ｂは、認証パス保持部４６と、ＣＲＬ保持部４７と、ＯＣＳＰレスポンス保持部４８と、証明書保持部４９と、設定情報保持部４１０と、を有する。
【００４７】
定期自動更新部４１は、ＣＲＬ保持部４７に記憶されているＣＲＬを定期的に更新する時間やＣＲＬに記載されている次回更新日時に達するとＣＲＬ更新部４２に通知する。また、定期自動更新部４１は、ＯＣＳＰレスポンス保持部４８に記憶されているＯＣＳＰレスポンスに関して、次期更新時刻に達するとＯＣＳＰレスポンス更新部４３に通知する。また、定期自動更新部４１は、証明書保持部４９に記憶されている証明書を定期的に更新する時間に達すると、証明書更新部４４に通知する。ＣＲＬとＯＣＳＰレスポンスの定期更新時間は、設定情報保持部４１０に記憶されている。また、ＯＣＳＰレスポンスの次期更新時期は、ＯＣＳＰレスポンスと共に、ＯＣＳＰレスポンス保持部４８に記憶されている。
【００４８】
ＣＲＬ更新部４２は、定期自動更新部４１から通知を受けると、当該ＣＲＬの発行元から最新のＣＲＬを取得し、ＣＲＬ保持部４７に記憶されているＣＲＬを更新する。また、ＣＲＬ更新部４２は、証明書更新部４４からのＣＲＬ更新通知を受けて、ＣＲＬ保持部４７に記憶されているＣＲＬを更新する。
【００４９】
ＯＣＳＰレスポンス更新部４３は、定時自動更新部４１から通知を受けると、ＯＣＳＰレスポンス保持部４８にＯＣＳＰレスポンスと関連付けて記憶されているＯＣＳＰレスポンダのアドレスにアクセスして最新のＯＣＳＰレスポンスを取得し、ＯＣＳＰレスポンス保持部４８に保持されているＯＣＳレスポンスの情報を更新する。なお、ＯＣＳＰレスポンスの更新間隔は、入出力部４０ｄから検証サーバ１３の操作員によりＣＡ装置１２毎に設定され、設定情報保持部４１０に記憶されている。また、ＯＣＳＰレスポンス更新部４３は、証明書更新部４４からのＯＣＳＰレスポンス更新通知を受けて、ＯＣＳＰレスポンス保持部４８に記憶されているＯＣＳＰレスポンスを更新する。
【００５０】
証明書更新部４４は、定時自動更新部４１から通知を受けると、当該証明書を発行しているＣＡ装置１２の証明書ＤＢ３４から証明書を取得する。なお、当該証明書が更新されている場合は、証明書更新部４４は、証明書保持部４９に記憶されている証明書を更新する。また、当該証明書の有効期間が切れている場合や失効している場合、証明書更新部４４は、証明書保持部４９に記憶されている証明書を削除する。また、証明書更新部４４は、証明書検証部４５からの証明書更新通知を受けて、証明書保持部４９に記憶されている証明書を更新し、更にＣＲＬ更新通知及びＯＣＳＰレスポンス更新通知をＣＲＬ更新部４２及びＯＣＳＰレスポンス更新部４３へ通知する。
【００５１】
証明書検証部４５は、通信部４０ｃを介して、端末装置１１から証明書検証要求を受け付けると、認証パス保持部４６に記憶されている認証パスやＣＲＬ保持部４７に記憶されているＣＲＬやＯＣＳＰレスポンス保持部４８に記憶されているＯＣＳＰレスポンスや証明書保持部４９に記憶されている証明書を利用して、有効性確認対象の証明書から検証者のＴＡまでの認証パスを構築し、認証パス中の証明書の有効性を順に検証する。また、検証サーバ１３の署名を付与した証明書の有効性確認結果を、通信部４０ｃを介して、証明書検証要求元の端末装置１１に送信する。
【００５２】
なお、図２〜図５に示す端末装置１１、ＣＡ装置１２、検証サーバ１３の各々は、例えば、図６に示すような、ＣＰＵ５１と、メモリ５２と、ハードディスク等の外部記憶装置５３と、ＣＤ−ＲＯＭ等の可搬性を有する記憶媒体５９から情報を読み取る読取装置５４と、ネットワーク１４を介して他装置と通信を行うための通信装置５５と、キーボードやマウス等の入力装置５６と、モニタやプリンタ等の出力装置５７と、これらの各装置間のデータ送受を行う内部通信線（例えば、バス）５０とを備えた、一般的な電子計算機（コンピュータ）上に構築できる。
【００５３】
そして、ＣＰＵ５１が、外部記憶装置５３からメモリ５２上にロードした所定のプログラムを実行することにより、上述の各処理部を実現できる。すなわち、通信部２０ｃ、３０ｃ、４０ｃは、ＣＰＵ５１が通信装置５５を利用することにより、入出力部２０ｄ、３０ｄ、４０ｄは、ＣＰＵ５１が入力装置５６や出力装置５７や読取装置５４を利用することにより、そして、記憶部２０ｂ、３０ｂ、４０ｂは、ＣＰＵ５１がメモリ５２や外部記憶装置５３を利用することにより実現される。また、処理部２０ａ、３０ａ、４０ａは、ＣＰＵ５１のプロセスとして実現される。なお、処理部２０ａ、３０ａ、４０ａは、ハードウェアにより実現しても良い。
【００５４】
上記所定のプログラムは、予め外部記憶装置５３に格納されていても良いし、上記電子計算機が利用可能な記憶媒体５９に格納されており、読取装置５４を介して、必要に応じて読み出され、あるいは、上記電子計算機が利用可能な通信媒体であるネットワークまたはネットワーク上を伝搬する搬送波を利用する通信装置５５と接続された他の装置から、必要に応じてダウンロードされて、外部記憶装置５３に導入されるものであっても良い。
【００５５】
図７と図８は、検証サーバ１３が行う認証パス構築処理及び認証パス検証処理の概念を説明する図である。図８は、ＣＡ装置１２が鍵更新をした場合のモデルである。
【００５６】
図７において、ＣＡ装置１２１は、ＣＲＬを利用して失効情報を提供し、ＣＡ装置１２２に相互認証証明書６３を発行している。一方、ＣＡ装置１２２は、ＯＣＳＰレスポンダを利用して失効情報を提供し、端末装置１１１にエンドエンティティ（以下、「エンドエンティティ」は「ＥＥ」と記述する）証明書６１１を、また、端末装置１１２にＥＥ証明書６１２を、また、端末装置１１３にＥＥ証明書６１３を発行している。検証サーバ１３は、自己署名証明書６２をＴＡとするＥＥ証明書６１１の有効性確認要求を受け付けた場合、ＣＡ装置１２１の証明書ＤＢ３４にアクセスするなどして、ＴＡからＥＥ証明書６１１までの認証パスを構築する。証明書チェーンは、「相互認証証明書６３→ＥＥ証明書６１１」となる。次に、検証サーバ１３は、相互認証証明書６３が失効であるか否かを確認するために、ＣＡ装置１２１のＣＲＬ保持部３６に記憶されているＣＲＬを取得し、該当するシリアル番号がＣＲＬに記載されていないか確認するとともに、ＥＥ証明書６１１が失効であるか否かを確認するために、ＣＡ装置１２２の証明書有効性確認部３７に問い合わせを行い、証明書の状態を確認し、認証パスの検証を行う。なお、構築した認証パスは、検証サーバ１３で管理できるように、ＴＡのＤＮ（Ｄｉｓｔｉｎｇｕｉｓｈｅｄ  Ｎａｍｅ）６５の列にＴＡであるＣＡ装置１２１を、認証パス情報６６の列に「ＣＡ装置１２１―ＣＡ装置１２２」を記述して、認証パス保持部４６に記憶される。
【００５７】
図８において、ＣＡ装置１２１は、図７と同様である。一方、ＣＡ装置１２２は、ＯＣＳＰレスポンダを利用して失効情報を提供し、また、ＣＡ装置１２２が鍵更新を行う一世代前のＣＡ装置１２３にリンク証明書６４１を、ＣＡ装置１２２が鍵更新を行う二世代古いＣＡ装置１２４にリンク証明書６４２を発行している。また、ＣＡ装置１２４は、端末装置１１１にＥＥ証明書６１１を、また、端末装置１１２にＥＥ証明書６１２を、また、端末装置１１３にＥＥ証明書６１３を発行している。検証サーバ１３は、自己署名証明書６２をＴＡとするＥＥ証明書６１１の有効性確認要求を受け付けた場合、検証サーバ１３は、ＣＡ装置１２１の証明書ＤＢ３４にアクセスするなどして、ＴＡからＥＥ証明書６１１までの認証パスを構築する。証明書チェーンは、「相互認証証明書６３→リンク証明書６４１→リンク証明書６４２→ＥＥ証明書６１１」となる。次に、検証サーバ１３は、相互認証証明書６３、リンク証明書６４１、リンク証明書６４２が失効であるか否かを確認するために、ＣＡ装置１２１のＣＲＬ保持部３６に記憶されているＣＲＬを取得し、該当するシリアル番号がＣＲＬに記載されていないか確認するとともに、ＥＥ証明書６１１が失効であるか否かを確認するために、ＣＡ装置１２２の証明書有効性確認部３７に問い合わせを行い、証明書の状態を確認し、認証パスの検証を行う。なお、構築した認証パスは、検証サーバ１３で管理できるように、ＴＡのＤＮ６５の列にＴＡであるＣＡ装置１２１を、認証パス情報６６の列に「ＣＡ装置１２１―ＣＡ装置１２２―ＣＡ装置１２３―ＣＡ装置１２４」を記述して、認証パス保持部４６に記憶される。
【００５８】
図９は、設定情報保持部４１０に格納されている、ＯＣＳＰレスポンスのキャッシュの利用条件を設定したテーブルの構成を示す図である。
【００５９】
証明書に記載されている発行者のＤＮを、発行者のＤＮ７１の列に記憶する。また、発行者のＤＮ７１の列に記憶されているＣＡ装置１２、が応答するＯＣＳＰレスポンスに、次に証明書の状態に関する最新情報が提供可能な時（ＮｅｘｔＵｐｄａｔｅ）が記載されている場合は、ｎｅｘｔＵｐｄａｔｅの記載有無７２の列に「あり」を記憶し、一方、記載されていない場合は、「なし」を記憶する。また、発行者のＤＮ７１の列に記憶されているＣＡ装置１２、が発行するＣＡ証明書あるいはＥＥ証明書のキャッシュの利用を認める場合は、キャッシュ利用可否７３の列に「可」を、また、キャッシュの利用を認めない場合は、「否」をそれぞれ記憶する。また、キャッシュ利用可否７３の列に「可」を記憶し、キャッシュを一定間隔で更新する場合は、キャッシュ有効期間７４の列にキャッシュを有効とする時間を、ＣＡ証明書あるいはＥＥ（Ｅｎｄ  Ｅｎｔｉｔｙ）証明書について記憶する。また、キャッシュ利用可否７３の列に「可」を記憶し、キャッシュを特定の時期で更新する場合は、キャッシュ有効期間７４の列にキャッシュを有効とする期限を、ＣＡ証明書あるいはＥＥ証明書について記憶する。
【００６０】
７６から７１０の行に、ＣＡ装置１２が発行する証明書に対するＯＣＳＰレスポンスのキャッシュの利用条件をそれぞれ記憶する。７６の行に記憶されているＣＡ装置１２が発行したＣＡ証明書のキャッシュは、登録から４８時間以内に更新されて、ＥＥ証明書のキャッシュはｎｅｘｔＵｐｄａｔｅに達すると更新される。また、７７の行に記憶されているＣＡ装置１２、が発行したＣＡ証明書のキャッシュは、登録から４８時間以内に更新されて、ＥＥ証明書のキャッシュは毎日７時に更新される。また、７８の行に記載されているＣＡ装置１２、が発行したＣＡ証明書とＥＥ証明書はキャッシュされない。また、７９の行には、発行者のＤＮ７１に記憶されていないＣＡ装置１２の中で、ＯＣＳＰレスポンスにｎｅｘｔＵｐｄａｔｅを記載していない場合の条件を記憶する。また、７１０の行には、発行者のＤＮ７１に記憶されていないＣＡ装置１２の中で、ＯＣＳＰレスポンスにｎｅｘｔＵｐｄａｔｅを記載している場合の条件を記憶する。
【００６１】
図１０と図１１は、ＯＣＳＰレスポンス保持部４８に格納されている、ＯＣＳＰレスポンスの情報を記憶したテーブルの構成を示す図である。図１０では、ＯＣＳＰレスポンスの証明書の状態が有効であるリストを同じテーブルで管理する場合を、図１１では異なるテーブルで管理する場合を、それぞれ示す。
【００６２】
発行者ＤＮ８１の列に、証明書に記載されている発行者のＤＮを記載する。また、シリアル番号８２の列に失効確認を行った証明書のシリアル番号を記憶する。また、ＯＣＳＰレスポンダアドレス８３の列に、検証サーバ１３が問い合わせたＯＣＳＰレスポンダのアドレスを記憶する。また、次期レスポンス更新時刻８４の列に、図９で示したＯＣＳＰレスポンスの利用条件とレスポンス登録時刻８５の列を元に算出された、次期レスポンス更新時刻８４を記憶する。また、レスポンスデータ８６の列に、ＣＡ装置１２が応答したＯＣＳＰレスポンスデータを記憶する。また、有効フラグ８７の列に、ＯＣＳＰレスポンスに記載されている証明書の状態が有効である場合は、「１」を記憶し、証明書の状態が無効あるいは不明である場合は、「０」を記憶する。なお、図１１は、証明書の状態が有効である場合と、証明書の状態が無効あるいは不明である場合で、それぞれ異なるテーブルで管理するため、有効フラグ８７の列は存在しない。
【００６３】
８８から９３の行は、各ＣＡ装置１２に問い合わせを行った際に取得したＯＣＳＰレスポンス、をキャッシュした例を示す。８８、８９、９０の行のＣＡ装置１２が発行した証明書に対するＯＣＳＰレスポンスのキャッシュは、キャッシュの利用要件を示した図９の７６の行を用いて記憶されたものである。また、９１、９３の行のＣＡ装置１２が発行した証明書に対するＯＣＳＰレスポンスのキャッシュは、図９の発行者のＤＮ７１の行に該当するＤＮが記憶されていないため、７９あるいは７１０の利用条件を用いて記憶されたものである。また、９２の行のＣＡ装置１２が発行した証明書に対するＯＣＳＰレスポンスのキャッシュは、図９の７７の行を用いて記憶されたものである。
【００６４】
図１２は、検証サーバ１３における、通信部４０ｃ、定期自動更新部４１、ＣＲＬ更新部４２、ＯＣＳＰレスポンス更新部４３、証明書更新部４４、証明書検証部４５の関係を説明する図である。通信部４０ｃは、証明書検証要求を証明書検証部４５に行い、証明書検証要求を受けて、証明書の有効性確認処理を行った証明書検証部４５から証明書検証応答を受ける。また、証明書検証部４５は、有効性確認処理において、証明書保持部４９に保持されている証明書が、ＣＡの鍵更新や危殆化されたことを検知した場合、証明書更新部４４に証明書更新通知を行う。また、証明書更新通知を受けた証明書更新部４４は、更新したＣＡが発行するＣＲＬやＯＣＳＰレスポンスを更新するために、ＣＲＬ更新部４２にＣＲＬ更新通知を、ＯＣＳＰレスポンス更新部４３にＯＣＳＰレスポンス更新通知をそれぞれ行う。また、定期自動更新部４１は、ＣＲＬ、ＯＣＳＰレスポンス、証明書の定期更新時間に達すると、ＣＲＬ更新部４２にＣＲＬ更新通知を、ＯＣＳＰレスポンス更新部４３にＯＣＳＰレスポンス更新通知を、証明書更新部４４に証明書更新通知を送信する。
【００６５】
図１３は、証明書検証部４５が行う証明書の有効性確認処理を示すフローチャートである。
【００６６】
証明書検証部４５は、通信部４０ｃから証明書検証要求を受信すると、証明書検証要求に含まれているＥＥ証明書（有効性確認対象の証明書）から発行者のＤＮを抽出し、ＴＡ（検証者の信頼点）の自己署名証明書から主体者のＤＮを抽出する（ステップＳ１００１）。次に、証明書検証部４５は、ＴＡからＥＥ証明書の発行者までの認証パスを構築する（ステップＳ１００２）。なお、ステップＳ１００２の認証パス構築処理の詳細（図１４）については、後述する。
【００６７】
証明書検証部４５は、認証パス構築に失敗した場合（ステップＳ１００３でＮｏ）、認証パス構築時に判定したエラーコードを付与して、有効性確認結果を無効とする証明書検証応答を作成する（ステップＳ１００４）。
【００６８】
証明書検証部４５は、認証パス構築に成功した場合（ステップＳ１００３でＹｅｓ）、ステップＳ１００１で構築した認証パスの検証を行う（ステップＳ１００５）。なお、ステップＳ１００５の認証パス検証処理の詳細（図１６、図１７、図１８、図１９）については、後述する。
【００６９】
証明書検証部４５は、認証パス検証に失敗した場合（ステップＳ１００６でＮｏ）、認証パス検証で作成したエラー通知から、ＥＥ証明書の失効や、ＥＥ証明書の署名不正などのＥＥ証明書のエラーを原因とする認証パス検証失敗であるかどうか判断する（ステップＳ１００７）。証明書検証部４５は、ＥＥ証明書のエラーが原因ではない場合（ステップＳ１００７でＮｏ）、ステップＳ１００１と同一のＴＡからＥＥ証明書の発行者について、新たな認証パス構築を行うためにステップＳ１００２に戻る。証明書検証部４５は、ＥＥ証明書のエラーが原因の場合（ステップＳ１００７でＹｅｓ）、ステップＳ１００４へ進む。
【００７０】
また、証明書検証部４５は、認証パス検証に成功した場合（ステップＳ１００６でＹｅｓ）、有効性確認結果を有効とする証明書検証応答を作成する（ステップＳ１００８）。
【００７１】
図１４は、証明書検証部４５が行う認証パス構築処理（図１３、ステップＳ１００２）の詳細を示すフローチャートである。
【００７２】
証明書検証部４５は、ステップＳ１００１で抽出したＴＡのＤＮをキーとして、認証パス保持部４６を検索し、ＴＡからＥＥ証明書、または、ＣＲＬ、または、ＯＣＳＰレスポンスの発行者までの認証パス情報が存在するか確認する（ステップＳ２００１）。証明書検証部４５は、対応する認証パスがない場合（ステップＳ２００２でＮｏ）、新規に認証パス構築を行う（ステップＳ２００３）。ステップＳ２００３の新規の認証パス構築処理の詳細（図１５）については、後述する。
【００７３】
証明書検証部４５は、新規の認証パス構築に失敗した場合（ステップＳ２００４でＮｏ）、認証パス構築不可を原因とする有効性確認処理のエラーを作成する（ステップＳ２００５）。
【００７４】
証明書検証部４５は、新規の認証パス構築に成功した場合（ステップＳ２００４でＹｅｓ）、認証パス保持部４６にステップＳ２００３で構築した認証パス情報を記憶する（ステップＳ２００６）。
【００７５】
また、証明書検証部４５は、対応する認証パスがある場合（ステップＳ２００２でＹｅｓ）、対応する認証パス情報を認証パス保持部４６から取得し（ステップＳ２００７）、認証パス中の全ての証明書を証明書保持部４９から取得する（ステップＳ２００８）。
【００７６】
図１５は、証明書検証部４５が行う新規の認証パス構築処理（図１４、ステップＳ２００３）の詳細を示すフローチャートである。
【００７７】
証明書検証部４５は、証明書の発行者のＤＮを取得する（ステップＳ３００１）。ただし、証明書検証部４５は、初回は、ステップＳ１００１で取得したＥＥ証明書の発行者のＤＮを取得する。また、証明書検証部４５は、ＣＲＬ検証（図１７、ステップＳ４０１０）を行うために新規の認証パス構築を行う場合、初回は、ＣＲＬに記載されている発行者のＤＮを取得する。また、証明書検証部４５は、ＯＣＳＰレスポンス検証（図１８、ステップＳ４０１６）を行うために新規の認証パス構築を行う場合、初回は、ＯＣＳＰレスポンスに記載されているＯＣＳＰレスポンダのＤＮを取得する。
【００７８】
証明書検証部４５は、ステップＳ３００１で取得した発行者が発行した証明書群（該当するＣＡ装置１２の証明書ＤＢ３４に保持され、かつ、証明書の種類がＣＡ証明書である証明書）が証明書保持部４９にある場合（ステップＳ３００２でＹｅｓ）、ステップＳ３００７へ進む。
【００７９】
証明書検証部４５は、証明書保持部４９にない場合（ステップＳ３００２でＮｏ）、ステップＳ３００１で取得した発行者のＣＡ装置１２の証明書ＤＢ３４にアクセスし、証明書群を取得する（ステップＳ３００３）。
【００８０】
証明書検証部４５は、証明書保持部４９内に存在するステップＳ３００１で取得した発行者の証明書群と、ステップＳ３００３で取得した証明書群を比較し、更新されていない場合は（ステップＳ３００４でＮｏ）、認証パス構築するため証明書の取得が不可能であるため、新規のパス構築失敗と判断し、処理を終了する。証明書検証部４５は、更新されている場合（ステップＳ３００４でＹｅｓ）、該当するＣＡ装置１２が鍵更新したと判断し、証明書更新部４４に該当する発行者名と鍵更新が行われた旨を通知する（ステップＳ３００５）。次に、証明書検証部４５は、ステップＳ３００３で取得した証明書群を証明書保持部４９に保存し（ステップＳ３００６）、ステップＳ３００７へ進む。
【００８１】
証明書検証部４５は、ステップＳ３００２または、ステップＳ３００３で取得した証明書群中の次の証明書を選択する（ステップＳ３００７）。ただし、反復処理の初回であれば、証明書群の最初の証明書を選択する。
【００８２】
証明書検証部４５は、ステップＳ３００１で取得した証明書あるいはＣＲＬあるいはＯＣＳＰレスポンスの発行者の鍵識別子がステップＳ３００７で選択した証明書の主体者の鍵識別子と一致しない場合（ステップＳ３００８でＮｏ）、ステップＳ３００９へ進む。証明書検証部４５は、一致する場合（ステップＳ３００８でＹｅｓ）、ステップＳ３０１０へ進む。
【００８３】
証明書検証部４５は、証明書群の全ての証明書を選択済みではない場合（ステップＳ３００９でＮｏ）、ステップＳ３００７へ戻る。証明書検証部４５は、選択済みの場合（ステップＳ３００９でＹｅｓ）、ステップＳ３０１０へ進む。
【００８４】
証明書検証部４５は、ステップＳ３００７で選択した証明書を取得し、その証明書の発行者がステップＳ１００１で抽出したＴＡであれば（ステップＳ３０１０でＹｅｓ）、認証パス構築に成功と判断する。証明書検証部４５は、反復処理中にステップＳ３０１０で取得した認証パス情報と全ての証明書を取得する（ステップＳ３０１１）。証明書検証部４５は、ＴＡではない場合（ステップＳ３０１０でＮｏ）、ステップＳ３００１へ戻る。
【００８５】
次に図１６と図１７と図１８は、認証パス検証部４５が行う認証パス検証処理（図１３、ステップＳ１００５）の詳細を示すフローチャートである。
【００８６】
証明書検証部４５は、ステップＳ２００８（図１４）あるいは、ステップＳ３０１１（図１５）で取得した認証パスの全ての証明書（ＴＡが発行した証明書からＥＥ証明書の順番）の中から次の証明書を選択する（ステップＳ４００１）。ただし、証明書検証部４５は、1回目は最初の証明書を選択する。
【００８７】
証明書検証部４５は、選択した証明書を認証パス中の一つ前の証明書で署名検証を行う（ステップＳ４００２）。ただし、証明書検証部４５は、1回目は、ステップＳ１００１で取得したＴＡの自己署名証明書で署名検証を行う。
【００８８】
証明書検証部４５は、ステップＳ４００３の署名検証に失敗した場合（ステップＳ４００３でＮｏ）、エラーとなった証明書の種類と有効性確認処理のエラーの原因を署名不正とするエラー通知を作成する（ステップＳ４００４）。証明書検証部４５は、ステップＳ４００３の署名検証に成功した場合（ステップＳ４００３でＹｅｓ）、ステップＳ４００５へ進む。
【００８９】
証明書検証部４５は、ステップＳ４００１で選択した証明書に失効リスト配布点の記載があれば、失効情報の提供方法がＣＲＬと判断し（ステップＳ４００５でＣＲＬ）、ステップＳ４００６（図１７）へ進み、証明書の機関情報アクセスの領域にＯＣＳＰレスポンダの場所の記載があれば、失効情報の提供方法がＯＣＳＰと判断し（ステップＳ４００５でＯＣＳＰ）、ステップＳ４０１２(図１８)へ進む。
【００９０】
証明書検証部４５は、ステップＳ４００５でＣＲＬの場合、ステップＳ４００１で選択した証明書の発行者が発行したＣＲＬがＣＲＬ保持部４７にあるか確認する。証明書検証部４５は、ＣＲＬ保持部４７にない場合（ステップＳ４００６でＮｏ）、証明書に記載されている失効リスト配布点のロケーションにアクセスして、最新のＣＲＬを取得する（ステップＳ４００７）。証明書検証部４５は、取得したＣＲＬをＣＲＬ保持部４７に保存する（ステップＳ４００８）。
【００９１】
証明書検証部４５は、ステップＳ４００１で選択した証明書の発行者が発行したＣＲＬがＣＲＬ保持部４７にある場合（ステップＳ４００６でＹｅｓ）、対応するＣＲＬをＣＲＬ保持部４７から取得する（ステップＳ４００９）。
【００９２】
次に、証明書検証部４５は、ステップＳ４００７あるいはステップＳ４００９で取得したＣＲＬを検証する（ステップＳ４０１０）。なお、ステップＳ４０１０のＣＲＬ検証処理の詳細（図１９）については、後述する。
【００９３】
証明書検証部４５は、ステップＳ４０１０でＣＲＬ検証処理に成功した場合、ＣＲＬにステップＳ４００１で選択した証明書のシリアル番号があるか確認する（ステップＳ４０１１）。
【００９４】
証明書検証部４５は、ステップＳ４００５でＯＣＳＰの場合、ステップＳ４００１で選択した証明書の発行者が応答したＯＣＳＰレスポンスがＯＣＳＰレスポンス保持部４８にあるか確認する。証明書検証部４５は、ＯＣＳＰレスポンス保持部４８にない場合（ステップＳ４０１２でＮｏ）、証明書に記載されているＯＣＳＰレスポンダのロケーションにアクセスし、ＯＣＳＰレスポンスを取得する（ステップＳ４０１３）。証明書検証部４５は、取得したＯＣＳＰレスポンスをＯＣＳＰレスポンス保持部４８に保存する（ステップＳ４０１４）。
【００９５】
証明書検証部４５は、ステップＳ４００１で選択した証明書が発行したＯＣＳＰレスポンスがＯＣＳＰ保持部４８にある場合（ステップＳ４０１２でＹｅｓ）、対応するＯＣＳＰレスポンスをＯＣＳＰレスポンス保持部４８から取得する（ステップＳ４０１５）。
【００９６】
次に、証明書検証部４５は、ステップＳ４０１３あるいはステップＳ４０１５で取得したＯＣＳＰレスポンスを検証する（ステップＳ４０１６）。なお、ステップＳ４０１６のＯＣＳＰレスポンス検証処理の詳細（図２０）については、後述する。
【００９７】
証明書検証部４５は、ステップＳ４０１６でＯＣＳＰレスポンス検証に成功した場合、ＯＣＳＰレスポンス記載されている証明書の状態を確認する（ステップＳ４０１７）。
【００９８】
証明書検証部４５は、ステップＳ４０１１でＣＲＬにシリアル番号あることが確認された場合、また、ステップＳ４０１７で証明書の状態が失効あるいは不明であった場合、ステップＳ４００１で選択した証明書が有効ではないと判断し（ステップＳ４０１８でＮｏ）、ステップＳ４０１９へ進む。
【００９９】
証明書検証部４５は、ＣＲＬあるいはＯＣＳＰレスポンスに記載の失効理由がＣＡ危殆化でない場合（ステップＳ４０１９でＮｏ）、ステップＳ４０２１へ進む。
【０１００】
証明書検証部４５は、ＣＲＬあるいはＯＣＳＰレスポンスに記載の失効理由がＣＡ危殆化である場合（ステップＳ４０１９でＹｅｓ）、証明書更新部４４にステップＳ４００１で選択した証明書の発行者名とＣＡ危殆化の旨を通知し（ステップＳ４０２０）、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効した証明書を含むとするエラー通知を作成する（ステップＳ４０２１）。
【０１０１】
また、証明書検証部４５は、ステップＳ４０１１でＣＲＬにシリアル番号がないことを確認した場合、また、ステップＳ４０１７で証明書の状態が有効であった場合、ステップＳ４００１で選択した証明書が有効であると判断する（ステップＳ４０１８でＹｅｓ）。
【０１０２】
証明書検証部４５は、選択した証明書がＥＥ証明書でない場合、ステップＳ４００１へ戻る（ステップＳ４０２２でＮｏ）。証明書検証部４５は、選択した証明書がＥＥ証明書である場合（ステップＳ４０２２でＹｅｓ）、有効性確認処理結果を有効とする正常終了通知を作成する（ステップＳ４０２３）。
【０１０３】
図１９は、証明書検証部４５が行うＣＲＬ検証処理（図１７、ステップＳ４０１０）の詳細を示すフローチャートである。
【０１０４】
証明書検証部４５は、ステップＳ４００７あるいはステップＳ４００９で取得したＣＲＬからステップＳ４００１で選択した証明書の発行者までの認証パスを構築する（ステップＳ５００１）。なお、認証パス構築処理は、図１４と図１５に示す。次に、証明書検証部４５は、認証パスの検証を行い、認証パス検証失敗であれば（ステップＳ５００２でＮｏ）、ステップＳ５００３へ進み、一方、認証パス検証成功であれば、ＣＲＬ検証処理を終了する。
【０１０５】
また、証明書検証部４５は、認証パス途中の証明書で検証失敗の場合（ステップＳ５００３でＮｏ）、ステップＳ５００１に戻り、認証パス構築を繰り返す。証明書検証部４５は、認証パス途中の証明書で検証失敗の場合（ステップＳ５００３でＹｅｓ）、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効したＣＲＬ検証不可とするエラー通知を作成する（ステップＳ５００４）。
【０１０６】
図２０は、証明書検証部４５が行うＯＣＳＰレスポンス検証処理（図１８、ステップＳ４０１６）の詳細を示すフローチャートである。
【０１０７】
証明書検証部４５は、ステップＳ４０１３あるいはステップＳ４０１５で取得したＯＣＳＰレスポンスから、ステップＳ４００１で選択した証明書の発行者までの認証パスを構築する（ステップＳ６００１）。なお、認証パス構築処理の詳細は、図１４と図１５に示す。次に、証明書検証部４５は、認証パスの検証を行い、認証パス検証失敗であれば（ステップＳ６００２でＮｏ）、ステップＳ６００３へ進み、一方、認証パス検証成功であれば、ＯＣＳＰレスポンス検証処理を終了する。
【０１０８】
また、証明書検証部４５は、認証パス途中の証明書で検証失敗の場合（ステップＳ６００３でＮｏ）、ステップＳ６００１に戻り、認証パス構築を繰り返す。証明書検証部４５は、認証パス途中の証明書で検証失敗の場合（ステップＳ６００３でＹｅｓ）、エラーとなった証明書の種類と有効性確認処理のエラーの原因を失効したＯＣＳＰレスポンス検証不可とするエラー通知を作成する（ステップＳ６００４）。
【０１０９】
図２１は、証明書更新部４４が行う証明書保持部４９の更新処理を示すフローチャートである。
【０１１０】
証明書更新部４４は、定時自動更新部４１から更新通知を受けた場合（ステップＳ７００１で定時自動更新部）、更新通知に記載されている発行者に対応するＣＡ装置１２の証明書ＤＢ３４にアクセスし、証明書群を取得する（ステップＳ７００２）。証明書更新部４４は、取得した証明書群を証明書保持部４９に格納し、証明書群を更新する（ステップＳ７００３）。
【０１１１】
また、証明書更新部４４は、証明書検証部４５から更新通知を受けた場合（ステップＳ７００１で証明書検証部）、証明書検証部４５からの更新通知に記載されている発行者が発行したＣＲＬを更新するようにＣＲＬ更新部４２に通知する（ステップＳ７００４）。次に、証明書更新部４４は、証明書検証部４５からの更新通知に記載されている発行者が発行したＯＣＳＰレスポンスを更新するようにＯＣＳＰレスポンス更新部４３に通知する（ステップＳ７００５）。
【０１１２】
図２２は、ＣＲＬ更新部４２が行うＣＲＬ保持部４７の更新処理を示すフローチャートである。
【０１１３】
ＣＲＬ更新部４２は、定時自動更新部４１あるいは、証明書更新部４４からＣＲＬの更新通知を受信する（ステップＳ８００１）。ＣＲＬ更新部４２は、ＣＲＬの更新通知に記載されている発行者のＣＲＬをＣＲＬ保持部４７から検索し（ステップＳ８００２）、対応する発行者のＣＲＬが存在する場合（ステップＳ８００３でＹｅｓ）、ＣＲＬを発行しているロケーションから最新のＣＲＬを取得する（ステップＳ８００４）。次に、ＣＲＬ更新部４２は、取得したＣＲＬをＣＲＬ保持部４７に格納し、ＣＲＬ保持部４７を更新する（ステップＳ８００５）。また、ステップＳ８００３で、対応する発行者のＣＲＬが存在しない場合、ＣＲＬ更新部４２は、更新処理を終了する。
【０１１４】
図２３は、ＯＣＳＰレスポンス更新部４３が行うＯＣＳＰレスポンス保持部４８の更新処理を示すフローチャートである。
【０１１５】
ＯＣＳＰレスポンス更新部４３は、定時自動更新部４１あるいは、証明書更新部４４からＯＣＳＰレスポンスの更新通知を受信する（ステップＳ９００１）。ＯＣＳＰレスポンス更新部４３は、ＯＣＳＰレスポンスの更新通知に記載されている発行者のＯＣＳＰレスポンスをＯＣＳＰレスポンス保持部４７のキャッシュテーブルから検索し（ステップＳ９００２）、対応する発行者のＯＣＳＰレスポンスが存在する場合（ステップＳ９００３でＹｅｓ）、ＯＣＳＰレスポンスを発行しているロケーションに対応する証明書のＯＣＳＰリクエストを送信し、ＯＣＳＰレスポンスを取得する（ステップＳ９００４）。ＯＣＳＰレスポンス更新部４３は、取得したＯＣＳＰレスポンスをＯＣＳＰレスポンス保持部４７のキャッシュテーブルに記憶し、ＯＣＳＰレスポンス保持部４７を更新する（ステップＳ９００５）。ＯＣＳＰレスポンス更新部４３は、キャッシュテーブルの全てのレコードを検索したか確認し、最後のレコードまで検索処理が終了すれば更新処理を終了し、最後のレコードまで検索処理が終了していない場合（ステップＳ９００６でＮｏ）、ステップＳ９００２に戻る。また、ステップＳ９００３で、対応する発行者のＯＣＳＰレスポンスが存在しない場合、ＯＣＳＰレスポンス更新部４３は、更新処理を終了する。
【０１１６】
以上本発明の一実施形態について説明した。検証サーバ１３は、端末から証明書の有効性確認の依頼を受けて、端末装置１１から送信された証明書検証要求に含まれている、有効性確認対象の証明書と端末が信頼するＣＡの証明書を、利用して認証パス構築を行い、また、認証パスの全ての証明書の有効性をＣＡ装置１２から提供されるＣＲＬとＯＣＳＰレスポンスを利用して検証する認証パス検証を行い、証明書の有効性を判定した結果を、端末に証明書検証結果として送付する、証明書検証手段を有する。また、証明書検証手段は、検証サーバ１３に記憶されたＣＲＬ、または、ＯＣＳＰレスポンスを利用して、認証パスの検証を行い、ＣＲＬ、または、ＯＣＳＰレスポンスが記憶されていない場合は、ＣＡ装置１２にアクセスして、ＣＲＬ、または、ＯＣＳＰレスポンスを取得することを特徴とする。また、証明書検証手段は、検証サーバ１３内に記憶されたＣＡ証明書を利用して、認証パスの構築、または、ＣＲＬの検証、または、ＯＣＳＰレスポンスの検証を行い、ＣＡ証明書が記憶されていない場合は、ＣＡ装置１２にアクセスして取得することを特徴とする。また、証明書検証手段は、認証パス構築においてＣＡ装置１２の鍵更新を検知し、また、認証パス検証においてＣＡ装置１２のＣＡ危殆化を検知し、検証サーバ１３内に記憶された証明書を更新することを通知することを特徴する。また、検証サーバ１３は、ＣＡ装置１２のリポジトリにアクセスして取得したＣＡ証明書をＣＡ装置１２のＤＮ毎に記憶する証明書記憶手段を持つ。また、検証サーバ１３は、ＣＡ装置１２のリポジトリにアクセスして取得したＣＲＬをＣＡ装置１２のＤＮ毎に記憶するＣＲＬ記憶手段を有する。また、検証サーバ１３は、ＣＡ装置１２のＯＣＳＰレスポンダから取得したＯＣＳＰレスポンスを、運用管理者がＣＡ装置１２のＤＮ毎に設定したＯＣＳＰレスポンスの有効期間あるいは有効時期から次期更新時刻を算出して、ＣＡ装置１２毎に、証明書の状態（有効、失効、不明）で分類して、記憶するＯＣＳＰレスポンス記憶手段を有する。また、検証サーバ１３は、運用管理者が設定した定時自動更新時間に達すると、検証サーバ１３内に記憶されたＣＲＬを更新することを、または、検証サーバ１３内に記憶されたＣＡ証明書を更新することを、通知する定時自動更新手段を有する。また、定時自動更新手段は、検証サーバ１３内に記憶されたＯＣＳＰレスポンスの次期更新時刻に達すると、検証サーバ１３内に記憶されたＯＣＳＰレスポンスを更新することを通知することを特徴とする。また、検証サーバ１３は、定期自動更新手段、または、証明書検証手段から通知に応じて、ＣＡ装置１２から新たなＣＡ証明書を取得して、記憶したＣＡ証明書を更新する証明書更新手段を有する。また、証明書更新手段は、証明書検証手段から、ＣＡ装置１２の鍵更新とＣＡ装置１２の危殆化が通知された場合、ＣＲＬ更新手段に検証サーバ１３内に記憶されたＣＲＬを更新することを、また、ＯＣＳＰレスポンス更新手段に検証サーバ１３内に記憶されたＯＣＳＰレスポンスを更新することを、通知することを特徴とする。また、検証サーバ１３は、定期自動更新手段、または、証明書更新手段から通知に応じて、ＣＡ装置１２から新たなＣＲＬを取得して、記憶したＣＲＬを更新するＣＲＬ更新手段を有する。また、検証サーバ１３は、定期自動更新手段、または、証明書更新手段から通知に応じて、ＣＡ装置１２から新たなＯＣＳＰレスポンスを取得して、記憶したＯＣＳＰレスポンスを更新するＣＲＬ更新手段を有する。
【０１１７】
上記実施形態によれば、証明書の有効性確認処理を効率的にかつ安全に行うことができる証明書の有効性確認方法、これを実施する検証サーバ、プログラム及び記憶媒体を提供することができる。これにより、証明書の有効性確認処理における、認証パスの構築や認証パスの検証を効率的にかつ安全に行うことができる。
【０１１８】
また、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１１９】
１１・・・端末装置、１２・・・ＣＡ装置、１３・・・検証サーバ、１４・・・ネットワーク、２０ａ、３０ａ、４０ａ・・・処理部、２０ｂ、３０ｂ、４０ｂ・・・記憶部、２０ｃ、３０ｃ、４０ｃ・・・通信部、２０ｄ、３０ｄ、４０ｄ・・・入出力部、２１・・・署名付き文書作成部、２２・・・署名・証明書検証部、２３、３３・・・制御部、２４・・・電子文書保持部、２５・・・鍵保持部、２６・・・検証対象保持部、３１・・・発行部、３２・・・管理部、３４・・・証明書ＤＢ、３５・・・発行先管理リスト保持部、３６、４７・・・ＣＲＬ保持部、３７・・・証明書有効性確認部、４１・・・定期自動更新部、４２・・・ＣＲＬ更新部、４３・・・ＯＣＳＰレスポンス更新部、４４・・・証明書更新部、４５・・・証明書検証部、４６・・・認証パス保持部、４８・・・ＯＣＳＰレスポンス保持部、４９・・・証明書保持部、４１０・・・設定情報保持部、５０・・・内部通信線、５１・・・ＣＰＵ、５２・・・メモリ、５３・・・外部記憶装置、５４・・・読み取り装置、５５・・・通信装置、５６・・・入力装置、５７・・・出力装置、５９・・・記憶媒体。
【図１】
0005452099.tif 000002
【図２】
0005452099.tif 000003
【図３】
0005452099.tif 000004
【図４】
0005452099.tif 000005
【図５】
0005452099.tif 000006
【図６】
0005452099.tif 000007
【図７】
0005452099.tif 000008
【図８】
0005452099.tif 000009
【図９】
0005452099.tif 000010
【図１０】
0005452099.tif 000011
【図１１】
0005452099.tif 000012
【図１２】
0005452099.tif 000013
【図１３】
0005452099.tif 000014
【図１４】
0005452099.tif 000015
【図１５】
0005452099.tif 000016
【図１６】
0005452099.tif 000017
【図１７】
0005452099.tif 000018
【図１８】
0005452099.tif 000019
【図１９】
0005452099.tif 000020
【図２０】
0005452099.tif 000021
【図２１】
0005452099.tif 000022
【図２２】
0005452099.tif 000023
【図２３】
0005452099.tif 000024