JP5644777B2 - ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム - Google Patents

ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム Download PDF

Info

Publication number
JP5644777B2
JP5644777B2 JP2011550834A JP2011550834A JP5644777B2 JP 5644777 B2 JP5644777 B2 JP 5644777B2 JP 2011550834 A JP2011550834 A JP 2011550834A JP 2011550834 A JP2011550834 A JP 2011550834A JP 5644777 B2 JP5644777 B2 JP 5644777B2
Authority
JP
Japan
Prior art keywords
file
difference data
check code
file group
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011550834A
Other languages
English (en)
Other versions
JPWO2011089864A1 (ja
Inventor
中江 政行
政行 中江
佑樹 芦野
佑樹 芦野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011550834A priority Critical patent/JP5644777B2/ja
Publication of JPWO2011089864A1 publication Critical patent/JPWO2011089864A1/ja
Application granted granted Critical
Publication of JP5644777B2 publication Critical patent/JP5644777B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はファイル群の整合性を検証するファイル群整合性検証技術に関し、特にデータ量が巨大な2つのファイル群が異なることを、高速に検証できるファイル群整合性検証技術に関する。
現在のコンピュータシステムでは、セキュリティ目的でのファイル改ざんの検査、バックアップ・リストア作業に際してのディスク状態の検証、アプリケーションソフトウェアやパッチの頒布における依存ファイルのチェックなど、検証時点のファイル群が、それ以前の基準時点のファイル群と整合するか否か(対応するファイル群が更新されていないか・更新されているか)の判定を求める機会が多い。
こうした整合性検証は、基準時点のファイル群と検証時点のファイル群との間で、互いに対応するファイルの内容をビット単位もしくはバイト単位に比較・照合することで容易に実現できる。
しかし、近年の二次記憶装置の大容量化に伴い、オペレーティングシステム(OS)を構成するカーネル・ライブラリ等のバイナリファイル群や、音声・動画ファイル群など、数100ギガバイトに及ぶ巨大なファイル群を扱う場面が増えており、上述した自明な方法では、巨大ファイル群の整合性検証に長時間(数10分〜数時間)を要することが課題となっている。
これまでに開示されている高速な整合性検証技術としては、特許文献1に記載されている「ハッシュ値」を利用したものがある。ハッシュ値は、データに対してハッシュ関数による演算を行うことにより得られる値であり、元のデータのサイズにかかわらず常に一定の長さ(通常、128〜512ビット程度)になるといった特徴や、元のデータが異なれば異なる値になるといった特徴を有する。特許文献1に記載されている技術では、論理ディスクに記録されているデータ全体に対するハッシュ値を基準時点に算出して記録しておき、この記録されているハッシュ値と検証時点に算出したハッシュ値とを比較することにより、整合性を検証するようにしている。ハッシュ値は、論理ディスクのサイズに比較して極めて小さいので、比較処理に要する時間を極めて短くすることができる。また、特許文献1に記載されている技術では、ハッシュ値の算出処理に要する時間を短縮するため、論理ディスクを固定長のセグメントに分割すると共に、並列動作が可能な複数の第1のハッシュ値算出手段と、第2のハッシュ値算出手段とを設けている。そして、各第1のハッシュ値算出手段が並行して自手段に割り当てられたセグメントのハッシュ値を算出し、第2のハッシュ値算出手段が各第1のハッシュ値算出手段で算出されたセグメント毎のハッシュ値に基づいて、論理ディスク全体のハッシュ値を算出するようにしている。
また、別の高速な整合性検証技術として、特許文献2に「ネーティブ・データ署名」を用いた方法が開示されている。ここで、ネーティブ・データ署名とは、ファイルの変更自刻や変更操作履歴などに基づいて生成される、ファイルの変更回数(版数)に相当する固定長のデータであり、そのサイズは、ファイルのデータ・ストリームに比較して遥かに小さい。特許文献2に記載されている技術では、データ・ストリームを含む第1のファイルをディスク装置に格納した後、上記データ・ストリームと一意に対応する第1のネーティブ・データ署名を生成して第1のファイルに組み込む。更に、第1のファイルのデータ・ストリームに対して変更を加えた第2のファイルをディスク装置に書き戻した場合、第2のファイル中のデータ・ストリームと一意に対応する第2のネーティブ・データ署名を生成して第2のファイルに組み込む。そして、第1のファイルのデータ・ストリームと第2のファイルのデータ・ストリームとの整合性を検証する場合には、第1のファイルに組み込まれている第1のネーティブ・データ署名と第2のファイルに組み込まれている第2のネーティブ・データ署名とを比較する。
特開2007−257566号公報 特許4283440号公報
特許文献1に記載されている技術では、ハッシュ値を比較することにより、整合性を検証しているので、ビット単位もしくはバイト単位でデータを比較する場合に比べ、比較処理に要する時間を極めて短くすることができる。また、ハッシュ値を算出する際、並列動作が可能な複数のハッシュ値算出手段を利用してハッシュ値を算出するようにしているので、1個のハッシュ値算出手段を利用してハッシュ値を算出する場合に比較して、ハッシュ値の算出時間を短縮することができる。しかし、特許文献1に記載されている技術では、整合性を検証するデータ全体を対象にしてハッシュ値を算出するようにしているので、並列動作が可能な複数のハッシュ値算出手段を利用してハッシュ値を算出するようにしても、整合性検証対象にするデータのサイズが大きい場合、ハッシュ値算出のために多くの時間が費やされてしまい、その分、整合性検証処理に要する時間が長くなってしまう。
また、特許文献2に記載されている技術によれば、第1のファイルに組み込まれているネーティブ・データ署名と、第2のファイルに組み込まれているネーティブ・データ署名とを比較することにより、第1のファイルと第2のファイルとの整合性を検証することができるので、ファイルの内容をビット単位もしくはバイト単位で比較する場合に比較して、比較処理に要する時間を極めて短くすることができる。しかし、特許文献2に記載されている技術では、ファイルの更新操作を常に監視し、データ・ストリームの変更されたファイルがディスク装置(二次記憶装置)に書き戻された場合、上記ファイル中のデータ・ストリームと一意に対応するネーティブ・データ署名を上記ファイルに組み込む処理が必要である。このような処理は通常のOSのファイル出力処理では行われていない付加的な処理であるので、ファイルの更新操作を監視する処理およびネーティブ・データ署名をファイルに組み込む処理によって、コンピュータシステムの日常的な運用時におけるファイル出力処理性能が低下してしまうという問題がある。
[発明の目的]
そこで、本発明の目的は、整合性の検証対象にするファイル群のサイズが大きい場合、整合性検証処理に要する時間が長くなってしまうという課題、および、整合性検証処理によって日常的なファイル出力処理性能が低下してしまうという課題を解決したファイル群整合性検証システムを提供することにある。
基準時点において、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するメタデータに基づいて生成する検査符号生成手段と、
前記第1の検査符号と前記第2の検査符号とを比較し、両者の不一致をもって前記1のファイル群と前記第2のファイル群との不整合を検出する不整合検出手段とを備える。
本発明の他の形態にかかるファイル群整合性検証方法は、
基準時点において、検査符号生成手段が、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、
前記基準時点以降の検証時点において、検査符号生成手段が、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するファイルのメタデータに基づいて生成し、
不整合検出手段が、前記第1の検査符号と前記第2の検査符号との不一致をもって前記第1のファイル群と前記第2のファイル群との不整合を検出する。
また、本発明の他の形態にかかるファイル群整合性検証用プログラムは、
コンピュータをファイル群整合性検証システムとして機能させるためのファイル群整合性検証用プログラムを記録した、コンピュータが読み取り可能な記録媒体であって、
前記コンピュータを、
基準時点において、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、前記基準時点以降の検証時点において、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するファイルのメタデータに基づいて生成する検査符号生成手段、
前記第1の検査符号と前記第2の検査符号とを比較し、両者の不一致をもって前記1のファイル群と前記第2のファイル群との不整合を検出する不整合検出手段として機能させる。
本発明によれば、整合性の検証対象にするファイル群のサイズが大きい場合であっても、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることなく、ファイル群の整合性の検証処理に要する時間を短くできるという効果を得られる。
本発明の第1の実施の形態の構成例を示すブロック図である。 本発明の第1の実施の形態の処理例を示すフローチャートである。 本発明の第2の実施の形態の構成例を示すブロック図である。 本発明の第2の実施の形態の処理例を示すフローチャートである。 二次記憶装置におけるメタデータの配置例を示す図である。 本発明の第2の実施の形態における差分データ,フィンガープリント,ファイル名リストの頒布方法の一例を示す図である。 本発明の第2の実施の形態における差分データ,フィンガープリント,ファイル名リストの頒布方法の別の例を示す図である。 本発明の第3の実施の形態の構成例を示すブロック図である。 本発明の第3の実施の形態の処理例を示すフローチャートである。 本発明の第3の実施の形態の変形例を示すブロック図である。 本発明の第3の実施の形態における依存関係を表す有向グラフの一例を示す図である。 フィンガープリントの生成方法の一例を示す図である。 フィンガープリントの生成方法の別の例を示す図である。 フィンガープリントの生成方法の更に別の例を示す図である。 本発明の第4の実施の形態の構成例を示すブロック図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
[本発明の第1の実施の形態]
図1を参照すると、本発明の第1の実施の形態は、プログラム制御により動作するコンピュータシステム1が、フィンガープリント生成手段101と、フィンガープリント記憶手段102と、不整合検出手段103と、二次記憶装置104と、を備えた構成となっている。
フィンガープリント生成手段101は、検査符号生成手段として機能するものである。そして、フィンガープリント生成手段101は、整合性の検証対象にするファイル群1041を構成するファイルが満たすべき条件を含んだフィンガープリント生成指示がユーザによって入力された場合、上記条件を満たすファイルそれぞれのメタデータを二次記憶装置104から入力し、これら一連のメタデータに基づいてファイル群1041固有のフィンガープリント(検査符号)FP1を生成する。そして、生成したフィンガープリントFP1を基準時点のフィンガープリントとしてフィンガープリント記憶手段102に記録すると共に、フィンガープリント生成指示に含まれていた条件をフィンガープリント記憶手段102に記録する。また、フィンガープリント生成手段101は、不整合検出手段103からフィンガープリント生成指示が入力された場合、この指示に含まれている条件を満たすファイルを構成要素とするファイル群1041についてのフィンガープリントFP2を生成し、生成したフィンガープリントFP2を検証時点のフィンガープリントとして不整合検出手段103に返却する。ここで、フィンガープリント生成指示に含ませる条件としては、例えば、整合性の検証対象にするファイル群に含ませるファイルのファイル名が載ったファイル名リストや、整合性の検証対象にするファイル群に含ませるファイルの作成日時が載った作成日時リストなどを用いることができ、以下の説明では、ファイル名リストを用いた場合を例にして説明を行う。
不整合検出手段103は、ユーザによって検証指示が入力されると、フィンガープリント記憶手段102からファイル名リストを入力し、このファイル名リストを含んだフィンガープリント生成指示をフィンガープリント生成手段101に対して出力する。そして、フィンガープリント生成指示に応答してフィンガープリント生成手段101から検証時点のフィンガープリントFP2が返却されると、それとフィンガープリント記憶手段102に記録されている基準時点のフィンガープリントFP1とを比較する。そして、両者が一致しない場合は、検証対象にしているファイル群が不整合の状態にあることをユーザに通知する。
なお、フィンガープリント生成手段101および不整合検出手段103は、コンピュータによって実現可能であり、コンピュータによって実現する場合には、例えば、次のようにする。コンピュータをフィンガープリント生成手段101および不整合検出手段103として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、フィンガープリント生成手段101および不整合検出手段103を実現する。
[第1の実施の形態の動作の説明]
次に、図1及び図2のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
先ず、ユーザが図示を省略したキーボードなどの入力手段からフィンガープリント生成手段101に対してフィンガープリント生成指示を入力する。このフィンガープリント生成指示には、ファイル名リストLが含まれている。ファイル名リストLは、ファイル名を要素とするリストであり、整合性の検証対象にするファイル群1041を構成する各ファイルのファイル名が列挙されている。より具体的には、ファイル名リストLには、OSカーネル、ライブラリ、アプリケーションのバイナリファイルのファイル名や、重要データが格納されているファイルのファイル名など、ファイル群1041を構成する各ファイルのファイル名が列挙されている。なお、以下の説明では、ファイル名リストLには、ファイル名f1〜fNが列挙されているとする。また、以下の説明では、ファイル名fのファイルを単にファイルfと記す場合もある。
フィンガープリント生成手段101は、ユーザから入力されたフィンガープリント生成指示を受け付ける(図2のステップS1)。次に、フィンガープリント生成手段101は、フィンガープリント指示に含まれているファイル名リストLの要素f1〜fNのそれぞれについて、その要素f1〜fNに対応するメタデータM[f1]〜M[fN]を二次記憶装置104から入力する。更に、ファイル名リストLにファイル名が載っているファイルを構成要素としたファイル群1041についてのフィンガープリントFP1を、入力したメタデータM[f1]〜M[fN]に基づいて生成する(ステップS2)。ここで、メタデータM[f]とは、ファイルfのファイル名、タイムスタンプ、ファイルサイズなどを含む、ファイルfの二次的な属性であり、ファイルfの内容を含まないデータセットである。
一般的なOSのファイルシステムにおいて、メタデータM[f]は、二次記憶装置104の特定領域に格納されたデータであって、ファイルfの内容のデータ長に比べて極小さいサイズのデータである。たとえば、Windows OSのファイルシステム(NTFS)では、任意のファイルfに対応するメタデータM[f]は、MFT(マスタファイルテーブル)とよばれる領域に、4Kバイト以内の固定長レコードとして格納される(図5参照)。また、フィンガープリント生成手段101は、MFTを先頭から1度走査することで、全てのメタデータに格納されたファイル名、タイムスタンプ、ファイルサイズに関する情報を取得できる。
メタデータM[f1]〜M[fN]からフィンガープリントを生成する方法は、ファイルf1〜fNの何れかの内容が更新されたときに、更新前と更新後とでフィンガープリントの値が異なるものになるという性質をもつものであれば、任意の方法を用いてよい。一例として、メタデータM[f1]〜M[fN]を、それに含まれているファイル名が辞書順となるように連結したベクタを生成する方法が挙げられる(図12参照)。ファイルf1〜fNの内の何れかの内容が更新された場合、メタデータM[f1]〜M[fN]の内の何れかの値(例えば、タイムスタンプやファイルサイズ)が変化するので、メタデータM[f1]〜M[fN]を連結したベクタ(フィンガープリント)の値も更新前とは異なる値になる。
後述するフィンガープリントの比較処理にかかる時間を短くするために、より好適には、フィンガープリントそのもののデータサイズが小さいことが望ましい。具体的には、メタデータM[f1]〜M[fN]の一部の属性値に関する統計量を算出し、それをフィンガープリントとする。例えば、メタデータM[f1]〜M[fN]に含まれる一部の属性に関する統計量として、共通するタイムスタンプの値とその出現回数とを算出し、それをフィンガープリントとするようにしてもよい(図13参照)。図13の例は、タイムスタンプ「TS1」を含むメタデータが2個、タイムスタンプ「TS2」を含むメタデータが1個であることを示している。また、より高い整合性の検証精度を得るために、タイムスタンプとファイルサイズとの組について、共通するタイムスタンプとファイルサイズとの組と、その出現回数とを算出し、それをフィンガープリントとするようにしてもよい。メタデータの一部の属性値の統計量を利用してフィンガープリントを生成する何れの方法においても、前述した理由により、ファイルの更新前後で異なる値のフィンガープリントを生成することができる。また、メタデータの一部の属性値しか利用していないので、メタデータM[f1]〜M[fN]をビット列として連結する前述した方法に比較してデータサイズが小さくなり、後述するフィンガープリントの比較処理に要する時間が短縮される。
その他の好適な一例として、メタデータM[f1]〜M[fN]に対してハッシュチェーンを算出し、それをフィンガープリントとする方法が挙げられる。すなわち、メタデータM[f1]〜M[fN]を、それに含まれるファイル名が辞書順になるように並べたもの「M[f1], M[f2],…, M[fN]」について、ハッシュチェーン「h(M[fN]・h(M[fN-1]・h(…・h(M[f1]))))」を算出し、それをフィンガープリントとする(図14参照)。ここで関数hは、MD5などのハッシュ関数であり、任意長の入力値に対して固定長の出力値を出力し、当該出力値は異なる入力値について高確率に異なる値となる性質をもつ。また、メタデータM[f1]〜M[fN]に含まれる属性値の一部についてハッシュチェーンを算出し、それをフィンガープリントとする方法を採用することもできる。例えば、メタデータM[f1]〜M[fN]に含まれるファイル名を辞書順に並べたもの「f1, f2,…, fN」について、ハッシュチェーン「h(fN・h(fN-1・h(…・h(f1))))」を算出し、それをフィンガープリントとする。ハッシュチェーンを算出し、それをフィンガープリントとする方法を採用することで、フィンガープリントは固定長(たとえば256ビット)で表されるようになり、ファイル内容のサイズやファイル名リストLの要素数が増大しても、フィンガープリントの比較にかかる計算時間が一定となるという効果が得られる。
フィンガープリント生成手段101は、上述したようにして生成したフィンガープリントFP1を、基準時点のフィンガープリントとしてフィンガープリント記憶手段102に記録すると共に、フィンガープリント生成指示に含まれていたファイル名リストLもフィンガープリント記憶手段102に記録する(ステップS3)。以上で、基準時点での処理が完了する。
その後、ファイル名リストLに名前が載っているファイルを構成要素とするファイル群の内容について、基準時点との整合性を検証したい場合、ユーザは、図示を省略したキーボードなどから、不整合検出手段103に対して検証指示を入力する。
これにより、不整合検出手段103は、フィンガープリント記憶手段102からファイル名リストLを入力し、このファイル名リストLを含んだフィンガープリント生成指示をフィンガープリント生成手段101に対して出力する。この指示を受け付けたフィンガープリント生成手段101は、前述した処理と同様の処理を行うことにより、検証時点のフィンガープリントFP2を生成し、それを不整合検出手段103に返却する(ステップS4)。
不整合検出手段103は、検証時点のフィンガープリントFP2を受け取ると、フィンガープリント記憶手段102から基準時点のフィンガープリントFP1を入力し、両者を比較する(ステップS5)。そして、両者が一致すれば、基準時点と検証時点でファイル群1041が整合していることをユーザに通知し(ステップS6)、そうでなければ、不整合の状態にあることをユーザに通知する(ステップS7)。
[第1の実施の形態の効果]
次に、本実施の形態の効果について説明する。
本実施の形態によれば、整合性の検証対象にするファイル群のサイズが大きい場合であっても、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることなく、ファイル群の整合性の検証処理に要する時間を短縮できるという効果を得られる。その理由は、ファイル群を構成するファイルのメタデータに基づいて生成したフィンガープリント(検査符号)を利用して、ファイル群の整合性を検証するようにしているからである。一般的なOSでは、メタデータのサイズは数Kバイト〜数10Kバイトであり、ファイルのサイズに比較して極めて小さいので、メタデータに基づいてフィンガープリントを生成することにより、フィンガープリントの生成処理に要する時間を短くすることができ、その分、整合性の検証処理に要する時間を短くすることができる。また、メタデータは、一般的なOSが行う通常の処理によって二次記憶装置104の所定領域(例えば、マスタファイルテーブル)に記録されるものであり、特許文献2に記載されている技術のように、通常のOSでは行われていない、ファイルの更新操作を監視する処理およびネーティブ・データ署名を二次記憶装置104へ書き出す処理を行う必要がないので、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることはない。
また、本実施の形態では、フィンガープリントを、メタデータの属性値の内の、一部の属性値の出現度数分布としたので、フィンガープリントのサイズを小さくすることができ、その結果、フィンガープリントの比較処理に要する時間を短くすることができる。
また、本実施の形態では、フィンガープリントを、メタデータの属性値の内の少なくとも一部の属性値についてのハッシュチェーンとしたので、フィンガープリントは固定長となり、その結果、検証対象にするファイル群に含まれるファイルのファイル数やファイルサイズにかかわらず、フィンガープリントの比較処理に要する時間を一定にすることができる。
[本発明の第2の実施の形態]
次に、本発明の第2の実施の形態について詳細に説明する。本実施の形態は、第1のコンピュータシステムから第2のコンピュータシステムに対してソフトウェアを頒布する際にファイル群の整合性を検証するようにしている。
図3を参照すると、本発明の第2の実施の形態は、プログラム制御により動作するコンピュータシステム1a,2aを備える。
コンピュータシステム1aは、フィンガープリント生成手段101aと、二次記憶装置104と、差分データ抽出手段105とを備えると共に、フィンガープリント記憶手段102と差分データ記憶手段106が接続されている。
フィンガープリント生成手段101aは、ユーザから入力されるフィンガープリント生成指示に応答して、二次記憶装置104に格納されている全てのファイルのメタデータを走査し、上記各ファイルのファイル名が載ったファイル名リストLを生成する。即ち、ファイル群1041を構成するファイルのファイル名が載ったファイル名リストLを生成する。更に、フィンガープリント生成手段101aは、ファイル群1041についてのフィンガープリントFP1を、ファイル群1041に含まれる各ファイルのメタデータに基づいて生成し、生成したフィンガープリントFP1を基準時点のフィンガープリントとしてフィンガープリント記憶手段102に記録する。また、ファイル名リストLもフィンガープリント記憶手段102に記録する。
フィンガープリント記憶手段102は、フィンガープリント生成手段101aによって基準時点のフィンガープリントFP1およびファイル名リストが記録される記録媒体であり、たとえばコンパクトディスクやUSBメモリなどの可搬な不揮発性メモリや、ネットワーク上のファイル共有サーバなどを含む。
差分データ抽出手段105は、ユーザから入力される差分データ抽出指示に応じて、上記基準時点以降に変更・追加された二次記憶装置104上の全てのファイル(メタデータおよびファイル内容)を差分データとして抽出し、差分データ記憶手段106に記録する。
差分データ記憶手段106は、差分データ抽出手段105によって差分データが記録される記録媒体であり、たとえばコンパクトディスクやUSBメモリなどの可搬な不揮発性メモリや、ネットワーク上のファイル共有サーバなどを含む。なお、差分データ記憶手段106とフィンガープリント記憶手段102は、同一媒体であってもよい。
フィンガープリント生成手段101aおよび差分データ抽出手段105は、例えば、コンピュータをフィンガープリント生成手段101aおよび差分データ抽出手段105として機能させるためのプログラムをコンピュータに読み取らせ、コンピュータに上記プログラムに従った動作を行わせることにより実現することができる。
また、コンピュータシステム2aは、不整合検出手段103aと、フィンガープリント生成手段201と、二次記憶装置204と、差分データ適用手段205と、を有する。
不整合検出手段103aは、ユーザから入力される整合性検証指示に応答して、フィンガープリント記憶手段102に記録されているファイル名リストLを含んだフィンガープリント生成指示をフィンガープリント生成手段201に対して出力する。そして、この指示に応答してフィンガープリント生成手段201から返却された検証時点のフィンガープリントFP2と、フィンガープリント記憶手段102に記録されている基準時点のフィンガープリントFP1とを比較し、両者が一致しているか否かを判定する。
フィンガープリント生成手段201は、不整合検出手段103aからのフィンガープリント生成指示に応答して、上記指示中のファイル名リストによって特定されるファイルを構成要素としているファイル群2041に対するフィンガープリントFP2を、ファイル群2041を構成している各ファイルのメタデータに基づいて生成する。そして、生成したフィンガープリントFP2を不整合検出手段103aに返却する。
差分データ適用手段205は、不整合検出手段103aの比較結果が比較一致であった場合、差分データ記憶手段106に格納された差分データを参照しながら、二次記憶装置204上の対応するファイルを更新または追記する。
なお、不整合検出手段103a、フィンガープリント生成手段201、および、差分データ適用手段205は、コンピュータを不整合検出手段103a、フィンガープリント生成手段201、および、差分データ適用手段205と機能させるためのプログラムをコンピュータに読み取らせ、コンピュータに上記プログラムに従った動作を行わせることにより実現できる。
[第2の実施の形態の動作の説明]
次に、図3及び図4のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、コンピュータシステム1aのフィンガープリント生成手段101aが、ユーザから入力されたフィンガープリント生成指示に応答して、二次記憶装置104に格納された全てのファイルに対するメタデータを走査し、ファイル名リストLを生成する(図4のステップT1)。そして、ファイル名リストLを参照しながら、第1の実施の形態におけるステップS2およびS3と同様の動作で、ファイル名リストLに名前が載っているファイルを構成要素とするファイル群1041についてのフィンガープリントFP1を生成し、生成したフィンガープリントFP1およびファイル名リストLをフィンガープリント記憶手段102に記録する(ステップT2)。なお、本実施の形態では、二次記憶装置104に格納されている全てのファイルを構成要素とするファイル群1041についてのフィンガープリントFP1を生成するようにしているが、第1の実施の形態と同様に、ユーザによって入力された条件を満たすファイルを構成要素とするファイル群についてのフィンガープリントFP1を生成するようにしてもよい。但し、このようにした場合には、第1の実施の形態と同様に、ユーザによって入力された条件をフィンガープリント記憶手段102に記録する必要がある。また、ユーザが入力する条件として、二次記憶装置104に格納されている全て或いは一部のファイルのファイル名が載っているファイル名リストを入力するようにしてもよい。
その後、コンピュータシステム1aのユーザは、OSのアップデート、新規アプリケーションのインストールなどを行った後、差分データ抽出手段105に対して差分データ抽出指示を入力する。これにより、差分データ抽出手段105は、OSのアップデートファイルやインストールされたアプリケーションのバイナリデータなどの更新データ及び追加データを含む差分データDを作成して、差分データ記憶手段106に格納する(ステップT3)。その際、差分データ抽出手段105は、二次記憶装置104上のメタデータに含まれるタイムスタンプ情報が、前記基準時点以降であることで、差分データとして抽出すべき更新データおよび追加データに対応するファイルを同定する。
以上のステップT1〜T3を行なった後、コンピュータシステム1aのユーザは、フィンガープリント記憶手段102および差分データ記憶手段106を他のコンピュータに頒布する(ステップT4)。頒布の方法は、ファイル名リストL、基準時点のフィンガープリントFP1、および、差分データDを他のコンピュータシステムから参照可能にする任意の方法を用いてよい。具体的な一例としては、フィンガープリント記憶手段102および差分データ記憶手段106を、コンパクトディスクやUSBメモリなどの可搬な不揮発性メモリ媒体で構成し、当該媒体またはそのコピーを頒布する形態を採ることができる(図6参照)。また、ネットワーク上のファイル共有サーバ装置などで、フィンガープリント記憶手段102および差分データ記憶手段106を構成して、他のコンピュータと当該ファイル共有サーバ装置を共有する形態をとってもよい(図7参照)。
次に、コンピュータシステム2aのユーザは、頒布されたフィンガープリント記憶手段102および差分データ記憶手段106をコンピュータシステム2aに接続した後、不整合検出手段103aに対して整合性検証指示を入力する。これにより、不整合検出手段103aは、フィンガープリント記憶手段102に記録されているファイル名リストLを入力し、上記ファイル名リストLを含んだフィンガープリント生成指示をフィンガープリント生成手段201に対して出力する。フィンガープリント生成手段201は、フィンガープリント生成指示を受け付けると、前述した第1の実施の形態におけるステップS4と同様の動作を行い、二次記憶装置204に記録されているファイルの内の、ファイル名リストLに名前が載っているファイルを構成要素としたファイル群2041についてのフィンガープリントFP2を生成する。そして、生成したフィンガープリントFP2を検証時点のフィンガープリントとして不整合検出手段103aに返却する(ステップT5)。
不整合検出手段103aは、フィンガープリント生成手段201からフィンガープリントFP2が返却されると、それとフィンガープリント記憶手段102に記録されている基準時点のフィンガープリントFP1を比較し、両者が一致するか否かを判定する(ステップT6)。
その後、不整合検出手段103aが、フィンガープリントFP1,FP2が一致すると判定した場合は、差分データ適用手段205は、差分データ記憶手段106に格納された差分データDを、二次記憶装置204に書き出し、既存ファイルの更新または新規ファイルの追加を行なう(ステップT7)。この際、不整合検出手段103aはフィンガープリントFP1,FP2が一致する旨をユーザに通知し、ユーザが改めて差分データ適用手段205に差分データの適用を指示する方法をとってもよい。または、不整合検出手段103aが適用指示信号を差分データ適用手段205に出力する方法を用いてもよい。
一方、不整合検出手段103aは、フィンガープリントFP1,FP2が一致しないと判定した場合は、差分データを安全に適用できる必要条件である「差分データを適用する対象ファイル群の整合」が満たされていないことをユーザに通知し、差分データの適用を禁止する(ステップT8)。
[第2の実施の形態の効果]
本実施の形態によれば、コンピュータシステム1aで作成した差分データDを、コンピュータシステム2aに適用する際に発生し得る、アプリケーションとライブラリ間の不整合などといった障害を事前に且つ高速に検知することができるため、性能低下を極わずかに抑えながら、より安全なソフトウェア配布を行うことができる。その理由は、コンピュータシステム2aに差分データDを適用する際、基準時点においてフィンガープリント生成手段101aで生成されたフィンガープリントFP1と、検証時点においてフィンガープリント生成手段201で生成されたフィンガープリントFP2とを比較し、両者が不一致の場合、差分データDの適用を禁止するようにしているからである。
不整合検出ステップを含むことを特徴とする従来のソフトウェア配布方法の一例として、特開平11−85528に開示された「版数」に基づくソフトウェア配布方法が挙げられる。しかし、この方法は、版数の計測のためにソフトウェア配布サーバをすべてのコンピュータシステムに接続し、常時、全てのコンピュータシステムにおけるファイル更新を監視する必要がある。これに対して、本発明の第2の実施の形態によれば、特別なソフトウェア配布サーバの設置が不要であるため、配布システム全体の導入・運用コストを低減できる。また、コンピュータシステムにおけるファイル更新を監視する必要がないため、日常的なコンピュータシステム運用における性能低下の課題を解決できる。
[本発明の第3の実施の形態]
次に、本発明の第3の実施の形態について詳細に説明する。前述した第2の実施の形態では、差分データDの頒布元のコンピュータシステムのファイル群1041と、差分データDの適用先(頒布先)のコンピュータシステムのファイル群2041とが整合していることを条件にして差分データDを適用先のコンピュータシステムに適用するようにしたが、本実施の形態では、更に、適用先のコンピュータシステム固有の適用条件も考慮して差分データDを適用するか否かを判定する。
ここで適用条件とは、差分データDに含まれるファイルが、当該差分データDの適用先のコンピュータシステムにのみ含まれるアプリケーションと競合しない条件である。たとえば、適用先のコンピュータシステムに導入済みのアプリケーションが、特定バージョンのライブラリにしか対応しておらず、差分データDに異なるバージョンの当該ライブラリが含まれている場合、差分データDの適用によって、アプリケーションが動作しなくなる可能性がある。ここで、適用条件として、上記ライブラリの特定バージョンを指定し、差分データが本適用条件に合致しない場合に差分データ適用を中断すれば、上述した問題の発生を防止できる。
本実施の形態は、図3に示したシステムにおいて、コンピュータシステム2aの代わりに図8に示したコンピュータシステム2bを使用することにより実現される。コンピュータシステム2bは、差分データ適用手段205の代わりに差分データ適用手段205bを備えている点、適用条件判定手段206を備えている点、および、適用条件記憶手段207を備えている点が図3に示したコンピュータシステム2aと相違している。
適用条件記憶手段207には、コンピュータシステム2b固有の適用条件が記録されている。適用条件判定手段206は、差分データ記憶手段106に記録されている差分データD中の全てのファイルが、適用条件記憶手段207に記録されている適用条件を満たすか否かを判定する。差分データ適用手段205bは、不整合検出手段103aによってフィンガープリントFP1,FP2が一致すると判定され、且つ、適用条件判定手段206によって差分データDが適用条件に合致すると判定された場合、差分データDを二次記憶装置204に適用(展開)する。
なお、不整合検出手段103a、フィンガープリント生成手段201、差分データ適用手段205b、および、適用条件判定手段206は、コンピュータによって実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータを不整合検出手段103a、フィンガープリント生成手段201、差分データ適用手段205b、および、適用条件判定手段206として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、不整合検出手段103a、フィンガープリント生成手段201、差分データ適用手段205b、および、適用条件判定手段206を実現する。
[第3の実施の形態の動作の説明]
次に、本実施の形態の動作について説明する。なお、コンピュータシステム1aの動作は、前述した第2の実施の形態と同様であるので、ここでは、図9のフローチャートを参照してコンピュータシステム2bの動作についてのみ説明する。
コンピュータシステム2bのユーザは、頒布されたフィンガープリント記憶手段102および差分データ記憶手段106をコンピュータシステム2bに接続した後、不整合検出手段103aに対して整合性検証指示を入力する。これにより、不整合検出手段103aは、フィンガープリント生成手段201を利用して検証時点のフィンガープリントFP2を生成する(ステップT5)。
その後、不整合検出手段103aは、ステップT5で生成したフィンガープリントFP2と、フィンガープリント記憶手段102に記録されている基準時点のフィンガープリントFP1とを比較する(ステップT6)。
そして、フィンガープリントFP1,FP2が不一致の場合は、不整合検出手段103aは、ユーザにその旨を通知し、差分データDの適用を禁止する(ステップT8)。
これに対して、フィンガープリントFP1,FP2が一致している場合は、適用条件判定手段206が、差分データ記憶手段106内の差分データDを参照して、当該差分データDに含まれる各ファイルが、適用条件記憶手段207に記録されている適用条件を満たすかどうかを判定し(ステップT9)、満たす場合は当該差分データDを二次記憶装置204に適用し(ステップT7)、さもなければ差分データDの適用を禁止する(ステップT8)。
「適用条件」として、ファイルサイズの上限など、差分データDに含まれるファイルのメタデータや内容に関する任意の条件を用いてよいが、好適な一例としては「コンピュータシステム2b固有のファイル依存関係」を用いることが望ましい。
ファイル依存関係とは、コンピュータシステム1aには存在せず、コンピュータシステム2bにのみ存在するファイル(以下、固有ファイル)が要求する依存ファイルの条件である。たとえば固有ファイルがあるアプリケーションの実行バイナリファイルであった場合、上記条件は、当該ファイルの実行に必要となるライブラリやドライバなどの依存ファイルを同定するための、バージョン情報やタイムスタンプ情報などといった、メタデータに関する条件である。
一般にファイル依存関係をユーザが直接入力することは困難であるため、図10に示すように、コンピュータシステム2bに、さらにファイル依存関係分析手段208を設けてもよい。なお、ファイル依存関係分析手段208もコンピュータをプログラム制御することにより実現可能である。
ファイル依存関係分析手段208は、二次記憶装置204に記録されている全ての実行バイナリファイルについて、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って、図11に示すようなファイル依存関係に相当する有向グラフを生成し、適用条件記憶手段207に記録する。図11の有向グラフにおいて、各ノードN1,N2,…,N7,…は、それぞれ1つのファイルに対応しており、ノード内の文字列は、対応するファイルのファイル名を示している。また、始点ノードN1,N2,…は実行バイナリファイルに対応し、入力辺を持つノードN3,N4,…,N7,…は、実行バイナリファイルの実行に必要な依存ファイルに対応している。ノードN3,N4,…,N7,…には、対応する依存ファイルの属性「バージョンおよびタイムスタンプ」が付されている。ファイル依存関係分析手段208は、この属性「バージョンおよびタイムスタンプ」をファイルのメタデータから取得する。
適用条件判定手段206は、図11に示した有向グラフを用いて、差分データDの適用可否を判定する。具体的には、適用条件判定手段206は、有向グラフの始点ノードの内、差分データDに含まれていない実行バイナリファイルに対応する始点ノードを同定する。そして、同定した始点ノードの内の1つに注目し、注目ノードから到達可能なノードの中に、差分データDに含まれている依存ファイルと対応するノードがあるか否かを、例えば、ファイル名に基づいて判定する。そして、そのようなノードが存在する場合には、ノードに付されている属性と、差分データD中の対応するファイルの属性とを比較し、不一致であれば、差分データDの適用を禁止する。これに対して、属性が一致していれば、上記同定した始点ノードの中に未注目の始点ノードが存在するか否かを調べる。そして、未注目のノードがなければ、差分データDの適用を許可する。これに対して、未注目のノードが存在する場合には、未注目のノードの内の1つに注目し、前述した処理と同様の処理を行う。
[第3の実施の形態の効果]
本実施の形態によれば、コンピュータシステム2bに差分データDを適用することにより発生し得る、コンピュータシステム2b固有の固有ファイルに対応するアプリケーションが動作しなくなるといった事態の発生を防止することができる。その理由は、適用条件記憶手段207に記録されている、コンピュータシステム2b固有の固有ファイルが依存している依存ファイルの満たすべき属性と、差分データDに含まれる属性とに基づいて、差分データの適用を許可するか否かを判定する適用条件判定手段206を備えているからである。
また、本実施の形態によれば、ユーザに負担をかけることなく、コンピュータシステム2b固有の固有ファイルに対応するアプリケーションが動作しなくなるといった事態の発生を防止することができる。その理由は、実行バイナリファイルと依存ファイルとの依存関係を示す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには、そのノードに対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成するファイル依存関係分析手段208と、ファイル依存関係分析手段208が生成した有向グラフを利用して差分データDを適用する否かを判定する適用条件判定手段206を備えているからである。
[本発明の第4の実施の形態]
次に、本発明の第4の実施の形態について説明する。図15を参照すると、本実施の形態にかかるファイル群整合性検証システムは、検査符号生成手段10と、不整合検証手段20とを備える。
検査符号生成手段10は、基準時点において、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、上記第1のファイル群に属するファイルのメタデータに基づいて生成する。第1の検査符号は、第1のファイル群が変更された場合、異なるものになる。更に、検査符号生成手段10は、上記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、上記第2のファイル群に属するメタデータに基づいて生成する。
不整合検出手段20は、上記第1の検査符号と上記第2の検査符号とを比較し、両者の不一致をもって上記第1のファイル群と上記第2のファイル群との不整合を検出する。
この構成によれば、整合性の検証対象にするファイル群のサイズが大きい場合であっても、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることなく、ファイル群の整合性の検証処理に要する時間を短縮することができる。その理由は、ファイル群を構成するファイルのメタデータに基づいて生成した検査符号を利用してファイル群の整合性を検証するようにしているからである。
この場合、上記ファイル群整合性検証システムは、
ファイルおよびそのメタデータが格納された記憶装置を備え、
上記検査符号生成手段は、上記基準時点および上記検証時点において、それぞれ、上記記憶装置に格納されているメタデータの内の、上記条件を満たすファイルのメタデータに基づいて、上記第1の検査符号および上記第2の検査符号を生成するのが好適である。
また、上記ファイル群整合性検証システムにおいて、
ファイルおよびそのメタデータが格納された第1および第2の記憶装置と、
差分データ記憶手段と、
上記第1の記憶装置に格納されているファイルの内の、上記基準時点以降に更新されたファイルを上記差分データ記憶手段に記録する差分データ抽出手段と、
上記差分データ記憶手段に記録されている差分データを上記第2の記憶装置に展開する差分データ適用手段とを備え、且つ、
上記検査符号生成手段は、上記基準時点においては、上記第1の記憶装置に格納されているファイルの内の上記条件を満たすファイルのメタデータに基づいて上記第1の検査符号を生成し、上記検証時点においては、上記第2の記憶装置に格納されているファイルの内の、上記条件を満たすファイルのメタデータに基づいて上記第2の検査符号を生成し、
上記差分データ適用手段は、上記不整合検出手段によって上記第1のファイル群と上記第2のファイル群との不整合が検出されなかった場合に限り、上記差分データを上記第2の記憶装置に展開するのが好適である。
これによれば、或るコンピュータシステムの第1の記憶装置に格納されているファイルの内の基準時点以降に更新されたファイル(差分データ)を、他のコンピュータシステムの第2の記憶装置に展開する場合に発生し得る、アプリケーションとライブラリ間の不整合などといった障害を事前に且つ高速に検知することができるため、性能低下を極僅かに抑えながら、より安全なソフトウェア配布を行うことができる。
また、上記ファイル群整合性検証システムにおいて、
上記第2の記憶装置固有の固有ファイルが依存する依存ファイルの満たすべき属性が記録された適用条件記憶手段と、
上記差分データ記憶手段に記録されている差分データに含まれるファイルの属性と上記適用条件記憶手段に記録されている属性とに基づいて、上記差分データの展開を許可するか否かを判定する適用条件判定手段とを備え、且つ、
上記差分データ適用手段は、上記不整合検出手段によって上記第1のファイル群と上記第2のファイル群との不整合が検出されず、且つ、上記適用条件判定手段によって上記差分データの展開が許可された場合に限り、上記差分データを上記第2の記憶装置に展開するのが望ましい。
これによれば、或るコンピュータシステムの第1の記憶装置に格納されているファイルの内の基準時点以降の更新されたファイル(差分データ)を、他のコンピュータシステムの第2の記憶装置に展開する場合に発生し得る、上記他のコンピュータシステム固有の固有ファイルに対応するアプリケーションが動作しなくなるといった事態の発生を防止することができる。その理由は、適用条件記憶手段に記録されている、上記他のコンピュータシステム固有の固有ファイルが依存している依存ファイルの満たすべき属性と、差分データに含まれている属性とに基づいて、差分データの展開を許可するか否かを判定する適用条件判定手段を備えているからである。
また、上記したファイル整合性検証システムにおいて、
適用条件記憶手段と、
上記第2の記憶装置に記録されている実行バイナリファイルと、その実行バイナリファイルが依存している依存ファイルとの依存関係を表す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成し、生成した有向グラフを上記適用条件記憶手段に記録するファイル依存関係分析手段と、
上記差分データ記憶手段に記録されている差分データに含まれているファイルの属性と、上記適用条件記憶手段に記録されている有向グラフとに基づいて、上記差分データの展開を許可するか否かを判定する適用条件判定手段とを備え、且つ、
上記差分データ適用手段は、上記不整合検出手段によって上記第1のファイル群と上記第2のファイル群との不整合が検出されず、且つ、上記適用条件判定手段によって上記差分データの展開が許可された場合に限り、上記差分データを上記第2の記憶装置に展開するのが好適である。
これによれば、実行バイナリファイルと依存ファイルとの依存関係を示す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには、そのノードに対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成するファイル依存関係分析手段と、ファイル依存関係分析手段が生成した有向グラフを利用して差分データの展開を許可するか否かを判定する適用条件判定手段とを備えているので、ユーザに負担をかけることなく、差分データの展開先のコンピュータシステムにおいて、そのコンピュータシステム固有の固有ファイルに対応するアプリケーションが動作しなくなるといった事態の発生を防止することができる。
また、上記ファイル群整合性検証システムにおいて、
上記検査符号は、上記条件を満たすファイルのメタデータの属性の内の、一部の属性の出現度数分布であるのが好適である。これによれば、検査符号のサイズを小さくすることができ、その結果、検査符号の比較処理に要する時間を短くすることができる。
また、上記ファイル群整合性検証システムにおいて、
上記検査符号は、上記条件を満たすファイルのメタデータの属性の内の、少なくとも一部の属性についてのハッシュチェーンであることが好適である。これによれば、検査符号は固定長となり、その結果、検証対象にするファイル群に含まれているファイル数やファイルサイズにかかわらず、検査符号の比較処理に要する時間を一定にすることができる。
また、本発明の他の形態であるファイル群整合性検証方法は、
基準時点において、検査符号生成手段が、指定された条件を満たすファイルのメタデータに基づいて、上記条件を満たすファイルを構成要素とする第1のファイル群の特徴を一意に表す第1の検査符号を生成し、
上記基準時点以降の検証時点において、検査符号生成手段が、上記条件を満たすファイルのメタデータに基づいて、上記条件を満たすファイルを構成要素とする第2のファイル群の特徴を一意に表す第2の検査符号を生成し、
不整合検出手段が、上記第1の検査符号と上記第2の検査符号との不一致をもって上記第1のファイル群と上記第2のファイル群との不整合を検出する。
これによれば、整合性の検証対象にするファイル群のサイズが大きい場合であっても、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることなく、ファイル群の整合性の検証処理に要する時間を短くすることができる。その理由は、ファイル群を構成しているファイルのメタデータに基づいて生成した検査符号を利用して、ファイル群の整合性を検証するようにしているからである。
また、本発明の他の形態であるコンピュータが読み取り可能な記録媒体は、
コンピュータをファイル群整合性検証システムとして機能させるためのファイル群整合性検証用プログラムを記録した、コンピュータが読み取り可能な記録媒体であって、
上記コンピュータを、
基準時点において、指定された条件を満たすファイルのメタデータに基づいて、上記条件を満たすファイルを構成要素とする第1のファイル群の特徴を一意に表す第1の検査符号を生成し、上記基準時点以降の検証時点において、上記条件を満たすファイルのメタデータに基づいて、上記条件を満たすファイルを構成要素とする第2のファイル群の特徴を一意に表す第2の検査符号を生成する検査符号生成手段、
上記第1の検査符号と上記第2の検査符号とを比較し、両者の不一致をもって上記1のファイル群と上記第2のファイル群との不整合を検出する不整合検出手段として機能させる。
これによれば、整合性の検証対象にするファイル群のサイズが大きい場合であっても、コンピュータシステムの日常的な運用時におけるファイル出力性能に悪影響を与えることなく、ファイル群の整合性の検証処理に要する時間を短くすることができる。その理由は、ファイル群を構成しているファイルのメタデータに基づいて生成した検査符号を利用して、ファイル群の整合性を検証するようにしているからである。
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
なお、本発明は、日本国にて2010年1月21日に特許出願された特願2010−010671の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
本発明によれば、重要データの改ざん検査といったセキュリティシステム用途に適用できる。また、バックアップシステムやソフトウェア頒布システムにおける障害可能性の事前検査といった用途にも適用可能である。
1,1a,2a,2b コンピュータシステム
101,101a フィンガープリント生成手段
102 フィンガープリント記憶手段
103,103a 不整合検出手段
104 ファイル群
104 二次記憶装置
105 差分データ抽出手段
106 差分データ記憶手段
201 フィンガープリント生成手段
204 二次記憶装置
205,205b 差分データ適用手段
206 適用条件判定手段
207 適用条件記憶手段
208 ファイル依存関係分析手段
1041 ファイル群
2041 ファイル群
10 検査符号生成手段
20 不整合検出手段

Claims (5)

  1. 基準時点において、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、前記基準時点以降の検証時点において、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するメタデータに基づいて生成する検査符号生成手段と、
    前記第1の検査符号と前記第2の検査符号とを比較し、両者の不一致をもって前記1のファイル群と前記第2のファイル群との不整合を検出する不整合検出手段と、
    ファイルおよびそのメタデータが格納された第1および第2の記憶装置と、
    差分データ記憶手段と、
    前記第1の記憶装置に格納されているファイルの内の、前記基準時点以降に更新されたファイルを前記差分データ記憶手段に記録する差分データ抽出手段と、
    前記差分データ記憶手段に記録されている差分データを前記第2の記憶装置に展開する差分データ適用手段と、を備え、且つ、
    前記検査符号生成手段は、前記基準時点においては、前記第1の記憶装置に格納されているファイルの内の前記条件を満たすファイルのメタデータに基づいて前記第1の検査符号を生成し、前記検証時点においては、前記第2の記憶装置に格納されているファイルの内の、前記条件を満たすファイルのメタデータに基づいて前記第2の検査符号を生成し、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されなかった場合に限り、前記差分データを前記第2の記憶装置に展開し、
    さらに、
    適用条件記憶手段と、
    前記第2の記憶装置に記録されている実行バイナリファイルと、その実行バイナリファイルが依存している依存ファイルとの依存関係を表す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成し、生成した有向グラフを前記適用条件記憶手段に記録するファイル依存関係分析手段と、
    前記差分データ記憶手段に記録されている差分データに含まれているファイルの属性と、前記適用条件記憶手段に記録されている有向グラフとに基づいて、前記差分データの展開を許可するか否かを判定する適用条件判定手段と、を備え、且つ、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されず、且つ、前記適用条件判定手段によって前記差分データの展開が許可された場合に限り、前記差分データを前記第2の記憶装置に展開する、ことを特徴とするファイル群整合性検証システム。
  2. 請求項1に記載のファイル群整合性検証システムにおいて、
    前記検査符号は、前記条件を満たすファイルのメタデータの属性の内の、一部の属性の出現度数分布であることを特徴とするファイル群整合性検証システム。
  3. 請求項1に記載のファイル群整合性検証システムにおいて、
    前記検査符号は、前記条件を満たすファイルのメタデータの属性の内の、少なくとも一部の属性についてのハッシュチェーンであることを特徴とするファイル群整合性検証システム。
  4. 検査符号生成手段と、不整合検出手段と、第1および第2の記憶装置と、差分データ記憶手段と、差分データ抽出手段と、差分データ適用手段と、適用条件記憶手段と、ファイル依存関係分析手段と、適用条件判定手段と、を備えたコンピュータシステムによるファイル群整合性検証方法であって、
    基準時点において、前記検査符号生成手段が、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、
    前記基準時点以降の検証時点において、前記検査符号生成手段が、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するファイルのメタデータに基づいて生成し、
    前記不整合検出手段が、前記第1の検査符号と前記第2の検査符号との不一致をもって前記第1のファイル群と前記第2のファイル群との不整合を検出し、
    前記第1および第2の記憶装置にファイルおよびそのメタデータが格納されており、
    前記差分データ抽出手段が、前記第1の記憶装置に格納されているファイルの内の、前記基準時点以降に更新されたファイルを前記差分データ記憶手段に記録し、
    前記差分データ適用手段が、前記差分データ記憶手段に記録されている差分データを前記第2の記憶装置に展開し、且つ、
    前記検査符号生成手段は、前記基準時点においては、前記第1の記憶装置に格納されているファイルの内の前記条件を満たすファイルのメタデータに基づいて前記第1の検査符号を生成し、前記検証時点においては、前記第2の記憶装置に格納されているファイルの内の、前記条件を満たすファイルのメタデータに基づいて前記第2の検査符号を生成し、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されなかった場合に限り、前記差分データを前記第2の記憶装置に展開し、
    さらに、
    前記ファイル依存関係分析手段が、前記第2の記憶装置に記録されている実行バイナリファイルと、その実行バイナリファイルが依存している依存ファイルとの依存関係を表す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成し、生成した有向グラフを前記適用条件記憶手段に記録し、
    前記適用条件判定手段が、前記差分データ記憶手段に記録されている差分データに含まれているファイルの属性と、前記適用条件記憶手段に記録されている有向グラフとに基づいて、前記差分データの展開を許可するか否かを判定し、且つ、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されず、且つ、前記適用条件判定手段によって前記差分データの展開が許可された場合に限り、前記差分データを前記第2の記憶装置に展開する、ことを特徴とするファイル群整合性検証方法。
  5. コンピュータをファイル群整合性検証システムとして機能させるためのファイル群整合性検証用プログラムであって、
    前記コンピュータを、
    基準時点において、指定された条件を満たすファイルから構成される第1のファイル群について、その特徴を一意に表す第1の検査符号を、前記第1のファイル群に属するファイルのメタデータに基づいて生成し、前記基準時点以降の検証時点において、前記条件を満たすファイルから構成される第2のファイル群について、その特徴を一意に表す第2の検査符号を、前記第2のファイル群に属するファイルのメタデータに基づいて生成する検査符号生成手段、
    前記第1の検査符号と前記第2の検査符号とを比較し、両者の不一致をもって前記1のファイル群と前記第2のファイル群との不整合を検出する不整合検出手段、として機能させ、
    第1および第2の記憶装置にファイルおよびそのメタデータが格納されており、
    さらに、前記コンピュータを、
    前記第1の記憶装置に格納されているファイルの内の、前記基準時点以降に更新されたファイルを差分データ記憶手段に記録する差分データ抽出手段、
    前記差分データ記憶手段に記録されている差分データを前記第2の記憶装置に展開する差分データ適用手段、として機能させ、且つ、
    前記検査符号生成手段は、前記基準時点においては、前記第1の記憶装置に格納されているファイルの内の前記条件を満たすファイルのメタデータに基づいて前記第1の検査符号を生成し、前記検証時点においては、前記第2の記憶装置に格納されているファイルの内の、前記条件を満たすファイルのメタデータに基づいて前記第2の検査符号を生成し、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されなかった場合に限り、前記差分データを前記第2の記憶装置に展開し、
    さらに、前記コンピュータを、
    前記第2の記憶装置に記録されている実行バイナリファイルと、その実行バイナリファイルが依存している依存ファイルとの依存関係を表す有向グラフであって、1つのノードが1つのファイルに対応し、各ノードには対応するファイルの属性が付されている有向グラフを、ファイルの内容部の特定領域に格納された依存ファイル情報を辿って生成し、生成した有向グラフを適用条件記憶手段に記録するファイル依存関係分析手段、
    前記差分データ記憶手段に記録されている差分データに含まれているファイルの属性と、前記適用条件記憶手段に記録されている有向グラフとに基づいて、前記差分データの展開を許可するか否かを判定する適用条件判定手段、として機能させ、且つ、
    前記差分データ適用手段は、前記不整合検出手段によって前記第1のファイル群と前記第2のファイル群との不整合が検出されず、且つ、前記適用条件判定手段によって前記差分データの展開が許可された場合に限り、前記差分データを前記第2の記憶装置に展開する、
    ファイル群整合性検証用プログラム。
JP2011550834A 2010-01-21 2011-01-12 ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム Active JP5644777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011550834A JP5644777B2 (ja) 2010-01-21 2011-01-12 ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010010671 2010-01-21
JP2010010671 2010-01-21
JP2011550834A JP5644777B2 (ja) 2010-01-21 2011-01-12 ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
PCT/JP2011/000079 WO2011089864A1 (ja) 2010-01-21 2011-01-12 ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム

Publications (2)

Publication Number Publication Date
JPWO2011089864A1 JPWO2011089864A1 (ja) 2013-05-23
JP5644777B2 true JP5644777B2 (ja) 2014-12-24

Family

ID=44306667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011550834A Active JP5644777B2 (ja) 2010-01-21 2011-01-12 ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム

Country Status (3)

Country Link
US (1) US20120296878A1 (ja)
JP (1) JP5644777B2 (ja)
WO (1) WO2011089864A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560579B1 (en) * 2011-12-21 2013-10-15 Google Inc. Systems and methods for managing a network by generating files in a virtual file system
US20150019537A1 (en) 2012-09-07 2015-01-15 Splunk Inc. Generating Reports from Unstructured Data
US9582585B2 (en) 2012-09-07 2017-02-28 Splunk Inc. Discovering fields to filter data returned in response to a search
US8788525B2 (en) 2012-09-07 2014-07-22 Splunk Inc. Data model for machine data for semantic search
CN104579989B (zh) * 2015-01-14 2017-11-21 清华大学 基于路由交换范式的构件功能一致性验证方法及装置
WO2016190876A1 (en) * 2015-05-28 2016-12-01 Hewlett Packard Enterprise Development Lp Dependency rank based on commit history
US11386067B2 (en) * 2015-12-15 2022-07-12 Red Hat, Inc. Data integrity checking in a distributed filesystem using object versioning
US11057208B2 (en) * 2016-08-22 2021-07-06 Rakuten, Inc. Management system, management device, management method, program, and non-transitory computer-readable information recording medium
CN109426579A (zh) * 2017-08-28 2019-03-05 西门子公司 机床加工文件的中断恢复方法及适用该方法的机床
JP7116292B2 (ja) * 2017-09-26 2022-08-10 富士通株式会社 情報処理装置、情報処理システムおよびプログラム
CN107798128B (zh) * 2017-11-14 2021-10-29 泰康保险集团股份有限公司 数据导入方法、装置、介质及电子设备
CN109889325B (zh) * 2019-01-21 2023-06-02 Oppo广东移动通信有限公司 校验方法、装置、电子设备及介质
CN111695158B (zh) * 2019-03-15 2022-12-09 上海寒武纪信息科技有限公司 运算方法及装置
CN111427718B (zh) * 2019-12-10 2024-01-23 杭州海康威视数字技术股份有限公司 文件备份方法、恢复方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10508121A (ja) * 1994-10-28 1998-08-04 シュアティ テクノロジーズ インコーポレイテッド ドキュメントをユニークに特定し認証する証明書を発行するデジタルドキュメント証明システム
JP2000339223A (ja) * 1999-05-25 2000-12-08 Ricoh Co Ltd 原本性保証電子保存方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002116838A (ja) * 2000-06-30 2002-04-19 Internatl Business Mach Corp <Ibm> コードを更新するためのデバイスおよび方法
JP2004164226A (ja) * 2002-11-12 2004-06-10 Seer Insight Security Inc 情報処理装置およびプログラム
JP2004304338A (ja) * 2003-03-28 2004-10-28 Ntt Data Corp データ登録システム、データ登録方法及びプログラム
JP2006343790A (ja) * 2005-06-07 2006-12-21 Nippon Telegr & Teleph Corp <Ntt> イベントハッシュ作成方法、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
JP2008090389A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 電子情報検証プログラム、電子情報検証装置および電子情報検証方法
WO2008117471A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited 監査プログラム、監査システムおよび監査方法
JP2009070026A (ja) * 2007-09-12 2009-04-02 Mitsubishi Electric Corp 記録装置及び検証装置及び再生装置及び記録方法及び検証方法及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282619A (ja) * 2000-03-30 2001-10-12 Hitachi Ltd コンテンツ改竄検知方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
JP2006506659A (ja) * 2002-11-01 2006-02-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フィンガープリントのサーチおよびその改良
EP1712992A1 (en) * 2005-04-11 2006-10-18 Sony Ericsson Mobile Communications AB Updating of data instructions
CN103984891A (zh) * 2005-07-29 2014-08-13 Bit9公司 网络安全系统和方法
JP4993674B2 (ja) * 2005-09-09 2012-08-08 キヤノン株式会社 情報処理装置、検証処理装置及びそれらの制御方法、コンピュータプログラム及び記憶媒体
JP4901164B2 (ja) * 2005-09-14 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP2007140961A (ja) * 2005-11-18 2007-06-07 Pumpkin House:Kk 不正にコピーされたファイルの使用防止装置およびプログラム
JP2007148544A (ja) * 2005-11-24 2007-06-14 Murata Mach Ltd 文書管理装置
US8099415B2 (en) * 2006-09-08 2012-01-17 Simply Hired, Inc. Method and apparatus for assessing similarity between online job listings
JP2009129102A (ja) * 2007-11-21 2009-06-11 Fuji Xerox Co Ltd タイムスタンプ検証装置及びプログラム
JP2009284138A (ja) * 2008-05-21 2009-12-03 Fuji Xerox Co Ltd 文書処理装置および文書処理プログラム
US8624898B1 (en) * 2009-03-09 2014-01-07 Pixar Typed dependency graphs

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10508121A (ja) * 1994-10-28 1998-08-04 シュアティ テクノロジーズ インコーポレイテッド ドキュメントをユニークに特定し認証する証明書を発行するデジタルドキュメント証明システム
JP2000339223A (ja) * 1999-05-25 2000-12-08 Ricoh Co Ltd 原本性保証電子保存方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002116838A (ja) * 2000-06-30 2002-04-19 Internatl Business Mach Corp <Ibm> コードを更新するためのデバイスおよび方法
JP2004164226A (ja) * 2002-11-12 2004-06-10 Seer Insight Security Inc 情報処理装置およびプログラム
JP2004304338A (ja) * 2003-03-28 2004-10-28 Ntt Data Corp データ登録システム、データ登録方法及びプログラム
JP2006343790A (ja) * 2005-06-07 2006-12-21 Nippon Telegr & Teleph Corp <Ntt> イベントハッシュ作成方法、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
JP2008090389A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 電子情報検証プログラム、電子情報検証装置および電子情報検証方法
WO2008117471A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited 監査プログラム、監査システムおよび監査方法
JP2009070026A (ja) * 2007-09-12 2009-04-02 Mitsubishi Electric Corp 記録装置及び検証装置及び再生装置及び記録方法及び検証方法及びプログラム

Also Published As

Publication number Publication date
WO2011089864A1 (ja) 2011-07-28
US20120296878A1 (en) 2012-11-22
JPWO2011089864A1 (ja) 2013-05-23

Similar Documents

Publication Publication Date Title
JP5644777B2 (ja) ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
KR101840996B1 (ko) 파일 시스템에 대한 체크포인트
US7509544B2 (en) Data repair and synchronization method of dual flash read only memory
JP2008165474A (ja) データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
US8825653B1 (en) Characterizing and modeling virtual synthetic backup workloads
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
KR20060049879A (ko) 최적화된 복원 계획을 생성하는 방법
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
US20010051954A1 (en) Data updating apparatus that performs quick restoration processing
US11544150B2 (en) Method of detecting source change for file level incremental backup
CN102737205B (zh) 保护包括可编辑元数据的文件
US20070220481A1 (en) Limited source code regeneration based on model modification
KR101478619B1 (ko) 가상화 기술을 이용한 데이터 입출력 방법 및 장치
US20070156778A1 (en) File indexer
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
CN114860745B (zh) 基于人工智能的数据库扩展方法及相关设备
KR102472345B1 (ko) 계층화 문서를 관리하는 방법 및 이를 이용한 장치
US11086726B2 (en) User-based recovery point objectives for disaster recovery
US11099837B2 (en) Providing build avoidance without requiring local source code
US20140156943A1 (en) Information processing apparatus, information processing method, and program
JP2013058134A (ja) データ書き込み装置
US9740596B1 (en) Method of accelerated test automation through unified test workflows
WO2016117007A1 (ja) データベースシステム及びデータベース管理方法
JP2009282604A (ja) 重複データ排除システム、重複データ排除方法及び重複データ排除プログラム
JP4550869B2 (ja) データ同期システム及びデータ同期プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141007

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141020

R150 Certificate of patent or registration of utility model

Ref document number: 5644777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150