Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA PROCESSING SYSTEM, DATA PROCESSING METHOD, AND PROGRAM
Document Type and Number:
WIPO Patent Application WO/2008/026238
Kind Code:
A1
Abstract:
A log output device and program for preventing undetectable false alteration (rewrite, insertion, deletion, and so forth) while signing the log and identifying the falsely altered part if altered. A log output device creates a log record constituted of a data part and a hash part, outputs the record to a disc. A hash part is a combination of a hash (data hash) of the data part and a hash (link hash) of the hash part of the previous record. Only a part of the records of the hash chain is signed. The copy of the hash part of the record is held in a process memory immediately when the record is outputted to the disc. When the next record is outputted, the hash part of the latest record on the disc is compared with the hash part held in the process memory. If they agree with each other, the records on the disc are judged to be not falsely altered. If not, they are judged to be falsely altered.

Inventors:
TSURUKAWA TATSUYA (JP)
Application Number:
PCT/JP2006/316847
Publication Date:
March 06, 2008
Filing Date:
August 28, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MITSUBISHI ELECTRIC CORP (JP)
TSURUKAWA TATSUYA (JP)
International Classes:
G06F21/64; H04L9/32; G06F21/86; G09C1/00
Domestic Patent References:
WO2004068350A12004-08-12
Foreign References:
JP2005149011A2005-06-09
JP2002082834A2002-03-22
JPH1139219A1999-02-12
JP2001519930A2001-10-23
JP2004304338A2004-10-28
JP2002335241A2002-11-22
Attorney, Agent or Firm:
MIZOI, Shoji (17-10 Ofuna 2-chome, Kamakura-sh, Kanagawa 56, JP)
Download PDF:
Claims:
 第一の記憶装置と第二の記憶装置とを用い、逐次出力されるデータにハッシュ値を付加し、ハッシュ値が付加されたデータを前記第二の記憶装置に格納するデータ処理システムであって、
 前記第二の記憶装置にデータが格納される度に、前記第二の記憶装置に格納される格納データに付加されている、前記格納データから生成された第一のハッシュ値と前記格納データの前に格納されたデータのハッシュ値から生成された第二のハッシュ値とを複製し、第一のハッシュ値と第二のハッシュ値の複製を前記第一の記憶装置に格納するハッシュ値複製格納部と、
 新たなデータが出力された際に、前記第二の記憶装置に最後に格納された最後尾データに付加されている最後尾の第一のハッシュ値及び第二のハッシュ値と、前記第一の記憶装置に格納されている前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とを比較するハッシュ値比較部と、
 前記ハッシュ値比較部により前記最後尾の第一のハッシュ値及び第二のハッシュ値と前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とが一致すると判断された場合に、前記新たなデータから新たな第一のハッシュ値を生成するとともに、前記最後尾の第一のハッシュ値及び第二のハッシュ値から新たな第二のハッシュ値を生成するハッシュ値生成部と、
 前記ハッシュ値生成部により生成された前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とを前記新たなデータに付加し、前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とが付加された前記新たなデータを前記第二の記憶装置に格納するデータ格納部とを有することを特徴とするデータ処理システム。
 前記ハッシュ値生成部は、
 前記ハッシュ値比較部により前記最後尾の第一のハッシュ値及び第二のハッシュ値と前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とが一致しないと判断された場合に、前記新たなデータから新たな第一のハッシュ値を生成するとともに、前記最後尾の第一のハッシュ値及び第二のハッシュ値以外の値から新たな第二のハッシュ値を生成することを特徴とする請求項1に記載のデータ処理システム。
 前記データ処理システムは、更に、
 前記ハッシュ値比較部により前記最後尾の第一のハッシュ値及び第二のハッシュ値と前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とが一致しないと判断された場合に、前記最後尾データにおける改竄を通知する改竄検出レポートを生成する改竄検出レポート生成部を有することを特徴とする請求項1に記載のデータ処理システム。
 前記ハッシュ値複製格納部は、
 前記第一の記憶装置として、耐タンパー装置に前記第一のハッシュ値と第二のハッシュ値の複製を格納することを特徴とする請求項1に記載のデータ処理システム。
 前記データ処理システムは、更に、
 複数のデータの中の特定のデータに対して署名を生成し、生成した署名を前記特定のデータにのみ付加する署名生成部を有することを特徴とする請求項1に記載のデータ処理システム。
 前記署名生成部は、
 一定のデータ間隔ごとに、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 一定の時間間隔ごとに、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 前記データ処理システムを利用するアプリケーションプログラムからの指示に基づき、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 前記データ処理システムの外部から前記第二の記憶装置に格納されているデータに対する転送要求があった際に、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 前記データ処理システムを利用する利用者からの指示に基づき、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 前記データ処理システムのIDS(侵入検知システム)/IPS(侵入防止システム)が不正侵入を検知した際に、署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記署名生成部は、
 前記データ処理システムが稼動を終了する際に、最後に出力されたデータに対する署名を生成することを特徴とする請求項5に記載のデータ処理システム。
 前記データ処理システムは、更に、
 前記データ処理システムの起動時に、前記第二の記憶装置に格納されているデータを検査し、署名が付加されている最後のデータより後に格納されたデータが存在する場合に、署名が付加されている最後のデータより後に格納されたデータが存在することを通知するアラートを生成するデータ検査部とを有することを特徴とする請求項12に記載のデータ処理システム。
 前記ハッシュ値生成部は、
 複数個の第一のハッシュ値から上位ハッシュ値を生成し、複数個の上位ハッシュ値から更なる上位ハッシュ値を生成して、複数階層にわたる上位ハッシュ値を生成することを特徴とする請求項1に記載のデータ処理システム。
 前記データ処理システムは、
 前記ハッシュ値生成部により生成された上位ハッシュ値のうち最上位の上位ハッシュ値を用いて署名を生成する署名生成部を有することを特徴とする請求項14に記載のデータ処理システム。
 第一の記憶装置と第二の記憶装置とを用い、逐次出力されるデータにハッシュ値を付加し、ハッシュ値が付加されたデータを前記第二の記憶装置に格納するデータ処理方法であって、
 前記第二の記憶装置にデータが格納される度に、前記第二の記憶装置に格納される格納データに付加されている、前記格納データから生成された第一のハッシュ値と前記格納データの前に格納されたデータのハッシュ値から生成された第二のハッシュ値とを複製し、第一のハッシュ値と第二のハッシュ値の複製を前記第一の記憶装置に格納し、
 新たなデータが出力された際に、前記第二の記憶装置に最後に格納された最後尾データに付加されている最後尾の第一のハッシュ値及び第二のハッシュ値と、前記第一の記憶装置に格納されている前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とを比較し、
 前記最後尾の第一のハッシュ値及び第二のハッシュ値と前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とが一致すると判断された場合に、前記新たなデータから新たな第一のハッシュ値を生成するとともに、前記最後尾の第一のハッシュ値及び第二のハッシュ値から新たな第二のハッシュ値を生成し、
 生成した前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とを前記新たなデータに付加し、前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とが付加された前記新たなデータを前記第二の記憶装置に格納することを特徴とするデータ処理方法。
 第一の記憶装置と第二の記憶装置とを有するコンピュータに、逐次出力されるデータにハッシュ値を付加させ、ハッシュ値が付加されたデータを前記第二の記憶装置に格納させるプログラムであって、
 前記第二の記憶装置にデータが格納される度に、前記第二の記憶装置に格納される格納データに付加されている、前記格納データから生成された第一のハッシュ値と前記格納データの前に格納されたデータのハッシュ値から生成された第二のハッシュ値とを複製し、第一のハッシュ値と第二のハッシュ値の複製を前記第一の記憶装置に格納するハッシュ値複製格納処理と、
 新たなデータが出力された際に、前記第二の記憶装置に最後に格納された最後尾データに付加されている最後尾の第一のハッシュ値及び第二のハッシュ値と、前記第一の記憶装置に格納されている前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とを比較するハッシュ値比較処理と、
 前記ハッシュ値比較処理により前記最後尾の第一のハッシュ値及び第二のハッシュ値と前記最後尾の第一のハッシュ値及び第二のハッシュ値の複製とが一致すると判断された場合に、前記新たなデータから新たな第一のハッシュ値を生成するとともに、前記最後尾の第一のハッシュ値及び第二のハッシュ値から新たな第二のハッシュ値を生成するハッシュ値生成処理と、
 前記ハッシュ値生成処理により生成された前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とを前記新たなデータに付加し、前記新たな第一のハッシュ値と前記新たな第二のハッシュ値とが付加された前記新たなデータを前記第二の記憶装置に格納するデータ格納処理とをコンピュータに実行させることを特徴とするプログラム。
