説明

電子文書検証システム及び検証プログラム

【課題】電子署名とタイムスタンプとの適用対象となる電子データのサイズが大きくなった場合にも、電子署名とタイムスタンプとを高速に検証することができるようにする。
【解決手段】通信ネットワーク150に接続されたサーバ装置120と、複数のクライアント装置100a〜100dとから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであり、クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段108と、最適検証方法定義情報116を参照し、最適な検証方法を特定する手段106と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段110とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子文書検証システム及び検証プログラムに係り、特に、電子文書データ(電子データ)に関係付けられた電子署名やタイムスタンプ等の認証情報を検証する電子文書検証システム及び検証プログラムに関する。
【背景技術】
【0002】
電子政府の一環として、2005年4月にe−文書法が施行され、ある要件の元で、紙をスキャニングした電子データを原本と同等なものとしてみなすことができるようになった。要件の1つには、紙の持つ真実性の確保のための方策があり、この方策として、具体的には、電子署名やタイムスタンプの利用がある。このような法制度の後押しもあり、今後、電子署名やタイムスタンプ等の認証情報が付与された電子データが増加してくることが予想される。
【0003】
電子署名やタイムスタンプが付与された電子データは、処理をせずに保管するだけでは意味がなく、その利用や処理が行われる。その際、電子署名やタイムスタンプが保証する電子データの真正性や存在時刻を確認する必要があり、そのために、電子署名とタイムスタンプとの検証が必要となる。
【0004】
一般によく知られている電子署名とタイムスタンプとの検証方法は、例えば、非特許文献1、2、3等の国際標準規格に記載されている。例えば、公開鍵基盤(PKI)に基づくCMSベースの電子署名とPKI技術を用いたタイムスタンプとの場合、その検証は、それぞれ、以下のような手順により行われる。
【0005】
すなわち、電子署名の検証は、1.電子署名に含まれる署名者の公開鍵証明書の有効期限が過ぎていないかどうか?、失効していないか?、改竄されていないか?等を検査し、公開鍵証明書の有効性を確認する手順、2.有効性が確認された公開鍵証明書に含まれた署名者の公開鍵を用いて電子署名の署名値を検証し、署名者本人の署名であるのかどうかを確認する手順、3.電子署名対象データのハッシュ値を求め、電子署名に含まれる該当ハッシュ値と比較し、電子署名対象データが改竄されていないのかどうかを確認する手順の3つの手順により行われる。
【0006】
また、タイムスタンプの検証は、1.タイムスタンプに含まれるタイムスタンプ局の公開鍵証明書の有効期限が過ぎていないかどうか?、失効していないか?、改竄されていないか?等を検査し、公開鍵証明書の有効性を確認する手順、2.有効性が確認された公開鍵証明書に含まれたタイムスタンプ局の公開鍵を用いて電子署名の署名値を検証し、タイムスタンプ局の署名であるのかどうかを確認する手順、3.タイムスタンプ対象データのハッシュ値を求め、タイムスタンプに含まれる該当ハッシュ値と比較し、タイムスタンプ対象データが改竄されていないかどうかを確認する手順の3つの手順により行われる。
【0007】
PKI技術に立脚した電子署名とタイムスタンプとの検証を行う場合、公開鍵暗号処理や複雑なPKIモデルを扱う必要があるため、比較的コストの高い処理、すなわち、大きな計算機能力を要する処理となる。また、電子署名やタイムスタンプの対象のデータのサイズが大きくなると、効率的な処理のためには、大きなメモリ容量やCPU能力が必要になってくる。
【0008】
今後、電子政府の進展により電子申請が普及するようになると、紙文書等がスキャニングされた大容量の電子データが通信ネットワークを介して送信されるようになってくる。このとき、受付システム側は、このような大きなサイズの電子データに対する電子署名やタイムスタンプを高速に検証する必要が生じることになる。
【0009】
前述したような検証を高速化する方法に関する従来技術として、例えば、特許文献1等に記載された技術が知られている。この従来技術は、負荷分散の観点から処理の高速化を図るものであり、クライアント装置とサーバ装置とから構成されるネットワークベースのシステムにおいて、クライアント装置とサーバ装置とが複数の処理を配分しながら効率よく処理を実行するというものである。そして、この従来技術は、サーバ装置に備えられる負荷分散モジュールが、クライアント装置から読み出されたクライアント処理能力とサーバ装置のサーバ処理能力とを比較し、処理能力が高い方へより多くの処理を配分するというものである。
【特許文献1】特開2003−58519号公報
【非特許文献1】R. Housley、他三3名、"Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile、[online]、2002年4月、[2006年1月20日検索]、インターネット<URL: http://www.ietf.org/rfc/rfc3280.txt>
【非特許文献2】R. Housley、"Cryptographic Message Syntax (CMS)"、[online]、2004年7月、[2006年1月20日検索]、インターネット<URL: http://www.ietf.org/rfc/rfc3852.txt>
【非特許文献3】ISO/IEC 18014−2:2002、2002年
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかし、前述した特許文献1に開示された従来技術は、処理に必要な入力データのサイズの影響を考慮していないため、入力データをネットワーク上で転送する時間等に伴う性能低下を防止することができないという問題点を有している。例えば、ネットワークの帯域幅が小さい場合、クライアントの能力が低くてもクライアント側で検証を実行した方が処理を高速に行うことができる場合もあり得る。
【0011】
また、電子署名やタイムスタンプの技術規格上、電子署名やタイムスタンプの対象となる電子データのサイズに制限は存在しない。また、e−文書法に伴い公表された国税関係書類の電子保存に関する国税庁通達は、タイムスタンプ対象のデータとしては、電子データと電子署名とから構成されるデータと明記しており、しかも、複数の電子データに対してまとめて1つのタイムスタンプを適用してもよいとしている。このことは、タイムスタンプ検証において、比較的大きなサイズの電子データを扱う必要性があることを示している。このような状況の下では、前述の従来技術を用いて、クライアント処理能力とサーバ処理能力を単純に比較し、処理能力の高い方へ単純に処理を配分すると、高速に処理できない可能性が残るという問題を生じてしまう。
【0012】
本発明の目的は、電子署名とタイムスタンプとの適用対象となる電子データのサイズが大きくなった場合にも、電子署名とタイムスタンプとを高速に検証することができるようにした電子文書検証システム及び検証プログラムを提供することにある。
【課題を解決するための手段】
【0013】
本発明によれば前記目的は、通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、前記クライアント装置が、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることにより達成される。
【0014】
また、前記目的は、通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置と、少なくとも1台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、前記クライアント装置が、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソース状態を取得する手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることにより達成される。
【0015】
また、前記目的は、通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることにより達成される。
【0016】
さらに、前記目的は、通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置と、少なくとも1台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソース状態を取得するステップ手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることにより達成される。
【発明の効果】
【0017】
本発明によれば、クライアント装置は、電子署名とタイムスタンプとの適用対象となる入力データのサイズに従った最適な検証方法を選択、決定して検証を行うことができるので、電子署名とタイムスタンプとの検証を高速に行うことができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明による電子文書検証システム及び検証プログラムの実施形態を図面により詳細に説明する。
【0019】
図1は本発明の第1の実施形態による電子文書検証システムの構成を示すブロック図である。図1において、100(100a〜100d)はクライアント装置、102、122は要求受付部、104は検証シミュレート部、106は検証方法決定処理部、108はリソース監視部、110は署名・タイムスタンプ検証処理部、112は検証データモデル情報、114は検証タイプ情報、116は最適検証方法定義情報、118は検証性能実測情報、120はサーバ装置、124はリソース監視部、126は署名・タイムスタンプ検証処理部、130は認証局装置(CA)、132はタイムスタンプ局装置(TSA)、150は通信ネットワークである。
【0020】
図1に示す電子文書検証システムは、複数台のクライアント装置100(100a〜100d)、サーバ装置120、認証局装置130、タイムスタンプ局装置132が通信ネットワーク150に接続されて構成される。なお、図1には、サーバ装置120、認証局装置130、タイムスタンプ局装置132を1台だけ示しているが、これらの装置は、複数台設けられていてもよく、また、クライアント装置100を4台示しているが、クライアント装置100は、さらに多数設けられていても、また、1台だけであってもよい。
【0021】
前述において、認証局装置130は、電子署名やタイムスタンプに使用される公開鍵証明書を発行すると共に、公開鍵証明書の検証に必要となる公開鍵証明書の失効情報を公開する装置である。タイムスタンプ局装置132は、タイムスタンプサービスを提供する装置である。サーバ装置120は、クライアント装置100に対して、電子署名とタイムスタンプとの検証を示す電子文書検証サービスを提供する装置である。クライアント装置100は、ユーザの操作を受け付け、電子文書の検証を実行する。また、クライアント装置100は、検証の一部、あるいは、全てをサーバ装置120に依頼することもできる。クライアント装置100には、通信相手となるサーバ装置120の通信アドレスが予め登録されている。そして、クライアント装置100とサーバ装置120とは、SSL(Secure Sockets Layer)を使用してお互いに相互認証し、暗号化通信を行っている。また、クライアント装置100とサーバ装置120とは、NTP(Network Time Protocol)を使用して、時刻同期を行っている。
【0022】
クライアント装置100は、要求受付部102、検証シミュレート部104、検証方法決定処理部106、リソース監視部108、署名・タイムスタンプ検証部110を備えて構成されている。
【0023】
要求受付部102は、ユーザから電子署名とタイムスタンプとの検証の要求を受け付けると共に、サーバ装置120に対して検証サービスの一部、あるいは、全てを依頼し、その検証結果を受信する。検証シミュレート部104は、電子署名とタイムスタンプとの検証の性能確認のため、予め決められたパターン数の検証方法を実行する。そして、検証シミュレート部104は、得られた検証性能測定結果を検証性能実測情報118として格納し、最適な検証方法を定義する最適検証方法定義情報116を作成する。検証方法決定処理106は、検証データモデル情報112、検証タイプ情報114、最適検証方法定義情報116を参照して、ユーザから入力された検証要求データに対する最適な検証方法を決定する。リソース監視部108は、クライアント装置100のCPU負荷等のリソースの状態情報を定期的に監視する。署名・タイムスタンプ検証処理部110は、署名とタイムスタンプとの検証を実行すると共に、その実行結果を検証性能実測情報118として格納する。
【0024】
サーバ装置120は、要求受付部122、リソース監視部124、署名・タイムスタンプ検証処理部126を備えて構成されている。
【0025】
要求受付部122は、クライアント装置100からの検証要求を受け付け、サーバ装置120内で実行した検証結果をクライアント装置100へ送信する。リソース監視部124は、サーバ装置120のCPU負荷等のリソース状態情報を定期的に監視する。また、署名・タイムスタンプ検証処理部126は、署名とタイムスタンプとの検証を実行する。
【0026】
通信ネットワーク150は、公衆網、インターネット、ISDN、専用線、LAN等の有線網や、移動通信用基地局や通信用人工衛星を利用した無線網等の通信ネットワークにより実現されているものを使用することができる。
【0027】
なお、クライアント装置100及びサーバ装置120が備える前述したような処理部の具体的な処理内容に関しては、他の図面と合わせて後述する。
【0028】
図2はクライアント装置100及びサーバ装置120のハードウエア構成の例を示すブロック図である。図2において、200は内部通信線、202はCPU、204はRAM、206は外部記憶装置、208はHSM、210は通信インタフェース、212は入力装置、214は出力装置、216は外部メディアインタフェース、218は記憶媒体である。
【0029】
クライアント装置100及びサーバ装置120は、中央演算装置であるCPU202、キーボードやマウス等の入力装置212、ハードディスク等の外部記憶装置206、半導体メモリ等の記憶装置であるRAM204、CRTディスプレイ、液晶ディスプレイ、プリンタ等の出力装置214、光磁気メディア等の記憶媒体218を読み書きするための外部メディアインタフェース216、通信用の通信インタフェース210、暗号処理に使用する秘密鍵等のセキュリティ情報の格納や暗号処理を実行するハードウェアセキュリティモジュールであるHSM208がバス等の内部通信線200で接続されて構成されている。このような構成を持つを持つクライアント装置100及びサーバ装置120は、汎用的なパーソナルコンピュータを用いて実現できる。もちろん、パーソナルコンピュータに限るわけではなく、ユーザに対する入力装置、出力装置、通信装置を備えた計算機(情報処理装置)であれば使用可能である。
【0030】
なお、電子文書検証システムを構成する各装置は、予め装置に設定された通信先相手となる他の装置のアドレスを用いて、通信先と接続して通信を行う。
【0031】
各装置には、同一の機能を提供する複数の他の装置のアドレスが登録されていてもよい。例えば、1つのクライアント装置100に1つ以上のサーバ装置120のアドレスが登録されている場合、クライアント装置100の通信先は、例えば、ラウンド・ロビン的に選択される。
【0032】
前述の各装置の各機能や各処理部は、それぞれのCPU202が外部記憶装置206に格納されたプログラムRAM204にロードして実行することにより具現化される。また、各プログラムは、予め外部記憶装置206に格納されていてもよいし、必要に応じて、当該装置が利用可能な、着脱可能なFD、CD−ROM、DVD等の記憶媒体218や通信媒体である通信ネットワーク150、または、通信ネットワーク150上を伝搬する搬送波やデジタル信号を介して、他の装置から導入されてもよい。
【0033】
以下、クライアント装置100及びサーバ装置120の各処理部の具体的な処理内容について説明する。
【0034】
図3はクライアント装置100における電子文書の検証処理の処理動作を説明するフローチャートであり、次に、これについて説明する。
【0035】
(1)クライアント装置100は、処理を開始すると、まず、ユーザから電子文書検証の要求を受け付ける。電子文書検証の要求を受け付けの処理は、図4により後述するようなGUIをユーザに提供して、ユーザに必要な操作を行わせることにより実行する(ステップ300、302)。
【0036】
(2)次に、クライアント装置100は、検証データモデル情報112と検証タイプの定義情報114を参照し、検証対象データのタイプ及び電子署名とタイムスタンプとの検証仕様を特定する。検証データモデル情報112及び検証タイプの定義情報114の具体例については、図5、図6を参照して後述する。また、ここで、検証対象となる電子データのサイズ情報も取得する(ステップ304)。
【0037】
(3)次に、ステップ304の処理で電子署名とタイムスタンプとの検証仕様を確定すると、クライアント装置100は、ステップ306にて、クライアント装置100とサーバ装置120との処理負荷状態を取得する。処理負荷状態とは、例えば、CPU使用率、メモリ使用率、ディスクアクセスの負荷等の装置を構成するリソースの負荷状態である。クライアント装置100は、サーバ装置120の処理負荷状態を把握するために、サーバ装置120へ問い合わせを行う。この問い合わせは、図7により後述するが、リソース状態要求データをサーバ装置120へ送信し、サーバ装置120からリソース状態応答データを受信することにより行われる(ステップ306)。
【0038】
(4)次に、クライアント装置100は、最適検証方法定義情報116を参照して、最適な検証方法が定義されているか否かにより最適な検証方法を特定し、検証方法を特定することができたか否かを判定する。なお、最適検証方法定義情報116の具体例については、図9を参照して後述する(ステップ308)。
【0039】
(5)ステップ308の判定で、最適検証方法定義情報116に最適検証方法定義情報が定義されていなかった場合、クライアント装置100は、最適な検証方法を特定することができないため、検証シミュレーションを実行する。すなわち、クライアント装置100は、検証対象データで想定される検証タイプ全てを順番に試行する。具体的には、クライアント装置100は、クライアント装置100で行う検証内容を実行すると共に、検証シミュレーション要求をサーバ装置120へ送信し、サーバ装置120に検証処理を実行させて、実行結果である検証結果を受け取る。なお、授受されるシミュレーション要求のデータと検証結果のデータとの詳細は、図7により後述する。ここでの処理により、ユーザから要求された検証対象データの検証がシミュレーションと同時に得られることになる。なお、検証シミュレーションの実行時には、クライアント装置100を操作するユーザに対して、検証シミュレーション中であるとの文字列を示す画面を表示してもよい(ステップ318)。
【0040】
(6)ステップ318の処理での検証シミュレーションが終了すると、クライアント装置100は、検証シミュレーション結果を検証性能実測情報118として格納する。なお、検証性能実測情報118の詳細については、図8を参照して後述する(ステップ320)。
【0041】
(7)次に、クライアント装置100は、検証性能実測情報118の中から、検証対象データモデル、電子データサイズ、クライアントのCPU負荷、サーバのCPU負荷、通信時間が同一であるもののうちから検証時間が1番小さい検証タイプを最適な検証方法として定義する最適検証方法定義情報116を作成、あるいは、更新する。なお、電子データサイズ、クライアントのCPU負荷、サーバのCPU負荷が同一であるとは、例えば、これらの値が予め決められた閾値の範囲内に含まれていることを意味する(ステップ322)。
【0042】
(8)次に、クライアント装置100は、検証結果を作成し、クライアント装置100を操作するユーザに対して検証結果を提示して、最適検証方法定義情報が定義されていない場合の処理を終了する(ステップ316)。
【0043】
(9)ステップ308の判定で、最適検証方法定義情報116に最適検証方法定義情報が定義されていた場合、クライアント装置100は、最適検証方法定義情報の中から最適な検証タイプを選択して検証を実行する。具体的には、クライアント装置100は、クライアント装置100で行う検証内容を実行すると共に、サーバ装置120で行う検証内容を含む検証要求をサーバ装置120へ送信し、サーバ装置120に検証処理を実行させて、実行結果である検証結果を受け取る。なお、授受されるシミュレーション要求のデータと検証結果のデータとの詳細は、図7により後述する(ステップ312)。
【0044】
(10)その後、クライアント装置100は、検証性能実測値を検証性能実測情報114として格納すると共に、検証結果を作成し、クライアント装置100を操作するユーザに対して検証結果を提示して、最適検証方法定義情報が定義されていた場合の処理を終了する(ステップ314、316)。
【0045】
なお、クライアント装置100は、検証性能実測情報114を定期的に検査し、ある条件に合致した場合、再度、検証シミュレーションを実行してもよい。例えば、最適検証方法として採用した検証タイプが想定する検証時間と実測した検証時間との差がある閾値を超えた場合、実測値におけるクライアントのCPU負荷、サーバのCPU負荷、電子データのサイズの条件下で検証シミュレーションを実行し、最適検証方法定義情報を更新してもよい。
【0046】
図4はステップ302の処理での電子文書検証の要求を受け付ける処理でユーザに提供するGUIの画面例を示す図である。図4に示す画面例400におけるフィールド402、フィールド406、フィールド410には、ユーザが選択した電子データファイル名、電子署名ファイル名、タイムスタンプファイル名がそれぞれ表示される。ボタン404、ボタン408、ボタン412は、それぞれ、電子データファイル、電子署名ファイル、タイムスタンプファイルをファイルシステムから参照するための機能を呼び出すためのボタンである。また、フィールド414は、電子データに対する電子署名とタイムスタンプの仕様とを示す電子文書モデルを選択するためのリストとなる。ボタン416は、電子署名・タイムスタンプ検証処理の実行を起動するためのボタンである。
【0047】
図5は検証データモデル情報112を示すデータテーブルの例を示す図である。図5に示す検証データモデル情報112を示すデータテーブルは、検証対象データモデル毎に定義される電子署名とタイムスタンプの検証モデルを示している。ユーザから指定された電子文書モデルは、テーブルフィールド502の検証対象データモデルを示す。例えば、検証対象データモデルが、doc1であれば、テーブルフィールド504が示す署名PKIモデルは、GPKI(政府認証基盤)と呼ばれるブリッジ型のCA(認証局)モデルとなる。また、テーブルフィールド506の署名形式モデルは、RFC3852の規格に示されるCMS(Cryptographic Message Syntax)、テーブルフィールド508の署名対象モデルは、ISO 19005−1に記載されるPDFデータの全体を示す。さらに、テーブルフィールド510のタイムスタンプ形式モデルとテーブルフィールド512のタイムスタンプ対象モデルとは、それぞれ、RFC3161規格、及び、国税関係書類の電子保存に関わるタイムスタンプ付与対象要件を示した国税庁通達に準拠することを示している。
【0048】
図6は検証タイプ情報114を示すデータテーブルの例を示す図である。図6に示す検証タイプ情報114を示すデータテーブルは、検証対象データモデルにおける検証タイプの定義である。検証タイプとは、電子署名とタイムスタンプとの検証構成要素となる検証項目をクライアント装置、あるいは、サーバ装置で実行するのか否かの組み合わせを定義したものである。考えられる全ての組み合わせが検証タイプとして定義される。例えば、テーブル行650では、検証対象モデルとしてdoc1の検証タイプv1が定義される。テーブルフィールド606から618では、サーバ装置によりこれらの検証項目が実行されることが定義されている。具体的な検証項目としては、例えば、署名者の公開鍵証明書有効性検証(検証項目1)、署名者の署名値の検証(検証項目2)、署名対象データと署名データとの対応検証(検証項目3)、タイムスタンプ局の公開鍵証明書有効性検証(検証項目4)、タイムスタンプの署名値の検証(検証項目5)、タイムスタンプ対象データとタイムスタンプとの対応検証(検証項目6)、タイムスタンプ局を使用したタイムスタンプトークン検証(検証項目7)等である。
【0049】
なお、検証対象データモデルによって、検証項目が異なることもある。例えば、テーブル行652の検証対象データモデルdoc2は、タイムスタンプ方式としては、図4から判るように、PKI技術を使用しないISO/IEC 18014−2のMAC方式のため、PKI技術に特有なタイムスタンプ局の公開鍵証明書有効性検証(検証項目4)とタイムスタンプの署名値の検証(検証項目5)とは、未定義となる。
【0050】
図7はクライアント装置100とサーバ装置120との間で授受される送受信メッセージの構成例を示す図である。
【0051】
図7(a)は図3のステップの処理でのサーバの処理負荷状態の問い合わせのためのリソース状態要求データ700を示しており、このリソース状態要求データ700は、データの種別を示すフィールド702、クライアント装置100が要求を送信する時刻704が格納される。図7(b)は問い合わせに対してサーバ装置120から返されるリソース状態応答データ710を示しており、このリソース状態応答データ710は、データの種別を示すフィールド712、サーバ装置120がリソース状態要求データを受信した時刻714、サーバ装置120がリソース状態応答データを送信した時刻716、サーバ装置がリソース状態要求データを受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバ装置のCPU負荷状態718が格納される。CPU負荷状態718には、CPU負荷状態だけでなく、前述したような各種リソースの負荷状態を含ませることができる。クライアント装置100は、このような問い合わせにより、サーバ装置120のCPU負荷を含むリソースの負荷の情報、サーバ装置内の処理時間を知ることができる。また、クライアント装置100とサーバ装置120との間の通信時間も見積もることができる。
【0052】
図7(c)は図3のステップ312の処理でのサーバ装置120へクライアント装置100から送信される検証要求のデータ720を示している。この検証要求データ720には、検証要求識別子を示すフィールド722、検証対象データを示すフィールド724が格納される。ここで言う検証対象データとは、サーバ装置120で実行すべき検証項目に必要な入力データである。例えば、検証対象データモデルが、doc1であり、サーバ装置120で実行すべき検証項目が公開鍵証明書だけであれば、検証対象データのフィールド724には、公開鍵証明書だけが格納され、また、検証対象データモデルが、doc1であり、サーバ装置120で実行すべき検証項目の全てであれば、電子データ、電子署名データ、タイムスタンプデータから構成されるデータが格納される。また、クライアント装置100から送信される検証要求データ720には、クライアント装置100が要求を送信する時刻を示すフィールド726が格納される。
【0053】
サーバ装置120は、検証の実行を終了すると、図7(d)に示しているような検証応答データ730を検証結果としてクライアント装置100に送信する。検証応答データ730は、データの種別、すなわち、検証応答識別子を示すフィールド732、検証結果データを示すフィールド734、サーバ装置120が検証要求データを受信した時刻を示すフィールド736、サーバ装置120が検証応答データを送信する時刻を示すフィールド738、サーバ装置120が検証シミュレーション要求を受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバCPUの負荷状態を示すフィールド740が格納される。
【0054】
図7(e)は図3のステップ318の処理でのサーバ装置120へクライアント装置100から送信される検証シミュレーション要求のデータ750を示している。この検証シミュレーション要求データ750には、シミュレート識別子を示すフィールド752、検証対象データを示すフィールド754が格納される。ここで言う検証対象データとは、サーバ装置120で実行すべき検証項目に必要な入力データである。例えば、検証対象データモデルが、doc1であり、サーバ装置120で実行すべき検証項目が公開鍵証明書だけであれば、検証対象データのフィールド754には、公開鍵証明書だけが格納され、また、検証対象データモデルが、doc1であり、サーバ装置120で実行すべき検証項目の全てであれば、電子データ、電子署名データ、タイムスタンプデータから構成されるデータが格納される。このとき、いくつかの検証タイプを実行する場合、クライアント装置100及びサーバ装置120のリソース負荷(例えば、CPU負荷)が同じ条件になるように実行する。
【0055】
また、クライアント装置100から送信される検証シミュレーション要求データ750には、クライアント装置100が要求を送信する時刻を示すフィールド756、サーバ装置120で保つべきサーバ負荷状態を示すフィールド758が格納される。サーバ装置120は、フィールド758の値を読み取り、サーバCPUの負荷状態を指定された状態に保ちながら検証処理を実行する。同様に、クライアント装置100も、検証シミュレート実行中、クライアントのCPUの負荷状態を指定した状態に保ちながら検証処理を実行する。CPUの負荷状態を所定の負荷状態に保つ方法としては、例えば、他の処理を受け付けない、あるいは、ダミーの処理を生成する等の方法が用いればよい。
【0056】
サーバ装置120は、検証タイプの1つの実行を終了する毎に、図7(f)に示しているような検証シミュレーション応答760を検証結果としてクライアント装置100に送信する。検証シミュレーション応答データ760は、データの種別を示すフィールド762、検証結果データを示すフィールド764、サーバ装置120が検証シミュレーション要求データを受信した時刻を示すフィールド766、サーバ装置120が検証シミュレーション応答データを送信する時刻を示すフィールド768、サーバ装置120が検証シミュレーション要求を受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバCPUの負荷状態を示すフィールド770が格納される。
【0057】
図8は検証性能実測情報の例を示すデータテーブルの例を示す図である。図8に示す検証性能実測情報118の例において、テーブルフィールド802、テーブルフィールド804は、それぞれ、検証対象データモデルと検証タイプとを示す。テーブルフィールド806は、検証対象の電子データのサイズを示し、テーブルフィールド808とテーブルフィールド810とは、クライアント装置100とサーバ装置120とのCPU負荷を表す。検証性能に関わる情報は、テーブルフィールド812、814、816、818に記述されており、それぞれ、クライアント装置100とサーバ装置120との間の往復通信時間、電子署名とタイムスタンプとの検証時間(クライアント装置100における検証時間とサーバ装置120における検証時間とのうち時間の大きい方に通信時間を含めたもの)、クライアント装置100における検証時間、サーバ装置120における検証時間を示している。
【0058】
図9は最適検証方法定義情報116の例を示すデータテーブルの例を示す図である。図9に示す最適検証方法定義情報116の例において、テーブルフィールド902は、検証対象モデルを示し、テーブルフィールド904は、クライアント装置100とサーバ装置120との間の想定される通信時間(単位:秒)を示す。また、テーブルフィールド906〜910は、最適検証方法を決定するためのパラメータ条件となる。例えば、検証データサイズ906は、検証対象となる電子データのサイズ(単位:バイト)の条件を示し、クライアントCPU負荷908とサーバCPU負荷910とは、それぞれ、クライアント装置100のCPU負荷(単位:%)及びサーバ装置120のCPU負荷(単位:%)の条件を示す。テーブルフィールド912は、これらの条件に合致した場合の最適な検証タイプを示し、また、テーブルフィールド914は、実測値に基づく検証時間(単位:秒)の見積もりを示している。この図9の例では、通信時間条件、検証データサイズ条件、クライアントCPU条件、サーバCPU条件は、範囲条件として示されている。例えば、図3のステップ320、322の処理では、検証性能実績情報118から得られたこれらの値が、範囲条件の上限として見なすことができる。
【0059】
図10は本発明の第2の実施形態による電子文書検証システムの構成を示すブロック図である。図10において、1020はデータ管理サーバ、1022は最適検証方法定義情報であり、他の符号は図1の場合と同一である。
【0060】
図10に示す本発明の第2の実施形態による電子文書検証システムは、図1に示して説明した本発明の第1の実施形態に対して、新たにデータ管理サーバ装置1020をネットワーク150に接続して構成されている。そして、このデータ管理サーバ1020には、最適検証方法定義情報1022が格納される。また、クライアント装置100は、検証シミュレーション部を備えてない。図10に示すある1つのクライアント装置100は、定期的に最適検証方法定義情報116をデータ管理サーバ装置1020に送信する。データ管理サーバ装置1020は、受信した最適検証方法定義情報116を最適検証方法定義情報1022として格納し、ネットワーク150に接続される任意のクライアント装置100に閲覧させる。このようにすることにより、クライアント装置100は、検証シミュレーション部と最適検証方法定義情報とを備える必要がなくなる。
【図面の簡単な説明】
【0061】
【図1】本発明の第1の実施形態による電子文書検証システムの構成を示すブロック図である。
【図2】クライアント装置及びサーバ装置のハードウエア構成の例を示すブロック図である。
【図3】クライアント装置における電子文書の検証処理の処理動作を説明するフローチャートである。
【図4】図3のステップ302の処理での電子文書検証の要求を受け付ける処理でユーザに提供するGUIの画面例を示す図である。
【図5】検証データモデル情報を示すデータテーブルの例を示す図である。
【図6】検証タイプ情報を示すデータテーブルの例を示す図である。
【図7】クライアント装置とサーバ装置との間で授受される送受信メッセージの構成例を示す図である。
【図8】検証性能実測情報の例を示すデータテーブルの例を示す図である。
【図9】最適検証方法定義情報の例を示すデータテーブルの例を示す図である。
【図10】本発明の第2の実施形態による電子文書検証システムの構成を示すブロック図である。
【符号の説明】
【0062】
100(100a〜100d) クライアント装置
102、122 要求受付部
104 検証シミュレート部
106 検証方法決定処理部
108 リソース監視部
110 署名・タイムスタンプ検証処理部
112 検証データモデル情報
114 検証タイプ情報
116、1022 最適検証方法定義情報
118 検証性能実測情報
120 サーバ装置
124 リソース監視部
126 署名・タイムスタンプ検証処理部
130 認証局装置(CA)
132 タイムスタンプ局装置(TSA)
150 通信ネットワーク
200 内部通信線
202 CPU
204 RAM
206 外部記憶装置
208 HSM
210 通信インタフェース
212 入力装置
214 出力装置
216 外部メディアインタフェース
218 記憶媒体
1020 データ管理サーバ

