(57)【要約】【課題】電子証明書の有効性検証の負荷を軽減する。【解決手段】証明書インポート部１０２は、入力された証明書を証明書ＤＢ１０８に登録すると共に、パス構築部１０４にその証明書の認証パスを構築させ、構築が成功したか否かを示す情報をパス構築情報記憶部１０６に登録する。そして、アプリケーションから証明書の有効性の検証が要求された場合、検証制御部１１２はまずパス構築情報記憶部１０６にてその証明書のパス構築が成功裏に済んでいるかどうかを調べ、そうであればパス検証部１１４に公知のパス検証処理を実行させる。パス構築が成功していないと判明した場合、検証制御部１１２は、その旨をアプリケーションに回答する。【選択図】図２
2006229735.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される情報処理装置であって、
公開鍵基盤アプリケーションのために用いる電子証明書を記憶するための証明書記憶手段と、
証明書記憶手段に記憶された電子証明書ごとに、当該証明書の認証パスが既に構築済みであるか否かを示す情報を記憶したパス情報記憶手段と、
電子証明書の検証を要求された場合に、パス情報記憶手段を参照してその電子証明書の認証パスが既に構築済みであるか否かを判定し、構築済みであると判定した場合のみ当該認証パスについてのパス検証を実行する検証手段と、
を備える情報処理装置。
【請求項２】
電子証明書が証明書記憶手段にインポートされる時に、その電子証明書についての認証パスの構築処理を実行し、その構築処理の結果をパス情報記憶手段に記憶させるパス情報登録手段、を更に備える請求項１に記載の情報処理装置。
【請求項３】
パス情報記憶手段は、電子証明書ごとに、当該電子証明書の発行者が当該電子証明書に対するデジタル署名に用いた秘密鍵に対応する電子証明書の識別情報を更に記憶し、
検証手段は、パス情報記憶手段に記憶された、電子証明書の発行者が当該電子証明書に対するデジタル署名に用いた秘密鍵に対応する電子証明書の識別情報に基づき、認証パス上における各発行者の電子証明書を特定する、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
電子証明書が証明書記憶手段にインポートされた時に、証明書記憶手段に記憶された電子証明書のうち、パス情報記憶手段に認証パスが構築済みではない旨の情報が記憶された電子証明書について証明書検証手段にパス構築処理を再度実行させ、この実行の結果に応じてパス情報記憶手段に記憶される情報を更新するパス情報更新手段、
を更に備える請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
ネットワークに接続される情報処理装置と、そのネットワークに接続された証明書インポート管理装置とを備える情報処理システムであって、
情報処理装置は、
公開鍵基盤アプリケーションのために用いる電子証明書を記憶するための証明書記憶手段と、
証明書記憶手段に記憶された電子証明書ごとに、当該証明書の認証パスが既に構築済みであるか否かを示す情報を記憶したパス情報記憶手段と、
電子証明書の検証を要求された場合に、パス情報記憶手段を参照してその電子証明書の認証パスが既に構築済みであるか否かを判定し、構築済みであると判定した場合のみ当該認証パスについてのパス検証を実行する検証手段と、
を備え、
証明書インポート管理装置は、
情報処理装置の証明書記憶手段に電子証明書をインポートするインポート手段であって、その電子証明書についての認証パスの構築処理を実行し、その構築処理の結果をパス情報記憶手段に記憶させるインポート手段、
備える、
ことを特徴とする情報処理システム。
【請求項６】
ネットワークに接続される情報処理装置で実行されるプログラムであって、該情報処理装置を、
公開鍵基盤アプリケーションのために用いる電子証明書を記憶するための証明書記憶手段、
証明書記憶手段に記憶された電子証明書ごとに、当該証明書の認証パスが既に構築済みであるか否かを示す情報を記憶したパス情報記憶手段、
電子証明書の検証を要求された場合に、パス情報記憶手段を参照してその電子証明書の認証パスが既に構築済みであるか否かを判定し、構築済みであると判定した場合のみ当該認証パスについてのパス検証を実行する検証手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子証明書の有効性検証の効率化に関する。
【背景技術】
【０００２】
公開鍵基盤（ＰＫＩ）において用いられる公開鍵証明書等の電子証明書（以下「証明書」と略す）には有効期限が定められている。また、有効期限内においても、証明書は様々な理由から失効する場合があり、失効のタイミングがあらかじめ分からない場合もある。このようなことから、原則的には、証明書を使用する時にその時点の最新情報に基づきその有効性を確認する必要がある。
【０００３】
証明書の有効性検証のためには、認証パスを構築し、そのパス上の各証明書についてその有効性や矛盾の無いことなどを確認するなど多くの処理が必要であるため、処理にある程度の時間が掛かる。パーソナルコンピュータであれば、バックグラウンドで処理させることも可能であるし、またアプリケーションの起動の時間待ちなどもよくある話なので、このような検証に要する時間が許容される場合が多い。これに対し、近年のデジタル複合機の中には、ネットワークに接続され、ＳＳＬ(secure sockets layer)やＳ／ＭＩＭＥ(secure/multipurpose internet mail extensions)などのプロトコルを利用した通信ができるものが存在するが、このようなデジタル複合機のような特定用途の機器の場合、リアルタイムの応答性に対する要求がパーソナルコンピュータの場合よりも遥かに強いため、証明書の有効性検証に要する時間も無視できない。この時間の短縮が求められている。
【０００４】
このような状況に対し、特許文献１には、電子証明書の有効性の確認処理を簡略化することを目的とした次のようなシステムが開示されている。すなわち、このシステムでは、証明書有効性確認代行サーバは証明書の有効性の確認結果を保持するキャッシュを備え、クライアントから証明書の有効性の確認要求を受けると、まずキャッシュを調べ、キャッシュの中にその証明書の確認結果データがあり、且つそのデータがキャッシュ利用条件により指定された有効期間内にあれば、その確認結果データを確認結果としてクライアントに提供する。キャッシュの中に無ければ、その要求により指定された証明書の有効性を認証局のサーバに確認して確認結果をクライアントに提供すると共に、キャッシュに記憶する。
【０００５】
特許文献１の方式は、キャッシュした確認結果の有効期間の間は、検証の処理を省略できるので、検証処理負荷の軽減には大きく寄与する。また、キャッシュした確認結果の有効期間を、当該証明書の残り有効期間が長いほど長くしたり（第６７段落参照）、当該証明書発行者の発行時の事前調査が厳密であるほど長くしたり（第６９段落参照）するなどと、各種条件に応じて選択するというように、キャッシュしたデータの有効期間も証明書ごとに個別に決定するという配慮もしている。
【０００６】
しかしながら、この方式は検証対象である証明書しか考慮していない。本来、検証対象の証明書が有効であるためには、その証明書の認証パス（その証明書の発行者の証明書、更にその発行者の証明書などと順にルート認証局（ＣＡ）まで遡った証明書の連鎖）上のすべての証明書が有効である必要があるが、検証対象の証明書しか考慮しないと誤判定を行ってしまう可能性がある。原則では発行者は自分の証明書の有効期間を超える有効期間を持つ証明書は発行してはならず、この原則が守られている限りはこのような問題は生じにくいが、その原則が必ずしも厳密に守られている場合ばかりではないからである。また、検証対象の証明書についての有効性確認結果のキャッシュデータの有効期間よりも、その証明書の発行者の証明書についてのキャッシュデータの有効期間の方が先に終了する場合も考えられ、そのような場合、発行者のキャッシュデータの有効期間が切れた後は、検証対象の証明書の有効性のキャッシュデータの値は利用できなくなるはずであるが、そのような問題点につき特許文献１は対策をとっていない。
【０００７】
また、特許文献１の方式では、キャッシュした有効性確認結果の有効期間を適切に決定するには、キャッシュ利用条件を詳細に設定する必要があり、操作者の負担が大きいという問題がある。
【０００８】
また別の従来技術として、特許文献２に示されるシステムでは、無線基地局は、通信が証明書を含むものであることを識別すると、証明書検証サーバに証明書の有効性を問い合わせ、これに応じて証明書検証サーバより受け取った証明書の有効性情報をもとに携帯端末に証明書の検証結果を通知している。
【０００９】
特許文献２のシステムは、無線基地局が携帯端末の代わりに証明書の検証処理を実行するため、携帯端末の検証処理に対する負担を軽減することができる。しかし、この仕組みはインターネット側から携帯端末に送られる通信に証明書が含まれている場合に機能するのみであり、例えば携帯端末が過去にインポート済みの証明書を利用してＰＫＩアプリケーションを実行しようとする場合などには適用できない。
【００１０】
【特許文献１】特開２００２−１６３３９５号公報
【特許文献２】特開２００２−２１７８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の１つの側面では、ユーザの操作負担をあまりかけずに、認証パスも考慮した証明書の有効性検証を実現しつつも、その検証処理の負担を軽減できる装置を提供する。
【課題を解決するための手段】
【００１２】
本発明に係る情報処理装置は、ネットワークに接続される情報処理装置であって、公開鍵基盤アプリケーションのために用いる電子証明書を記憶するための証明書記憶手段と、証明書記憶手段に記憶された電子証明書ごとに、当該証明書の認証パスが既に構築済みであるか否かを示す情報を記憶したパス情報記憶手段と、電子証明書の検証を要求された場合に、パス情報記憶手段を参照してその電子証明書の認証パスが既に構築済みであるか否かを判定し、構築済みであると判定した場合のみ当該認証パスについてのパス検証を実行する検証手段とを備える。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明を実施するための最良の形態（以下「実施形態」と呼ぶ）について説明する。
【００１４】
図１は、本発明が適用されるシステムの概略構成を示す図である。このシステムは、本発明に係る情報処理装置の一例としてのデジタル複合機１０と、このデジタル複合機１０に対する証明書のインポート処理のために用いるパーソナルコンピュータ２０とをが、ＬＡＮ（ローカルエリアネットワーク）３０を介して接続されたものである。なお、デジタル複合機１０は、よく知られるように、印刷、スキャン、複写の機能を備えた装置である。またファクシミリ送受信機能を備えることもある。
【００１５】
また、このデジタル複合機１０は、情報処理のためのプロセッサや記憶装置を備えている。そして例えば、スキャンした文書の電子データを電子メールやＦＴＰ(file transfer protocol)などのプロトコルを用いて指定の宛先に送信したり、電子メールに添付して送信されてきた文書を印刷したりする機能を備え、これらの機能においてＳＳＬやＳ／ＭＩＭＥを利用した暗号化通信やデジタル署名等のためのＰＫＩアプリケーションを実行することができる。
【００１６】
このようなＰＫＩアプリケーションの実行のためには、デジタル複合機１０に対し、必要な証明書をインポートする必要がある。例えば送信するメールのメッセージをＳ／ＭＩＭＥを利用して暗号化する場合には、デジタル複合機１０はそのメールの宛先ユーザの証明書を持っている必要がある。このため、従来より、デジタル複合機１０の管理者が、必要な証明書を随時デジタル複合機１０にインポートしている。デジタル複合機１０は、このインポートのためのインタフェースを有する。管理者は、ＬＡＮ３０に接続されたパーソナルコンピュータ２０からそのインタフェースを介して必要な証明書をデジタル複合機１０にインポートする。なお、パーソナルコンピュータ２０には、そのインタフェースにアクセスするのに必要なアプリケーションプログラムがインストールされている。
【００１７】
またデジタル複合機１０は、インポートした証明書の有効性を検証するための手段を備えている。有効性の検証は、対象となる証明書が使用される時点や、管理者等から検証指示があった場合などに実行される。
【００１８】
図２は、デジタル複合機１０の証明書関係の機能部分を示す機能ブロック図である。
【００１９】
図２において、証明書インポート部１０２は、証明書のインポートのためのインタフェースとなる処理ユニットである。管理者は、パーソナルコンピュータ２０から証明書インポート部１０２にアクセスし、証明書のインポートを行う。証明書ＤＢ（データベース）１０８は、インポートされた証明書のデータを記憶するデータベースである。なお、証明書のインポートはデジタル複合機１０のセキュリティに関わる重要な作業なので、デジタル複合機１０の管理者のみが行えるようにする。このため、証明書インポート部１０２は、パーソナルコンピュータ２０からのアクセスに対してユーザ認証処理を行い、認証が成功した場合にのみインポートのためのインタフェースをパーソナルコンピュータ２０に提供する。
【００２０】
パス構築部１０４は、証明書ＤＢ１０８に記憶された証明書に対し、認証パスの構築処理（パス構築）を行う処理ユニットである。パス構築情報記憶部１０６は、パス構築部１０４による各証明書のパス構築の結果を記憶するユニットである。検証要求受付部１１０は、他の装置やアプリケーションから、証明書の有効性についての検証要求を受け付ける処理ユニットである。検証制御部１１２は、検証要求の対象の証明書についての有効性の検証処理を制御するユニットである。パス検証部１１４は、検証要求の対象である証明書について、その証明書の認証パスの検証（パス検証）を行うユニットである。以上に説明した図２の各ユニットは、典型的には、本明細書中で説明するそれら各ユニットの機能・動作を記述したプログラムを、デジタル複合機１０内蔵のコンピュータに実行させることにより実現される。これらユニットの詳細な機能・動作については、以下で詳しく説明する。
【００２１】
まず、図３を参照して、このデジタル複合機１０に対する証明書のインポート処理の流れを説明する。ここでは、典型的な例として、管理者がＬＡＮ３０（図１参照）上のパーソナルコンピュータ２０からデジタル複合機１０の証明書インポート部１０２（図２参照）に対し、インポート対象の証明書を入力した場合の処理の流れを説明する。なお、以下では、証明書インポート部１０２によるユーザ認証は既に済んでいるものとする。
【００２２】
この場合、証明書インポート部１０２は、パーソナルコンピュータ２０から入力された証明書を証明書ＤＢ１０８に登録する（Ｓ１０）。ここでは、証明書のインポートは管理者の操作によるものなので、その証明書は管理者が信頼しているものとして証明書ＤＢ１０８に登録している。
【００２３】
次に、図示例の手順では、エンドエンティティの証明書かＣＡの証明書かを判定する（Ｓ１２）。ステップＳ１２において、エンドエンティティかＣＡかは、例えば、ＩＴＵ−Ｔが策定した標準Ｘ．５０９に規定される証明書のＲＦＣ３２８０（ＲＦＣ２４５９の新しい版）拡張プロファイルにおける基本制約(basicConstraints)のフィールドの値から判定することができる。
【００２４】
インポートされた証明書がステップＳ１２でエンドエンティティの証明書であると判定された場合、証明書インポート部１０２は、パス構築部１２に対し、その証明書のパス構築を要求する。これに応じ、パス構築部１２は、その証明書の認証パスを構築する（Ｓ１６）。パス構築は、証明書（説明の便宜上「証明書Ａ」と呼ぶ）に対して署名した発行者の証明書を特定するという処理を、ルートＣＡの証明書に到達するまで繰り返すことにより行う。
【００２５】
ここで発行者は、証明書Ａの発行者フィールドの値から特定できる。特定した発行者の証明書（説明の便宜上「証明書Ｂ」と呼ぶ）を取得し、その証明書Ｂの中に含まれる公開鍵を用いて証明書Ａのデジタル署名を検証する、この検証が成功した場合、証明書Ｂが証明書Ａを署名した証明書であると確認できたことになる。１つの発行者が複数の証明書Ｂを持っている場合には、それら各証明書Ｂの公開鍵で証明書Ａの署名検証を試み、その中で署名検証に成功したものが、認証パスにおける証明書Ａの発行者の証明書と判定できる。このような処理を、インポートされた証明書を起点に繰り返すことで、証明書からその発行者の証明書へと順に署名の経路を遡り、その結果自己署名されたルートＣＡの証明書にたどり着くことができれば、パス構築は成功である。逆に、ルートＣＡの証明書までたどり着けなければパス構築は失敗である。以上概略的に説明したが、パス構築の仕方は周知であるのでこれ以上の説明は省略する。以下では、認証パスの構築が成功した場合を「パス構築済み」と表現し、失敗した場合を「パス未構築」と呼ぶことにする。
【００２６】
なお、この例では、パス構築は、証明書ＤＢ１０８に登録されている証明書群の中で行う。すなわち、発行者の証明書は証明書ＤＢ１０８の中から探す。これは、１つには処理の高速化のためである。パス構築や後で説明するパス検証の際に、デジタル複合機１０の外部のネットワーク上に存在するディレクトリサーバ等から証明書を取得していたのでは、通信等の処理のために時間が掛かってしまうからである。
【００２７】
また別の側面として、証明書ＤＢ１０８内のみでパス構築を行うという方式には、煩雑な判定を行わなくても自動的に信頼の連鎖が構築できるというメリットもある。すなわち、証明書ＤＢ１０８に証明書を登録する経路を管理者からのインポートに限定しておけば、証明書ＤＢ１０８内の証明書は管理者が意図的にインポートしたものなので管理者が信頼を置いていると考えることができ、このような信頼された証明書の連鎖により認証パスが構築できれば、認証パス全体を信頼できるものとみなすことができる。また、このようにすべての証明書のインポート経路を管理者経由に限定しなくても、ルートＣＡの証明書だけでも管理者経由に限定すれば、認証パスの構築が成功した場合、その認証パスは管理者が意図的にインポートしたルートＣＡを信頼点（トラストアンカー）としたものとなり、信頼性の高いものと考えることができる。
【００２８】
パス構築（Ｓ１６）が終了すると、そのパス構築が成功したか又は失敗したのかを示す構築結果の情報をパス構築情報記憶部１０６に登録する（Ｓ１８）。このときパス構築情報記憶部１０６に登録するレコードの構造の例を図４に示す。図４の例では、１つのレコードは、証明書識別情報１０６２とパス構築フラグ１０６４から構成される。証明書識別情報１０６２は、パス構築の対象である証明書を一意に示す識別情報である。証明書識別情報１０６２としては、例えば、当該証明書に示された発行者ＤＮ(Distinguished Name)とシリアル番号の組合せを用いることができる。パス構築フラグ１０６４は、パス構築の結果、すなわちパス構築が成功（「パス構築済み」）したか失敗（「パス未構築」）したかを示すフラグである。パス構築情報記憶部１０６には、証明書ごとに１つずつ、図４に示したようなレコードが登録される。
【００２９】
なお、インポートした証明書の認証パスにおいて、ある中間ＣＡの証明書以上のパスが別の証明書のインポートの際に構築済みである場合もある。したがって、ステップＳ１６のパス構築では、インポートされた証明書から上位に向かって認証パスを構築していく過程で、パス構築フラグ１０６４が「構築済み」となっている証明書がその認証パス上に有ることが判明した場合、その時点でその認証パスの構築が成功したと判定して処理を終了してもよい。
【００３０】
また、１つの証明書の認証パスを構築する場合、その証明書の認証パス上にある中間ＣＡの証明書の認証パスも同時に構築されることになるので、ステップＳ１８では、認証パス上で見つかった中間ＣＡの証明書について、必要に応じてパス構築結果（例えばパス構築フラグ１０６４）の情報をパス構築情報記憶部１０６に登録したり、登録された情報を更新したりすることが好適である。
【００３１】
また、インポート対象として入力される証明書と同一の証明書が既に証明書ＤＢ１０８に登録されている場合も考えられる。このような場合を考慮すると、インポート処理では、パス構築を行った証明書と同じものが証明書ＤＢ１０８に既登録であれば、パス構築情報記憶部１０６に登録されたその証明書のレコードのパス構築フラグ１０６４の値を、そのパス構築の結果に応じて適宜更新するようにすればよい。
【００３２】
パス構築結果の登録（Ｓ１８）が完了すると、当該証明書のインポート処理は終了する。
【００３３】
再びステップＳ１２にもどり、インポートされた証明書がこのステップでエンドエンティティ証明書でないと判定された場合、証明書インポート部１０２は、更に当該証明書がルートＣＡの証明書か否か（Ｓ１４）を判定する。ルートＣＡか否かは、その証明書の発行者(issuer)フィールドの値と主体者(subject)フィールドの値から判定できる。それら両フィールドの値が同じ名前（ＤＮ:Distinguished Name）であれば、その証明書はルートＣＡのものである。そうでなければその証明書はルートＣＡのものでない、すなわち中間ＣＡのものということになる。
【００３４】
インポートされた証明書がステップＳ１４でルートＣＡの証明書と判定された場合、その証明書自体がルートなので認証パスの構築は不要である。この場合、その証明書を信頼点として、他のパス未構築の証明書の認証パスの再構築を試みる。
【００３５】
この場合証明書インポート部１０２は、パス構築部１０４に対し、証明書ＤＢ１０８に登録された証明書の中でパス未構築の証明書についてのパスの再構築処理を実行させる（Ｓ２０）。ここで、パス未構築の証明書は、パス構築情報記憶部１０６に記憶されたレコードから特定する。そして、特定した個々のパス未構築の証明書に対し、前述と同様のパス構築処理を行う（Ｓ２０）。なお、Ｓ２０での再構築では、最上位の証明書であるルートＣＡ証明書が与えられているのであるから、前述のようなボトムアップ（下位から上位へ向かう）のパス構築の代わりに、そのルートＣＡ証明書から下位へと向かうトップダウンのパス構築を行うようにしてもよい。このようにして、パス未構築の各証明書についての再構築処理が完了すると、その結果によりパス構築情報記憶部１０６のレコードを更新する（Ｓ２２）。すなわち、再構築によりある証明書の認証パスの構築が成功すれば、当該証明書のパス構築フラグ１０６４の値を「構築済み」に変更し、そうでなければ「未構築」のままとする。これによりインポートされた証明書についての処理が終了する。
【００３６】
インポートされた証明書がステップＳ１４でルートＣＡの証明書ではない、すなわち中間ＣＡの証明書であると判定された場合は、その証明書についてのパス構築と、パス未構築の他の証明書についてのパス再構築の両方を行う。すなわち、パス構築部１０４は、ステップＳ１６と同様その証明書から信頼点へと遡る認証パスの構築を行い（Ｓ２４）、その結果をパス構築情報記憶部１０６に登録し（Ｓ２６）、ステップＳ２０と同様証明書ＤＢ１０８内のパス未構築の証明書についてのパス再構築を行い（Ｓ２８）、その結果をパス構築情報記憶部１０６に登録する（Ｓ２９）。これによりインポートされた証明書についての処理が終了する。
【００３７】
以上、デジタル複合機１０に対する証明書のインポート処理について説明した。このようにインポートされた証明書がデジタル複合機１０やＬＡＮ３０上のクライアントコンピュータ上のアプリケーションにより利用される場合などには、その証明書についての有効性の検証が行われる。この検証処理の流れについて図５を参照して説明する。
【００３８】
この手順では、まず検証要求受付部１１０がアプリケーションから有効性の検証要求を受け取り、検証制御部１１２に渡す（Ｓ３０）。検証要求には、検証対象の証明書を特定するための情報（例えば、証明書ＤＢ１０８に登録された各証明書に一意に付与された識別番号や、証明書の主体者のメールアドレスなど）が含まれる。証明書を特定するための情報に該当する証明書が証明書ＤＢ１０８に複数存在する場合もあり、その場合には、該当する個々の証明書が検証対象の証明書となる。
【００３９】
この検証要求に対し、検証制御部１１２は、まず検証対象の証明書の情報をパス構築情報記憶部１０６から検索し（Ｓ３２）、その証明書がパス構築済みであるかどうかを調べる（Ｓ３４）。パス構築済みであれば、検証制御部１１２はパス検証部１１４に対し、検証対象の証明書についてのパス検証処理を実行させる（Ｓ３６）。パス検証部１１４によるパス検証処理は、従来から行われている処理と同様でよい。
【００４０】
例えば、最も簡便には、現在時刻が検証対象の証明書の認証パス上の各証明書の有効期間を過ぎていないかのみを判定すればよい。この場合、認証パス上のすべての証明書について、現在時刻がその有効期間を過ぎていなければ、検証対象の証明書は有効と判定され、そうでなければ（すなわち１つでも有効期間を過ぎた証明書がパス上にあれば）検証対象の証明書は無効と判定される。このように証明書の有効期間のみを考慮した有効性の判定であれば、非常に高速に実行することができる。
【００４１】
また、有効性の検証を更に厳密に行いたい場合は、認証パス上の各証明書について、上述の有効期限の判定に加え、証明書失効リスト（ＣＲＬ:Certificate Revocation List）に載っていないかどうかを判定するようにしてもよい。この場合、認証パス上の証明書のうちいずれか１つでもＣＲＬに掲載されていた場合は、検証対象の証明書は無効と判定される。なお、インターネット上のリポジトリに登録されたＣＲＬを参照していたのでは通信時間等により処理に多大の時間を要することが考えられるので、これを避けるために、リポジトリからデジタル複合機１０又はこれが接続されたＬＡＮ３０上のコンピュータにＣＲＬをダウンロードし、このＣＲＬを参照してこの検証を行うようにしてもよい。この場合、リポジトリにおけるＣＲＬの更新タイミングに合わせてデジタル複合機１０等の中のＣＲＬも更新する。
【００４２】
またこの他に、ステップＳ３６で、認証パス上の各証明書間のポリシーや名前空間の制限事項における矛盾の有無などの検証を行うようにしてもよい。
【００４３】
パス検証（Ｓ３６）が完了すると、検証制御部１１２は、その検証結果を検証要求元のアプリケーションに返し（Ｓ３８）、処理を終了する。
【００４４】
また、ステップＳ３４で検証対象の証明書がパス未構築と判定された場合は、検証制御部１１２は、検証要求元のアプリケーションに対し、パス未構築の旨を示すメッセージを返信し（Ｓ３９）、処理を終了する。
【００４５】
なお、ステップＳ３４で検証対象の証明書のパスが未構築の場合、検証制御部１１２がパス構築部１０４にその証明書のパス構築を再実行させ、その再実行の結果を要求元に返し、この再実行の結果によりパス構築情報記憶部１０６の情報を更新するようにしてもよい。
【００４６】
以上説明したように、本実施形態では、証明書のインポート時にその証明書についてパス構築を行い、その結果をパス構築情報記憶部１０６に記憶して再利用できるようにしている。
【００４７】
証明書の有効性は時間の経過や様々失効事由の発生により動的に変化するが、認証パス自体は時間的に変化しない静的なものである。本実施形態では、静的な認証パスは証明書のインポート時に構築してその結果を保存し、必要に応じて再利用するとともに、証明書の有効性検証時にはパス検証のみを行うようにしている。パス構築の際にも上述のように署名の検証等の比較的負荷の高い処理が必要となるため、パス構築の結果を再利用するだけでも、検証が要求された時点でのデジタル複合機１０の処理負荷を従来よりかなり低減することができる。
【００４８】
なお、この負荷低減の観点では、パス構築情報記憶部１０６に、各証明書についてのパス構築フラグ１０６４だけでなく、更に構築された認証パスを示す情報を合わせて登録することも好適である。構築された認証パスの情報は、例えば図６に示すように、パス構築情報記憶部内の個々の証明書のレコードに親証明書識別情報１０６６を加えることで表現することができる。親証明書識別情報１０６６は、認証パスにおける、証明書識別情報１０６２が示す当該証明書の親（すなわち直接の上位）の証明書、すなわち当該証明書に対する署名のために発行者が用いた秘密鍵に対応する証明書、を識別するための情報である。親証明書識別情報１０６６としては、例えば当該親の証明書に示された発行者ＤＮとシリアル番号との組を用いることができる。また、証明書ＤＢ１０８に登録した証明書に対し、デジタル複合機１０が識別番号を付与して管理している場合は、当該親の証明書に対しデジタル複合機１０が付与した識別番号を親証明書識別情報１０６６として登録するようにしてもよい。このように、各証明書の親証明書識別情報１０６６を記憶しておけば、パス検証の際、その情報を参照することで認証パス上の各証明書の親の証明書が即座に特定できるので、パス検証の処理負荷が軽減できる。
【００４９】
また、本実施形態では、記憶して再利用するのは基本的に変化しないパス構築結果なので、特許文献１のようにキャッシュに記憶した情報の有効期間を管理する必要はない。したがって特許文献１のように複雑なキャッシュ利用条件をユーザが設定しなくても、証明書の有効性判定の処理負荷を軽減できる。
【００５０】
なお、本実施形態の方式と特許文献１の方式は両立可能であり、両者を組み合わせることも好適である。すなわち、両者を組み合わせた方式では、上記実施形態と同様パス構築結果の情報をパス構築情報記憶部１０６に記憶するとともに、証明書のパス検証を行った場合にはその検証結果を一定の期間キャッシュに保存し、その期間内に再び同じ証明書についての検証が要求された場合には、キャッシュに保存した検証結果を再利用する。そして、キャッシュした検証結果の有効期間が過ぎた後で、当該証明書の検証が要求された場合は、パス検証のみを再実行する。なお、キャッシュに保存した検証結果の有効期間については、特許文献１と同様、各種の条件に基づき適宜決定することもできる。
【００５１】
以上の本発明の好適な実施形態を説明したが、上記実施形態はあくまで例示的なものであり、本発明の範囲内で様々な変形例が考えられる。
【００５２】
例えば、上記実施形態では、デジタル複合機１０の接続されたＬＡＮ３０上のパーソナルコンピュータ２０から証明書をインポートしたが、証明書にインポート経路はこれに限るものではない。
【００５３】
例えば、Ｓ／ＭＩＭＥの電子メールに証明書が添付されている場合があるが、デジタル複合機１０がそのような電子メールを受けとった場合に、その電子メールに添付された証明書を自動的に証明書ＤＢ１０８にインポートするようにしてもよい。ただし、ルートＣＡの証明書などを自動的にインポートしたのではセキュリティ上問題になる場合もあるので、デジタル複合機１０を利用する組織のセキュリティポリシーに応じ、例えばエンドエンティティの証明書のみインポートを認めたり、エンドエンティティ及び中間ＣＡの証明書のみインポートを認めたりするなどの制御を行うことが好適である。
【００５４】
また、デジタル複合機１０にＵＳＢメモリやＩＣカードなどの可搬型記憶媒体の読取装置を設け、可搬型記憶媒体経由で証明書をインポート可能とすることも好適である。
【００５５】
また、上記実施形態では証明書のパス構築をその証明書のインポート時に行ったが、パス構築を後回しにするオプションを設けてもよい。すなわち、インポート時に証明書のパス構築を行って成功すれば、一般ユーザがその証明書を利用する際にはパス検証のみを行えばよいので、一般ユーザの処理待ち時間を短くできるので好適であるが、その一方、管理者が多数の証明書をまとめてデジタル複合機１０にインポートする場合、インポート時にそれら全ての証明書のパス構築を行ったのでは、処理に多大の時間を要することが考えられる。そこで、証明書のパス構築をインポート時点で行うか、後回しにするかを管理者が選択できるようにする。そして、後回しが選択されている場合は、インポート時点ではパス構築を行わず、例えば当該証明書について最初に有効性検証が要求された時点で、上述のパス構築処理を行う。この場合、最初に有効性検証が要求されたときは処理に時間が掛かってしまうが、それ以降はパス構築結果を再利用できるケースが多いので、全体的にみれば処理時間を短縮できる。
【００５６】
また、ある証明書が認証パス上のいずれかの証明書が有効期限切れや失効により有効でなくなった場合、それ以後その証明書が有効になることは一般にない。そこで、パス検証により証明書が有効でなくなったことが判明した場合には、その旨を示す情報をデジタル複合機１０に登録するようにすることも好適である。この情報は、例えばパス構築情報記憶部１０６に、当該証明書のレコードのデータ項目の一つとして登録すればよい。そして、パス検証が要求された場合、パス構築情報記憶部１０６に当該証明書が有効でなくなっている旨の情報が登録されていれば、即座にその証明書は有効でないと判定する。なお、このようなパス検証の結果だけでなく、例えば証明書失効リストの情報が更新されたタイミングで、証明書ＤＢ１０８中で、新たに失効した証明書、及び新たに失効した証明書を認証パスの上位に含む証明書を特定し、これらの証明書について、有効でなくなった旨の情報をパス構築情報記憶部１０６に登録するようにしてもよい。また、証明書をインポートする際のパス構築時に、認証パス上の各証明書の有効性を検証し、有効でないものがあればその旨をパス構築情報記憶部１０６に登録するようにしてもよい。また、管理者等が証明書ＤＢ１０８から証明書を削除した場合にも、失効の場合に準じて、当該証明書や、これを認証パス上の上位に含む証明書を有効でなくし、その旨をパス構築情報記憶部１０６等に登録するようにしてもよい。
【００５７】
また、上記実施形態では、パス構築をデジタル複合機１０上で行ったが、パーソナルコンピュータ２０にデジタル複合機１０の証明書の管理ツールをインストールし、インポートする証明書のパス構築をこの管理ツール上で実行し、その結果のみをデジタル複合機１０のパス構築情報記憶部１０６に登録するようにしてもよい。
【００５８】
また、上記実施形態では、証明書がインポートされる情報処理装置としてデジタル複合機１０を例示したが、これに限らずネットワークプリンタやネットワークスキャナその他、ネットワークに接続される様々な種類の情報処理装置に本実施形態の方式は適用可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明が適用されるシステムの概略構成の一例を示す図である。
【図２】本発明に係る情報処理装置の一例としてのデジタル複合機の要部構成を示す図である。
【図３】証明書インポート時のデジタル複合機の処理手順を示す図である。
【図４】パス構築情報記憶部に記憶されるレコードのデータ構造の例を示す図である。
【図５】証明書の有効性検証が要求されたときのデジタル複合機の処理手順を示す図である。
【図６】パス構築情報記憶部に記憶されるレコードのデータ構造の別の例を示す図である。
【符号の説明】
【００６０】
１０  デジタル複合機、２０  パーソナルコンピュータ、３０  ＬＡＮ、１０２  証明書インポート部、１０４  パス構築部、１０６  パス構築情報記憶部、１０８  証明書ＤＢ、１１０  検証要求受付部、１１２  検証制御部、１１４  パス検証部。
【図１】
2006229735.tif 000003
【図２】
2006229735.tif 000004
【図３】
2006229735.tif 000005
【図４】
2006229735.tif 000006
【図５】
2006229735.tif 000007
【図６】
2006229735.tif 000008