Description:
データ処理システム及びデータ 理方法及びプログラム

 この発明は、例えばコンテンツ流通シス ムや企業情報システムにおけるログに関し 特にログデータに署名を付与することによ 、検知できない改竄(書き換え、不正レコー ド挿入、削除など)を防ぎ、ログの完全性を 保するための技術に関する。

 今日、コンテンツ流通システムや企業情報 ステムにおいて、システムに属する機器や 置から出力される「ログ」が重要な役割を たすようになってきている。
 例えば、コンテンツ流通システムでは、コ テンツホルダがコンテンツプロバイダ(配信 業者)に許可した許諾の範囲で(許可した販売 、販売価格などで)コンテンツの販売が行わ れているかを、コンテンツプロバイダが配備 展開するコンテンツ配信システムのログを元 にコンテンツホルダが検証することが行われ ている、或いは今後行われようとしている。
 また、デジタル映画を映画館に供給するス ジオが許諾した範囲で(許可した上映期間・ 上映回数で)映画を上映しているかを、映画 システムのログを元にスタジオが検証する とが行われている、或いは今後行われよう している。

 一方、企業情報システムにおいては、顧 名簿や企業機密の情報漏洩といったセキュ ティ問題が発生した場合に、予めシステム ら収集し保存しておいたログを分析するこ で原因を追究したり、また、情報システム 正しく運用されていることを客観的に示す 査などの目的のためにもログが用いられて ている。

 このように、あらゆるシステムにおいて ログが重要な役割を果たすようになってき 今日、ログデータの改竄はシステム運用上 大な脅威となり、その完全性の確保(改竄さ れていないことの証明)が重要な課題となっ きている。

 このような背景の下、ログの完全性確保に けて、大きく2つのアプローチがある。
1.ログの改竄そのものを防止する。
2.ログが改竄された場合、それを確実に検知 きるようにする。
 このうち、本書で説明する発明は、上記の2 を主な目的としたものである。また、同様の 目的を持つ先行技術について、以下に説明す る。

 例えば、特許文献1は、アクセスログなど 時系列に発生するデータごとにハッシュ・署 名をつけて保存するデータ記憶処理方法を開 示している。その際、該当データと一つ前の データのハッシュを合成したデータのハッシ ュを取り、それに署名を付けるハッシュチェ ーン構成を採っている。

 しかしながら、この先行技術では、各レ ード全てに署名を付けており、署名(秘密鍵 演算)処理は計算量が多いため(概ねハッシュ 算の100-1000倍)、レコードが頻発するような 況下では処理負荷が高くなり、実用に向か いという問題点がある。さらに、各レコー に署名が付与される分、全体のサイズが大 くなるという問題点もある(署名にRSA(登録 標)(Rivest Shamir Adleman)2048ビット鍵を用いた 合、各レコードごとに256バイト、Base64変換 ると約342バイト、サイズが大きくなる)。

 これに対し、非特許文献1は、同じくログ への署名付与にハッシュチェーンを用いる構 成を開示・推奨している。この先行技術では 、ハッシュチェーンの最後のハッシュにのみ 署名を付けた構成図を開示しており、署名負 荷やログサイズを低減できる可能性に言及し ているが、動的に変化するログデータに対し 、どのようなタイミングで署名を付与するか 、また署名で守られていないデータをどのよ うに検知できない改竄から守るかなど、具体 的な実装方式には一切触れられておらず、ア イデアのメリットを具体的に享受することが できない。

 また、特許文献2は、ログではないが、署 名対象データを分割し、各々のハッシュを算 出し、それらを階層構造にした上で、最上位 のハッシュに署名を付けることで、データの 改竄検知が行えるアイデアが開示されている 。

 しかしながら、この先行技術では、ある程 ログが蓄積された最終段階でのみ署名を付 ており、そこに至るまでの間にデータが改 されても改竄に気付くことができないとい 問題がある(ログというデータの性格上、最 後だけではなく、逐次署名を付けていく必要 がある)。

特開2003-143139号公報