【特許請求の範囲】
【請求項1】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段とを備えることを特徴とする電子文書検証システム。
【請求項2】
前記最適な検証方法を特定する手段が、最適な検証方法を特定することができなかった場合、クライアント装置とサーバ装置との間で検証シミュレーションを実行し、検証シミュレーションの結果から最適な検証方法を定義することを特徴とする請求項1記載の電子文書検証システム。
【請求項3】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることを特徴とする電子文書検証システム。
【請求項4】
前記最適検証方法定義情報は、電子署名・タイムスタンプの検証内容の構成要素となる個々の検証項目をクライアント装置、あるいは、サーバ装置のどちらが実行するのかを定義した情報であることを特徴とする請求項1記載の電子文書検証システム。
【請求項5】
前記検証対象データを解析する手段は、検証対象データの解析に際して、検証対象となる電子データのサイズを取得することを特徴とする請求項1記載の電子文書検証システム。
【請求項6】
前記検証対象データを解析する手段は、検証対象データの解析に際して、電子署名とタイムスタンプとのPKIモデル、フォーマット形式モデル、電子署名及びタイムスタンプの適用対象のデータモデルを特定することを特徴とする請求項1記載の電子文書検証システム。
【請求項7】
前記クライアント装置が取得するリソース情報は、クライアント装置及びサーバ装置のそれぞれを構成するリソースの負荷情報であることを特徴とする請求項1記載の電子文書検証システム。
【請求項8】
前記検証シミュレーションは、クライアント装置とサーバ装置とで行う検証項目の全ての組み合わせを実行することを特徴とする請求項2記載の電子文書検証システム。
【請求項9】
前記最適検証方法定義情報は、検証対象データモデル、通信時間、検証対象の電子データサイズの条件、クライアントのリソース負荷情報の条件、サーバのリソース負荷情報の条件を含むことを特徴とする請求項1記載の電子文書検証システム。
【請求項10】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置と、少なくとも1台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソース状態を取得する手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることを特徴とする電子文書検証システム。
【請求項11】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップとを実行させることを特徴とする電子文書検証プログラム。
【請求項12】
前記最適な検証方法を特定するステップで、最適な検証方法を特定することができなかった場合、クライアント装置とサーバ装置との間で検証シミュレーションを実行するステップと、検証シミュレーションの結果から最適な検証方法を定義するステップとを実行させることを特徴とする請求項11記載の電子文書検証プログラム。
【請求項13】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることを特徴とする電子文書検証プログラム。
【請求項14】
通信ネットワークに接続された少なくとも1台のサーバ装置と、少なくとも1台のクライアント装置と、少なくとも1台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソース状態を取得するステップ手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることを特徴とする電子文書検証プログラム。

【図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