(57)【要約】【課題】ファイルシステムが入出力するファイルの正規性・完全性を検証するモジュールを追加して、ファイルの正規性・完全性を検証することである。【解決手段】ファイルシステム７が、あるファイルを、物理デバイス２に書き込むことを命令する。データ完全性検証モジュール４が、前記ファイルについて、第一のハッシュ値を算出する。オペレーティングシステム１が、前記ファイルに、前記第一のハッシュ値を付加する。前記オペレーティングシステム１が、前記物理デバイス２に対して、前記第一のハッシュ値が付加された前記ファイルを出力する。前記物理デバイス２が、前記第一のハッシュ値が付加された前記ファイルを格納する。【選択図】図１
2008257279.tif 000002
【特許請求の範囲】
【請求項１】
前記ファイルシステムが、あるファイルを、物理デバイスに書き込むことを命令するステップと、
データ完全性検証モジュールが、前記ファイルについて、第一のハッシュ値を算出するステップと、
オペレーティングシステムが、前記ファイルに、前記第一のハッシュ値を付加するステップと、
前記オペレーティングシステムが、前記物理デバイスに対して、前記第一のハッシュ値が付加された前記ファイルを出力するステップと、
前記物理デバイスが、前記第一のハッシュ値が付加された前記ファイルを格納するステップと
を有するファイルシステムの完全性強化方法。
【請求項２】
前記ファイルシステムが、前記ファイルを、前記物理デバイスから読み出すことを命令するステップと、
前記物理デバイスが、前記オペレーティングシステムに対して、前記第一のハッシュ値が付加された前記ファイルを出力するステップと、
前記オペレーティングシステムが、前記第一のハッシュ値が付加された前記ファイルを入力するステップと、
前記データ完全性検証モジュールが、前記オペレーティングシステムが入力した前記ファイルについて、第二のハッシュ値を算出するステップと、
前記データ完全性検証モジュールが、前記第一のハッシュ値と、前記第二のハッシュ値とを照合するステップと、
前記第一のハッシュ値と、前記第二のハッシュ値とが一致しないと判断される場合に、前記データ完全性検証モジュールが、前記ファイルシステムに、その旨を通知するステップと
を更に有する請求項１記載のファイルシステムの完全性強化方法。
【請求項３】
前記その旨を通知するステップは、
前記データ完全性検証モジュールが、規定回数のリトライカウンタを設定するステップと、
前記データ完全性検証モジュールが、リトライカウンタの規定回数分だけリトライを行うステップと、
前記データ完全性検証モジュールが、規定回数分のリトライを行っても、前記第一のハッシュ値と、前記第二のハッシュ値とが一致しない場合に、前記第一のハッシュ値と、前記第二のハッシュ値とは一致しないと判断するステップとを有する
請求項２記載のファイルシステムの完全性強化方法。
【請求項４】
前記第一のハッシュ値と、前記第二のハッシュ値とが一致した場合に、前記オペレーティングシステムが、読み出した前記ファイルから前記第一のハッシュ値を除去するステップと、
前記ファイルシステムが、前記第一のハッシュ値が除去された前記ファイルを受け取るステップと
を更に有する請求項２又は３記載のファイルシステムの完全性強化方法。
【請求項５】
前記格納するステップに続けて、前記物理デバイスに格納された前記第一のハッシュ値が付加された前記ファイルについて、読み込みテストを行うステップ
を更に有する請求項１記載のファイルシステムの完全性強化方法。
【請求項６】
前記読み込みテストを行うステップは、
前記物理デバイスが、前記オペレーティングシステムに対して、前記第一のハッシュ値が付加された前記ファイルを出力するステップと、
前記オペレーティングシステムが、前記第一のハッシュ値が付加された前記ファイルを入力するステップと、
前記データ完全性検証モジュールが、前記オペレーティングシステムが入力した前記ファイルについて、第二のハッシュ値を算出するステップと、
前記データ完全性検証モジュールが、前記第一のハッシュ値と、前記第二のハッシュ値とを照合するステップと、
前記第一のハッシュ値と、前記第二のハッシュ値とが一致しないと判断される場合に、前記データ完全性検証モジュールが、前記ファイルシステムに、その旨を通知するステップとを有する
請求項５記載のファイルシステムの完全性強化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムの完全性強化方法に関する。
【背景技術】
【０００２】
ファイルシステムは、色々な物理デバイス上のデータをファイルとして扱うためのソフトウェアである。通常、ファイルシステムは、オペレーティングシステムが持つ機能の一つとして提供され、異なるオペレーティングシステムには、異なるファイルシステムが用いられている。あるオペレーティングシステムが有するファイルシステムをみると、データ保存を目的としたプログラム構造のみを有しており、保存されているデータの正規性・完全性については特に意識していない。
【０００３】
ＨＤＤ（Hard Disk Drive）等の記録媒体に対して物理的にアクセスできるソフトウェアの中には、ファイルシステムを介さずに記録媒体に直接的にアクセスし、記録媒体内部のデータを不正に書き換えることが可能なものがある。また、記録媒体の物理的不調等によってデータ不正が生じても、ファイルシステムは、そのデータ不正を意識しない。記録媒体の読み込み・書き込みが不可状態となった場合でないと、記録媒体の物理的不調等は検出されないため、長期間、データ不正に気づかない危険性がある。
【０００４】
特開２００４−７８６９６号公報（特許文献１参照）には、「ファイルシステムの完全性保証方法」の発明が記載されている。ファイルシステムは、ファイルを表す論理構造であるところのｉノードに、ファイルデータを保存するディスク記憶装置のブロック番号とそのブロックに一方向関数を適用して得られるハッシュ値を組にして保存することでブロックの完全性を保証する。完全性保証方法は、当該ファイルシステム全体のデータの完全性を保証する。１つの代表ｉノードが前記ファイルシステム全てのファイルのｉノードを保存するファイルを表す。前記ファイルシステムを構成するデータブロック以外のブロックのデータをファイルとして扱う。前記代表ｉノード内に当該代表ｉノードに鍵付きの一方向関数を適用して得られたハッシュ値を保存する。前記ファイルシステムを構成する全てのブロックの完全性を保証する。
【０００５】
特許文献１では、データブロック単位でハッシュ値を算出する。また、メタデータ構造体内に自身がポインタを保持するデータブロックのハッシュ値を保持する。つまり、上位のメタデータ構造体が下位の構造体のハッシュ値を保持する。さらに、データブロックの所属するメタデータ構造体内にハッシュを保持する。
【０００６】
特開２００４−３０４３３８号公報（特許文献２参照）には、「データ登録システム」の発明が記載されている。この発明は、複数の電子データを記憶する端末からネットワークを介して少なくとも１つ以上の所望の電子データを、タイムスタンプサービスを提供する信頼できる第三者機関のサーバに登録するためのシステムである。第１関数値生成手段は、前記複数の電子データのそれぞれに所定の一方向性関数を作用させて第１の関数値を生成する。データ記憶手段は、前記複数の電子データと前記第１の関数値とを対応させて記憶する。選択手段は、記憶されている前記複数の電子データの中から、前記所望の電子データを選択する。第２関数値生成手段は、前記所望の電子データ及び当該所望の電子データに対応する前記第１の関数値に基づいて、前記第１の関数値に、若しくは、前記所望の電子データ及び前記第１の関数値に、前記一方向性関数を作用させて、選択された前記所望の電子データの全体と一意に対応するメッセージダイジェストを示す第２の関数値を生成する。識別番号受信手段は、前記第２の関数値を前記サーバに送信して前記所望の電子データを登録し、当該登録を識別するための識別番号を前記サーバから受信する。識別番号記憶手段は、前記識別番号受信手段にて受信した識別番号を、前記選択された所望の電子データそれぞれと対応付けて記憶する。
【０００７】
特許文献２においては、ハッシュ値を用いたファイル保証に関する発明が開示されている。この発明は、第三者機関を利用して、より効率良く第三者機関とハッシュ値の保存・取得を行ういう主旨の発明である。第三者機関を用いる方法は、信頼性の観点からはより堅牢と言えるが、ネットワークを介したデータのやり取りが生じるため、システムへの組み込み・運用が困難になる。
【０００８】
特開２００５−７１２４５号公報（特許文献３参照）には、「データ情報管理システム」の発明が記載されている。このデータ情報管理システムは、クライアント装置がサーバー装置から取得して保持している機密データに対して実行する処理の可否を前記サーバー装置が管理する。プログラム記憶手段は、前記クライアント装置による前記機密データに対する処理を実行するための各種プログラムを記憶する。ユーザー情報記憶手段は、前記クライアント装置からのアクセス要求が正規のユーザーによるアクセス要求か否かを前記サーバー装置が認証するためのユーザー情報を記憶する。ユーザーファイル情報記憶手段は、前記クライアント装置からの前記機密データに対する処理の実行許可要求に対して、要求された処理の実行可否を前記サーバー装置が判定するためのユーザーファイル情報を記憶する。
【０００９】
前記クライアント装置においては、記憶手段は、前記サーバー装置から取得した前記機密データを記憶する。認証手段は、前記サーバー装置に正規のユーザーによるアクセス要求か否かを認証させる際に、入力手段から入力されたユーザー情報を前記サーバー装置に伝送する。暗号化手段は、前記サーバー装置に伝送する各種データを、前記サーバー装置から第１の公開鍵を取得して暗号化する。擬似乱数発生手段は、前記サーバー装置から伝送される暗号化データを復号化する第２の復号鍵を生成するための、乱数値を生成する。公開鍵作成手段は、生成された前記乱数値から第２の復号鍵を生成し、生成した第２の復号鍵から第２の公開鍵を生成し、生成した第２の公開鍵を前記サーバー装置に伝送する。復号化手段は、前記サーバー装置から伝送される、前記第１の公開鍵により暗号化された暗号化データを、前記第２の復号鍵を用いて復号化する。ハッシュ値算出手段は、前記記憶手段に記憶された前記機密データに対する処理の実行許可を前記サーバー装置に要求する際に、当該機密データからハッシュ値を算出し、算出したハッシュ値を前記サーバー装置に伝送し、当該機密データに対する処理を終了する際に、当該機密データに乱数を付加して新たなハッシュ値を算出し、算出した新たなハッシュ値を前記サーバー装置に伝送する。データ閲覧手段は、前記サーバー装置により処理の実行を許可された前記機密データを閲覧するための専用のものである。
【００１０】
前記サーバー装置においては、認証手段は、前記クライアント装置から伝送された前記ユーザー情報と前記ユーザー情報記憶手段に記憶されている前記ユーザー情報とに基づいて、前記クライアント装置からのアクセス要求が正規のユーザーによるアクセス要求か否かを認証する。ドメイン認証手段は、前記クライアント装置が接続しているドメインを特定し、接続しているドメインが許可されているドメインであるか否かを認証する。暗号化手段は、前記クライアント装置に伝送する各種データを、前記クライアント装置から前記第２の公開鍵を取得して暗号化する。暗号擬似乱数発生手段は、前記クライアント装置から伝送される暗号化データを復号化する前記第１の復号鍵を生成するための、乱数値を生成する。公開鍵生成手段は、生成された乱数値から第１の復号鍵を生成し、生成した第１の復号鍵から前記第１の公開鍵を生成し、生成した第１の公開鍵を前記クライアント装置に伝送する。復号化手段は、前記クライアント装置から伝送される暗号化データを、前記第１の復号鍵を用いて復号化する。ユーザーファイル情報管理手段は、前記クライアント装置から前記機密データに対する処理の実行許可を要求された際に、要求された処理の実行可否を前記クライアント装置から伝送される前記ハッシュ値と前記ユーザーファイル情報記憶手段に記憶されている前記ユーザーファイル情報とに基づいて判定する。そして、前記クライアント装置が前記機密データに対する処理を終了する際に、前記クライアント装置から伝送される前記新たなハッシュ値を新たなユーザーファイル情報として前記ユーザーファイル情報記憶手段に記憶させる。
【００１１】
【特許文献１】特開２００４−７８６９６号公報
【特許文献２】特開２００４−３０４３３８号公報
【特許文献３】特開２００５−７１２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の課題は、ファイルシステムが入出力するファイルの正規性・完全性を検証するモジュールを追加して、ファイルの正規性・完全性を検証することである。
【課題を解決するための手段】
【００１３】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１４】
本発明によるファイルシステム（７）の完全性強化方法においては、前記ファイルシステム（７）が、あるファイルを、物理デバイス（２）に書き込むことを命令する。データ完全性検証モジュール（４）が、前記ファイルについて、第一のハッシュ値を算出する。オペレーティングシステム（１）が、前記ファイルに、前記第一のハッシュ値を付加する。前記オペレーティングシステム（１）が、前記物理デバイス（２）に対して、前記第一のハッシュ値が付加された前記ファイルを出力する。前記物理デバイス（２）が、前記第一のハッシュ値が付加された前記ファイルを格納する。
【００１５】
本発明によるファイルシステム（７）の完全性強化方法においては、前記ファイルシステム（７）が、前記ファイルを、前記物理デバイス（２）から読み出すことを命令する。前記物理デバイス（２）が、前記オペレーティングシステム（１）に対して、前記第一のハッシュ値が付加された前記ファイルを出力する。前記オペレーティングシステム（１）が、前記第一のハッシュ値が付加された前記ファイルを入力する。前記データ完全性検証モジュール（４）が、前記オペレーティングシステム（１）が入力した前記ファイルについて、第二のハッシュ値を算出する。前記データ完全性検証モジュール（４）が、前記第一のハッシュ値と、前記第二のハッシュ値とを照合する。前記第一のハッシュ値と、前記第二のハッシュ値とが一致しないと判断される場合に、前記データ完全性検証モジュール（４）が、前記ファイルシステム（７）に、その旨を通知する。
【００１６】
本発明によるファイルシステム（７）の完全性強化方法において、前記その旨を通知するときには、前記データ完全性検証モジュール（４）が、規定回数のリトライカウンタを設定する。そして、前記データ完全性検証モジュール（４）が、リトライカウンタの規定回数分だけリトライを行う。さらに、前記データ完全性検証モジュール（４）が、規定回数分のリトライを行っても、前記第一のハッシュ値と、前記第二のハッシュ値とが一致しない場合に、前記第一のハッシュ値と、前記第二のハッシュ値とは一致しないと判断する。
【００１７】
本発明によるファイルシステム（７）の完全性強化方法においては、前記第一のハッシュ値と、前記第二のハッシュ値とが一致した場合に、前記オペレーティングシステム（１）が、読み出した前記ファイルから前記第一のハッシュ値を除去する。前記ファイルシステム（７）が、前記第一のハッシュ値が除去された前記ファイルを受け取る。
【００１８】
本発明によるファイルシステム（７）の完全性強化方法においては、前記格納するステップに続けて、前記物理デバイス（２）に格納された前記第一のハッシュ値が付加された前記ファイルについて、読み込みテストを行う。
【００１９】
本発明によるファイルシステム（７）の完全性強化方法において、前記読み込みテストを行うときには、前記物理デバイス（２）が、前記オペレーティングシステム（１）に対して、前記第一のハッシュ値が付加された前記ファイルを出力する。そして、前記オペレーティングシステム（１）が、前記第一のハッシュ値が付加された前記ファイルを入力する。前記データ完全性検証モジュール（４）が、前記オペレーティングシステム（１）が入力した前記ファイルについて、第二のハッシュ値を算出する。前記データ完全性検証モジュール（４）が、前記第一のハッシュ値と、前記第二のハッシュ値とを照合する。前記第一のハッシュ値と、前記第二のハッシュ値とが一致しないと判断される場合に、前記データ完全性検証モジュール（４）が、前記ファイルシステム（７）に、その旨を通知する。
【発明の効果】
【００２０】
本発明によれば、ファイルシステムが入出力するファイルの正規性・完全性を検証するモジュールを追加して、ファイルの正規性・完全性を検証することができる。
【発明を実施するための最良の形態】
【００２１】
本発明の実施の形態について図面を参照して詳細に説明する。図１に、本実施の形態におけるシステム構成図を示す。図１は、コンピュータ内部を模式的に表したものであり、本実施の形態に関連するオペレーティングシステム１と、Ｉ／Ｏデバイス２とが図示されている。図中、オペレーティングシステム１は、Ｉ／Ｏデバイス２にアクセスし、ファイルをＩ／Ｏデバイス２に書き込み、また、ファイルをＩ／Ｏデバイス２から読み出す。Ｉ／Ｏデバイス２は、書き込み時には、オペレーティングシステム１から受け取ったファイルを保存し、読み出し時には、オペレーティングシステム１へ保存したファイルを出力する。
【００２２】
図１において、オペレーティングシステム１は、アプリケーション８と、ファイルシステム７と、Ｉ／Ｏ制御部３と、データ完全性検証モジュール４とを有している。アプリケーション８は、多くの場合、ファイルシステム７に対して、ファイルの書き込み及び読み出しを依頼する。特別な場合、例えば、シーケンシャルなＩ／Ｏを行う際などには、アプリケーション８は、ファイルシステム７を経由せずに、直接Ｉ／Ｏ制御部３に対して、データの読み書きを命令する。ファイルシステム７は、Ｉ／Ｏデバイス２に保存するデータをファイルとして管理する。一般に、ファイルは、実際のデータ部と、ファイルやディレクトリのメタデータを保持する構造体（メタデータ構造部という。）とから成る。Ｉ／Ｏ制御部３は、ファイルの書き込み命令を受けて、Ｉ／Ｏデバイス２にデータを書き込み、また、ファイルの読み出し命令を受けて、Ｉ／Ｏデバイス２からデータを読み出す。データ完全性検証モジュール４は、Ｉ／Ｏデバイス２へ書き込むファイルに対して、ハッシュ値を付加し、また、Ｉ／Ｏデバイス２から読み出すファイルについて、ハッシュ値を検証する。データ完全性検証モジュール４は、ハッシュ値算出部５とハッシュ値照合部６とを有し、当実施の形態においては、Ｉ／Ｏ制御部３と連携して動く。ハッシュ値算出部５は、Ｉ／Ｏ制御部３を経由して入出力されるファイルについて、ハッシュ値を算出する。ハッシュ値照合部６は、ハッシュ値算出部５が算出したハッシュ値と、Ｉ／Ｏデバイス２に保存されたハッシュ値とを照合する。
【００２３】
図２は、データ完全性検証モジュール４の動作の流れを表したフローチャートである。図２を用いて、データ完全性検証モジュール４の動作について詳細に説明する。まず、アプリケーション８からファイルの書き込み命令が発行された場合について説明する。ファイルシステム７がこの書き込み命令を受けた場合、Ｉ／Ｏ制御部３に対して、当該ファイルの書き込み命令を送出する。Ｉ／Ｏ制御部３は、書き込み命令を受け取ると、データ完全性検証モジュール４を呼び出す。呼び出されたデータ完全性検証モジュール４は、書き込むファイルについて、ハッシュ値Ａを生成する［ＳＴ１］。ハッシュ値Ａを生成したら、データ完全性検証モジュール４は、Ｉ／Ｏ命令が「読み込み処理」かどうかをチェックする［ＳＴ２］。Ｉ／Ｏ制御部３は、書き込み命令を受けているので、”Ｎｏ”へ進む。データ完全性検証モジュール４は、書き込むファイルの末尾に、ハッシュ値Ａを、Ｉ／Ｏデバイス２に保存するハッシュ値Ｂとして付加する。そして、Ｉ／Ｏデバイス２に対して、ハッシュ値Ｂが付加されたファイルを書き込む。この書き込みに続けて、読み込みテストを行うために、［ＳＴ１］へ戻る［ＳＴ３］。Ｉ／Ｏ制御部３は、書き込んだファイルを読み出し、データ完全性検証モジュール４は、このファイルについて、ハッシュ値Ａを生成する［ＳＴ１］。続いて、データ完全性検証モジュール４は、「読み込み処理」かどうかをチェックする［ＳＴ２］。この判定結果は、「読み込み処理」で、”Ｙｅｓ”であるので、データ完全性検証モジュール４は、既にファイルに付加されているハッシュ値Ｂを読み込む［ＳＴ４］。そして、ハッシュ値Ａとハッシュ値Ｂとを比較する［ＳＴ５］。ハッシュ値Ａとハッシュ値Ｂとが等しい場合には、正常に処理が完了したと判断し、書き込み処理を上位に返却する。一方、ハッシュ値Ａとハッシュ値Ｂとが等しくない場合には、何らかの原因でＩ／Ｏデバイス２にデータ不正が起こっている可能性がある。データ完全性検証モジュール４は、規定回数のリトライカウンタを設定する。そして、リトライカウンタを１ずつ増やしながら、リトライカウンタの規定回数分リトライを行う［ＳＴ６］。規定回数分のリトライでも、ハッシュ値が異なる現象が改善しない場合には、書き込み処理に異常ありと判断し、上位に対してエラーを返却する。
【００２４】
次に、アプリケーション８からファイルの読み出し命令が発行された場合について説明する。ファイルシステム７がこの読み出し命令を受けた場合、Ｉ／Ｏ制御部３に対して、当該ファイルの読み出し命令を送出する。Ｉ／Ｏ制御部３は、読み出し命令を受け取ると、Ｉ／Ｏデバイス２からファイルを読み出す。さらに、データ完全性検証モジュール４を呼び出す。呼び出されたデータ完全性検証モジュール４は、読み出したファイルについて、ハッシュ値Ａを生成する［ＳＴ１］。次に、「読み込み処理」かどうかをチェックする［ＳＴ２］。ここでは、「読み込み処理」であるので、読み出したファイルに付加されているハッシュ値Ｂを読み込む［ＳＴ４］。そして、ハッシュ値Ａとハッシュ値Ｂとを比較する［ＳＴ５］。ハッシュ値Ａとハッシュ値Ｂとが等しい場合には、正常に読み出し処理が完了したと判断し、処理を上位に返却する。Ｉ／Ｏ制御部３は、読み出したファイルからハッシュ値Ｂを除去して、ファイルシステム７へ送出し、ファイルシステム７は、当該ファイルをアプリケーション８へ出力する。一方、ハッシュ値Ａとハッシュ値Ｂとが等しくない場合には、何らかの原因で、ファイルの改ざんが行われている可能性がある。データ完全性検証モジュール４は、規定回数のリトライカウンタを設定する。そして、リトライカウンタを１ずつ増やしながら、リトライカウンタの規定回数分リトライを行う［ＳＴ６］。規定回数分のリトライでも、ハッシュ値が異なる現象が改善しない場合には、ファイルに異常ありと判断して、上位に対しエラーを返却する。データ完全性検証モジュール４は、ファイルシステム７に対して、ファイルの異常を通知する。ファイルシステム７は、この異常を、アプリケーション８に通知する。
【００２５】
続いて、アプリケーション８がファイルシステム７を経由せずに、直接Ｉ／Ｏ制御部３に対して書き込み命令を発行した場合について説明する。Ｉ／Ｏ制御部３は、書き込み命令を受け取ると、データ完全性検証モジュール４を呼び出す。呼び出されたデータ完全性検証モジュール４は、書き込むファイルについて、ハッシュ値Ａを生成する［ＳＴ１］。ハッシュ値Ａを生成したら、データ完全性検証モジュール４は、Ｉ／Ｏ命令が「読み込み処理」かどうかをチェックする［ＳＴ２］。Ｉ／Ｏ制御部３は、書き込み命令を受けているので、”Ｎｏ”へ進む。データ完全性検証モジュール４は、書き込むファイルの末尾に、ハッシュ値Ａを、Ｉ／Ｏデバイス２に保存するハッシュ値Ｂとして付加する。そして、Ｉ／Ｏデバイス２に対して、ハッシュ値Ｂが付加されたファイルを書き込む。この書き込みに続けて、読み込みテストを行うために、［ＳＴ１］へ戻る［ＳＴ３］。Ｉ／Ｏ制御部３は、書き込んだファイルを読み出し、データ完全性検証モジュール４は、このファイルについて、ハッシュ値Ａを生成する［ＳＴ１］。続いて、データ完全性検証モジュール４は、「読み込み処理」かどうかをチェックする［ＳＴ２］。この判定結果は、「読み込み処理」で、”Ｙｅｓ”であるので、データ完全性検証モジュール４は、既にファイルに付加されているハッシュ値Ｂを読み込む［ＳＴ４］。そして、ハッシュ値Ａとハッシュ値Ｂとを比較する［ＳＴ５］。ハッシュ値Ａとハッシュ値Ｂとが等しい場合には、正常に処理が完了したと判断し、書き込み処理を上位に返却する。一方、ハッシュ値Ａとハッシュ値Ｂとが等しくない場合には、何らかの原因でＩ／Ｏデバイス２に障害が発生している可能性がある。データ完全性検証モジュール４は、規定回数のリトライカウンタを設定する。そして、リトライカウンタを１ずつ増やしながら、リトライカウンタの規定回数分リトライを行う［ＳＴ６］。規定回数分のリトライでも、ハッシュ値が異なる現象が改善しない場合には、Ｉ／Ｏデバイス２に異常ありと判断し、上位に対してエラーを返却する。
【００２６】
データ完全性検証モジュール４は、ハッシュ値Ａを算出する際に、ファイルにおける実際のデータ部の全部又は一部に対して所定のハッシュ関数を演算しても良く、ファイルにおけるメタデータ構造部の全部又は一部に対して所定のハッシュ関数を演算しても良く、データ部及びメタデータ構造部の両者の全部又は一部に対して所定のハッシュ関数を演算しても良い。
【００２７】
以上説明したように、本実施の形態では、オペレーティングシステム１に、ファイルシステム７の機能を補強するデータ完全性検証モジュール４を設けている。これにより、直接ファイルを改ざんするタイプの不正アクセスや、Ｉ／Ｏデバイス２の不具合に対する耐性を向上させることができる。ファイルシステム７によって入出力されるファイルが、正しく更新されていない又は正しく読めていない場合に、ファイルシステム７は、ファイルのエラーを通知することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本実施の形態におけるシステム構成図である。
【図２】図２は、データ完全性検証モジュール４の動作の流れを表したフローチャートである。
【符号の説明】
【００２９】
１  オペレーティングシステム
２  Ｉ／Ｏデバイス
３  Ｉ／Ｏ制御部
４  データ完全性検証モジュール
５  ハッシュ値算出部
６  ハッシュ値照合部
７  ファイルシステム
８  アプリケーション
【図１】
2008257279.tif 000003
【図２】
2008257279.tif 000004