特開2001-519930号公報 Digital Cinema System Specification V1.0 P.116-11 7,July 20, 2005 Digital Cinema Initiatives, LLC, http ://www.dcimovies.com/

 本発明は、上記のような課題を解決する とを主な目的とするとともに、更に、デー が改竄された場合、改竄を検知できるだけ なく、改竄された箇所をできるだけ限定す 機能も同時に合わせ持つ、データ処理シス ム、データ処理方法及びプログラムを得る とを主な目的とする。

 この発明に係るデータ処理システムは、第 の記憶装置と第二の記憶装置とを用い、逐 出力されるデータにハッシュ値を付加し、 ッシュ値が付加されたデータを前記第二の 憶装置に格納するデータ処理システムであ て、
 前記第二の記憶装置にデータが格納される に、前記第二の記憶装置に格納される格納 ータに付加されている、前記格納データか 生成された第一のハッシュ値と前記格納デ タの前に格納されたデータのハッシュ値か 生成された第二のハッシュ値とを複製し、 一のハッシュ値と第二のハッシュ値の複製 前記第一の記憶装置に格納するハッシュ値 製格納部と、
 新たなデータが出力された際に、前記第二 記憶装置に最後に格納された最後尾データ 付加されている最後尾の第一のハッシュ値 び第二のハッシュ値と、前記第一の記憶装 に格納されている前記最後尾の第一のハッ ュ値及び第二のハッシュ値の複製とを比較 るハッシュ値比較部と、
 前記ハッシュ値比較部により前記最後尾の 一のハッシュ値及び第二のハッシュ値と前 最後尾の第一のハッシュ値及び第二のハッ ュ値の複製とが一致すると判断された場合 、前記新たなデータから新たな第一のハッ ュ値を生成するとともに、前記最後尾の第 のハッシュ値及び第二のハッシュ値から新 な第二のハッシュ値を生成するハッシュ値 成部と、
 前記ハッシュ値生成部により生成された前 新たな第一のハッシュ値と前記新たな第二 ハッシュ値とを前記新たなデータに付加し 前記新たな第一のハッシュ値と前記新たな 二のハッシュ値とが付加された前記新たな ータを前記第二の記憶装置に格納するデー 格納部とを有することを特徴とする。

 前記ハッシュ値生成部は、
 前記ハッシュ値比較部により前記最後尾の 一のハッシュ値及び第二のハッシュ値と前 最後尾の第一のハッシュ値及び第二のハッ ュ値の複製とが一致しないと判断された場 に、前記新たなデータから新たな第一のハ シュ値を生成するとともに、前記最後尾の 一のハッシュ値及び第二のハッシュ値以外 値から新たな第二のハッシュ値を生成する とを特徴とする。

 前記データ処理システムは、更に、
 前記ハッシュ値比較部により前記最後尾の 一のハッシュ値及び第二のハッシュ値と前 最後尾の第一のハッシュ値及び第二のハッ ュ値の複製とが一致しないと判断された場 に、前記最後尾データにおける改竄を通知 る改竄検出レポートを生成する改竄検出レ ート生成部を有することを特徴とする。

 前記ハッシュ値複製格納部は、
 前記第一の記憶装置として、耐タンパー装 に前記第一のハッシュ値と第二のハッシュ の複製を格納することを特徴とする。

 前記データ処理システムは、更に、
 複数のデータの中の特定のデータに対して 名を生成し、生成した署名を前記特定のデ タにのみ付加する署名生成部を有すること 特徴とする。

 前記署名生成部は、
 一定のデータ間隔ごとに、署名を生成する とを特徴とする。

 前記署名生成部は、
 一定の時間間隔ごとに、署名を生成するこ を特徴とする。

 前記署名生成部は、
 前記データ処理システムを利用するアプリ ーションプログラムからの指示に基づき、 名を生成することを特徴とする。

 前記署名生成部は、
 前記データ処理システムの外部から前記第 の記憶装置に格納されているデータに対す 転送要求があった際に、署名を生成するこ を特徴とする。

 前記署名生成部は、
 前記データ処理システムを利用する利用者 らの指示に基づき、署名を生成することを 徴とする。

 前記署名生成部は、
 前記データ処理システムのIDS(侵入検知シス テム)/IPS(侵入防止システム)が不正侵入を検 した際に、署名を生成することを特徴とす 。

 前記署名生成部は、
 前記データ処理システムが稼動を終了する に、最後に出力されたデータに対する署名 生成することを特徴とする。

 前記データ処理システムは、更に、
 前記データ処理システムの起動時に、前記 二の記憶装置に格納されているデータを検 し、署名が付加されている最後のデータよ 後に格納されたデータが存在する場合に、 名が付加されている最後のデータより後に 納されたデータが存在することを通知する ラートを生成するデータ検査部とを有する とを特徴とする。

 前記ハッシュ値生成部は、
 複数個の第一のハッシュ値から上位ハッシ 値を生成し、複数個の上位ハッシュ値から なる上位ハッシュ値を生成して、複数階層 わたる上位ハッシュ値を生成することを特 とする。

 前記データ処理システムは、
 前記ハッシュ値生成部により生成された上 ハッシュ値のうち最上位の上位ハッシュ値 用いて署名を生成する署名生成部を有する とを特徴とする。

 この発明に係るデータ処理方法は、第一の 憶装置と第二の記憶装置とを用い、逐次出 されるデータにハッシュ値を付加し、ハッ ュ値が付加されたデータを前記第二の記憶 置に格納するデータ処理方法であって、
 前記第二の記憶装置にデータが格納される に、前記第二の記憶装置に格納される格納 ータに付加されている、前記格納データか 生成された第一のハッシュ値と前記格納デ タの前に格納されたデータのハッシュ値か 生成された第二のハッシュ値とを複製し、 一のハッシュ値と第二のハッシュ値の複製 前記第一の記憶装置に格納し、
 新たなデータが出力された際に、前記第二 記憶装置に最後に格納された最後尾データ 付加されている最後尾の第一のハッシュ値 び第二のハッシュ値と、前記第一の記憶装 に格納されている前記最後尾の第一のハッ ュ値及び第二のハッシュ値の複製とを比較 、
 前記最後尾の第一のハッシュ値及び第二の ッシュ値と前記最後尾の第一のハッシュ値 び第二のハッシュ値の複製とが一致すると 断された場合に、前記新たなデータから新 な第一のハッシュ値を生成するとともに、 記最後尾の第一のハッシュ値及び第二のハ シュ値から新たな第二のハッシュ値を生成 、
 生成した前記新たな第一のハッシュ値と前 新たな第二のハッシュ値とを前記新たなデ タに付加し、前記新たな第一のハッシュ値 前記新たな第二のハッシュ値とが付加され 前記新たなデータを前記第二の記憶装置に 納することを特徴とする。

 この発明に係るプログラムは、第一の記憶 置と第二の記憶装置とを有するコンピュー に、逐次出力されるデータにハッシュ値を 加させ、ハッシュ値が付加されたデータを 記第二の記憶装置に格納させるプログラム あって、
 前記第二の記憶装置にデータが格納される に、前記第二の記憶装置に格納される格納 ータに付加されている、前記格納データか 生成された第一のハッシュ値と前記格納デ タの前に格納されたデータのハッシュ値か 生成された第二のハッシュ値とを複製し、 一のハッシュ値と第二のハッシュ値の複製 前記第一の記憶装置に格納するハッシュ値 製格納処理と、
 新たなデータが出力された際に、前記第二 記憶装置に最後に格納された最後尾データ 付加されている最後尾の第一のハッシュ値 び第二のハッシュ値と、前記第一の記憶装 に格納されている前記最後尾の第一のハッ ュ値及び第二のハッシュ値の複製とを比較 るハッシュ値比較処理と、
 前記ハッシュ値比較処理により前記最後尾 第一のハッシュ値及び第二のハッシュ値と 記最後尾の第一のハッシュ値及び第二のハ シュ値の複製とが一致すると判断された場 に、前記新たなデータから新たな第一のハ シュ値を生成するとともに、前記最後尾の 一のハッシュ値及び第二のハッシュ値から たな第二のハッシュ値を生成するハッシュ 生成処理と、
 前記ハッシュ値生成処理により生成された 記新たな第一のハッシュ値と前記新たな第 のハッシュ値とを前記新たなデータに付加 、前記新たな第一のハッシュ値と前記新た 第二のハッシュ値とが付加された前記新た データを前記第二の記憶装置に格納するデ タ格納処理とをコンピュータに実行させる とを特徴とする。

 このように、この発明によれば、第二の 憶装置に格納される格納データの第一のハ シュ値と第二のハッシュ値の複製を第一の 憶装置に格納し、新たなデータが出力され 際に、第二の記憶装置に格納されている最 尾の第一のハッシュ値及び第二のハッシュ と第一の記憶装置に格納されている最後尾 第一のハッシュ値及び第二のハッシュ値の 製とを比較することにより改竄を検知する とができ、第二の記憶装置に格納される全 ータに対して署名を付与する必要がなくな 、署名処理負荷を低減し、署名によるデー 量の増大も防ぐことができる。

 さらには、本発明は、従来技術が持つ問 を解決しつつ、検知不能な改竄を防ぎ、改 された場合、改竄された可能性のある箇所 できるだけ限定する機能を同時に合わせ持 という効果も奏するものである。

 実施の形態1.
(ログ出力装置及びログ出力プログラムの基 構成と、一定行数間隔、一定時間間隔によ 署名付与)

(ログの形式とハッシュチェーンの形成)
 図1は、この発明の実施の形態1によるログ 力装置におけるログの形式を示すブロック である。
 ディスク1はログを記録・保持する。
 ログレコード10(以下、単にレコードともい )は、データ部11とハッシュ部12から構成さ ている。ここで、データ部11はログメッセー ジ本体である。
 ハッシュ部12は、さらにデータ部11のハッシ ュ値であるデータハッシュ(DH)13と、一つ前の レコード10のハッシュ部12の更なるハッシュ であるリンクハッシュ(LH)14から構成されて る(ただし、最初のレコードについては、デ タハッシュのハッシュをリンクハッシュと る)。
 データハッシュ(DH)13は、第一のハッシュ値 例であり、リンクハッシュ(LH)14は、第二の ッシュ値の例である。
 レコード10のうち、ハッシュ部12の署名を計 算し、それをハッシュ部12の後ろに署名(SIG)15 として付与したレコードが署名レコード20で る。

 最初のレコードから署名レコード20まで、 ンクハッシュ(LH)14のリンク群(ハッシュチェ ン)でつながれたレコード群が署名ブロック 1(2)及び署名ブロック2(3)である。最後のブロ クN(4)は、まだ署名が付けられていない未署 名状態であることを示している。
 また、ブロック間でもハッシュチェーンは ながっている。図1では、署名ブロック2(3) 最初のレコードのリンクハッシュ(LH)14は署 ブロック1(2)の最後のレコードのハッシュ部1 2に連結している。
 このようにして生成したログを、他のシス ムに転送する場合は、転送先でログの完全 (改竄されていないこと)を検証できるよう 最新レコードに署名が付いた状態で送るよ にすれば、一度に複数の署名ブロックを送 てもよい。

 以上のようにログを構成することで、署 対象は最終レコードのハッシュ部12とする とができることから、署名付与時にログ全 を読み込んでハッシュを取る必要が無いと うメリットが得られる。

