(57)【特許請求の範囲】
【請求項１】
電子データの証拠性を認証コードと電子署名で保証する電子データ保管システムであり、前記システムは、
外部のクライアントと電子データの授受が可能でかつ外部装置と電気的・機械的に結合された少なくとも１台のサーバと；
ＲＯＭ領域とＲＡＭ領域とＣＰＵとを備え、かつ前記サーバとはインタフェースを介して接続される外部装置と；
製造時に製造業者により書換え不可能な記憶域に秘密鍵が焼き付けられ、アクセス制限された読み出し専用記憶手段とを備え、
前記外部装置が、前記読み出し専用記憶手段からコピーした前記秘密鍵をもとに一時秘密鍵を生成するソフトウェア手段を前記ＲＯＭ領域に備え、さらに前記ソフトウェア手段に基づいて前記ＣＰＵが発生させた乱数の回数だけ一時秘密鍵を生成し、最後に生成した前記一時秘密鍵を前記ＲＡＭ領域に格納し、かつ前記一時秘密鍵と所与の電子データから認証コードを生成するプログラムの少なくとも一部をカプセル化したオブジェクトとして前記ＲＯＭ領域に備え、
前記サーバは、
前記ソフトウェア手段、前記オブジェクト、および前記一時秘密鍵を読み出す手段と、
読み出した前記ソフトウェア手段、前記オブジェクト、および前記一時秘密鍵を用いて、前記電子データの認証コードを生成する認証コード生成オブジェクトと、
前記電子データに秘密鍵による符号化を行って電子署名を生成する電子署名生成手段と、
前記電子データ、前記生成した認証コードおよび前記生成した電子書名を保管する保管手段と
を備えることを特徴とする電子データ保管システム。
【請求項２】
前記読み出し専用記憶手段は、前記サーバの管理者および前記クライアントの双方と利害関係のない第３者が保管することを特徴とする請求項１記載の電子データ保管システム。
【請求項３】
前記サーバは、前記認証コード生成オブジェクトを用いて、前記保管手段に保管されている前記電子データの前記認証コードの照合を行う照合オブジェクトをさらに備えることを特徴とする請求項１記載の電子データ保管システム。
【請求項４】
前記サーバは、
アクセス制限を規定するポリシーレコードからなるポリシーテーブルを備え、前記ポリシーテーブルに基づき前記オブジェクトへのアクセス制限を行う手段を含むことを特徴とする請求項１記載の電子データ保管システム。
【請求項５】
前記認証コード生成オブジェクトは、起動されるたびにログを排出し、
前記サーバは、前記ログを所定の記憶域に格納する手段を備えることを特徴とする請求項１記載の電子データ保管システム。
【請求項６】
前記サーバは一時間帯の指定とともに所定のコマンドを受け取ると、前記時間帯に採取されたログのうち、前記ポリシーテーブルの何れかのポリシーレコードと条件が一致するログを消去する手段をさらに備えることを特徴とする請求項４記載の電子データ保管システム。
【請求項７】
前記サーバは、前記時間帯に採取されたログのうち、消去されずに残ったログに対して、視覚的警報、聴覚的警報、または前記両方の警報を出力する手段をさらに備えることを特徴とする請求項６記載の電子データ保管システム。
【請求項８】
当該電子データ保管システムは、複数のサーバと前記複数のサーバに共有された二次記憶装置を備え、
前記二次記憶装置は、全サーバの電子データを保管する電子データ保管領域を有し、かつ
前記複数の各サーバは前記保管手段を持たないことを特徴とする請求項１記載の電子データ保管システム。
【請求項９】
前記サーバは、第２の外部装置を備え、前記第１の外部装置の前記秘密鍵と異なる第２の秘密鍵をＲＡＭ領域に格納し、
認証コード生成オブジェクトは、前記第１の外部装置から読み出した前記ソフトウェア手段、前記オブジェクト、および前記一時秘密鍵に加えて、前記第２の外部記憶装置から読み出した第２のソフトウェア手段、第２のオブジェクト、および第２の一時秘密鍵を用いて、前記電子データの認証コードを生成することを特徴とする請求項１記載の電子データ保管システム。
【請求項１０】
前記サーバは、前記電子データの認証コード生成の前に、前記電子データを複数の分割データに分割する分割手段を備え、
前記認証コード生成オブジェクトは、分割データ毎に１つずつ認証コードを生成することを特徴とする請求項１記載の電子データ保管システム。
【請求項１１】
前記分割手段は、前記電子データを複数の可変長分割データに分割し、
前記保管手段は、可変長分割データ毎に前記認証コードと当該可変長分割データの長さを表す情報とともに保管する手段を含むことを特徴とする請求項１０記載の電子データ保管システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，電子ファイルなどの電子データを保管する電子データ保管装置に関し、さらに詳細には、そのような電子データ保管装置において保管されている電子データが改竄されていないとの証拠性を長期にわたって保証する技術に関する。
【背景技術】
【０００２】
本発明は、「あるデータに対する署名を生成する際にＭＡＣ(Message Authentication Code)をあわせて生成し、署名が偽造されたと疑われる場合にはＭＡＣの検証を行って署名生成をしたハードウェアを確認し、偽造の有無を判定する」（非特許文献１）という技術に関する。従来、電子ファイルなどの電子データが改竄されていないとの証拠性を示す技術にＭＡＣ付きデジタル署名がある。
図１4は、従来技術による電子データ保管システムの構成を示す図である。図１4のシステムは、インターネットなどのネットワークに接続された電子データ保管サーバ９１０、および 同じネットワーク接続された多数のクライアント装置９２０からなる。各クライアント９２０には、外部装置９３０が接続されている。外部装置９３０は認証コード秘密鍵Ｋを製造時以外書き込み不可能なエリアに持ち、署名用秘密鍵skを書き込み可能なエリアに持っている。また、外部装置９３０は認証コードと電子署名を生成する機能を持つ。
【０００３】
クライアント９２０は、外部装置９３０にＰＩＮ(個人識別番号)と電子データＸをあたえ
て、外部装置９３０からＸとその電子署名と認証コードとを受け取る。クライアント９２０は、インターネットなどのネットワークを経由してサーバ９１０とデータ交換が可能である。クライアント９２０は、外部装置９３０から受け取ったＸとその電子署名と認証コードをサーバ９１０に渡す。
【０００４】
サーバ９１０は、データ保管部９８０を持っており、 クライアント９２０から受け取ったＸとその電子署名と認証コードのうち電子署名を検証し、正常ならデータ保管部９８０でデータを保管する。電子署名の偽造の疑いがある場合は、調停者が、データ保管部に保管されている当該データＸとその認証コードとを取り出し、クライアント９２０から外部装置９３０にＰＩＮと電子データＸをあたえて、外部装置９３０からデータＸ、その電子署名および認証コードを受け取ることにより、入手した認証コードとデータ保管部９８０に保管されていた認証コードとを比較し、一致していれば電子署名が偽造されていないと判断する。
【非特許文献１】宇根正志、「デジタル署名生成用秘密鍵の漏洩を巡る問題とその対策」、日本銀行金融研究所、Discussion Paper No.2002-J-32（2002年）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の方式では、外部装置としてＩＣカード、クライアントとしてＰＣ（パーソナルコンピュータ）が想定されている。外部装置であるＩＣカードが電子署名と認証コードの両方の処理を行うため、秒単位の処理時間を必要とする。したがって、クライアントで高速かつ大量の電子データを処理する必要がある場合、処理速度が障害となり、それを解決するためには、多数のパソコンとＩＣカードを用意し並列処理をする必要がある。各ＰＣにＩＣカードが必要なため、対象全員にＩＣカードを用意しなければならないという点で、コストおよび運用面で問題があった。また、電子データの保管がサーバ９１０側で、電子署名と認証コードの処理がＰＣ側という具合に、分散処理をするためリスクも分散され，危険にさらされる確率が高いという問題もある。
【０００６】
したがって、本発明は、高速かつ大量の電子データを処理するクライアントを複数接続した環境または多数のクライアントが接続された環境でも、電子署名と認証コードの処理を高速かつ安全にサーバ側で行うことを可能とするシステムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、請求項１記載の発明は、電子データの証拠性を認証コードと電子署名で保証する電子データ保管システムである。本発明の電子データ保管システムは、外部のクライアントと電子データの授受が可能でかつ外部装置と電気的・機械的に結合された少なくとも１台のサーバと、ＲＯＭ領域とＲＡＭ領域とＣＰＵとを備え、かつサーバとはインタフェースを介して接続される外部装置と、製造時に製造業者により書換え不可能な記憶域に秘密鍵が焼き付けられ、アクセス制限された読み出し専用記憶手段とを備える。外部装置が、読み出し専用記憶手段からコピーした秘密鍵をもとに一時秘密鍵を生成するソフトウェア手段（アルゴリズム）をＲＯＭ領域に備え、さらに前記ソフトウェア手段に基づいて前記ＣＰＵが発生させた乱数の回数だけ一時秘密鍵を生成し、最後に生成した前記一時秘密鍵をＲＡＭ領域に格納し、かつ前記一時秘密鍵と所与の電子データから認証コードを生成するプログラムの少なくとも一部をカプセル化したオブジェクトとして前記ＲＯＭ領域に備える。サーバは、ソフトウェア手段、上記オブジェクト、および一時秘密鍵を読み出す手段と、読み出したソフトウェア手段、前記オブジェクト、および一時秘密鍵を用いて、電子データの認証コードを生成する認証コード生成オブジェクトと、電子データに秘密鍵による符号化を行って電子署名を生成する電子署名生成手段と、電子データ、生成した認証コードおよび生成した電子書名を保管する保管手段とを備える。
【０００８】
読み出し専用記憶手段は、サーバの管理者およびクライアントの双方と利害関係のない第３者が保管することが好ましい。
サーバは、認証コード生成オブジェクトを用いて、保管手段に保管されている電子データの認証コードの照合を行う照合オブジェクトをさらに備えてもよい。
【０００９】
サーバは、アクセス制限を規定するポリシーレコードからなるポリシーテーブルを備え、ポリシーテーブルに基づきオブジェクトへのアクセス制限を行う手段を備えてもよい。
認証コード生成オブジェクトは、起動されるたびにログを排出し、サーバは、ログを所定の記憶域に格納する手段を備えることが好ましい。
【００１０】
サーバは一時間帯の指定とともに所定のコマンドを受け取ると一時間帯に採取されたログのうち、ポリシーテーブルの何れかのポリシーレコードと条件が一致するログを消去する手段をさらに備えることが好ましい。
【００１１】
サーバは一時間帯に採取されたログのうち、消去されずに残ったログに対して、視覚的警報、聴覚的警報、または両方の警報を出力する手段をさらに備えることが好ましい。
【００１２】
本発明の一実施形態によれば、当該電子データ保管システムは、複数のサーバと複数のサーバに共有された二次記憶装置を備え、二次記憶装置が、全サーバの電子データを保管する電子データ保管領域を持つことにより、複数の各サーバは保管手段を持たない。
【００１３】
本発明の他の実施形態によれば、サーバは、第２の外部装置を備え、第１の外部装置の秘密鍵と異なる第２の秘密鍵をＲＡＭ領域に格納し、認証コード生成オブジェクトは、第１の外部装置から読み出したソフトウェア手段、上記オブジェクト、および一時秘密鍵に加えて、第２の外部記憶装置から読み出した第２のソフトウェア手段、第２のオブジェクト、および第２の一時秘密鍵を用いて、電子データの認証コードを生成する。
【００１４】
本発明の別の実施形態によれば、サーバは、電子データの認証コード生成の前に、電子データを複数の分割データに分割する分割手段を備え、認証コード生成オブジェクトは、分割データ毎に１つずつ認証コードを生成する。
【００１５】
本発明のさらに別の実施形態によれば、分割手段は、電子データを複数の可変長分割データに分割し、保管手段が、可変長分割データ毎に認証コードと当該可変長分割データの長さを表す情報とともに保管する手段を含む。
【発明の効果】
【００１６】
電子データを管理するサーバ側で認証コードと電子署名の生成を行なうことにより大量のデータを高速にＭＡＣ付きデジタル署名することが可能となる。
電子データをクライアントと電子データ保管サーバとの間で相互認証したのち、暗号化して伝送し、かつデータ保管サーバ側で認証コード生成処理および署名生成処理を少なくとも重要な部分は外部機器に保存され読み出した認証コード生成オブジェクトにより集中して行うことで、高速かつ大量のデータ処理をＭＡＣ付きデジタル署名の方式で可能となる。
【００１７】
また、認証コード生成アルゴリズムの少なくとも一部と認証コード秘密鍵とは、以降書き込みできない領域に製造時に書き込みされるので、改竄ができず、かつ認証コード秘密鍵から認証コード一時秘密鍵を生成する外部機器は、サーバと分離でき、安全な場所に保管することができるので、サーバや外部機器での盗難や改竄、破壊などの不正から防御することができる。
【００１８】
外部機器の認証コード一時秘密鍵は乱数により一時的に生成され以前の一時秘密鍵は消去されることにより認証コード秘密鍵の安全性が保たれる。
また、認証コード秘密鍵と認証コード生成アルゴリズムの外部機器は別々の相互認証およびP I Nでアクセス制御され、またＲＯＭが物理的に盗難防止および盗難検知が可能であり、且つサーバの認証コード生成処理が乱数による一時秘密鍵やアクセス権処理で保護されている。
【００１９】
また、サーバの認証コード生成処理オブジェクトのアルゴリズムは高速に処理可能なものを採用している。また、サーバの認証コード生成処理オブジェクトはアスセス制御により不正なアクセスに対しカプセル化することで防御されており、アクセス制限ログフィルタ処理などにより異常アクセスの検知が可能である。さらに、管理者権限のなりすましによる不正アクセスもログ処理により監査を含め検知可能である。
【００２０】
また、電子署名の改竄も認証コード照合処理により調停者により検証が可能である。
したがって本発明の目的である、高速かつ大量の電子データを処理するクライアントを複数接続した環境でも高速かつ安全に電子署名と認証コードの処理を行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態と添付図面とにより本発明を詳細に説明する。なお、複数の図面に同じ要素を示す場合には同一の参照符号を付ける。
〔第１の実施形態〕
図１は，本発明の第１の実施形態による電子データ保管システムの構成を示す略ブロック図である。図１において，本発明の電子データ保管システム１は、インターネットなどのネットワークに接続された電子データ保管サーバ１０、サーバ１０の操作者がサーバ１０を操作するための入出力装置２０、サーバ１０に電気的かつ機械的に接続・固定された外部機器３０；ネットワークを介してサーバ１０と通信可能な複数または多数のクライアント９２０からなる。外部機器３０は、ワイヤのような機械的結合手段３２と錠３４とによりサーバ１０に確実に固定されている。入出力装置２０は、表示装置、キーボード、ポインティングディバイスなどからなる。なお、この電子データ保管サーバ１０を操作するのは、このサーバ１０を運用する団体に属しサーバ１０を管理する管理者、好ましくはサーバ１０を運用する団体に属さずサーバ１０の運用の監査を行う監査者、および上記団体ともクライアント９２０の利用者とも利害関係のない調停者の何れかに限ることが好ましい。
【００２２】
図１のシステム１は、サーバ１０を原本性保証サーバ、クライアントを文書管理サーバとして、文書の長期保存原本性保証システムとすることができる。また、図１のシステム１は、サーバ１０を原本性保証サーバ、クライアント９２０を電子申請サーバとして、電子申請データの長期に亘るデータ証拠性保証システムとすることができる。さらに、図１のシステム１は、 サーバ１０をデータ保存サーバ、 クライアントをデータ収集サーバとして、トレーサビリティデータを長期に亘って保証するデータ証拠性保証システムとすることができる。
【００２３】
外部機器３０は、ＣＰＵ（中央処理装置）６０、ＲＡＭ（random access memory）６２,ＲＯＭ（read only memory）６４、サーバ１０とのデータ授受のためのインターフェース（ＩＦ）６６を備える。外部機器３０としては、例えばＩＣカード、ＵＳＢキーなどが利用可能である。ここでは、ＩＣカードを使用するものとして説明する。また、ＩＣカード３０のＲＯＭ６４には，製造業者において、認証コード生成用のハッシュ関数演算プログラム（ｈで表す）７０と、認証コード生成オブジェクト（ｆで表す）７２が予め記録されるものとする。この形式としてたとえばＪａｖａ（登録商標）のオブジェクト中間ファイル形式で格納する。
【００２４】
なお、ＲＯＭ６４には、認証コード生成に必要なプログラムの全体が記憶されている必要はなく，外部に漏れては不都合な重要な部分のみをカプセル化したオブジェクト７２として記録し，残りの部分は，サーバ１０側に別途カプセル化したオブジェクトとして格納してもよい。
【００２５】
ＲＯＭ４０には、製造業者において認証コード生成用の秘密鍵Ｋ０が記録され、上記の外部機器３０即ちＩＣカードに接続することにより、認証コード秘密鍵Ｋ０をＩＣカード３０にコピーできるようになっている。
【００２６】
外部機器３０ではｍ回乱数を発生し、認証コード秘密鍵Ｋ０のｍ回ハッシュ計算を行い（Ｋｍ＝ｈm(Ｋ０)、ｈはハッシュ関数）、結果のハッシュ値Ｋｍとｍを書き換え可能領域に保存し、認証コード秘密鍵Ｋ０を消去する。外部機器すなわちＩＣカード３０は外部から一時秘密鍵がアクセスされる毎に外部装置３０では乱数をｐ回発生し、認証コード秘密鍵Ｋｍのハッシュ計算を乱数の数値分ｐ回を行い、得たハッシュ値（Ｋp＝ｈp（Ｋm））を書きえ可能領域６２に保存し、認証コード一時密鍵Ｋｍを消去する。この時、外部機器３０で発生させる乱数の回数については、その値が大きくなりすぎると性能に影響がでる可能性がある。このような場合、乱数の発生回数に上限値を設けることで対応してもよい。
【００２７】
一方，電子データ保管サーバ１０は、通常のサーバと同様、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ネットワークを介してクライアント９２０と通信を行うための通信インターフェース１４、入出力装置２０へのインターフェース１６、外部装置，即ちＩＣカードを接続するための外部機器インターフェース１５、およびハードディスクなどの大容量記憶装置１７を備える。ハードディスク１７には、次のプログラムおよびデータが保存される。即ち，
・クライアント９２０から保管を依頼された電子データの保管処理を行うデータ保存プログラム９０
・電子データが保管される保管データ記憶部８０
・保管データ記憶部８０に保管されている電子データに対してクライアント９２０から取り出し要求があった場合にその電子データを要求中のクライアント９２０に送るデータ読出しプログラム９２
・外部機器３０のＲＯＭ６４に認証コード生成プログラムの一部のみを記録している場合の残りのプログラムをカプセル化した認証コード生成オブジェクト７５
・何らかの保管データに電子署名の偽造の疑いがある場合にその保管データの認証コードと正規の認証コードとの照合を行う認証コード照合オブジェクト９６
・アクセスが制限されたプログラムへのアクセス制限を行うアクセス制限プログラム９４
・アクセス制限処理の際に参照されるポリシーテーブル８２
・各種オブジェクトを起動するたびに記録されるログを格納するログテーブル８４
・不正アクセスによる異常なログをチェックするログフィルタ９８
なお、サーバ１０と外部機器３０との間の通信、およびサーバ１０とクライアント９２０との間の通信は、何れも図６のような相互認証（ＥＣＯＭ  ＩＣカード利用ガイドライン１．０版（１００８年３月１日））を行った上で行うことにより、不正な利用に対抗している。
【００２８】
また、サーバ１０からはＰＩＮ(個人識別番号)を外部機器３０に与えて認証をする。外部機器３０は、誤ったＰＩＮを連続して受け取ると、処理を停止するなどの安全性を高める機能を持つことが好ましい。サーバ１０とクライアント９２０は相互認証を行い、データを暗号化して送ることにより安全性を確保する。
【００２９】
以上のような構成を有する電子データ保管システム１の運用および動作を説明する。
図５は、本発明の原理による運用開始までの手順を示すフローチャートである。図５において、ＲＯＭ４０の製造業者は、ステップ１００において、先ず認証コード秘密鍵Ｋ０を生成し、ステップ１０２において、認証コード秘密鍵Ｋ０をＲＯＭ４０に焼き付ける。サーバ１０導入にあたり入手したＲＯＭ４０は、監査者または調停者が安全な場所に保管することが好ましい。次に、ステップ１０４において、製造業者、調停者または監査者がＲＯＭ４０の認証コード秘密鍵Ｋ０を外部機器３０のＲＡＭ６２にコピーする。
【００３０】
製造業者、調停者または監査者は、ステップ１０６において、外部機器３０内でｍ回乱数を発生させ、この乱数の発生回数ｍとＲＯＭ６４に格納されているハッシュ関数演算プログラムを用いて認証コード秘密鍵Ｋ０のｍ回ハッシュ演算を行い、ステップ１０８において、ＩＣカード３０をサーバ１０に接続し，固定する。この場合，ケーブルなどで固定し鍵をかけることが望ましい。これで、管理者がサーバ１０を運用することが可能となる（ステップ１１０）。
【００３１】
通常の運用では，クライアントの要求に応じてクライアントからの電子データをサーバ１０に保管するデータ保存処理９０、クライアントの要求に応じて、サーバ１０に保管していたデータをクライアントに送るデータ読出しが行われる。
＜データ保存＞
クライアント９２０側でデータ保管サーバ１０に保管すべきデータが発生した場合、クライアント９２０は、このデータをコンピュータ読み取り可能な形式にして暗号化したものを電子データとして、保管または登録要求とともにネットワークを介してデータ保管サーバ１０に送る。この場合、先ずクライアント９２０の操作者は、自分のＰＩＮ（個人識別番号）をデータ保管サーバ１０に送り、データ保管サーバ１０では、そのクライアント９２０の使用を許された人員のＰＩＮリスト（図示せず）に、受信したＰＩＮがある場合のみ、そのクライアント９２０に以降の操作を許す。また、電子データの通信に先立ち、クライアント９２０とデータ保管サーバ１０との間では、上記のように図６に示した相互認証を行う。
【００３２】
データ保管サーバ１０は、クライアント９２０から電子データ（Ｘとする）の保管または登録要求を受け取ると、後述の認証コード生成処理を行う。この認証コード生成処理を行うプログラムは、例えばＪａｖａ（登録商標）のSecurity Manager機能などにより特定の利用者およびオブジェクトからのみアクセスを可能とするアクセス制限機能とログデータ排出機能とを兼ね備えたオブジェクト、即ちカプセル化されたプログラムである。また、この認証コード生成オブジェクトは、その全部を外部装置３０のＲＯＭ６４に外部装置３０製造時に認証コード生成オブジェクト（ＯＢＪ）７２として焼き付けてもよいし、その重要な部分のみをＲＯＭ６４に外部装置３０製造時にＡＣ生成オブジェクト（ＯＢＪ）７２として焼き付け、残りの部分をデータ保管サーバ１０の補助記憶にＡＣ生成ＯＢＪ７５として格納してもよい。勿論、データ保管サーバ１０の補助記憶上のＡＣ生成ＯＢＪ７５も管理者権限以外はアクセスできないように保護される。このようにすることにより、認証コード生成処理を行うオブジェクトの盗難を防ぐことができる。
【００３３】
データ保管サーバ１０は、認証コード生成処理を行い、認証コードを生成した後、電子データＸに電子署名を行い、電子データＸ、認証コードおよび電子署名を一組にして保管データ記録部８０に保管する。
【００３４】
図７は、本発明の一実施形態により認証コード生成オブジェクト７２（または７２と７５の組み合わせ）の制御下でＣＰＵ１１が認証コードを生成する動作を示すフローチャートである。図７において、先ず、データ保存プログラム９０が、ステップ１２０において、外部装置３０のＲＯＭ６４からハッシュ関数ｈ値演算オブジェクト７０と認証コード生成ｆオブジェクト７２をＲＡＭ１３に読み込む。ＲＯＭ６４にアクセスする場合は、図６の相互認証およびＰＩＮによるアクセス制御を行う。認証コード生成ｆオブジェクト７２は、例えばＪａｖａ（登録商標）オブジェクトの中間ファイル形式でＲＯＭ６４に格納されていて、データ保存プログラム９０が読み込んでクラスの動的追加により主記憶１３に直接書き込んで、操作することができる。
【００３５】
次に、プログラム９０は、ステップ１２２において、外部装置３０のＲＡＭ６２から認証コード生成一時秘密鍵Ｋｍとｍを読み込む。外部装置３０の書換え可能領域６２にアクセスする場合も、図６の相互認証およびＰＩＮによるアクセス制御が行われる。ステップ１２４において、受信した電子データファイルを取り込み、ｎ回乱数を発生させ、認証コード生成一時秘密鍵Ｋｍのｎ回ハッシュ演算ｈｎ（Ｋｍ）（＝ｈｍ＋ｎ（Ｋ０））を行い、Ｋｍのｎ回ハッシュ演算値（仮に、Ｋｍｎと表す）を求め、これを秘密鍵とする。Ｋｍは、Ｋｍｎの生成後、消去する。
【００３６】
なお、ハッシュ演算オブジェクトは、外部装置３０のオブジェクトｈとは別のオブジェクトをデータ保管サーバ１０側に設けてもよい。このようにすることにより、システムの実装が容易になり、かつデータ保管サーバ１０の負荷が軽減し性能向上につながる。また、乱数の発生回数に、上限を設けてもよい。
【００３７】
次に、プログラム９０は、ステップ１２６において、制御を読み出した認証コード生成ｆオブジェクトに渡して、メッセージ認証コード演算値ＭＡＣ（Ｘ）＝ｆ（Ｘ、Ｋｍｎ）を求める。メッセージ認証コードを生成後、Ｋｍｎ′＝ｈ（Ｋｍｎ）の演算を行い、Ｋｍｎを消去することで秘密かぎを保護する。このメッセージ認証コードの生成には、周知のＨＭＡＣまたはＵＭＡＣなどのアルゴリズムを用いることができる。ステップ１２８において、電子データＸと取得した認証コードを署名生成オブジェクト（図示せず）に渡す。この認証コードには、メッセージ認証コード演算値ＭＡＣ（Ｘ）およびハッシュ回数ｍ、ｎを含む。さらに、データ保管システムが、図１２に示すように複数のデータ保管サーバ１０によるクラスタ構造を有する場合、認証コードには、認証コード生成ｆオブジェクト７２の識別コードまたは番号（ＩＤ）、および認証コード生成秘密鍵Ｋｍｎの識別コードまたは番号（ＩＤ）がさらに含まれる。なお、秘密情報の盗難や漏洩の防止のため、ハッシュ回数ｍおよびｎを暗号化して保存することも可能である。
【００３８】
データ保存プログラム９０は、ステップ１３０において、管理者から処理終了指示を受信したか否かを判断する。受信するまで、上記のステップ１２４〜１２８を繰り返す。管理者から処理終了指示を受信した場合、ステップ１３２において、読み込んだ認証コード生成ｆオブジェクト７２と認証コード生成一時秘密鍵Ｋｍｎ′を消去する。最後に、データ保存プログラム９０は、電子データ（Ｘ）ファイル、上記の認証コード（即ち、メッセージ認証コードＭＡＣ（Ｘ）、ハッシュ回数ｍおよびｎ、認証コード生成ｆオブジェクト７２のＩＤ、ならびに認証コード生成秘密鍵ＫｍｎのＩＤのセット）およびステップ１２８で生成した電子署名を図２に示すように保管データ記録部８０に保管する。
【００３９】
図２において、ファイルは、クライアント９２０から送られた保管対象の電子データファイルである。認証コードは、上記の認証コードである。電子署名は、電子データＸに対して秘密鍵を用いて生成された電子署名である。
【００４０】
なお、電子署名の方式および秘密鍵は、危殆化の防止や安全性を確保するため随時変更してもよい。
＜データ読み出し＞
クライアント９２０が、保管データ記録部８０に保管されている電子データを必要とする場合、必要な電子データを識別できる情報（電子データ識別情報）とともに電子データ読み出し要求をネットワークを介してデータ保管サーバ１０に送る。勿論、この場合も、クライアント９２０は、図６の相互認証およびＰＩＮによるアクセス制限を受ける。
【００４１】
データ保管サーバ１０では、この電子データ読み出し要求と電子データ識別情報を受け取ると、データ読み出しプログラム９２が、保管データ記録部８０から電子データ識別情報で特定される電子データの記録を取りだし、取り出した電子データが改竄されていないか否かを、署名の公開鍵で電子署名を復号化して、データのダイジェストとの一致を検証する。一致し、署名検証が成功裏に終わった場合、データ読み出しプログラム９２は、読み出した電子データをネットワーク経由で要求元のクライアント９２０に送る。一致せず、署名検証に失敗した場合、データ読み出しプログラム９２は、その旨をネットワーク経由でクライアント９２０に通知するとともに、視覚的警報、聴覚的警報、またはこれらの両方を発して、管理者にも知らせる。
＜認証コード照合＞
管理者、クライアント９２０の操作者、またはクライアント９２０を通してサービスを受けた利用者の何れかが、何らかの保管データ（Ｘとする）の電子署名に偽造の疑いがあると判断した場合、調停者に疑いのある保管データＸの認証コード照合を依頼することができる。図８は、本発明の第１の実施形態による認証コード照合の手順を示すフローチャートである。図８において、認証コード照合を行う場合、まず、管理者が、ステップ１４０において、調停者の指定した電子データＸの認証コード（即ち、メッセージ認証コードＭＡＣ（Ｘ）、ハッシュ回数ｍ，ｎ、認証コード生成オブジェクトＩＤ、および認証コード生成秘密鍵ＩＤ）を調停者に渡す。
【００４２】
次に、調停者は、ステップ１４２において、保管していたＲＯＭ４０の認証コード生成秘密鍵Ｋ０を外部装置３０のＲＡＭ６２にコピーする。この時、証拠性保証型の電子データ保管システムが図１２のように複数のデータ保管サーバ１０によるクラスタ構造を有する場合、認証コード生成オブジェクトＩＤおよび認証コード生成秘密鍵ＩＤが電子データＸと一致する外部装置３０のＲＡＭ６２にコピーする必要がある。そして、調停者は、ステップ１４４において、秘密鍵Ｋ０をコピーした外部装置３０のデータ保管サーバ１０にて、認証コード照合オブジェクト９６を起動する。
【００４３】
これに応じて、認証コード照合オブジェクト９６は、先ず、ステップ１４６において、監査者にＰＩＮを入力させ、ステップ１４８において、入力されたＰＩＮが許されるか否かを判断する。このようにすることにより、ＰＩＮの漏洩を防ぐことが可能となる。ステップ１４８においてＰＩＮが許される場合のみ、次のステップ１２０に進み、ステップ１２０から１２６において、図７で説明したように認証コード生成を行う。次に、認証コード照合オブジェクト９６は、ステップ１４８において、ステップ１４０で調停者から渡された照合コードとステップ１２６で算出した照合コードが一致するか否か判断する。一致する場合、ステップ１５０において、電子データＸの電子署名は正真であると判断し、ステップ１４８で一致しない場合、ステップ１５２において、電子データＸの電子署名は偽造であると判断する。
【００４４】
このようにして、電子署名の正真性を確かめることができる。
＜アクセス権処理＞
図３は、図１のポリシーテーブル記録部８２に記録されているポリシーテーブルの構成例とデータ例を示す図である。図３に示すように、図１のポリシーテーブル８２は、対象ポリシーとアクセスポリシー兼フィルタポリシーから構成される。対象ポリシーは、その構成例８２０に示すように、対象オブジェクト、許可アクセスＩＤ、許可アクセス元、許可アクセス先からなる。アクセス処理の対象、および後述のログ処理、ログフィルタ処理の対象となる項目を識別するために設ける。対象オブジェクトは、アクセスポリシーおよびフィルタポリシーの対象となるオブジェクト名を格納する。許可アクセスＩＤは、アクセスポリシーおよびフィルタポリシーの対象となるアクセスを許可する者のＩＤを格納する。許可アクセス元は、アクセスポリシーおよびフィルタポリシーの対象となるアクセス元のオブジェクト名を格納する。許可アクセス先は、アクセスポリシーおよびフィルタポリシーの対象となるアクセス先のオブジェクト名を格納する。対象ポリシーのデータ例を要素番号８２２に示す。
【００４５】
アクセスポリシー兼フィルタポリシーは、その構成例８３０に示すように時間帯、対象オブジェクト名、許可アクセスＩＤ、許可アクセス元、許可アクセス先から構成される。これらのデータがセットとなって、後述のアクセス権処理、およびログフィルタ処理で利用される時間帯は、アクセス権処理でアクセスが許可される時間帯を格納する。対象オブジェクト名は、アクセスポリシーおよびフィルタポリシーの対象となるオブジェクト名を格納する。許可アクセスＩＤは、アクセスポリシーおよびフィルタポリシーの対象となるアクセスを許可する者のＩＤを格納する。許可アクセス元は、アクセスポリシーおよびフィルタポリシーの対象となるアクセス元のオブジェクト名を格納する。許可アクセス先は、アクセスポリシーおよびフィルタポリシーの対象となるアクセス先のオブジェクト名を格納する。
【００４６】
要素番号８３２〜８３８は、アクセスポリシー兼フィルタポリシーのデータ例である。例えば、アクセスポリシー兼フィルタポリシー８３２では、コマンド画面から起動されるダンプコマンドは、管理者のみがアクセス権を有するが、全日アクセス禁止である旨が規定されている。アクセスポリシー兼フィルタポリシー８３４は、データ入力処理から起動される認証コード生成オブジェクトは、平日定時の範囲で監査者にアクセス権があることを示している。アクセスポリシー兼フィルタポリシー８３８は、後述のようにコマンド画面から起動されるログデータ処理は平日定時の範囲で監査者にアクセス権があることを示している。また、アクセスポリシー兼フィルタポリシー８３６は、上記のように認証コード照合オブジェクトにより起動される認証コード生成オブジェクト７２（または、７２と７５の組み合わせ）は、平日定時の範囲で調停者にアクセス権があることを示している。
【００４７】
ポリシーテーブル８２は、監査者のみがアクセスできるように保護されている。アクセス制限または権処理は、ポリシーテーブル８２からアクセスポリシー兼フィルタポリシーを読み込み、対象ポリシーの対象オブジェクトで指定されたオブジェクトについて一時間帯、許可アクセスＩＤ、許可アクセス元および許可アクセス先がすべて一致したもののみ、アクセス権限を認める処理である。これには、例えば、Ｊａｖａ（登録商標）のSecurity  Manager機能を利用することができる。
＜ログ管理＞
本発明によれば、対象ポリシー８２２の対象オブジェクトで指定されたオブジェクトは、実行されるたびにログを排出する機能を有し、排出されたログは、図４に示す形式でログテーブル８４に格納される。図４において、各ログは、ログが生成された時刻、ログ採取オブジェクト、アクセス者ＩＤ、アクセス元、およびアクセス先からなる。ログ採取オブジェクトは、ログを採取したアクセス対象のオブジェクト名であり、アクセス元は、アクセス元のオブジェクト名であり、アクセス先が、アクセス対象のオブジェクト名である。
【００４８】
このように格納されるログは、管理者とは別の監査者などのログアクセス権限者のみが参照や削除ができるように保護されている。監査者は、ログテーブル８４に保管されたログデータの監査、またはログフィルタ処理の警告データを参照することにより、データ保管サーバ１０の管理者の作業を監査する。
【００４９】
監査者は、ログテーブル８４に保管されたログデータを監査またはチェックしたい場合、平日の定時内であれば、希望する時間帯を指定してログフィルタ・プログラムまたはオブジェクト９８を起動することができる。図９は、本発明によりログフィルタ・オブジェクトが行うログフィルタ動作を示すフローチャートである。先ず、ステップ１７０において、ログ保管テーブル８４から、監査者によりパラメータで指定された時間帯のログレコードを読み込み、ステップ１７２において、対象ポリシー８２２から対象ポリシーのレコードを読み込む。次に、ステップ１７４において、ログレコードから対象ポリシーのレコードに記載されている項目を抽出し、ログレコードにその項目があれば、そのログレコードを抽出する。ステップ１７６において、アクセスポリシー兼フィルタポリシー８３２〜８３８を読み込む。ステップ１７８において、ステップ１７４で抽出したレコードのうち、読み込んだアクセスポリシー兼フィルタポリシー８３２〜８３８の何れかと条件が一致するレコードを消去する。そして、ステップ１８０において、残ったレコードを異常レコードとして、管理者および監査者に対して警告出力する。これにより、権限外の不正なアクセスを発見することが可能となる。
【００５０】
なお、本発明によれば、ポリシー８３２〜８３８をアクセス制限のみならず、ログのフィルタ処理にも利用するので、安全性を効率的に高めることができる。
〔第２の実施形態〕
第１の実施形態では、クライアント９２０からの電子データＸ全体に対して認証コードを生成したが、電子データＸを複数に分割し、分割した各データに対して認証コードを生成しもよい。図１０は、電子データＸを分割し、分割した各データに認証コードを生成する手順を示すフローチャートである。図１０のステップ２００において、外部装置３０のＲＯＭ６４からハッシュ関数ｈ値演算オブジェクト７０と認証コード生成ｆオブジェクト７２をＲＡＭ１３に読み込む。次に、ステップ２０２において、外部装置３０のＲＡＭ６２から認証コード生成一時秘密鍵Ｋｍとｍを読み込む。ステップ２０４において、電子データＸを読み込み、電子データＸをｐに分割し、Ｘ１，Ｘ２，．．．，Ｘｐとする。次に、ステップ２０６において、ｐ個の乱数ｎ１，ｎ２，．．．，ｎｐを発生させ、各分割データＸｉ（ｉ＝１，２，．．．，ｐ）のｎi回ハッシュ演算ｈｎi（Ｋｍ）（＝ｈｍ＋ｎi（Ｋ０））を行い、Ｋｍのｎi回ハッシュ演算値（仮に、Ｋｍｎiと表す）を求め、これを秘密鍵とする。ステップ２０８において、各分割データＸｉ（ｉ＝１，２，．．．，ｐ）に対して、メッセージ認証コード演算値ＭＡＣ（Ｘi）＝ｆ（Ｘi、Ｋｍｎi）を求める。ステップ２１０において、すべてのｉ（ｉ＝ｐまで）についてステップ２０６と２０８を行ってから、ステップ２１２に進む。ステップ２１２では、電子データＸと取得した認証コードを署名生成オブジェクト（図示せず）に渡す。この認証コードには、メッセージ認証コード演算値ＭＡＣ（Ｘi）およびハッシュ回数ｍ、ｎiを含む（ｉ＝１，２，．．．，ｐ）。さらに、データ保管システムが、図１２に示すように複数のデータ保管サーバ１０によるクラスタ構造を有する場合、認証コードには、認証コード生成ｆオブジェクト７２の識別コードまたは番号（ＩＤ）、および認証コード生成秘密鍵Ｋｍｎiの識別コードまたは番号（ＩＤi (ｉ＝１，２，．．．，ｐ)）がさらに含まれる。
【００５１】
さらに、ステップ２１４において、管理者から処理終了指示を受信したか否かを判断する。受信するまで、上記のステップ２０４〜２１２を繰り返す。管理者から処理終了指示を受信した場合、ステップ２１６において、読み込んだ認証コード生成ｆオブジェクト７２と認証コード生成一時秘密鍵Ｋｍを消去する。最後に、データ保存プログラム９０は、電子データ（Ｘ）ファイル、上記の認証コードＭＡＣ１，ＭＡＣ２，．．．，ＭＡＣｐおよび署名を図１１に示すように、保管データ記憶部８０に格納する。
【００５２】
なお、ステップ２０４における分割は、等分割でも、可変長分割でもよい。ただし、ステップ２０４で可変長分割した場合、各認証コードＭＡＣ（Ｘi）にデータ長を付けて保管データ記録部に記録する必要がある。
〔第３の実施形態〕
図１２は、本発明の第３の実施形態により複数の電子データ保管サーバからなる証拠性保証型の電子データ保管システム２の構成例を示す略ブロック図である。図１２において、データ保管サーバ１０が３台のデータ保管サーバ１０ａとこれら３台のデータ保管サーバ１０ａに共通に接続されたディスクサーバ８に置き換わった点を除けば同じである。ディスクサーバ８は、保管データ部８０，ログテーブル８４およびポリシーテーブル８２を含む代わりに、各データ保管サーバ１０は、これらの各テーブル８０〜８４は持たないものとする。認証コード秘密鍵の識別番号、および識別コード生成オブジェクトはクラスタを構成するサーバ間で同じに設定しても、個別に設定してもよい。個別に設定した場合は、調停者による図８の認証コード照合は、認証コードを生成した外部装置３０とＲＯＭ６４を接続したサーバで行う。
〔第４の実施形態〕
以上の実施形態では、１台のサーバに１つの外部装置を接続したが、１つのサーバに複数の外部装置を接続することも可能である。この場合、データ保管サーバ１０ｂは、外部装置３０および３０ａの両方から認証コード秘密鍵および乱数の発生回数を取得して、認証コードＭＡＣ（Ｘ）＝ｆ'（ｆ（Ｘ、Ｋｎ）、Ｋ'ｎ'）を生成する。図１３は、データ保管サーバ１０ｂに２つの外部装置を付けた例を示す。１台のデータ保管サーバ１０ｂに３以上の外部装置を取り付けることも可能である。複数の外部装置に秘密を分散することで、認証コードの安全性を高めることができる。
【００５３】
以上述べた実施の形態２〜４は、任意の２つまたは３つを組み合わせることが可能である。
以上は、本発明の説明のために実施例を掲げたに過ぎない。したがって、本発明の技術思想または原理に沿って上述の実施例に種々の変更、修正または追加を行うことは、当業者には容易である。
【００５４】
例えば、上記の例では、データ保管サーバは、ネットワークを介して複数のクライアントと接続されていたが、ネットワークを介さず１台の端末との間で電子データの授受を行うことも可能である。
【００５５】
複数のデータ保管サーバからなるクラスタ構成を有する電子データ保管システムにおいて、外部装置３０が未装着のサーバが存在し、その未装着サーバで認証コード照合を行う場合、認証コード照合を必要とする電子データＸの認証コードと電子署名を生成したザーバに装着されていた外部装置を上記未装着サーバに装着して、認証コード照合を行うことも可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１の実施形態による証拠性保証型の電子データ保管システム１の構成例を示す略ブロックである。
【図２】図１の保管データ記録部８０に保管される電子データの記録例を示す図である。
【図３】図１のポリシーテーブル記録部８２に記録されているポリシーテーブルの構成例とデータ例を示す図である。
【図４】図１のログテーブル記録部８４に保存されているログデータの構造例とデータ例を示す図である。
【図５】本発明によるサーバ運用開始までの手順を示すフローチャートである。
【図６】本発明の証拠性保証型の電子データ保管システムが行う相互認証におけるデータおよび処理の流れ示す相関チャートである。
【図７】本発明の第１の実施形態により認証コードを生成する動作を示すフローチャートである。
【図８】本発明の第１の実施形態による認証コード照合手順を示すフローチャートである。
【図９】本発明の第１の実施形態によるログフィルタ動作を示すフローチャートである。
【図１０】本発明の第２の実施形態により電子データを分割し、分割データごとに認証コードを生成する動作を示すフローチャートである。
【図１１】本発明の第２の実施形態により保管データ記録部８０に保管される各データの構成例を示す図である。
【図１２】本発明の第３の実施形態により複数の電子データ保管サーバからなる証拠性保証型の電子データ保管システム２の構成例を示す略ブロック図である。
【図１３】本発明の第４の実施形態により２つの外部装置３０および３０ａを備えた電子データ保管サーバ１０ｂの構成例を示す略ブロックである。
【図１４】従来技術による証拠性保証型の電子データ保管システムの典型的な構成例を示すブロックである。
【符号の説明】
【００５７】
１  本発明の電子データ保管システム
２  本発明のクラスタ構成の電子データ保管システム
１０  本発明のデータ保管サーバ１０
１１、６０  ＣＰＵ
１２、７０  ＲＯＭ
１３、６２  ＲＡＭ
１４  通信インタフェース
１５  外部装置インタフェース
１６  入出力インタフェース
１７  二次記憶装置
２０  入出力装置
３０  外部装置３０
４０  ＲＯＭ４０
７０  ハッシュ関数演算オブジェクト
７２、７５  認証コード生成オブジェクト
８０  保管データ記憶部
８２  ポリシーテーブル
８４  ログテーブル
９０  データ保存プログラム
９２  データ読み出しプログラム
９４  アクセス制限
９６  認証コード照合
９８  ログフィルタ
９２０  クライアント
【図１】
0004710232.tif 000002
【図２】
0004710232.tif 000003
【図３】
0004710232.tif 000004
【図４】
0004710232.tif 000005
【図５】
0004710232.tif 000006
【図６】
0004710232.tif 000007
【図７】
0004710232.tif 000008
【図８】
0004710232.tif 000009
【図９】
0004710232.tif 000010
【図１０】
0004710232.tif 000011
【図１１】
0004710232.tif 000012
【図１２】
0004710232.tif 000013
【図１３】
0004710232.tif 000014
【図１４】
0004710232.tif 000015