本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置の実施の形態を、図面を参照しながら説明する。
本発明によるタイムスタンプ付与装置は、タイムスタンプ付与対象として指定される複数の任意ファイル間の関係を含む管理ファイルを作成し、複数の任意ファイル及び管理ファイルに対して一つのタイムスタンプを取得し、複数の任意ファイル及び管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルをそれぞれ作成する装置である。
本発明によるタイムスタンプ検証装置は、タイムスタンプ検証対象となるタイムスタンプが付与された任意ファイル及び管理ファイルと、任意ファイル及び管理ファイルに付与されたタイムスタンプの有効性を検証可能な検証用ファイルとを対応付けて記憶し、複数の任意ファイル間の関係を含む管理ファイルに付与されたタイムスタンプの有効性の検証を、管理ファイルの検証用ファイルより行い、この検証結果に応じて複数の任意ファイル間の関係の検証を実行する装置である。
図2は、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置が用いられる電子署名システムの構成図である。図2に示す電子署名システムは、例えば、社内システムに適用され、ユーザ端末1と、業務システム2と、データファイル保管システム3と、電子署名サーバ4と、タイムスタンプ局5と、通信ネットワーク6と、を有する。
図2に示すシステムでは、ユーザ端末1は、通信ネットワーク6を介して業務システム2にアクセスしてデータファイルを作成し、作成したデータファイルをデータファイル保管システム3に保管する。また、電子署名サーバ4は、後に説明するように、予め設定されたスケジュールに従って、データファイル保管システム3に保管されたデータファイルにタイムスタンプを付与し、付与されたタイムスタンプの検証を行う。
ユーザ端末1は、業務システム2にアクセスしてデータファイルの作成のような各種業務処理を行うための操作等を実行する環境をユーザに提供する。このために、ユーザ端末1は、例えば、パーソナルコンピュータ(PC)によって構成される。また、ユーザ端末1は、通信ネットワーク6を通じて業務システム2、データファイル保管システム3及び電子署名サーバ4との通信を行う通信I/F部11と、ユーザ端末1の各種制御を行う制御部12と、各種業務を実施するための入力を行う入力部13と、各種業務処理等を実施するための画面を表示する表示部14と、制御部12で使用する各種制御情報等を記憶する記憶部15と、を有する。
通信I/F部11は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部12は、CPU,ROM,RAM等から構成され、ユーザ端末1の制御全般についてプログラムに従って処理を行う。入力部13は、マウス、キーボード等によって構成される。表示部14は、LCD等によって構成される。記憶部15は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
業務システム2は、ユーザ端末1での操作に応じて各種業務処理を実行し、処理結果に基づいてデータファイルを作成する。このために、業務システム2は、ユーザ端末1のサーバシステムとして構成され、通信ネットワーク6を通じてユーザ端末1、データファイル保管システム3及び電子署名サーバ4との通信を行う通信I/F部21と、業務システム2の各種制御を行う制御部22と、制御部22で使用する各種制御情報等を記憶する記憶部23と、を有する。
通信I/F部21は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部22は、CPU,ROM,RAM等から構成され、業務システム2の制御全般についてプログラムに従って処理を行う。このために、制御部22は、ユーザ端末1での操作に応じた業務処理を実行する業務処理部22aと、業務処理部22aの処理結果に基づいてデータファイルを作成するデータファイル作成部22bと、を有する。記憶部23は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
データファイル保管システム3は、ユーザ端末1での操作に応じて業務システム2で作成されたデータファイルと、電子署名サーバ4で作成された後に説明するERSファイル、ERS管理ファイル及びERS終端ファイルを保管する。このために、データファイル保管システム3は、通信ネットワーク6を通じてユーザ端末1、業務システム2及び電子署名サーバ4との通信を行う通信I/F部31と、データファイル保管システム3の各種制御を行う制御部32と、上述したデータファイル、ERSファイル、ERS管理ファイル及びERS終端ファイルの他に、制御部32で使用する各種制御情報等を記憶する記憶部33と、を有する。
通信I/F部31は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部32は、CPU,ROM,RAM等から構成され、データファイル保管システム3の制御全般についてプログラムに従って処理を行う。記憶部33は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
電子署名サーバ4は、複数のファイルに対して一つのタイムスタンプの発行要求をタイムスタンプ局5に行い、タイムスタンプ局5が発行したタイムスタンプを複数のファイルに付与する本発明におけるタイムスタンプ付与装置として機能する。また、電子署名サーバ4は、複数のファイルに対して付与された一つのタイムスタンプの有効性をファイル毎に検証する本発明におけるタイムスタンプ検証装置としても機能する。このために、電子署名サーバ4は、通信ネットワーク6を通じてユーザ端末1、業務システム2、データファイル保管システム3及びタイムスタンプ局5との通信を行う通信I/F部41と、電子署名サーバ4の各種制御を行う制御部42と、上述したデータファイル、ERSファイル、ERS管理ファイル及びERS終端ファイルの他に、制御部42で使用する各種制御情報等を記憶する記憶部43と、を有する。なお、本実施の形態では、電子署名サーバ4はERS規格に対応する。
通信I/F部41は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部42は、CPU,ROM,RAM等から構成され、電子署名サーバ4の制御全般についてプログラムに従って処理を行う。このために、制御部42は、本発明のファイル指定部として動作するスケジューラ部42aと、タイムスタンプ及びファイル受取部42bと、ERS管理ファイル作成部42cと、ERSファイル作成部42dと、電子署名付与部42eと、電子署名検証部42fと、ファイル送出部42gと、タイムスタンプ検証部42hと、ERS管理ファイル検証部42iと、を有する。
スケジューラ部42aは、予め設定されたスケジュールの設定時刻に従い、データファイル保管システム3の記憶部33に記憶されている複数のデータファイルを取得し、一つのタイムスタンプを付与するトリガ、及び、タイムスタンプが付与されたデータファイルのタイムスタンプを検証するトリガを与える。具体的には、スケジューラ部42aは、タイムスタンプの取得をタイムスタンプ及びファイル受取部42bに要求するとともに、タイムスタンプの検証をタイムスタンプ検証部42hに要求する。
タイムスタンプ及びファイル受取部42bは、スケジューラ部42aからの要求に応じてERS管理ファイル作成部42c及びERSファイル作成部42dと連携することによって、通信I/F部41を通じてタイムスタンプを取得する。すなわち、タイムスタンプ及びファイル受取部42bは、通信I/F部41を介してタイムスタンプの発行要求をタイムスタンプ局5に行い、タイムスタンプ局5が発行したタイムスタンプを取得する。この一連の処理は、本発明のタイムスタンプ取得部の処理に相当する。
また、タイムスタンプ及びファイル受取部42bは、スケジューラ部42aによって指定されるタイムスタンプ付与対象となる複数の任意ファイルとしての複数のデータファイルを、通信I/F部41を通じて記憶部33から取得する。したがって、通信I/F部41及びタイムスタンプ及びファイル受取部42bは、記憶部33に記憶された複数のデータファイルのうちのタイムスタンプ付与対象となる複数のデータファイルを受け取り、一つのタイムスタンプを付与するために当該複数のデータファイルを記憶部43に一時的に格納する。
ERS管理ファイル作成部42cは、タイムスタンプ及びファイル受取部42bからの要求に応じて、タイムスタンプ付与対象となる複数のデータファイル間の関係の一種である順序関係を少なくとも含むERS管理ファイルを作成する。ここでいう順序関係とは、データファイル保管システム3の記憶部33にデータファイルが登録された時系列順を示す情報のことである。具体的には、順序関係を示す情報は、タイムスタンプ付与の対象となるデータファイルのファイル名を記憶部33への登録順に列挙したテキスト形式で示した情報である。
複数のデータファイル間の関係は、本実施の形態のような順序関係以外に、複数のデータファイル間に上位下位の階層関係がある場合の当該階層関係を示す情報、複数のデータファイルが種々のグループに区分けされている場合の当該グループ構成、単に一つのタイムスタンプが付与される複数のデータファイル名を全て列挙したもの等であってもよい。
また、ERS管理ファイル作成部42cは、順序関係を示す情報に後述するERS終端ファイルに記憶された情報を加えたERS管理ファイルを作成する。なお、ERS管理ファイルの削除等を検出するためにERS管理ファイルにERS終端ファイルの情報を加えているので、ERS管理ファイルの削除等を考慮する必要がなければERS管理ファイルにERS終端ファイルの情報を加える必要はない。
ここで、ERS終端ファイルについて説明する。ERS終端ファイルは、ERS管理ファイル作成部42cによりタイムスタンプを付与する度に更新されるファイルである。すなわち、ERS管理ファイル作成部42cは、タイムスタンプを付与した際に、作成したERS管理ファイルのファイル名及び当該ERS管理ファイルの内容のハッシュ値をERS終端ファイルに記録する。この際、ERS管理ファイル作成部42cは、ERS終端ファイルに既にファイル名等が記録されていればERS終端ファイルを上書き更新する。これにより、ERS終端ファイルには、タイムスタンプを付与した直近のERS管理ファイルのファイル名等が常に記録されている。さらに、ERS管理ファイル作成部42cは、作成したERS終端ファイルに、後述する電子署名付与部42eにより電子署名サーバ4の秘密鍵で電子署名を付与し、電子署名が付与されたERS終端ファイルを記憶部43に記憶させる。また、ERS管理ファイル作成部42cは、ERS管理ファイルを作成する際に記憶部43に記憶されているERS終端ファイルを取得すると、後述する電子署名検証部42fにて電子署名の検証ができたことを条件にERS管理ファイルの作成を行う。
ERSファイル作成部42dは、タイムスタンプ付与対象となる複数のデータファイル及びERS管理ファイルに対して、タイムスタンプの有効性を検証可能な検証用ファイルとしてのERSファイルをそれぞれ作成する。
電子署名付与部42eは、ERS管理ファイル作成部42cからの要求に応じて、ERS終端ファイルに電子署名を付与する。電子署名検証部42fは、ERS管理ファイル作成部42cからの要求に応じて、ERS終端ファイルに付与された電子署名を検証する。
ファイル送出部42gは、一つのタイムスタンプが付与された複数のデータファイル及びERS管理ファイルを記憶部33に格納するために、一つのタイムスタンプが付与された複数のデータファイル、ERS管理ファイル、それぞれのERSファイル及びERS終端ファイルを通信I/F部41を通じてデータファイル保管システム3に送出する。
タイムスタンプ検証部42hは、スケジューラ部42aからの要求に応じて、処理対象のファイルとそのファイルのERSファイルを用いてタイムタイムスタンプの検証を行う。ERS管理ファイル検証部42iは、タイムスタンプ検証部42hからのデータファイル間の関係も検証する旨の要求に応じて、ERS管理ファイルの検証を行う。そのとき、ERS管理ファイル検証部42iは、タイムスタンプ検証部42hに対して、ERS管理ファイル及びERS管理ファイルのERSファイルを用いたタイムスタンプの検証を要求する。
記憶部43は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
タイムスタンプ局5は、電子署名サーバ4からのタイムスタンプ生成要求に応じて、タイムスタンプ局5の秘密鍵を使用して電子署名を付与したタイムスタンプ・トークンを生成し、電子署名サーバ4に返信する。このために、タイムスタンプ局5は、通信ネットワーク6を通じて電子署名サーバ4との通信を行う通信I/F部51と、タイムスタンプ局5の各種制御を行う制御部52と、制御部52で使用する各種制御情報等を記憶する記憶部53と、を有する。
通信I/F部51は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部52は、CPU,ROM,RAM等から構成され、タイムスタンプ局5の制御全般についてプログラムに従って処理を行う。記憶部53は、フラッシュメモリ、EEPROM等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等によって構成される。
通信ネットワーク6は、ユーザ端末1、業務システム2、データファイル保管システム3、電子署名サーバ4及びタイムスタンプ局5に接続される。このために、通信ネットワーク6は、専用回線、インターネット、携帯電話回線、一般公衆回線等の遠隔地間又は屋内の離れた場所間でデータの送受信が可能となる通信回線によって構成される。
図3は、図2の電子署名サーバで用いられるデータファイルとERS管理ファイルとERSファイルとの関係を説明する概念図である。電子署名サーバ4を用いて複数のデータファイル1,2,3に一つのタイムスタンプt’を付与する場合、データファイル1,2,3の関係(例えば、順序関係)を記録したERS管理ファイルが作成され、タイムスタンプt’の生成要素である一つのハッシュ値(ハッシュツリーの頂点となるルートハッシュ)h123Rを生成するために、図1に示す概念図を用いて説明したルートハッシュを計算するための上記(1)及び(2)の工程の次に、以下の(3)’の工程を行う。
(3)ハッシュ関数Hを用いて計算されたERS管理ファイルのハッシュ値hR及びハッシュ値h123をまとめることによって生成されるハッシュ値(ルートハッシュ)h123Rを、ハッシュ関数Hを用いて計算する工程。
その後、電子署名サーバ4は、タイムスタンプ局5に対応するタイムスタンプ局(TSA)aにハッシュ値h123Rを送信し、タイムスタンプ局aにタイムスタンプt’の生成を要求する。タイムスタンプ局aがハッシュ値h123Rを受信すると、タイムスタンプ局aは、タイムスタンプ局aの秘密鍵を使用して電子署名を施したタイムスタンプ・トークンを生成し、電子署名サーバ4に返信する。
電子署名サーバ4がタイムスタンプ・トークンを受け取ると、電子署名サーバ4は、一つのタイムスタンプt’をデータファイル1,2,3及びERS管理ファイルにそれぞれ付与するために、タイムスタンプt’をコピーし、タイムスタンプt’及び各ファイルのハッシュ値h1,h2,h3,hRからルートハッシュh123Rを導出するのに必要なハッシュツリー情報を有する各ファイル用のERSファイルを作成する。
したがって、図3に示す概念図では、電子署名サーバ4は、タイムスタンプt’及びデータファイル1のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル1用のERSファイルと、タイムスタンプt’及びデータファイル2のハッシュツリー情報[[h1,h2],[h3],[hR]]を有するデータファイル2用のERSファイルと、タイムスタンプt’及びデータハッシュファイル3のツリー情報[[h12,h3],[hR]]を有するデータファイル3用のERSファイルと、タイムスタンプt’及びERS管理ファイルのハッシュツリー情報[[h123,hR]]を有するERS管理ファイル用のERSファイルと、を作成する。
なお、図3におけるハッシュ値は、h1<h2,h12<h3,h123<hRの大小関係にある。
このような各データファイル及びERS管理ファイル用のERSファイルを作成することによって、ERS規格に対応したタイムスタンプ検証装置は、複数のデータファイル1,2,3及びERS管理ファイルに付与されたタイムスタンプt’の有効性を、データファイルかERS管理ファイルかを区別することなくそれぞれ検証することができる。
図4は、図2の電子署名システムのデータファイル保管システム3に記憶されるデータの形式の一例を示す図である。図4において、複数のデータファイルに対応する任意ファイル1,2,3のERS管理ファイルが管理ファイルAに対応し、任意ファイル1,2,3及び管理ファイルAに一つのタイムスタンプとしてタイムスタンプAが付与され、これら任意ファイル1,2,3及び管理ファイルAに対して、タイムスタンプAを含む検証用ファイル1,2,3,AがERSファイルとしてそれぞれ作成される。
同様に、図4において、複数のデータファイルに対応する任意ファイル4,5のERS管理ファイルが管理ファイルBに対応し、任意ファイル4,5及び管理ファイルBに一つのタイムスタンプとしてタイムスタンプBが付与され、これら任意ファイル4,5及び管理ファイルBに対して、タイムスタンプBを含む検証用ファイル4,5、BがERSファイルとしてそれぞれ作成される。
次に、図5を参照して、図2の電子署名サーバ4のタイムスタンプ付与処理フローについて説明する。なお、以下に説明する処理フローは、制御部42で実行されるプログラムによって制御される。
図2の電子署名サーバ4は、スケジューラ部42aがタイムスタンプの取得をタイムスタンプ及びファイル受取部42bに要求することによって、タイムスタンプの付与の処理フローを開始する。この際、スケジューラ部42aは、処理対象(タイムスタンプ付与対象)となる複数のデータファイル(複数の任意ファイル)と複数のデータファイル間の関係を指定する。
先ず、タイムスタンプ及びファイル受取部42bは、処理対象となる複数のデータファイルをデータファイル保管システム3から取得し、取得した複数のデータファイルを記憶部43に格納する(ステップS1)。
ここで、処理対象となる複数のデータファイルを取得できなかった場合は、タイムスタンプ及びファイル受取部42bは、システムエラーとしてデータファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。
次に、タイムスタンプ及びファイル受取部42bがERS管理ファイルの作成をERS管理ファイル作成部42cに要求すると、ERS管理ファイル作成部42cは、ERS終端ファイルをデータファイル保管システム3から取得し、取得したERS終端ファイルを記憶部43に格納する(ステップS2)。
ここで、ERS終端ファイルを取得できなかった場合は、ERS管理ファイル作成部42cは、システムエラーとしてERS終端ファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。
次に、ERS管理ファイル作成部42cは、ERS終端ファイルの署名検証を電子署名検証部42fに要求する(ステップS3)。要求を受けた電子署名検証部42fは、ERS終端ファイルの署名検証を実行し、ERS終端ファイルの署名検証に成功したか否かを判断する(ステップS4)。署名検証に失敗した場合、電子署名検証部42fは、署名検証処理の失敗を記憶部43に記録し(ステップS5)、処理フローを終了する。
それに対し、署名検証に成功した場合、ERS管理ファイル作成部42cは、ERS終端ファイルにERS管理ファイルが記録済みであるか否か、すなわち、初めてタイムスタンプの付与を行うか否かを判断する(ステップS6)。ERS終端ファイルにERS管理ファイルが記録済みである場合、ERS管理ファイル作成部42cは、記録されたERS管理ファイルをファイル保管システム3から取得し、取得したERS管理ファイルを記憶部43に格納する(ステップS7)。
ここで、ERS管理ファイルを取得できなかった場合は、ERS管理ファイル作成部42cは、ERS管理ファイルの削除の可能性を示すと共にシステムエラーとしてERS管理ファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。次に、ERS管理ファイル作成部42cは、取得したERS管理ファイルを記憶部43に格納し、取得したERS管理ファイルのハッシュ値とERS終端ファイル内に記録されているハッシュ値とが一致するか否か判断する(ステップS8)。
取得したERS管理ファイルのハッシュ値とERS終端ファイル内に記録されているハッシュ値とが一致しない場合、ERS管理ファイル作成部42cは、取得したERS管理ファイルが置き換えられていることを検出したことになり、ハッシュ値の不一致を記憶部43に記録し(ステップS9)、処理フローを終了する。
それに対し、取得したERS管理ファイルのハッシュ値とERS終端ファイル内に記録されているハッシュ値とが一致する場合、ERS管理ファイル作成部42cは、処理対象のデータファイル及び取得したERS終端ファイルから新たなERS管理ファイルを作成する(ステップS10)。一方、ステップS6でERS終端ファイルにERS管理ファイルが記録されていないと判断された場合、ステップS10に進むが、このときには、ERS管理ファイル作成部42cは、処理対象のデータファイルから新たなERS管理ファイルを作成する。
次に、ERS管理ファイル作成部42cは、ERS終端ファイルを更新するために、新たなERS管理ファイルの情報を記録したERS終端ファイルを作成する(ステップS11)。具体的には、ERS管理ファイル作成部42cは、ERS終端ファイルを作成し、作成したERS終端ファイルへの電子署名の付与を電子署名付与部42eに要求する。
次に、要求を受けた電子署名付与部42eは、電子署名サーバ4の秘密鍵でERS終端ファイルに電子署名を付与し、電子署名付与済みの終端ファイルを記憶部43に格納する。
次に、ERS管理ファイル作成部42cは、新たなERS管理ファイルのハッシュ値に処理対象の複数のデータファイルのハッシュ値をデータファイル間の関係によるデータ順に連結した連結ハッシュデータを作成する(ステップS12)。次に、タイムスタンプ及びファイル受取部42bは、処理対象の複数のデータファイルのハッシュ値と連結ハッシュデータを用いてハッシュツリーを作成する(ステップS13)。
次に、タイムスタンプ及びファイル受取部42bは、作成したハッシュツリーのルートハッシュに対するタイムスタンプ作成をタイムスタンプ局5に要求し、ルートハッシュに対するタイムスタンプをタイムスタンプ局5から取得する(ステップS14)。
ここで、ルートハッシュに対するタイムスタンプをタイムスタンプ局5から取得しなかった場合は、タイムスタンプ及びファイル受取部42bは、システムエラーとしてタイムスタンプ取得処理の失敗を記憶部43に記録し、処理フローを終了する。
次に、ERSファイル作成部42dは、各データファイルのハッシュ値及び連結ハッシュデータに対応した各データファイル及びERS管理ファイルに対するERSファイルを、ハッシュツリー及びタイムスタンプから作成し、作成した全てのERSファイルを記憶部43に格納する(ステップS15)。
次に、ファイル送出部42gは、新たなERS管理ファイル及び全てのERSファイル及び電子署名付与済みのERS終端ファイルを通信I/F部41を通じてデータファイル保管システム3に送信し(ステップS16)、処理フローを終了する。なお、データファイル保管システム3は、電子署名サーバ4から受け取った新たなERS管理ファイル及び全てのERSファイルを、記憶部33に格納する。また、データファイル保管システム3は、電子署名サーバ4から受け取ったERS終端ファイルを、記憶部33に格納したERS終端ファイルに上書きして保存する。図5に示す処理フローにおいて、例えば、処理対象として、図4に示す任意ファイル1,2,3を指定した場合、新たなERS管理ファイルとして管理ファイルAが作成され、任意ファイル1,2,3及び管理ファイルAのERSファイルとして検証用ファイル1,2,3、Aがそれぞれ作成される。
図5に示す処理フローによれば、複数のデータファイル間の関係を含む管理ファイルとしてERS管理ファイルを作成するとともに、複数のデータファイル及びERS管理ファイルに対して一つのタイムスタンプを付与し、タイムスタンプの有効性を検証可能な検証用ファイルとしてERSファイルをそれぞれ作成している。このように管理ファイルに対するERSファイルを作成することによって、一つのタイムスタンプが付与されたデータファイル間の関係を、改竄検知可能に保持することができる。
次に、図6を参照して、図2の電子署名サーバ4のタイムスタンプ検証処理フローについて説明する。なお、以下に説明する処理フローは、制御部42で実行されるプログラムによって制御される。
図2の電子署名サーバ4は、スケジューラ部42aがタイムスタンプの検証をタイムスタンプ検証部42hに要求することによって、タイムスタンプの検証の処理フローを開始する。この際、スケジューラ部42aは、処理対象(タイムスタンプ検証対象)となるデータファイル(任意ファイル)を指定する。
先ず、タイムスタンプ及びファイル受取部42bは、処理対象となるデータファイルをデータファイル保管システム3から取得し、取得したデータファイルを記憶部43に格納する(ステップS101)。
ここで、処理対象となるデータファイルを取得できなかった場合は、タイムスタンプ及びファイル受取部42bは、システムエラーとしてデータファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。次に、タイムスタンプ検証部42hは、データファイル間の順序関係を検証するか指定されたか否か判断する(ステップS102)。
データファイル間の順序関係を検証しない場合、タイムスタンプ及びファイル受取部42bは、処理対象となるデータファイルの検証用ファイルとしてのERSファイルをデータファイル保管システム3から取得し、タイムスタンプ検証部42hは、取得したデータファイル及びそれに対応するERSファイルに基づいて、それぞれのデータファイルのタイムスタンプの有効性の検証処理(既存のERS規格のタイムスタンプ検証処理)を実行し、処理対象として指定された全てのデータファイルについてタイムスタンプの有効性の検証処理を行い(ステップS103)、処理フローを終了する。
一方、ステップS102でデータファイル間の順序関係を検証すると判断した場合、タイムスタンプ検証部42hは、処理対象として指定されたデータファイルに対応するERS管理ファイルの検証をERS管理ファイル検証部42iに要求し、これ以降、ERS管理ファイル検証部42iが主体的に処理を行う。
ERS管理ファイル検証部42iは、処理対象のデータファイル中で順序が最後のもののファイル名が記録されたERS管理ファイル及び当該ERS管理ファイルのERSファイルを、データファイル保管システム3から取得し、ERS管理ファイル及びERSファイルを記憶部43に格納する(ステップS104)。すなわち、複数のタイムスタンプに亘ってデータファイル間に順序がある場合、その中で最新のタイムスタンプが付与されたERS管理ファイル及び当該ERS管理ファイルのERSファイルを取得する。
ここで、ERS管理ファイル及びERSファイルを取得できなかった場合は、ERS管理ファイル検証部42iは、ERS管理ファイル及びERSファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。
次に、ERS管理ファイル検証部42iは、取得したERS管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されているか否か判断する(ステップS105)。
ERS管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されていない場合、ERS管理ファイル検証部42iは、取得したERS管理ファイルに記録されている1回前に作成されたERS管理ファイル及び当該ERS管理ファイルのERSファイルを、データファイル保管システム3から取得する(ステップS106)。
ここで、1回前に作成されたERS管理ファイル及びERSファイルを取得できなかった場合は、ERS管理ファイル検証部42iは、1回前に作成されたERS管理ファイル及びERSファイル取得処理の失敗を記憶部43に記録し、処理フローを終了する。
次に、ERS管理ファイル検証部42iは、ERS管理ファイルに記録されている1回前に作成されたERS管理ファイルのハッシュ値と、実際に取得した1回前に作成されたERS管理ファイルのハッシュ値とが一致するか否か判断する(ステップS107)。
ERS管理ファイルに記録されている1回前に作成されたERS管理ファイルのハッシュ値と、実際に取得した1回前に作成されたERS管理ファイルのハッシュ値とが一致しない場合、ERS管理ファイル検証部42iは、ハッシュ値の不一致を記憶部43に記録し(ステップS108)、処理フローを終了する。
それに対し、ERS管理ファイルに記録されている1回前に作成されたERS管理ファイルのハッシュ値と、実際に取得した1回前に作成されたERS管理ファイルのハッシュ値とが一致する場合、ステップS105に戻る。
一方、ステップS105でERS管理ファイルに処理対象のデータファイル中で順序が最初のもののファイル名が記録されていると判断した場合、ERS管理ファイル検証部42iは、取得した全てのERS管理ファイルについて、それぞれの連結ハッシュデータを作成し(ステップS109)、ERS管理ファイルのタイムスタンプの有効性の検証処理(既存のERS規格のタイムスタンプ検証処理)をタイムスタンプ検証部42hに要求して実行し(ステップS110)、ERS管理ファイルのタイムスタンプの有効性の検証に成功したか否か判断する(ステップS111)。ここで行われるERS管理ファイルのタイムスタンプの有効性の検証処理において、タイムスタンプ検証部42hは、ERS管理ファイル及び当該ERS管理ファイルのERSファイルと連結ハッシュデータを入力とし、ERS管理ファイルのERSファイルに含まれるハッシュツリー情報を使ってルートハッシュを再現し、再現したルートハッシュがタイムスタンプにあるハッシュ値と一致するか否か確認する。再現したルートハッシュがタイムスタンプにあるハッシュ値と一致する場合、タイムスタンプ検証部42hは、検証が成功したと判断し、その結果を出力する。それに対し、再現したルートハッシュがタイムスタンプにあるハッシュ値と一致しない場合、タイムスタンプ検証部42hは、検証が失敗したと判断し、その結果を出力する。
なお、ERS管理ファイルのERSファイルのハッシュツリー情報には連結ハッシュデータが含まれている。そのため、ERS管理ファイルのERSファイルに含まれるハッシュツリー情報を使ってルートハッシュを再現する場合、タイムスタンプ検証部42hは、ERS管理ファイルのハッシュ値ではなく入力された連結ハッシュデータを用いる。また、連結ハッシュデータには、ERS管理ファイルのハッシュ値とデータファイルのハッシュ値とが含まれている。連結ハッシュデータの作成に必要なデータファイルが不足している場合、ERS管理ファイル検証部42iは、追加のデータファイルをデータファイル保管システム3から取得する。
ERS管理ファイルのタイムスタンプの有効性の検証に失敗した場合、ERS管理ファイル検証部42iは、管理ファイルのタイムスタンプの有効性の検証の失敗を記憶部43に記録し(ステップS112)、処理フローを終了する。それに対し、ERS管理ファイルのタイムスタンプの有効性の検証に成功した場合、ERS管理ファイル検証部42iは、全てのERS管理ファイルについてデータファイルのタイムスタンプの有効性の検証処理を行ったか否か判断する(ステップS113)。
全てのERS管理ファイルについてタイムスタンプの有効性の検証処理を行っていない場合、ステップS109に戻る。それに対し、全てのERS管理ファイルについてタイムスタンプの有効性の検証処理を行った場合、ERS管理ファイル検証部42iは、処理対象のデータファイルの追加、削除又は順序の入替えを確認し(ステップS114)、処理対象のデータファイルの追加、削除又は順序の入替えが発生していないか否かを、取得した全てのERS管理ファイルの内容に基づいて判断する(ステップS115)。具体的には、ERS管理ファイルに記録されていないデータファイルがデータファイル保管システム3に記憶されていたり、ERS管理ファイルに記録されているデータファイルがデータファイル保管システム3から削除されていたり、ファイル名にも作成日時などの時系列情報を含む場合にファイル名を変更することによって順序の入替えが行われていたり、等を確認し、処理対象のデータファイルの追加、削除又は順序の入替えの発生を判断する。なお、各データファイルの改竄検知は、連結ハッシュデータでの処理に加え、再度タイムスタンプ検証部42hに検証要求をしてもよい。
処理対象のデータファイルの追加、削除又は順序の入替えが発生していない場合、ERS管理ファイル検証部42iは、処理対象のデータファイルの追加、削除又は順序の入替えが発生していないことを記憶部43に記録し(ステップS116)、処理フローを終了する。
それに対し、処理対象のデータファイルの追加、削除又は順序の入替えが発生している場合、ERS管理ファイル検証部42iは、処理対象のデータファイルの追加、削除又は順序の入替えが発生していることを記憶部43に記録し(ステップS117)、処理フローを終了する。
図6に示す処理フローによれば、複数の任意ファイルに対するERS管理ファイルに付与されたタイムスタンプの有効性の検証を、ERS管理ファイルの検証用ファイルとしてのERSファイルより行い、検証に成功するとERS管理ファイルの真正性が担保される。すなわち、ERS管理ファイルが有する複数の任意ファイル間の関係が担保される。これによって、一つのタイムスタンプを付与した複数の任意ファイル間の関係及びファイルの追加又は削除の有無を検証することができる。また、管理ファイルに付与されたタイムスタンプの有効性の検証処理中に任意ファイルのハッシュ値による改竄検知が含まれるため、個々の任意ファイルについて従来のERS規格によるタイムスタンプの検証を行う必要がなくなる。このように、複数の任意ファイル間の関係を保持しながらファイルの追加、削除又は順序の入替を検知することができるので、電子署名システムのセキュリティ性を向上させることができる。
ここで、ERS管理ファイルの別様式での実施の形態を説明する。別様式のERS管理ファイルには、上述したERS管理ファイルと同様に、タイムスタンプ付与対象となる複数の任意ファイル間の関係に従って所定の規則でファイル名が列挙されるとともに、前回のタイムスタンプ付与時に作成したERS管理ファイルのファイル名及びERS管理ファイルの内容のハッシュ値が記録されている。
別様式のERS管理ファイルには、これらに加え、任意ファイルの一部分に対しての順序関係のチェックを含めた検証処理を効率よく行うために、さらに複数の任意ファイルのハッシュ値がそれぞれのファイル名と対応付けられて記録される。
この別様式のERS管理ファイルを用いる場合、ERS管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いなくてもよい。ERS管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いない場合、図5に示す処理フローでは、連結ハッシュデータを作成するステップS12が省略され、ステップS13において、タイムスタンプ及びファイル受取部42bは、処理対象のデータファイルとERS管理ファイルの各ハッシュ値を末端ノードに持つハッシュツリーを作成し、ステップS15において、ERSファイル作成部42dは、各ファイルのハッシュ値に対応した各データファイル及びERS管理ファイルに対するERSファイルを、ハッシュツリー及びタイムスタンプから作成し、作成した全てのERSファイルを記憶部43に格納する。
また、この別様式のERS管理ファイルのハッシュ値に任意ファイルのハッシュ値を連結させた連結ハッシュデータを用いない場合、図6に示す処理フローでは、連結ハッシュデータを作成するステップS109が省略され、ERS管理ファイル検証部42iは、取得した全てのERS管理ファイルの各々についてERS管理ファイルのタイムスタンプの有効性の検証処理(既存のERS規格のタイムスタンプ検証処理)を、ERS管理ファイル及び当該ERS管理ファイルのERSファイルを指定してからタイムスタンプ検証部42hに要求して実行する。検証に成功した場合は、ERS管理ファイル中の任意ファイルのハッシュ値と、実際に取得した任意ファイルから計算して得られるハッシュ値とを比較し、一致することを確認し、任意ファイルの改竄検知を行う。
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置としての電子署名サーバを有する電子署名システムを社内システムに適用する場合について説明したが、社内システム以外のシステムに対しても、本発明によるタイムスタンプ付与装置及びタイムスタンプ検証装置としての電子署名サーバを有する電子署名システムを適用することができる。また、任意ファイルとしてデータファイル以外のファイルを用いることもできる。
また、上記実施の形態において、ERS規格に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いる場合について説明したが、ERS規格以外の規格又は標準技術に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いることができる。
ERS規格以外の規格又は標準技術に対応したタイムスタンプ付与装置及びタイムスタンプ検証装置を用いる場合、例えば、電子署名システムのデータファイル保管システム3に記憶されるデータの形式の他の例を表す図7に示すように、タイムスタンプAが付与された任意ファイル1,2,3及び管理ファイルAに対して、検証用ファイル1,2,3,Aが、タイムスタンプAから独立した形でそれぞれ作成されてもよい。
同様に、図7において、タイムスタンプBが付与された任意ファイル4,5及び管理ファイルBに対して、検証用ファイル4,5、Bが、タイムスタンプBから独立した形でそれぞれ作成されてもよい。
すなわち、任意ファイル1,2,3及び管理ファイルAと、検証用ファイル1,2,3Aと、タイムスタンプAとを対応付けてデータファイル保管システム3及び記憶部43に記憶させ、任意ファイル4,5及び管理ファイルBと、検証用ファイル4,5,Bと、タイムスタンプBとを対応付けてデータファイル保管システム3及び記憶部43に記憶させることができる。
また、タイムスタンプ処理を行ったシステムを明確にして情報の信頼性を向上させるために、データファイル及び管理ファイルのハッシュツリーを作成する前に各ファイルに電子署名システムの秘密鍵で電子署名を付与することもでき、各ファイルの電子署名の検証を、タイムスタンプ検証処理と併せて行うこともできる。また、データファイルについては、データファイル作成者による電子署名が付与されていてもよい。
また、上記実施の形態において、タイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルを指定するためにスケジューラ部42aを用いる場合について説明したが、ユーザ端末1からのユーザ入力に応じてタイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルを指定するユーザ入力受信部を制御部42に設けることもできる。この場合、ファイル送出部42gは、タイムスタンプ付与装置によって生成されるERS管理ファイル及び各ファイルのERSファイル(検証用ファイル)や、タイムスタンプ検証装置によって出力される処理対象のデータファイルの追加、削除又は順序の入替えが発生しているか否かの情報を、通信I/F部41を通じてユーザ端末1に送信することもできる。
また、タイムスタンプ付与対象又はタイムスタンプ検証対象となる任意ファイルをファイルの生成規則に基づいて指定するファイル指定部を、制御部42に設けることもできる。また、タイムスタンプ付与対象として指定された複数の任意ファイル間の関係を指定するためにスケジューラ部42aを用いる場合について説明したが、上述した任意ファイルの指定と合わせてファイル間の関係をユーザ端末1からのユーザ入力に応じて指定し又はファイルの生成規則から指定することができる。さらに、検証対象の管理ファイルを直接指定することも、ある任意ファイルを指定し、その任意ファイルから関係する管理ファイルを特定して指定することもできる。