(ログ出力装置の構成例)
 図2は、この発明の実施の形態1によるログ 力装置の構成例を示すブロック図である。

 ログ出力装置100は、CPU(Central Processing Uni t)、メモリ、ディスクや、キーボード/マウス のような入力機器、ディスプレイのような出 力機器から構成される一般的なコンピュータ を想定している。

 ログ出力装置100は、ログ出力処理部101を有 ている。ログ出力処理部101は、データ処理 ステムの例である。ログ出力処理部101は、 えば、メモリに常駐するログ出力常駐プロ ラムにより実現することができる。
 ログ出力処理部101は、各種アプリケーショ プログラム111(以下、単に、アプリケーショ ンともいう)が出力するログをそれがリンク るログ出力ライブラリ110を介して、例えば ロセス間通信などにより受信し、署名付き グをディスク112に出力する。

 また、ログ出力装置100は、最新ハッシュ記 部102を備えている。最新ハッシュ記憶部102 、例えばプロセスメモリ上に最新のハッシ 値を記憶するためのメモリ領域を確保する とで実現できる。
 最新ハッシュ記憶部102は、ログとしてディ ク112に出力された最新レコードのハッシュ 12(データハッシュ(DH)13及びリンクハッシュ( LH)14の両者)のコピーを保持するように構成さ れている。
 最新ハッシュ記憶部102(プロセスメモリ)は 一の記憶装置の例であり、ディスク112は、 二の記憶装置の例である。

 また、ログ出力装置100は、署名要求部103を えている。署名要求部103は、外部或いはロ 出力装置100内部からの署名要求を受け付け ログ出力処理部101内の署名生成部1013(後述) 署名要求を出力することにより、ディスク1 12上のログの最新レコードに署名が付与され 。
 署名要求部103は具体的には、UNIX(登録商標) ログラムにおけるシグナルハンドラなどの 構により実現することもできるし、ログ出 ライブラリ110からの明示的な署名要求や、 イマーを保持し、自身で署名生成のタイミ グを与えることなども可能である。

 ログ出力装置100は、自身で公開鍵ペアを 有しており、各々秘密鍵保持部104、公開鍵 持部105に保持している。また、オプション 耐タンパー装置106を備えてもよく、その場 、最新ハッシュ記憶部102及び秘密鍵保持部1 04を、耐タンパー装置106の中に備える構成を ってもよい。

 次に、図3にログ出力処理部101(データ処 システム)の内部構成例について説明する。

 ハッシュ値複製格納部1015は、ディスク112 (第二の記憶装置)にレコードが格納される度 、格納されるレコードに付加されている、 該レコードのデータ部11から生成されたデ タハッシュ(DH)13(第一のハッシュ値)と当該レ コードの前に格納されたレコードのハッシュ 部12から生成されたリンクハッシュ(LH)14(第二 のハッシュ値)を複製し、データハッシュ(DH)1 3及びリンクハッシュ(LH)14の複製を最新ハッ ュ記憶部102(第一の記憶装置)に格納する。

 ハッシュ値比較部1011は、新たなデータ( ータ部11)が出力された際に、ディスク112に 後に格納された最後尾データに付加されて る最後尾のハッシュ部12(データハッシュ(DH)1 3及びリンクハッシュ(LH)14)と、最新ハッシュ 憶部102に格納されている最後尾のハッシュ 12の複製とを比較する。

 ハッシュ値生成部1012は、ハッシュ値比較 部1011により最後尾のハッシュ部12と最後尾の ハッシュ部12の複製とが一致すると判断され 場合に、新たなデータ(データ部11)から新た なデータハッシュ(DH)13を生成するとともに、 最後尾のハッシュ部12から新たなリンクハッ ュ(LH)14を生成する。

 署名生成部1013は、署名要求部103からの署 名要求に基づき、複数のデータのうちの特定 のデータ(最後尾のデータ)に対して署名を生 し、生成した署名を当該特定のデータに付 する。署名生成部1013は、例えば、一定のデ ータ間隔ごとに、署名を生成するようにして もいいし、一定の時間間隔ごとに、署名を生 成するようにしてもよい。

 データ格納部1014は、ハッシュ値生成部1012 より生成された新たなデータハッシュ(DH)13 リンクハッシュ(LH)14をハッシュ部12として新 たなデータ(データ部11)に付加し、データハ シュ(DH)13とリンクハッシュ(LH)14が付加され 後のレコード10をディスク112(第二の記憶装 )に格納する。
 また、データ格納部1014は、署名生成部1013 より署名が生成された場合は、署名が付加 れた署名レコード20をディスク112に格納する 。

 改竄検出レポート生成部1016は、ハッシュ 値比較部1011により最後尾のハッシュ部12と最 後尾のハッシュ部12の複製とが一致しないと 断された場合に、最後尾データにおける改 を通知する改竄検出レポートを生成する。

 なお、ハッシュ値比較部1011により最後尾 のハッシュ部12と最後尾のハッシュ部12の複 とが一致しないと判断された場合は、改竄 出レポート生成部1016により改竄検出レポー の生成とともに、ハッシュ値生成部1012は、 新たなデータから新たなデータハッシュ(DH)13 を生成するとともに、最後尾のハッシュ部12 外の値から新たなリンクハッシュ(LH)14を生 するようにしてもよい。この場合、新たな ータは、改竄のあった最後尾データとリン しないことになる。

