(57)【要約】【課題】独自に時刻運用履歴の検証を可能とする低コストかつ安全性の高いタイムスタンプシステム及びそのプログラムを提供する。【構成】外部時刻源から取得した高精度の時刻をタイムスタンプシステム３に適応させた履歴を一定期間毎に履歴ファイル３４ａとし、これに対して自システムの証明書生成部３５にて電子署名してタイムスタンプ証明書を生成し、タイムスタンプ証明書の発行履歴を格納したデータベース３７に格納し、各レコードのハッシュ値の累計ハッシュ値を含むタイムスタンプ証明書を一定期間毎に公開し、履歴ファイル３４ａの非改ざん性を高めるとともに、独自にその検証を可能とする。【選択図】  図１
2004266536.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からの依頼に応じてタイムスタンプ証明書の発行を行うタイムスタンプシステムであって、
システム時刻を生成する時刻生成部と、
外部時刻源から外部時刻を取り込む外部時刻取込部と、
第１期間毎に上記外部時刻取込部により取り込んだ外部時刻に基づいて、上記時刻生成部の生成するシステム時刻を修正して上記外部時刻に同期させる時刻修正部と、
上記時刻修正部による時刻修正の履歴を履歴ファイルとして生成する履歴生成部と、
第２期間毎に上記履歴ファイルの第１タイムスタンプ証明書を生成する証明書生成部と、
上記第１タイムスタンプ証明書を１つのレコードとして記憶するデータベースと
を備え、上記データベースの総てのレコードに対する第２タイムスタンプ証明書を生成し、当該第２タイムスタンプ証明書を公開する公開部と
を備えることを特徴とするタイムスタンプシステム。
【請求項２】
上記データベースは上記第１タイムスタンプ証明書を１つのレコードとして記憶したものであり、当該レコードは、当該レコードの内容のハッシュ値であるレコードハッシュ値と、当該レコードハッシュ値と直前のレコードの累計ハッシュ値とを合成した値のハッシュ値を求めてなる上記累計ハッシュ値とを含み、上記累計ハッシュ値に電子署名を施して上記第２タイムスタンプ証明書を生成することを特徴とする請求項１に記載のタイムスタンプシステム。
【請求項３】
上記データベースは上記クライアント端末に発行した第３タイムスタンプ証明書をレコードの１つに含み、当該レコードの直前のレコードの上記累計ハッシュ値を上記第３タイムスタンプ証明書の内容に含めることを特徴とする請求項２に記載のタイムスタンプシステム。
【請求項４】
コンピュータ上にクライアント端末からの依頼に応じてタイムスタンプ証明書の発行を行う処理を実現するタイムスタンプシステムプログラムであって、
システム時刻を生成する時刻生成処理と、
外部時刻源から外部時刻を取り込む外部時刻取込み処理と、
第１期間毎に取り込んだ外部時刻に基づいて、上記時刻生成部の生成するシステム時刻を修正して上記外部時刻に同期させる時刻修正処理と、
上記時刻修正部による時刻修正の履歴を履歴ファイルとして生成する履歴生成処理と、
第２期間毎に上記履歴ファイルの第１タイムスタンプ証明書を生成する証明書生成処理と、
上記第１タイムスタンプ証明書を１つのレコードとして記憶するデータベースを生成する処理と、
上記データベースの総てのレコードに対する第２タイムスタンプ証明書を生成する処理と
を備えることを特徴とするタイムスタンプシステムプログラム。
【請求項５】
上記データベースは、上記第１タイムスタンプ証明書を１つのレコードとして記憶したものであり、当該レコードは、当該レコードの内容のハッシュ値であるレコードハッシュ値と、当該レコードハッシュ値と直前のレコードの累計ハッシュ値とを合成した値のハッシュ値を求めてなる上記累計ハッシュ値とを含み、上記累計ハッシュ値に電子署名を施して上記第２タイムスタンプ証明書を生成する処理を備えることを特徴とする請求項４に記載のタイムスタンプシステムプログラム。
【請求項６】
上記データベースは上記クライアント端末に発行した第３タイムスタンプ証明書をレコードの１つに含み、当該レコードの直前のレコードの上記累計ハッシュ値を上記第３タイムスタンプ証明書の内容に含める処理を備えることを特徴とする請求項５に記載のタイムスタンプシステムプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、タイムスタンプシステム及びそのプログラムに関し、特に時刻運用履歴の検証を可能とするタイムスタンプシステム及びそのプログラムに関するものである。
【０００２】
【従来の技術】
現在、ある時刻におけるテキスト文書、画像情報、コンピュータプログラム等の電子文書の存在、その非改ざん性を保証するために、電子文書あるいはそのメッセージダイジェスト（例えば、電子文書のハッシュ値）に時刻情報、認証者の署名情報等を与えるとともに暗号化することにより生成したタイムスタンプ証明書を発行するタイムスタンプシステムが利用されている。このようなタイムスタンプシステムにおいては、それに使用される時刻を時刻発生器から取得し、電子文書に押印する（例えば、特許文献１参照）。
【０００３】
また、タイムスタンプシステム等の計算機システムでは、システム内の時計が刻むシステム時刻に基づいて、各種タスクの制御を行っている。しかし、汎用パーソナルコンピュータ（ＰＣ）で使用されている時刻発生器の精度は、外部時刻源と比較して劣っている。汎用ＰＣで実行されるタイムスタンプシステムのシステム時刻が実際の正確な時刻と大きく異なると、不正確な時刻を記録することになり、タイムスタンプシステムにとって不都合である。このため、高精度の時刻源を備えた外部機関によりシステム内の時計を高精度時刻に同期させ、外部機関がそれを認証するというシステムがある（例えば、特許文献２参照）。これは、外部機関の時刻源から取得した高精度時刻を自システムへ適応させたことを示す履歴ファイルを外部にある電子署名機関に送付し、署名認証を受ける。
【０００４】
【特許文献１】
特許第３２７８７２１号公報
【０００５】
【特許文献２】
特開２００２−２２９８６９号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献２では、外部にある電子署名機関へ履歴ファイルを送付するために専用のネットワーク資源を必要とし、また、独自に自システムに格納した時刻運用履歴の非改ざん性の証明ができない等のコスト面や安全面での問題が生じる場合がある。
【０００７】
本発明は、独自に時刻運用履歴の検証を可能とする低コストかつ安全性の高いタイムスタンプシステム及びそのプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明のタイムスタンプシステムは、クライアント端末からの依頼に応じてタイムスタンプ証明書の発行を行うタイムスタンプシステムであって、システム時刻を生成する時刻生成部と、外部時刻源から外部時刻を取り込む外部時刻取込部と、第１期間毎に上記外部時刻取込部により取り込んだ外部時刻に基づいて、上記時刻生成部の生成するシステム時刻を修正して上記外部時刻に同期させる時刻修正部と、上記時刻修正部による時刻修正の履歴を履歴ファイルとして生成する履歴生成部と、第２期間毎に上記履歴ファイルの第１タイムスタンプ証明書を生成する証明書生成部と、上記第１タイムスタンプ証明書を１つのレコードとして記憶するデータベースとを備え、上記データベースの総てのレコードに対する第２タイムスタンプ証明書を生成し、当該第２タイムスタンプ証明書を公開する公開部とを備えることを特徴とする。
【０００９】
また、上記データベースは上記第１タイムスタンプ証明書を１つのレコードとして記憶したものであり、当該レコードは、当該レコードの内容のハッシュ値であるレコードハッシュ値と、当該レコードハッシュ値と直前のレコードの累計ハッシュ値とを合成した値のハッシュ値を求めてなる上記累計ハッシュ値とを含み、上記累計ハッシュ値に電子署名を施して上記第２タイムスタンプ証明書を生成することが好ましい。
【００１０】
また、上記データベースは上記クライアント端末に発行した第３タイムスタンプ証明書をレコードの１つに含み、当該レコードの直前のレコードの上記累計ハッシュ値を上記第３タイムスタンプ証明書の内容に含めることも好ましい。
【００１１】
また、本発明のタイムスタンプシステムプログラムは、コンピュータ上にクライアント端末からの依頼に応じてタイムスタンプ証明書の発行を行う処理を実現するタイムスタンプシステムプログラムであって、システム時刻を生成する時刻生成処理と、外部時刻源から外部時刻を取り込む外部時刻取込み処理と、第１期間毎に取り込んだ外部時刻に基づいて、上記時刻生成部の生成するシステム時刻を修正して上記外部時刻に同期させる時刻修正処理と、上記時刻修正部による時刻修正の履歴を履歴ファイルとして生成する履歴生成処理と、第２期間毎に上記履歴ファイルの第１タイムスタンプ証明書を生成する証明書生成処理と、上記第１タイムスタンプ証明書を１つのレコードとして記憶するデータベースを生成する処理と、上記データベースの総てのレコードに対する第２タイムスタンプ証明書を生成する処理とを備える特徴とする。
【００１２】
また、上記データベースは上記第１タイムスタンプ証明書を１つのレコードとして記憶したものであり、当該レコードは、当該レコードの内容のハッシュ値であるレコードハッシュ値と、当該レコードハッシュ値と直前のレコードの累計ハッシュ値とを合成した値のハッシュ値を求めてなる上記累計ハッシュ値とを含み、上記累計ハッシュ値に電子署名を施して上記第２タイムスタンプ証明書を生成する処理を備えることが好ましい。
【００１３】
また、上記データベースは上記クライアント端末に発行した第３タイムスタンプ証明書をレコードの１つに含み、当該レコードの直前のレコードの上記累計ハッシュ値を上記第３タイムスタンプ証明書の内容に含める処理を上記タイムスタンプシステムプログラムが備えることも好ましい。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の一実施例のタイムスタンプシステムを示している。外部時刻源としてのタイムサーバ１は、図示しない高精度の時刻発生部を有し、高精度の信頼できる時刻を発生するものであり、ＬＡＮ２によってタイムスタンプシステム３に接続されている。タイムサーバ１は、例えばテレホンＪＪＹや長波標準電波等の標準時刻情報の取得装置を備え、自システムの時刻を標準時刻に同期させるものであっても良い。
【００１５】
タイムスタンプシステム３は汎用ＰＣサーバ上でタイムスタンプシステムプログラムを実行して実現されるものであり、構成要素をブロック的に示すと、時刻発生部３１と外部時刻取込部３２と時刻修正部３３と履歴生成部３４と証明書生成部３５と署名鍵記憶部３６とデータベース３７と公開部３８とからなる。
【００１６】
時刻発生部３１はタイムスタンプシステム３の内部の時刻（以下、システム時刻と言う）を生成するものであり、上述の汎用ＰＣサーバのＯＳの時刻生成プログラム等である。
【００１７】
外部時刻取込部３２は、タイムサーバ１に対してＲＦＣ２０３０で規定されたネットワーク経由の時刻問合せプロトコルを用いて、所定間隔、例えば１時間間隔で時刻問合せを行い、外部の時刻（以下、外部時刻と言う）を取得するものである。
【００１８】
時刻修正部３３は外部時刻取込部３２によって所得した外部時刻に時刻発生部３１の生成するシステム時刻を同期させるものであり、外部時刻情報を上記ＯＳの時刻修正プログラムに渡して時刻修正を行うものである。なお、ＯＳによっては時刻修正部３３に時刻源へのアクセス機能を有したものもあり、外部時刻取込部３２は時刻修正部３３と一体的なものであって良い。また、時刻修正部３３は時刻修正プログラムに時刻進度の補正機能に補正値を渡すものとする。すなわち、システム時刻は所定のインターバルタイマ間隔で所定値だけ増加されて更新されており、この所定値に補正値を加えて時刻進度を補正するのである。補正値は、例えば、所定間隔で行われる時刻問合せの際の外部時刻とシステム時刻との差異から、インターバルタイマ間隔当たりの差異を算出することによって得られる。このような時刻同期と補正とにより、システム時刻は高精度に維持される。例えば、マイクロソフト社のＯＳ、Ｗｉｎｄｏｗｓ２０００環境下おいてはＯＳ標準の時刻調整関数（時刻修正プログラム）を利用することでｎｓオーダーでの微調整を行うことができる。通常、同期及び補正等を行なわない場合は時刻発生部３１の進度誤差は日差数秒程度であるが、同期及び補正等によれば、典型的な場合では、システム時刻と外部時刻との時刻進度の差異は日差１０ｍｓ程度まで縮小される。
【００１９】
履歴生成部３４は、タイムサーバ１との通信ログと自システムへの時刻反映情報、例えば、時刻修正毎の外部時刻、システム時刻、これらの差異、補正値等の履歴を１つの履歴ファイル３４ａに記録するものである。
【００２０】
証明書生成部３５は、クライアント端末４から電子文書に対するタイムスタンプ証明書の発行を要求する証明書要求を受け付けし、当該証明書要求に添えられた電子文書の一方向性関数（ハッシュ関数）を作用させて符号化した値（ハッシュ値）に時刻発生部３１から取得したシステム時刻を添えてタイムスタンプ証明書の内容を生成し、当該内容に署名鍵記憶部３６に格納された署名鍵を使用して暗号化を施して電子署名を生成し、当該電子署名をタイムスタンプ証明書の内容に添付してタイムスタンプ証明書としてクライアント端末４に発行するものである。さらに、後述するデータベース３７の累計ハッシュ値をタイムスタンプ証明書の内容に含めても良い。
【００２１】
さらに、証明書生成部３５は、所定の間隔、例えば、証明書生成部３５は、所定の間隔、例えば、１日間隔で履歴ファイル３４ａのタイムスタンプ証明書を生成する。例えば、履歴ファイル３４ａのハッシュ値を生成し、当該ハッシュ値に時刻発生部３１から取得したシステム時刻を添えてタイムスタンプ証明書の内容を生成し、当該内容に対して署名鍵記憶部３６に格納された署名鍵を使用して暗号化を施して電子署名を生成し、タイムスタンプ証明書の内容に添付してタイムスタンプ証明書とする。さらに、証明書生成部３５は、履歴証明書をデータベース３７の証明書テーブルの１つのレコードとして挿入し、後述するように所定の間隔、例えば、３日間隔、データベース３７の証明書テーブル全体に対するタイムスタンプ証明書を生成し、すなわち、後述する累計ハッシュ値に電子署名を施してタイムスタンプ証明書を生成し、公開部３８を介して、ＷＥＢ、電子メール等で公開する。公開部３８は例えば、図示しない所定のＷＥＢサーバにデータベース３７の証明書テーブル全体に対するタイムスタンプ証明書をアップロードするか、所定のメーリングリストに電子メールを送信する処理プログラムからなる。
【００２２】
データベース３７の証明書テーブルは、例えば、図２に示すように１番目のレコード１からｎ番目のレコードｎ（ｎは２以上の整数とする。）を有し、レコード毎にタイムスタンプ証明書を格納し、レコードｎの後部にレコードのハッシュ値Ｈｎを格納し、さらにレコードｎの末尾には累計ハッシュ値ｔｂＨｎが格納される。累計ハッシュ値ｔｂＨｎは、次のように求められる。
ｔｂＨｎ＝Ｈａｓｈ（Ｈｎ＋ｔｂＨｎ−１）
すなわち、累計ハッシュ値ｔｂＨは、ｎ番目のレコードのハッシュ値とｎ−１番目までの累計ハッシュ値の合計について、ハッシュ値を求めたものである。１番目のレコードの場合、それ以前のレコードが存在しないため、ｔｂＨｎ−１に相当するｔｂＨ０には、乱数値または固定数値を代入する。この累計ハッシュ値ｔｂＨによれば、レコードの生成順序が確定され、レコードは事後変更不能となる。このようなデータベース３７のタイムスタンプ証明書を発行することによって、履歴ファイル３４ａの非改ざん性の検証を可能とし、ひいては、システム時刻が高精度に維持すべく運用されていることの証明となる。
【００２３】
次に本例の動作を図３のフローチャートを参照しながら説明する。タイムスタンプシステム３は、外部時刻取込部３２を用いてタイムサーバ１に対して、規定された接続手順でネットワーク接続し、タイムサーバ１の図示しない時刻発生部が発生する高精度の時刻を取り込む。時刻修正部３３は、取得された外部時刻を用いて、システム時刻を修正すると同時に、履歴ファイル３４ａにタイムサーバ１との通信ログと自システムへの時刻反映情報を記述する（ステップａ）。
【００２４】
次にステップａの処理を一定期間毎に繰り返してタイムスタンプシステム３の時刻を十分な精度で外部時刻に同期させる。外部時刻への同期周期よりも十分に長い期間毎（例えば、１日に一度）、履歴ファイル３４ａを一方向性関数（ハッシュ関数）を用いて符合化し、署名鍵を用いて証明書生成部３５で電子署名を行ってタイムスタンプ証明書を生成する（ステップｂ）。
【００２５】
次にステップｂの処理で電子署名を行ったタイムスタンプ証明書のデータをデータベース３７にレコードとして挿入し、そのタイムスタンプ証明書のハッシュ値を前レコードのタイムスタンプ証明書のハッシュ値と合算して累計ハッシュを生成してデータベース３７に保存する（ステップｃ）。
【００２６】
ステップａ及びｃの処理は一定期間ごとに繰り返され、その間にクライアント端末４からのタイムスタンプ証明書の発行の要求を受けて、タイムスタンプサシステム３はタイムスタンプ証明書を発行し、データベース３７にレコードを追加し、証明書テーブル上の証明書のハッシュ値の累計ハッシュ値を更新する。さらに、タイムスタンプシステム３は、クライアント端末４からの要求を受けて、あるいは、一定期間毎にデータベース３７に対してタイムスタンプ証明書を生成し、例えば、Ｘ．５０９形式のテーブルハッシュ証明書として生成し、公開部３８を介してＷＥＢでの掲載、メール送信等をすることによって、データベース３７の累計ハッシュ値の公開を行う（ステップｄ）。公開が行われることで、データベース３７の累計ハッシュ値は周知のものとなり、事後変更が不能となるため、データベース３７に対するタイムスタンプ証明書に記載されたテーブルの全てのレコードは事後変更不能（改ざん不能）となる。
以上の処理により履歴ファイルに記述された内容は、改変不能なタイムスタンプ証明書によって強固に保護される。ひいては、外部認証局を必要とせず独自に履歴ファイルに記述されたシステム時刻の修正等の時刻運用の履歴の非改ざん性の検証が可能となる。
【００２７】
【発明の効果】
本発明によれば、タイムスタンプシステムが正しい時刻で運用されていることが自システム内で利用可能な資源によって検証可能となり、安価に高い信頼性を持つタイムスタンプシステムを構築することができる。
【００２８】
特に、外部時刻源から取得した高精度時刻による時刻修正や精度維持のための補正等の時刻運用の履歴ファイルに対するタイムスタンプ証明書を生成し、タイムスタンプ証明書の発行履歴を格納するデータベースのレコードの１つとして格納し、レコード毎にハッシュ値による符合化し、各レコードのハッシュ値の累計したハッシュ値である累計ハッシュ値をレコードの追加の度に計算して格納し、一定期間毎に累計ハッシュ値を含むタイムスタンプ証明書を公開することによれば、タイムスタンプシステムの証明書発行履歴は改ざん不能となり、時刻運用の履歴ファイルも、改ざん不能となる。すなわち、定期的に公開した証明書によってその間に生成されるレコード単位でデータベースの真正性を検証可能となっているので、データの一部に改ざんがあった場合でも、改ざん箇所を極力特定でき、高い精度で検証が可能である。その結果、従来技術に見られるように、時刻適応履歴ログファイルを外部認証局へ送付する必要がない。
【図面の簡単な説明】
【図１】本発明の一実施例のタイムスタンプシステムの構成を示すブロック図。
【図２】本発明の一実施例のタイムスタンプシステムのデータベースの説明のための説明図。
【図３】本発明の一実施例のタイムスタンプシステムの動作説明のためのフローチャート。
【符号の説明】
１      外部時刻源（タイムサーバ）
３      タイムスタンプシステム
３１    時刻生成部、時刻生成処理
３２    外部時刻取込部、外部時刻取込処理
３３    時刻修正部、時刻修正処理
３４    履歴生成部、履歴生成処理
３４ａ  履歴ファイル
３５    証明書生成部、証明書生成処理
３７    データベース
４      クライアント端末
【図１】
2004266536.tif 000003
【図２】
2004266536.tif 000004
【図３】
2004266536.tif 000005