(ログ出力装置のハードウェア構成例)
 次に、ログ出力処理部101を含むログ出力装 100のハードウェア構成例について説明する
 前述のように、ログ出力装置100は、一般的 コンピュータで構成することができ、例え 、図10に示すハードウェア構成とすること できる。
 なお、図10の構成は、あくまでもログ出力 置100のハードウェア構成の一例を示すもの あり、ログ出力装置100のハードウェア構成 図10に記載の構成に限らず、他の構成であっ てもよい。

 図10において、ログ出力装置100は、プログ ムを実行するCPU911(Central Processing Unit、中央 処理装置、処理装置、演算装置、マイクロプ ロセッサ、マイクロコンピュータ、プロセッ サともいう)を備えている。
 CPU911は、バス912を介して、例えば、ROM(Read  Only Memory)913、RAM(Random Access Memory)914、通信 ード915、表示装置901、キーボード902、マウ 903、磁気ディスク装置920と接続され、これ のハードウェアデバイスを制御する。
 更に、CPU911は、FDD904(Flexible Disk Drive)、コ パクトディスク装置905(CDD)、プリンタ装置906 、スキャナ装置907と接続していてもよい。ま た、磁気ディスク装置920の代わりに、光ディ スク装置、メモリカード読み書き装置などの 記憶装置でもよい。
 RAM914は、揮発性メモリの一例である。ROM913 FDD904、CDD905、磁気ディスク装置920の記憶媒 は、不揮発性メモリの一例である。これら 、記憶装置あるいは記憶部の一例である。
 通信ボード915、キーボード902、スキャナ装 907、FDD904などは、入力部、入力装置の一例 ある。
 また、通信ボード915、表示装置901、プリン 装置906などは、出力部、出力装置の一例で る。

 通信ボード915は、ネットワークを介してロ の転送先であるログ収集管理システムと接 されていてもよい。例えば、通信ボード915 、LAN(ローカルエリアネットワーク)、イン ーネット、WAN(ワイドエリアネットワーク)な どに接続されていても構わない。
 磁気ディスク装置920には、オペレーティン システム921(OS)、ウィンドウシステム922、プ ログラム群923、ファイル群924が記憶されてい る。プログラム群923のプログラムは、CPU911、 オペレーティングシステム921、ウィンドウシ ステム922により実行される。
 また、磁気ディスク装置920に、図1及び図2 示した署名付きログが格納されるようにし もよい。

 上記プログラム群923には、本実施の形態及 以下に述べる実施の形態の説明においてロ 出力処理部101及びその内部構成として説明 ている機能を実行するプログラムが記憶さ ている。プログラムは、CPU911により読み出 れ実行される。
 ファイル群924には、以下に述べる説明にお て、「-の判定」、「-の計算」、「-の比較 、「-の評価」、「-の生成」等として説明 ている処理の結果を示す情報やデータや信 値や変数値やパラメータが、「-ファイル」 「-データベース」の各項目として記憶され ている。「-ファイル」や「-データベース」 、ディスクやメモリなどの記録媒体に記憶 れる。ディスクやメモリになどの記憶媒体 記憶された情報やデータや信号値や変数値 パラメータは、読み書き回路を介してCPU911 よりメインメモリやキャッシュメモリに読 出され、抽出・検索・参照・比較・演算・ 算・処理・編集・出力・印刷・表示などのC PUの動作に用いられる。抽出・検索・参照・ 較・演算・計算・処理・編集・出力・印刷 表示のCPUの動作の間、情報やデータや信号 や変数値やパラメータは、メインメモリ、 ジスタ、キャッシュメモリ、バッファメモ 等に一時的に記憶される。
 また、以下で説明するフローチャートの矢 の部分は主としてデータや信号の入出力を し、データや信号値は、RAM914のメモリ、FDD9 04のフレキシブルディスク、CDD905のコンパク ディスク、磁気ディスク装置920の磁気ディ ク、その他光ディスク、ミニディスク、DVD の記録媒体に記録される。また、データや 号は、バス912や信号線やケーブルその他の 送媒体によりオンライン伝送される。

 また、本実施の形態及び以下に述べる実施 形態の説明においてログ出力処理部101及び の内部構成として説明しているものは、「- 回路」、「-装置」、「-機器」、「手段」で ってもよく、また、「-ステップ」、「-手 」、「-処理」であってもよい。
 すなわち、ログ出力処理部101及びその内部 成として説明しているものは、ROM913に記憶 れたファームウェアで実現されていても構 ない。或いは、ソフトウェアのみ、或いは 素子・デバイス・基板・配線などのハード ェアのみ、或いは、ソフトウェアとハード ェアとの組み合わせ、さらには、ファーム ェアとの組み合わせで実施されても構わな 。ファームウェアとソフトウェアは、プロ ラムとして、磁気ディスク、フレキシブル ィスク、光ディスク、コンパクトディスク ミニディスク、DVD等の記録媒体に記憶され 。
 プログラムはCPU911により読み出され、CPU911 より実行される。すなわち、プログラムは 本実施の形態及び以下に述べる実施の形態 ログ出力処理部101及びその内部構成として ンピュータを機能させるものである。ある は、本実施の形態及び以下に述べる実施の 態のログ出力処理部101及びその内部構成の 順や方法をコンピュータに実行させるもの ある。

 このように、本実施の形態及び以下に述 る実施の形態に示すログ出力装置100は、処 装置たるCPU、記憶装置たるメモリ、磁気デ スク等、入力装置たるキーボード、マウス 通信ボード等、出力装置たる表示装置、通 ボード等を備えるコンピュータであり、上 したようにログ出力処理部101及びその内部 成として示された機能をこれら処理装置、 憶装置、入力装置、出力装置を用いて実現 るものである。

(ログ出力時の動作)
 次に、ログ出力時の動作について述べる。
 図5は、その時のログ出力処理部101の動作( ータ処理方法)の例を示すフローチャートで る。

 ログ出力処理を開始すると、ログ出力処理 101のハッシュ値比較部1011が、まず、ステッ プST301にて、ディスク112の最新レコードのハ シュ部12、つまりディスク112に最後に格納 れた最後尾データに付加されている最後尾 ハッシュ部12を読み込む。
 次にステップST302にて、ハッシュ値比較部10 11は、最新ハッシュ記憶部102(プロセスメモリ )上に保持している最後尾のハッシュ部12のコ ピー値と比較する。
 ステップST303において、不一致の場合は、 ッシュ値比較部1011はディスク上のログが改 されたものと判断し、ステップST312にて改 検出レポート生成部1016が改竄検出レポート 生成し、データ格納部1014が改竄検出レポー トをディスク112に出力し、ログ出力処理を終 了する。
 一方、ステップST303において、最後尾のハ シュ部12とそのコピーとが一致していた場合 は、ステップST304にて、ハッシュ値生成部1012 が、該当データのデータ部11からデータハッ ュ(DH)13を計算する。
 次にステップST305にて、ハッシュ値生成部10 12が、最新ハッシュ記憶部102(プロセスメモリ )上に保持している最後尾のハッシュ部12のコ ピーよりリンクハッシュ(LH)14を計算し、ステ ップST306でデータハッシュとリンクハッシュ 合わせて、ハッシュ部12を生成する。
 そして、ステップST307にて、データ格納部10 14が、データ部11とハッシュ部12を合わせてレ コード10を生成する。

 ここで、ステップST308にて、署名生成部10 13が、署名要求部103からの署名要求があるか かを判定し、署名要求がある場合は、さら ステップST309にてハッシュ部12の署名15を計 し、署名15をレコード10に付加し、署名要求 がない場合は特になにもしない。

 以上、生成したレコードをステップST310に データ格納部1014がディスク112に出力し、ス ップST311にて、ハッシュ値複製格納部1015が テップST304-306において生成されたハッシュ 12のコピーを生成し、当該コピーを最新ハ シュ記憶部102(プロセスメモリ)上に保持する 。
 以上でログ出力処理は終了である。

 以上のように動作することで、ディスク に出力されたログにハッシュチェーンを形 することができる。

 また、署名で守られていないブロックが 竄されてしまうとそれを検知できなくなる 、上で示した通り、プロセスメモリ上に最 尾レコードのハッシュ部12(DHとLHを合わせた もの)を保持し、ディスクへのレコード書き し時に随時比較するよう構成したことによ 、署名で守られていないブロックの改竄も 知することができる。

 さらに、プロセスメモリ上に保持するハ シュ部12のコピーを、耐タンパー装置106に 持するよう構成することにより、検知でき い改竄をより精度高く防ぐことができる。 なわち、ディスク上の最後尾レコードのハ シュ部12と、プロセスメモリ上に保持したハ ッシュを同時に改竄されてしまうことを防ぐ ことができるのである。

 また、図7に示すように、ステップST303に いて、不一致の場合は、改竄検出レポート 成部1016が改竄検出レポートを生成し(ステ プST312)、データ格納部1014が改竄検出レポー をディスク112に出力した後(ST313)、ハッシュ 値生成部1012が、ログ出力データのデータ部11 からデータハッシュ(DH)13を生成するとともに (ステップST314)、このデータハッシュ(DH)13か リンクハッシュ(LH)14を生成する(ステップST31 5)。このようにすれば、新たなデータと改竄 れている最後尾データとを切り離し、当該 たなデータから新たなハッシュチェーンを 成することができる。

 また、本実施の形態に係る構成のメリット 特許文献1に照らして説明する。
 本実施の形態に記載のアイデアも、特許文 1のアイデアも、ディスク上のログは、デー タ部11とハッシュ部12に分けることができ、 ちらも改竄対象になり得る。従って、両ア デアともハッシュ部12のコピーをメモリ上に 持つ構成を取っているが、特許文献1では本 施の形態の構成によるデータハッシュ(DH)13 当のみメモリ上に保持し、リンクハッシュ(L H)14に相当する部分はメモリ上に保持してい い。
 代わりに、特許文献1では、ディスク上のレ コードに署名を付けることにより、リンクハ ッシュ部になされる可能性のある、検知でき ない改竄を防いでいる訳である。このような 構成を取り続ける限り、ディスク上の毎レコ ードに署名を付けざるを得ず、冒頭で指摘し た署名処理負荷という問題点から逃れること ができないのである。

 一方、本実施の形態では、リンクハッシュ( LH)14もメモリ上に保持する構成としているた 、検知できない改竄の防止をディスク上の レコードへの署名に頼る必要がなく、部分 に署名することが可能という大きな効果を み出すことに成功しているのである。
 このように、本実施の形態では、リンクハ シュの改竄の有無を検証し、リンクハッシ に改竄がなければ、ハッシュチェーンが正 であることが確認できる。

(署名付与時の動作)
 次に、署名付与時の動作(ログ出力処理と独 立に署名を付与する場合の動作)について述 る。
 図6は、その時のログ出力処理部101の動作例 を示すフローチャートである。
 署名処理を開始すると、まず、ステップST40 1にて、ハッシュ値比較部1011が、ディスク上 最新レコードを読み込む。次にステップST40 2にて、読み込んだ最新レコードが署名済か かを判定し、既に署名済の場合は署名処理 行う必要がないため、終了する。
 署名がなされていない場合は、ステップST40 3にて、ハッシュ値比較部1011は、読み込んだ コードのハッシュ部12とプロセスメモリ上 保持している最新レコードのハッシュ部12と を比較する。
 ステップST404にて、一致していない場合は ハッシュ値比較部1011は、ディスク上のログ コードが改竄されたと判断し、ステップ407 て、改竄検出レポート生成部1016が改竄検出 レポートを生成するとともに、データ格納部 1014が改竄検出レポートをディスクに出力し 署名処理を終了する。
 ステップST404において一致していた場合は ステップST405にて、署名生成部1013が、ハッ ュ部12の署名を計算する。
 次に、ステップST406にて、署名生成部1013が ディスク上の最新レコードに署名を付け加 、署名処理を終了する。

 以上のように構成することで、ログをデ スクに出力するタイミング以外においても ログ出力処理部101が署名要求を受けた任意 タイミングで署名を付与することができる

(一定行数間隔による署名付与)
 以上に説明した構成・動作に基づき、ログ 力処理部101の署名生成部1013は一定行数間隔 (一定のデータ間隔)にてログに署名を付ける とができる。
 なお、ログ出力処理部101の内部に、図示し いレコード出力回数カウンタを設け、一定 数に達したら自身で署名生成部1013に署名要 求を出し、ディスク上に書き出したレコード に署名を付与するように構成することで、こ れを実現することができる。所定の行数間隔 は、同じく図示しない設定ファイルなどに指 定し、ログ出力処理部101が起動時にそれを読 み込むよう構成することができる。

 これにより、ログの署名による処理負荷 ログサイズの低減を図り、かつ、検知でき い改竄の無いログを出力することができる

(一定時間間隔による署名付与)
 以上に説明した構成・動作に基づき、ログ 力処理部101の署名生成部1013は一定時間間隔 にてログに署名を付けることができる。
 ログ出力処理部101の内部に、図示しないタ マーを設け、前回署名時から一定時間経過 たら自身で署名生成部1013に署名要求を出し 、ディスク上の最新レコードに署名を付与す るように構成することで、これを実現するこ とができる。所定の時間間隔は、同じく図示 しない設定ファイルなどに指定し、ログ出力 処理部101が起動時にそれを読み込むよう構成 することができる。

 これにより、ログの署名による処理負荷 ログサイズの低減を図り、かつ、検知でき い改竄の無いログを出力することができる

(ログの完全性検証(正常時))
 図4は、図1で説明した形式で出力されたロ の、ログ検証手段(例えば、ログ転送先のロ 収集管理システムに搭載されたログ検証プ グラム)による検証手順を示すフローチャー トである。

 検証処理を開始すると、ステップST201にて ログの中から最新レコード(ログの最後のレ ード)を読み込む。
 ステップST202にて署名レコードか否かを判 し(通常は最新レコードが署名レコードにな ようにしてログを検証する)、署名レコード の場合は、ステップST206に進む。署名レコー でない場合の処理は後述する。
 ステップST206にて、ログ出力装置の公開鍵 署名を復号し、ステップST207にて復号した署 名とレコードのハッシュ部12を比較する。
 ステップST208にて一致している場合はステ プST212に進む。一致しない場合の処理は後述 する。
 ステップST212では、データ部11の検証を行う ために、データ部11のハッシュを計算し、ハ シュ部12のデータハッシュ(DH)13との比較を う。ステップST213にて一致している場合はST2 15に進む。一致しない場合の処理は後述する
 ステップST215では、一つ前のレコードとの ンクの検証を行うため、一つ前のレコード 読み込む。
 ステップST216にて一つ前のレコードが無い 合は、検証処理は終了である。
 ステップST216にて一つ前のレコードがある 合は、ステップST217にて、今読み込んだレコ ードを検証対象にし、ステップST218にて、検 対象レコードのハッシュ部12のハッシュを 算し、一つ前の検証対象レコードのハッシ 部12のリンクハッシュ(LH)14と比較する。ステ ップST218にて再度一致を確認する。
 以上の処理をステップST216にてレコードが いと判定されるまで繰り返すことにより、 グの検証を行うことができる。

(ログの完全性検証(最新レコードが署名レコ ドでないケース))
 ステップST202にて最新レコードが署名レコ ドでないと判定した場合、ステップST219にて 、該当レコードは信用できないと判定する。
 次に、最新の署名レコードを探すために、 テップST203にて次の(一つ前の)レコードを読 む。
 ステップST204にてレコードの有無を判定し レコードがあった場合は再びステップST202に て署名レコードか否かを判定する。この処理 を繰り返すことで、最新の署名レコードを探 す。
 この処理の過程で、ステップST204にて署名 コードが無いと判定した場合は、ステップST 205にて、ログ自体が検証不能と判断し、検証 処理を終了する。

(ログの完全性検証(ハッシュ部が改竄された ース))
 ステップST208にて、ハッシュ部12が、復号し た署名、または一つ前の検証対象レコードの リンクハッシュ(LH)14と一致しない場合、ステ ップST209にて、該当署名ブロックの中で、検 対象レコードを含む、それより古いレコー は全て信用できないと判断し、ステップST21 0にて次の署名(ブロック)までログをサーチす る。
 ステップST211にて署名レコードがあると判 した場合は、そのレコードから再度ステッ ST206より検証処理を継続する。署名レコード が無いと判定した場合は、検証処理は終了で ある。

(ログの完全性検証(データ部が改竄されたケ ス))
 ステップST213にて、データ部11のハッシュと データハッシュ(DH)13が一致しない場合、ステ ップST214にて該当レコードのデータ部11が改 されていると判定し、次にステップST215に戻 り、一つ前のレコードから再び検証処理を継 続する。

 以上、本実施の形態では、ログのように時 軸に沿って逐次出力されるデータに対し、 のデータ(メッセージ)本体に該当するデー 部と、新たに付加するハッシュ部から構成 れるレコードを形成し、ディスクに出力す ログ出力装置について説明した。
 そして、上記ログ出力装置において、ハッ ュ部は、データ部のハッシュ(以降、データ ハッシュ”DH”と呼ぶ)と、一つ前のレコード のハッシュ部のハッシュ(以降、リンクハッ ュ”LH”と呼ぶ)を合わせたものから成り(一 前のレコードが無い場合は、DHのハッシュ LHとする)、さらにハッシュ部のリンクから るハッシュチェーンが形成されることを説 した。
 また、上記ログ出力装置は、ハッシュチェ ンの一部のレコードにのみ署名を付けるこ を説明した。
 また、上記ログ出力装置は、データが出力 れたタイミングで、該データのDHとLHを計算 してハッシュ部を生成することによりレコー ドを形成し、それをディスクに出力するとと もに、生成したハッシュ部(DH、LH両方を含む) のコピーをプロセスメモリ上に保持すること を説明した。
 また、上記ログ出力装置は、次のデータが 力された場合、ディスク上の最新レコード ハッシュ部と、プロセスメモリ上に保持し いるハッシュ部を比較し、一致すればディ ク上のレコードが改竄されていないと判断 、さらにハッシュチェーンでリンクされた コードをディスクに出力し、一致しない場 は改竄されたと判断し、改竄を検出したこ をレコードに記録するとともに、次のデー は前のレコードとリンクせず、一つ前のレ ードが無いものとして新たにレコードを生 、記録することを説明した。

 また、本実施の形態では、ハッシュ部の ピーをプロセスメモリ上ではなく、プログ ムが動作する機器に搭載された耐タンパー 置内に保持するログ出力装置について説明 た。

 更に、本実施の形態では、一定ログレコ ド出力行数ごとに、ディスク上の最新レコ ドのハッシュ部に署名を付けるログ出力装 について説明した。

 また、本実施の形態では、一定時間間隔 とに、ディスク上の最新レコードのハッシ 部に署名を付けるログ出力装置について説 した。

 実施の形態2.
(アプリケーション指示及び、外部からのロ 転送要求に基づく署名付与)
 本実施の形態では、ディスク上のログに署 を付けるタイミングとして、アプリケーシ ン111による指示時、及び外部からのログ転 要求時を利用した実施の形態について述べ 。
 なお、ログ出力装置、ログ出力処理部101、 グ形式などの構成は、実施の形態1に記載の ものと全て同じであるため、本実施の形態で の記載は省略する。

(アプリケーション指示による署名付与)
 実施の形態1に説明した構成・動作に基づき 、ログ出力処理部101の署名生成部1013は、ア リケーション111が指示するタイミングにて グに署名を付けることができる。

 アプリケーション111が、リンクするログ 力ライブラリ110に対し、ログ出力を要求す とともに、出力後署名も同時に付けるよう ログ出力処理部101に指示するように構成す ことで、これを実現することができる。署 要求の指示は、ログ出力ライブラリ110が提 するログ出力API(Application Programming Interface) に、署名要求の有無を入力とする引数を追加 するよう構成することができる。

 これにより、例えば、ある業務アプリケ ションの一つの処理単位を論理的な検証対 ログとした場合、アプリケーションが処理 了をログに記録する時に署名も付けるよう 示することで、論理的な検証対象ログの最 のレコードに署名を付与することができる

(外部からのログ転送要求による署名付与)
 実施の形態1に説明した構成・動作に基づき 、ログ出力処理部101の署名生成部1013は、外 (例えば、ログ収集管理システム)からのログ 転送要求があったタイミングにてログに署名 を付けることができる。

 図示しない外部のログ収集管理システム らログ転送要求を署名要求部103で受けるよ に構成することで、これを実現することが きる。署名要求部103は、ログ転送要求を例 ばシグナルの形で受信するよう構成するこ ができる。

 これにより、ログ収集管理システムは、 グ出力装置100から受信したログの最後のレ ードに署名が付いているので、全てのレコ ドについて完全性を確認することができる

 本実施の形態では、アプリケーションの 示するタイミングで、ディスク上の最新レ ードのハッシュ部に署名を付けるログ出力 置について説明した。

 また、本実施の形態では、外部からのロ 転送要求時に、ディスク上の最新レコード ハッシュ部に署名を付けるログ出力装置に いて説明した。

 実施の形態3.
(管理者やオペレータの指示に基づく署名付 )
 本実施の形態では、管理者やオペレータに る指示があった場合に、ディスク上のログ 署名を付けることを想定した実施の形態に いて述べる。
 なお、ログ出力装置、ログ出力処理部101、 グ形式などの構成は、実施の形態1に記載の ものと全て同じであるため、本実施の形態で の記載は省略する。

 実施の形態1に説明した構成・動作に基づき 、ログ出力処理部101の署名生成部1013は、管 者やオペレータ(ログ出力装置100の利用者)か らの署名要求があったタイミングにてログに 署名を付けることができる。
 管理者やオペレータからの署名要求を署名 求部103で受けるように構成することで、こ を実現することができる。
 これにより、定期的な、或いは定型業務的 ログ収集タイミング以外に、管理者・オペ ータが必要とするイレギュラーなタイミン においても、全レコードについて完全性の 証が可能なログを得ることができる。

 以上のように、本実施の形態では、管理 ・オペレータの指示するタイミングで、デ スク上の最新レコードのハッシュ部に署名 付けるログ出力装置について説明した。

 実施の形態4.
(IDS/IPSが侵入を検知したタイミングに基づく 名付与)
 本実施の形態では、ログ出力装置100に併設 れたIDS(侵入検知システム)や、IPS(侵入防止 ステム)が侵入を検知したタイミングで、デ ィスク上のログに署名を付ける実施の形態に ついて述べる。
 なお、ログ出力装置、ログ出力処理部101、 グ形式などの構成は、実施の形態1に記載の ものと全て同じであるため、本実施の形態で の記載は省略する。

 IDS/IPSによる侵入検知イベントを、ログ出力 装置の署名要求部103で受けるように構成する ことで、署名生成部1013は、侵入検知イベン があったときに署名を生成することができ 。
 これにより、ログ出力装置にセキュリティ の脅威が及ぶ前に、ログに署名を付けるこ ができる。

 以上のように、本実施の形態では、シス ムに併設のIDS(侵入検知システム)/IPS(侵入防 止システム)が侵入を検知したタイミングで ディスク上の最新レコードのハッシュ部に 名を付けるログ出力装置について説明した

 実施の形態5.
(ログ出力処理部101起動/終了時の動作)
 本実施の形態では、ログ出力処理部101が、 動/終了時にディスク上のログに対して行う 動作について、その実施の形態を述べる。

 本実施の形態に係るログ出力装置100では、 グ出力処理部101の内部構成を、例えば、図8 に示すようにする。
 図8において、署名生成部1013は、実施の形 1に示したものと同様の機能を有するが、本 施の形態では、ログ出力処理部101が稼動を 了する際に、最後に出力されたデータに対 る署名を生成する。
 そして、データ検査部1017は、ログ出力処理 部101の起動時に、ディスク112に格納されてい るデータを検査し、署名が付加されている最 後のデータより後に格納されたデータが存在 する場合に、署名が付加されている最後のデ ータより後に格納されたデータが存在するこ とを通知するアラートを生成する。署名が付 加されている最後のデータより後に格納され たデータは、改竄されている可能性があるデ ータと考えられるからである。
 図8において、署名生成部1013及びデータ検 部1017以外は、図3に示したものと同様である 。
 また、ログ形式は、実施の形態1に記載のも のと同じである。

(ログ出力処理部101終了時の動作)
 ログ出力処理部101の署名生成部1013は、稼動 終了時(ログ出力処理部101をプログラムで構 する場合は、プログラム終了時)に、ディス 112上の最新のログレコード(最後にディスク 112に格納されたレコード)に署名を付与する うに構成する。
 UNIX(登録商標)においては、プロセス終了時 SIGTERMシグナルを受けることが一般的である ため、SIGTERMシグナルハンドラの中にこのよ な処理を含めるよう構成することで、具体 に実現することができる。

 これにより、ログ出力装置100が停止中で っても、稼動停止の時間帯に、署名で守ら ないレコードがディスク上に放置されるケ スを無くすことができる。

(ログ出力処理部101起動時の動作)
 ログ出力処理部101のデータ検査部1017は、ロ グ出力処理部101の起動時(ログ出力処理部101 プログラムで構成する場合は、プログラム 動時)に、ディスク112上の最新ログレコード 参照し、署名が付与されていない場合、最 の署名の後に記録されたログレコードは信 できない(ログ内に署名レコードが一つも無 い場合は、ログ全てが信用できない)旨のア ートをログに記録するよう構成する。

 これにより、署名が付けられていない状 で改竄されたログを信用してしまうケース 防ぐことができる。

 以上のように、本実施の形態では、稼動終 時に、ディスク上の最後のログレコードに 名を付けるログ出力装置について説明した
 また、本実施の形態では、起動時に、ディ ク上の最後のログレコードに署名が付与さ ていない場合、最後の署名の後に記録され レコードは信用できないことをログに記録 るログ出力装置について説明した。

 実施の形態6.
(ハッシュツリーとの組み合わせによる、改 された可能性のある箇所の限定)
 本実施の形態では、ディスク上のログが改 された場合、改竄された可能性のある場所 できるだけ限定するための実施の形態につ て述べる。
 ハッシュチェーンを用いたログの検証方法 、実施の形態1や図4に示した通り、レコー のハッシュ部12が改竄されてしまうと、同一 署名ブロックの中で、その該当レコードより 古いレコードは、実際に改竄されていなくて も、検証できないため、信用できないと判定 せざるを得ない。
 従って、検知できない改竄を防ぐという第 の目的は達成しているものの、署名レコー 或いはその近傍のレコードのハッシュ部12 改竄されると、ログ全体或いは大部分が信 できない場合がある。
 本実施の形態では、レコードをハッシュチ ーンのみならず、ハッシュツリーと呼ばれ リンク方法も同時に組み合わせてリンクす ことにより、ログが改竄された場合、改竄 れた可能性のある範囲をできるだけ限定す ことができる構成について説明する。

(ハッシュツリーの構造)
 図9は、複数ログレコードからなる署名ブロ ック2に、ハッシュツリーを施した状態を示 図である。ハッシュチェーンも同時に形成 れているが、図が煩雑になるため、ハッシ ツリーによるリンク構成のみ示している。
 一段目のデータハッシュ(DH1)50は、各レコー ドのデータ部11のハッシュである。さらに一 目のデータハッシュ(DH1)50を一定個数(図で 3個)合わせたデータのハッシュを取ったもの が、二段目のデータハッシュ(DH2)51である。
 同様に、二段目のデータハッシュ(DH2)51を一 定個数(図では同じく3個)合わせたデータのハ ッシュを取ったものが、三段目のデータハッ シュ(DH3)52である。
 図9では、三段目のデータハッシュまでしか 図示していないが、レコードが増えるにつれ 、四段目、五段目のデータハッシュが必要と なることは言うまでも無い。

 なお、署名を付ける場合は、最上段のデ タハッシュ群を合わせたものに対して署名 付けるよう構成する。また、図9に示すレコ ードの下から2つ分のように、一定個数(図で 3個)に達しない半端なレコードが存在する 合は、一定個数に達していなくとも一つ上 のデータハッシュを生成し、署名60を付ける 際に、最上段のデータハッシュ群に加え、半 端なレコードをまとめたハッシュも加えた上 で署名を付けるように構成する。

 本実施の形態におけるログ出力装置100の構 は図2に示したものと同様であり、また、ロ グ出力処理部101の構成も図3に示したものと 様である。
 但し、本実施の形態では、ログ出力処理部1 01のハッシュ値生成部1012は、図9に示すよう 、複数個のデータハッシュ(DH)(第一のハッシ ュ値)から上位のデータハッシュ(DH)(上位ハッ シュ値)を生成し、複数個の上位のデータハ シュ(DH)から更なる上位のデータハッシュ(更 なる上位ハッシュ値)を生成して、複数階層 わたる上位のデータハッシュ(DH)を生成する
 また、本実施の形態では、ログ出力処理部1 01の署名生成部1013は、ハッシュ値生成部1012 より生成された上位のデータハッシュ(DH)の ち最上位のデータハッシュ(DH)を用いて署名 を生成する。

(ハッシュツリーの検証)
 次に、上記構造で作成されたハッシュツリ の検証について説明する。
 まず、ログ出力装置100からログを取得した グ収集管理システムでは、ログ出力装置100 公開鍵で署名を復号し、最上位ノードのハ シュ群を合わせたものと比較する。つまり 最上位のデータハッシュ群を合わせたもの 復号した署名から抽出されたデータハッシ とを比較する。両者が一致すれば、さらに 々の最上位ノードのデータハッシュを、一 下のノードのハッシュ群を合わせたものの ッシュと比較する。このような比較を最下 のノードに達するまで繰り返し、全て一致 ていれば、ハッシュ部分の改竄がないこと 証明できる。
 次に、各レコードごとにデータ部11のハッ ュを計算し、各々対応する一段目のデータ ッシュと比較することにより、データ部11の 改竄の有無を検知することができる。
 ここで、ハッシュ部分に改竄があると、改 があったノードの下位にぶら下がるレコー 群のデータは、全て信用できないことにな 。
 例えば、図9で三段目のデータハッシュのう ち一番上にあるものが正しいものの(三段目 データハッシュと復号した署名から抽出さ たデータハッシュとが一致するものの)、そ に対応する二段目のデータハッシュ群を合 せたもののハッシュと一致しない場合、そ 以下のノード(図9では上から9レコード分)は 、信用できないことになる。

(ハッシュチェーンとハッシュツリーを組み わせることによる効果)
 以上説明したハッシュチェーンとハッシュ リーを組み合わせることによる効果を、以 に説明する。
 ハッシュチェーンのみでは、先に述べた通 、署名レコード或いはその近傍のレコード ハッシュ部12が改竄されると、信用できな レコードが大部分を占めてしまうという問 があることに触れたが、このような場合で 、ハッシュツリーのハッシュ部(ハッシュツ ーのハッシュ部とは、DH1、DH2、DH3をいう)が 改竄されていなければ、全レコードの検証を 行うことができる。その逆(ハッシュツリー ハッシュ部の一部が改竄されていても、ハ シュチェーンのハッシュ部(ハッシュチェー のハッシュ部とはDH1及びLHをいう)が改竄さ ていない)の場合でも、全レコードの検証を 行うことができる。
 また、ハッシュツリーのハッシュ部とハッ ュチェーンのハッシュ部が同時に改竄され いたとしても、それがツリーの下位に近い であれば、検証できる範囲は広く残されて り、ハッシュチェーンで検証できない部分 検証可能とすることができるという効果を ることができる。

 以上のように、本実施の形態では、ハッ ュチェーンのみならず、ハッシュを階層的 もリンクしながらディスクにレコードを出 し、署名のタイミングで、ツリーの最上位 ードのハッシュ群にも署名を付けるログ出 装置について説明した。

 なお、以上の実施の形態1-6に示したログ 力装置100、ログ出力処理部101は、例えば、 ンテンツ流通システムや、企業情報システ において求められるログの完全性確保を、 実的な処理負荷、データ量で実現すること 目的とした用途に有用である。

 なお、以上の実施の形態1-6では、ログデ タを例にして説明したが、ログデータに限 ず、逐次出力されるデータであれば実施の 態1-6に示したログ出力装置は適用可能であ 。

この発明の実施の形態1-5によるログ出 装置が出力するログの形式を示すブロック 。 この発明の実施の形態1-5によるログ出 装置の構成例を示すブロック図。 この発明の実施の形態1によるログ出力 処理部の内部構成例を示すブロック図。 図1の形式で出力されたログの完全性を 検証するためのフローチャート図。 実施の形態1によるログ出力処理部101の ログ出力時の動作例を示すフローチャート図 。 実施の形態1によるログ出力処理部101の 署名付与時の動作例を示すフローチャート図 。 実施の形態1によるログ出力処理部101の ログ出力時の動作例を示すフローチャート図 。 この発明の実施の形態5によるログ出力 処理部の内部構成例を示すブロック図。 この発明の実施の形態6によるログ出力 装置が出力するログの形式を示すブロック図 。 この発明の実施の形態1-6によるログ出 力装置のハードウェア構成例を示すブロック 図。

符号の説明

 100 ログ出力装置、101 ログ出力処理部、 102 最新ハッシュ記憶部、103 署名要求部、10 4 秘密鍵保持部、105 公開鍵保持部、106 耐 ンパー装置、110 ログ出力ライブラリ、111  プリケーション、1011 ハッシュ値比較部、1 012 ハッシュ値生成部、1013 署名生成部、1014  データ格納部、1015 ハッシュ値複製格納部 1016 改竄検出レポート生成部、1017 データ 査部。