(57)【要約】【課題】ファイルが転送された場合であってもアクセス制限を適切に維持する。【解決手段】ファイルにアクセス制限を設定するシステムであって、単一の第１ファイルとして結合された複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて記憶する記憶部と、単一の第３ファイルを分割して複数の第４ファイルを生成する処理が行われたことを条件に、生成した複数の第４ファイルの少なくとも１つのハッシュ値を算出して、算出した当該ハッシュ値に一致するハッシュ値を記憶部から検索する検索部と、当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて記憶部に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する制限設定部とを備えるシステム。【選択図】図４
2008210300.tif 000002
【特許請求の範囲】
【請求項１】
ファイルにアクセス制限を設定するシステムであって、
単一の第１ファイルとして結合された複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに前記結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて記憶する記憶部と、
複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値を算出して、算出した当該ハッシュ値に一致するハッシュ値を前記記憶部から検索する検索部と、
当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて前記記憶部に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する制限設定部と
を備えるシステム。
【請求項２】
ファイルに対しアクセスの要求が発行されたことを検出する検出部を更に備え、
前記検索部は、前記検出部がアクセスの要求の発行を検出したことに応じ、アクセスが要求された当該ファイルのハッシュ値に一致するハッシュ値を前記記憶部から検索し、
前記制限設定部は、ハッシュ値が検出されたことを条件に、当該ファイルに対するアクセスに先立って、当該ファイルにアクセス制限を設定する
請求項１に記載のシステム。
【請求項３】
複数の情報処理装置を備えたシステムであって、
それぞれの情報処理装置が、
単一の第１ファイルを生成するために結合した複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに前記結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて記憶する記憶部と、
複数の第４ファイルを結合して生成された単一の第３ファイルを他の情報処理装置から受け取り、かつ、前記第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値を算出して、算出した当該ハッシュ値に一致するハッシュ値を前記記憶部から検索する検索部と、
当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて前記記憶部に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する制限設定部と
を有するシステム。
【請求項４】
それぞれの情報処理装置が、ファイルに対しアクセスの要求が発行されたことを検出する検出部を更に有し、
それぞれの情報処理装置において、
前記検索部は、当該情報処理装置の前記検出部がアクセスの要求の発行を検出したことに応じ、アクセスが要求された当該ファイルのハッシュ値に一致するハッシュ値を前記記憶部から検索し、
前記制限設定部は、当該ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、当該ファイルに対するアクセスに先立って、当該ファイルにアクセス制限を設定する
請求項３に記載のシステム。
【請求項５】
それぞれの情報処理装置が、
複数の第２ファイルを結合して単一の第１ファイルを生成する処理に応じて、少なくとも１つの当該第２ファイルのハッシュ値、当該第１ファイルのハッシュ値、および、ファイルが結合されたことを示す結合情報を、前記制限情報に対応付けて前記記憶部に格納し、さらに、
第３ファイルを分割して複数の第４ファイルを生成する処理に応じて、少なくとも１つの当該第４ファイルのハッシュ値、および、当該第３ファイルのハッシュ値に、ファイルが分割されたことを示す分割情報を対応付けて前記記憶部に格納する格納部を更に有し、
それぞれの情報処理装置において、
前記検索部は、当該情報処理装置の前記検出部がアクセスの要求の発行を検出したことに応じ、アクセスが要求された当該第４ファイルのハッシュ値に一致するハッシュ値、および、前記分割情報の組を当該情報処理装置の前記記憶部から検索し、検索されたハッシュ値および前記分割情報の組に対応する第３ファイルのハッシュ値を当該記憶部から読み出して、読み出した当該ハッシュ値、当該第４ファイルのハッシュ値、および、前記結合情報の組を、他の情報処理装置の前記記憶部から検索し、
前記制限設定部は、当該組が検索されたことを条件に、当該組に対応して当該記憶部に記憶された制限情報を当該記憶部から読み出して、当該第４ファイルに設定する
請求項４に記載のシステム。
【請求項６】
前記のファイルを結合する処理は、複数の第２ファイルをデータ圧縮して単一の第１ファイルを生成する処理であり、
前記のファイルを分割する処理は、単一の第３ファイルをデータ伸張して複数の第４ファイルを生成する処理である
請求項３に記載のシステム。
【請求項７】
前記のファイルを結合する処理は、電子メールおよび添付ファイルである複数の第２ファイルを、当該電子メールに当該添付ファイルを添付して添付後の電子メールである第１ファイルを生成する処理であり、
前記のファイルを分割する処理は、ファイルが添付された電子メールである第３ファイルから添付ファイルである第４ファイルを分離する処理である
請求項３に記載のシステム。
【請求項８】
それぞれの情報処理装置において、
前記記憶部は、前記複数の第２ファイルのうち少なくとも１つの第２ファイルについて、当該第２ファイルのハッシュ値および制限情報に更に対応付けて、当該第２ファイルのファイル名を記憶しており、
前記検索部は、前記複数の第４ファイルのうちの少なくとも１つの第４ファイルについて、当該第４ファイルのハッシュ値およびファイル名の組に一致するハッシュ値およびファイル名の組を、他の情報処理装置の前記記憶部から検索し、
前記制限設定部は、当該ハッシュ値およびファイル名の組が検索されたことを条件に、検索された当該ハッシュ値およびファイル名の組に対応付けて記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する
請求項３に記載のシステム。
【請求項９】
それぞれの情報処理装置において、
前記記憶部は、前記複数の第２ファイルのうち少なくとも１つの第２ファイルについて、当該第２ファイルのハッシュ値および制限情報に更に対応付けて、前記第１ファイルを生成した時刻を記憶しており、
前記検索部は、前記複数の第４ファイルのうちの少なくとも１つの第４ファイルについて、当該第４ファイルのハッシュ値に一致するハッシュ値、および、当該第４ファイルを生成した時刻よりも前の時刻の組を、他の情報処理装置の前記記憶部から検索し、
前記制限設定部は、当該ハッシュ値および時刻の組が検索されたことを条件に、検索された当該ハッシュ値および時刻の組に対応付けて記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する
請求項３に記載のシステム。
【請求項１０】
それぞれの情報処理装置において、
前記記憶部は、当該情報処理装置の内部から外部に転送されたファイルのハッシュ値を、内部から外部に転送されたことを示す出力情報に対応付けて記憶しており、
前記検索部は、前記第３ファイルのハッシュ値に一致し、かつ、前記出力情報に対応付けられて記憶されているハッシュ値を他の情報処理装置の前記記憶部から検索し、当該ハッシュ値が検索された当該記憶部から、第４ファイルのハッシュ値に一致するハッシュ値を検索する
請求項３に記載のシステム。
【請求項１１】
それぞれの情報処理装置において、
前記記憶部は、当該情報処理装置の内部から外部に転送されたファイルのハッシュ値を、前記出力情報、および、転送時刻に対応付けて記憶しており、さらに、
当該情報処理装置の外部から内部に転送されたファイルのハッシュ値を、外部から内部に転送されたことを示す入力情報、および、転送時刻に対応付けて記憶しており、
前記検索部は、他の情報処理装置から受け取った第３ファイルを分割して複数の第４ファイルを生成する処理が行われたことを条件に、前記第３ファイルのハッシュ値および前記入力情報に対応する転送時刻を、当該情報処理装置の前記記憶部から検索し、当該ハッシュ値に一致するハッシュ値、および、当該転送時刻よりも前の転送時刻に対応付けられている前記出力情報を、他の情報処理装置の前記記憶部から検索し、検索された当該記憶部から、第４ファイルのハッシュ値に一致するハッシュ値を検索する
請求項１０に記載のシステム。
【請求項１２】
前記のファイルの転送は、当該情報処理装置に着脱可能な記憶装置との間でファイルを転送して当該記憶装置を着脱する操作であり、
それぞれの情報処理装置において、
前記記憶部は、当該情報処理装置の内部から外部に転送されたファイルのハッシュ値を、前記出力情報、記憶装置を取り外した時刻、および、当該ファイルを転送した記憶装置の識別情報に対応付けて記憶し、さらに、
当該情報処理装置の外部から内部に転送されたファイルのハッシュ値を、前記入力情報、記憶装置を装着した時刻、および、当該ファイルを転送した記憶装置の識別情報に対応付けて記憶し、
前記検索部は、他の情報処理装置から受け取った第３ファイルを分割して複数の第４ファイルを生成する処理が行われたことを条件に、前記第３ファイルのハッシュ値および前記入力情報に対応する時刻および識別情報の組を、当該情報処理装置の前記記憶部から検索し、当該ハッシュ値に一致するハッシュ値、当該時刻よりも前の時刻、および、当該識別情報に一致する識別情報に対応付けられている前記出力情報を、他の情報処理装置の前記記憶部から検索し、検索された当該記憶部から、第４ファイルのハッシュ値に一致するハッシュ値を検索する
請求項１１に記載のシステム。
【請求項１３】
前記のファイルの転送は、情報処理装置と他の情報処理装置との間の電子メールの送受信であり、
それぞれの情報処理装置において、
前記記憶部は、当該情報処理装置の内部から外部に送信された電子メールのハッシュ値を、前記出力情報、転送時刻、および、当該電子メールのヘッダの内容を識別する識別情報に対応付けて記憶し、さらに、
当該情報処理装置の外部から内部に転送された電子メールのハッシュ値を、前記入力情報、転送時刻、および、当該電子メールのヘッダの内容を識別する識別情報に対応付けて記憶し、
前記検索部は、他の情報処理装置から受け取った第３ファイルを分割して複数の第４ファイルを生成する処理が行われたことを条件に、前記第３ファイルのハッシュ値および前記入力情報に対応する転送時刻および識別情報の組を、当該情報処理装置の前記記憶部から更に検索し、当該ハッシュ値に一致するハッシュ値、当該転送時刻よりも前の転送時刻、および、当該識別情報に一致する識別情報に対応付けられている前記出力情報を、他の情報処理装置の前記記憶部から検索し、検索された当該記憶部から、第４ファイルのハッシュ値に一致するハッシュ値を検索する
請求項１１に記載のシステム。
【請求項１４】
前記検索部の検索においてハッシュ値の一致に加えて満たすべき条件を設定する条件設定部を更に備え、
それぞれの情報処理装置において、
前記記憶部は、前記複数の第２ファイルのうち少なくとも１つについて、前記複数の第２ファイルから前記第１ファイルを生成する処理の属性を更に記憶しており、
前記検索部は、他の情報処理装置から受け取った前記第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、当該第４ファイルのハッシュ値と一致し、かつ、当該処理の属性との間で前記条件設定部により設定された条件が満たされる属性の組を、他の情報処理装置の前記記憶部から検索し、
前記制限設定部は、当該ハッシュ値および属性の組が検索されたことを条件に、当該第４ファイルにアクセス制限を設定する
請求項３に記載のシステム。
【請求項１５】
前記条件設定部は、検索するファイルの種別毎に、前記検索部の検索においてハッシュ値の一致に加えて満たすべき条件を設定し、
それぞれの情報処理装置において、
前記検索部は、他の情報処理装置から受け取った第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、当該第４ファイルのハッシュ値と一致し、かつ、当該処理の属性との間で前記条件設定部により当該第４ファイルの種別に対し設定された条件が満たされる属性の組を、他の情報処理装置の前記記憶部から検索する
請求項１４に記載のシステム。
【請求項１６】
ファイルにアクセス制限をコンピュータにより設定する方法であって、
単一の第１ファイルとして結合された複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに前記結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて、コンピュータの記憶部に記憶することと、
複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値を、コンピュータの検索部により算出させて、算出した当該ハッシュ値に一致するハッシュ値を前記記憶部から検索させることと、
当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて前記記憶部に記憶された制限情報に基づいて、コンピュータの制限設定部により、当該第４ファイルにアクセス制限を設定させることと
を備える方法。
【請求項１７】
ファイルにアクセス制限を設定するシステムとして、コンピュータを機能させるプログラムであって、
前記コンピュータを、
単一の第１ファイルとして結合された複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに前記結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて記憶する記憶部と、
複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値を算出して、算出した当該ハッシュ値に一致するハッシュ値を前記記憶部から検索する検索部と、
当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて前記記憶部に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する制限設定部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルアクセスを制御する技術に関する。特に、本発明は、ファイルのアクセス制限を管理する技術に関する。
【背景技術】
【０００２】
強制アクセス制御（Mandatory Access Control, MAC）を採用したコンピュータシステムにおいて、アクセス主体からアクセス対象に対するアクセスは、予め設定されたアクセス制限の情報に基づいて制限される（非特許文献１−４を参照。）。アクセス制限の情報は、アクセス対象であるデータにラベルとして付加されて管理される。従って、アクセス制限の情報は、アクセス対象のデータに伴って移動し、データの移動先においてもそのアクセス制限の情報に基づいてアクセスが制限される。
【０００３】
一方、コンピュータシステムにおけるデータの流れは様々である。たとえば、データはファイルとしてメディアに記録されたり、メディアに記録されたファイルが他の情報処理装置に読み出されたりする。また、データはファイルとして電子メールに添付され、全く異なるネットワーク内のコンピュータに対し送信される場合もある。さらには、データ圧縮などの技術において、複数のファイルを結合して単一のファイルを生成する処理も行われている。データの流れはこのように様々な形態があるので、その全ての流れに沿ってアクセス制限の情報を移動させるのは困難な場合がある。
【０００４】
非特許文献５−９については後述する。
【非特許文献１】D. E. Bell and L. J. LaPadula. Secure computer system: Unified exposition and multics interpretation. Technical report, MITRE MTR-2997, March 1976.
【非特許文献２】K. J. Biba. Integrity Considerations for Secure Computer Systems. Technical Report MTR-3153, Mitre Corporation, Mitre Corp, Bedford MA, June 1975.
【非特許文献３】J. M. McCune, S. Berger, R. C´aceres, T. Jaeger, and R. Sailer. A system for distributed mandatory access control. In IBM Research Report RC23865, 2006.
【非特許文献４】Elena Ferrari, Pierangela Samarati, Elisa Bertino, and Sushil Jajodia. Providing flexibility in information flow control for object-oriented systems. In Proc. IEEE Symposium on Security and Privacy.
【非特許文献５】R. Sailer, X. Zhang, T. Jaeger, and L. van Doorn. Design and implementation of a TCG-based integrity measurement architecture. In Proceedings of the USENIX Security Symposium, 2004.
【非特許文献６】John L. Griffin, Trent Jaeger, Ronald Perez, Reiner Sailer, Leendert van Doorn, and Ram´on C´aceres. Trusted virtual domains: Toward secure distributed services. In Proceedings of the Workshop on Hot Topics in System Dependability, 2005.
【非特許文献７】A. Bussani, J. L. Griffin, B. Jansen, K. Julisch, G. Karjoth, H. Maruyama, M. Nakamura, R. Perez, M. Schunter, A. Tanner, L. Van Doorn, E. A. Van Herreweghen, M. Waidner, and S. Yoshihama.Trusted virtual domains: Secure foundations for business and it services. In IBM Research Report RC23792, 2005.
【非特許文献８】S. Yoshihama, T. Ebringer, M. Nakamura, S. Munetoh, and H. Maruyama. Ws-attestation: Efficient and fine-grained remote attestation on web services. In Proceedings of the 2005 IEEE International Conference on Web Services (ICWS 2005), July 2005.
【非特許文献９】Y.Watanabe, S. Yoshihama, T. Mishina, M. Kudo, and H. Maruyama. Bridging the gap between intercommunication boundary and internal trusted components. In European Symposium On Research In Computer Security (ESORICS), September 2006.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
たとえば、複数のファイルを結合してデータ圧縮し、圧縮後のデータを更に伸張すると、各ファイルに設定されていたアクセス制限が継承されない場合がある。圧縮用ソフトウェアやオペレーティングシステムの仕様によってはアクセス制限が承継される場合があるが、圧縮後のファイルが転送されるコンピュータで、圧縮時に用いられたソフトウェアやＯＳが動作しているとは限らない。このような場合、従来は、情報漏洩の防止を優先するべく、圧縮する対象となる複数のファイルに設定されるアクセス制限のうち、最も厳しいアクセス制限を選択して、圧縮後のファイルに設定している。そして、伸張時には、圧縮後のファイルに設定されているアクセス制限を、伸張後の各ファイルに設定している。しかしながら、この方法では、データ圧縮および伸張を繰り返すことでアクセス制限が徐々に厳しくなり、適切ではない場合があった。
【０００６】
また、別のアプローチとして、従来、軍事用のシステム等で情報を適切に管理するための技術として、多階層セキュリティ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｓｅｃｕｒｉｔｙ）が用いられている。これは、セキュリティの高さの段階ごとに、アクセス主体、例えばコンピュータを予め分類しておき、より段階の高い分類からより段階の低い分類へ情報を出力することを禁止する技術である。同一の分類に属するコンピュータは互いに情報を参照できる。この技術は、情報を授受するコンピュータの集合が事前に分かっている場合には、アクセス制御が厳格となって有効である。しかしながら、インターネット等の一般のネットワークにおいては、情報の参照を許可するコンピュータの集合を予め静的に定めるのは現実的でない。
【０００７】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の形態においては、ファイルにアクセス制限を設定するシステムであって、単一の第１ファイルとして結合された複数の第２ファイルのうち少なくとも１つについて、当該第２ファイルのハッシュ値と、当該第２ファイルに前記結合する処理の前に設定されていたアクセス制限を示す制限情報とを対応付けて記憶する記憶部と、複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの前記第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値を算出して、算出した当該ハッシュ値に一致するハッシュ値を前記記憶部から検索する検索部と、当該第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて前記記憶部に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する制限設定部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムとしてコンピュータを動作させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、情報システム１０の全体構成を示す。情報システム１０は、通信ネットワークを介して相互に接続された情報処理装置２０−１〜６を備える。情報処理装置２０−１〜３は、同一の局所ネットワークに接続する。情報処理装置２０−４〜６は、当該局所ネットワークとは異なる他の局所ネットワークに接続する。この情報システム１０は、情報処理装置２０−１〜６が局所ネットワークの境界を越えてファイルを転送し、または、転送のために複数のファイルを結合して単一のファイルを生成する場合においても、ファイルに設定されたアクセス制限を適切に維持することを目的とする。
【００１１】
図２は、情報処理装置２０−１から情報処理装置２０−６にファイルを転送する場合において、各ファイルに設定されるアクセス制限の第１例を示す。情報処理装置２０−１は、ファイルｆ１と、ファイルｆ２と、ファイルｆ３とを記憶している。これらのファイルには、それぞれ、アクセス制限ｃ１、アクセス制限ｃ２およびアクセス制限ｃ３が設定されている。情報処理装置２０−１は、ファイルｆ１−ｆ３を結合してファイルａを生成する。情報処理装置２０−１は、ファイルａに対し、アクセス制限ｃ１−ｃ３のうち最も制限の強いｃ２を選択して、結合後のファイルａに設定する。これは、セキュリティを優先して、最も制限の強いｃ２が設定されたファイルｆ２の内容は不用意に漏洩するのを防止するためである。
【００１２】
次に、情報処理装置２０−１は、アクセス制限ｃ４の設定された電子メールに、ファイルａを添付して、電子メールｍ´を生成する。この電子メールｍ´には、アクセス制限ｃ４の方がアクセス制限ｃ３と比較して制限が強いので、アクセス制限ｃ４が設定される。情報処理装置２０−６は、この電子メールｍ´を受信して、この電子メールｍ´から添付ファイルａを分離する。電子メールにファイルを添付するソフトウェアが、情報処理装置２０−１および情報処理装置２０−６で共通する場合には、分離した添付ファイルには添付前のアクセス制限ｃ２が設定される場合がある。しかしながら、電子メールの送信先にそのようなソフトウェアがインストールされているとは限らない。このため、送信先の情報処理装置２０−６において、電子メールから添付ファイルａを分離したときに、それにどのようなアクセス制限を設定するべきか不明な場合がある。
【００１３】
この場合、情報処理装置２０−６は、セキュリティを優先して、分離したファイルａに対し、電子メールｍ´に設定されていたアクセス制限ｃを設定する。電子メールｍ´に設定されているアクセス制限ｃ４は、セキュリティを優先したとすれば、それに添付された全ファイルの中で最も制限の強いアクセス制限であるはずだからである。このように、情報処理装置２０−１および情報処理装置２０−６の処理を比較すると、同じファイルａであっても、電子メールへの添付前後でそのアクセス制限が変化してしまう場合がある。そして、変化の方向は、制限がより強くなる方向となる。これは、ファイル圧縮・伸張についてもいえる。即ち、情報処理装置２０−６が、ファイルａを伸張してファイルｆ１−ｆ３を生成する場合、セキュリティを優先したとすれば、ファイルｆ１−ｆ３にはアクセス制限ｃ４がそれぞれ設定される。この結果、ファイルｆ１−ｆ３に設定されるアクセス制限は、圧縮処理前よりも強くなる。
【００１４】
図３は、情報処理装置２０−１から情報処理装置２０−６にファイルを転送する場合において、各ファイルに設定されるアクセス制限の第２例を示す。ファイルｆ１−ｆ３を結合してファイルａを生成し、ファイルａを電子メールｍに添付して電子メールｍ´を生成するところまでは第１例と同様である。即ち、電子メールｍ´には、それまでの処理において最も強いアクセス制限ｃ４が設定される。情報処理装置２０−６は、電子メールｍ´を受信して、その電子メールｍ´から添付ファイルａを分離する。添付ファイルａにアクセス制限を設定しようとするときに、何らかの方法でそれが情報処理装置２０−１におけるファイルａと同一であることが分かれば、添付前に設定されていたアクセス制限を添付後のファイルａに設定できる。
【００１５】
また、情報処理装置２０−６は、ファイルａを伸張してファイルｆ１−ｆ３を生成する。伸張後のファイルｆ１−ｆ３にアクセス制限を設定しようとするときに、何らかの方法でそれらが情報処理装置２０−１におけるファイルｆ１−ｆ３と同一であることが分かれば、圧縮前に設定されていたアクセス制限を伸張後のファイルｆ１−ｆ３に設定できる。
このように、圧縮用のソフトウェアやオペレーティングシステムの仕様が統一されていない場合や、局所ネットワークの境界を越えてファイル転送される場合であっても、圧縮前後や添付前後でファイルの同一性を判定できれば、アクセス制限を適切に継承することができる。本実施形態に係る情報処理装置２０−１は、このようにファイルの同一性を判定することで、アクセス制限の承継を可能とすることを目的とする。以下、具体的に説明してゆく。
【００１６】
図４は、情報処理装置２０−１の機能構成の一例を示す。情報処理装置２０−１は、後述のＣＰＵ１０００、ＲＡＭ１０２０およびハードディスクドライブ１０４０等の処理により、オペレーティングシステム２００−１と、制限設定モジュール２１０−１とを動作させている。制限設定モジュール２１０−１は、オペレーティングシステム２００−１において発生したイベントを検出することにより、利用者の指示や他のソフトウェアの指示に基づくファイル操作を検出する。そして、制限設定モジュール２１０−１は、ファイルの同一性判断その他の処理を行った後、オペレーティングシステム２００−１に指示して、操作後のファイルに対しアクセス制限を設定する。具体的には、制限設定モジュール２１０−１は、ＣＰＵ１０００その他のハードウェアを、検出部２２０−１と、格納部２２５−１と、記憶部２３０−１と、検索部２４０−１と、制限設定部２５０−１と、連携部２６０−１として機能させる。なお、ファイルの同一性を精度良く判断するためには、情報処理装置２０−１において各ソフトウェア・モジュールが、悪意ある利用者の改ざん等を受けずに正しく動作していることが前提となる。このような正常動作の検証については、上述の非特許文献５−９を参照されたい。
【００１７】
検出部２２０−１は、複数の第２ファイルを結合して単一の第１ファイルを生成する処理を検出する。これに応じ、格納部２２５−１は、この第１ファイル、および、それぞれの第２ファイルのハッシュ値を算出して、記憶部２３０−１に格納する。第１ファイルとは、例えば図２−３の情報処理装置２０−１におけるファイルａであり、第２ファイルとは、例えば図２−３の情報処理装置２０−１におけるファイルｆ１−３のそれぞれである。また、格納部２２５−１は、この結合の処理前に各第２ファイルに設定されていたアクセス制限を示す制限情報を、これらのハッシュ値に対応付けて記憶部２３０−１に格納する。制限情報とは、例えば図２−３の情報処理装置２０−１におけるｃ１−ｃ３であり、具体的には、ユーザと操作（ファイル書込み、読出など）の組合せ毎に、そのユーザにその操作を許可するかどうかを示すものである。
【００１８】
また、検出部２２０−１は、ファイルの同一性判断の精度を高めるべく、結合処理の時刻およびファイル名を記憶部２３０−１に格納してもよい。この精度を更に高めるべく、格納部２２５−１は、ファイルを結合する処理やファイルを転送する処理についても、各ファイルのハッシュ値および処理時刻を記憶部２３０−１に格納してもよい。さらに、検出部２２０−１は、ハッシュ値を必要なタイミングで検索部２４０−１により検索させるべく、第４ファイルに対しアクセスの要求が発行されたことを検出して、検索部２４０−１に通知してもよい。
【００１９】
記憶部２３０−１は、既に述べた格納部２２５−１の処理により、各ファイルのハッシュ値、制限情報、時刻やファイル名等を記憶している。検索部２４０−１は、複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの第４ファイルを生成する処理が行われたことを条件に、生成した当該第４ファイルのハッシュ値に一致するハッシュ値を記憶部２３０−１の第２ファイルのハッシュ値から検索する。このハッシュ値の検索は、ある第４ファイルにアクセスの要求が発行されたことに応じて行われることが好ましい。制限設定部２５０−１は、この第４ファイルのハッシュ値に一致するハッシュ値が検索されたことを条件に、検索された当該ハッシュ値に対応付けて記憶部２３０−１に記憶された制限情報に基づいて、当該第４ファイルにアクセス制限を設定する。これにより、例えば図３に示したように、情報処理装置２０−１における結合前のファイルｆ１と、情報処理装置２０−６における分割後のファイルｆ１との同一性が判断されて、アクセス制限を適切に維持することができる。
【００２０】
連携部２６０−１は、記憶部２３０−１に記憶されたハッシュ値および制限情報を読み出して、情報処理装置２０−２〜６を含む情報処理装置２０−２〜Ｎに送信する。また、連携部２６０−１は、情報処理装置２０−２〜Ｎの記憶部（記憶部２３０−２〜Ｎとする）からハッシュ値および制限情報を読み出して記憶部２３０−１に記憶する。このようなハッシュ値の共有は、情報処理装置２０−１における他の処理を妨害しない範囲内で、例えば定期的に行われてもよい。この共有により、ファイルの分割および結合が異なる複数の情報処理装置２０において処理された場合であっても、アクセス制限の情報を適切に維持させることができる。
【００２１】
条件設定部２７０−１は、検索部２４０−１の検索においてハッシュ値の一致に加えて満たすべき条件を設定する。満たすべき条件は、ファイルの同一性を判断するためのポリシーとして把握することができる。例えば、条件設定部２７０−１がハッシュ値の一致に加えて時刻の先後関係を設定した場合、検索部２４０−１は、ハッシュ値の検索時に時刻を更に用いる。具体的には、検索部２４０−１は、第４ファイルのアクセスが要求された場合、その第４ファイルのハッシュ値に一致し、かつその第４ファイルを生成した時刻よりも前の時刻に結合された第２ファイルのハッシュ値を記憶部２３０−１から検索する。検索されるハッシュ値が同一のファイルを示すものであるならば、結合の処理の方が分割の処理より先のはずだからである。このように時刻の情報を利用することで、ファイルの同一性をより正確に判断することができる。
【００２２】
なお、検索において満たすべき条件は、システム管理者などによる外部の指示に応じて条件設定部２７０−１が任意に設定可能であることが望ましい。これにより、制限設定モジュール２１０−１の利用者の状況に応じて、セキュリティおよびアクセスの自由度をどのような比重で優先するかを調整することができる。これに代えて、検索において満たすべき条件は、ある程度自動的に設定されるものであってもよい。例えば、条件設定部２７０−１は、検索するファイルの種別毎に、検索部２４０−１の検索において満たすべき条件を設定してもよい。例えば、テキストファイルならばハッシュ値に加えてファイル名および時刻の先後を条件とし、バイナリファイルならばハッシュ値の一致のみを条件としてもよい。
【００２３】
図５は、記憶部２３０−１のデータ構造の一例を示す。記憶部２３０−１は、処理されたファイル操作毎に、その処理の属性と、その処理前に入力ファイルに設定されていたアクセス制限とを対応付けて記憶する。処理の属性とは、たとえば、その処理時刻と、その操作への入力としたファイルと、その操作の結果出力されたファイルと、その操作の種類とを含む。
【００２４】
複数の第２ファイルが結合されて第１ファイルが生成された場合、記憶部２３０−１は、少なくとも１つの第２ファイルのファイル名およびハッシュ値を入力ファイルフィールドに記憶し、第１ファイルのファイル名およびハッシュ値を出力ファイルフィールドに記憶する。また、記憶部２３０−１は、結合の処理時刻を時刻フィールドに記憶し、結合の処理の種類を操作フィールドに記憶する。また、これらのハッシュ値等に対応付けて、記憶部２３０−１は、結合の処理の前に当該第２ファイルに設定されていたアクセス制限を示す制限情報を記憶する。一例として、あるエントリには、６月３日の１１：００に、Ａ．ｐｐｔという名前のファイル（ハッシュ値１Ａ２ＢＣ４）が他のファイルと共にデータ圧縮され、Ｚ．ｐｐｔという名前のファイル（ハッシュ値２Ｂ３１５６）が生成されたことが記憶される。そして、データ圧縮の前にＡ．ｐｐｔに設定されていたアクセス制限はｃ１である。
【００２５】
記憶部２３０−１が記憶する結合の処理とは、データ圧縮の処理のみならず、ファイルを電子メールに添付する処理を含む。この例として、記憶部２３０−１は、あるエントリにおいて、６月３日の１５：００に、Ｚ．ｚｉｐという名前のファイル（ハッシュ値２Ｂ３１５６）が、電子メール（ハッシュ値２Ｄ４Ｃ５１）に添付されたことを記憶する。また、記憶部２３０−１は、これらに対応付けて、添付前にＺ．ｐｐｔに設定されていたアクセス制限を示す制限情報としてｃ２を記憶する。
【００２６】
既に述べたように、記憶部２３０−１は、ファイルを結合する処理のみならず、分割する処理についても、そのハッシュ値やファイル名等を記憶してよい。たとえば、複数の第４ファイルを結合して生成された単一の第３ファイルを分割して少なくとも１つの第４ファイルが生成された場合、記憶部２３０−１は、当該第３ファイルのファイル名およびハッシュ値を入力ファイルフィールドに記憶し、当該第４ファイルのファイル名およびハッシュ値を出力ファイルフィールドに記憶する。また、記憶部２３０−１は、分割の処理時刻を時刻フィールドに記憶し、分割の処理の種類を操作フィールドに記憶する。一例として、あるエントリには、６月４日の１５：００に、Ｚ．ｚｉｐという名前のファイル（ハッシュ値２Ｂ３１５６）が分割され、Ａ．ｐｐｔという名前のファイル（ハッシュ値１Ａ２ＢＣ４）が生成されたことが記憶される。
【００２７】
記憶部２３０−１が記憶する分割の処理とは、データ伸張の処理のみならず、電子メールから添付ファイルを分離する処理を含む。この例として、記憶部２３０−１は、あるエントリにおいて、６月３日の１６：００に、電子メール（ハッシュ値３Ｄ４５１８）から、Ｚ．ｚｉｐという名前のファイル（ハッシュ値２Ｂ３１５６）が分離されて保存されたことを記憶する。
【００２８】
また、記憶部２３０−１は、ファイルを結合・分割する処理のみならず、ファイルを転送する処理についても、そのハッシュ値やファイル名等を記憶してよい。例えば、記憶部２３０−１は、情報処理装置２０−１の内部から外部にファイルが転送された場合、そのファイルのハッシュ値を、内部から外部に転送されたことを示す出力情報、転送時刻その他の情報に対応付けて記憶する。一例として、あるエントリには、６月３日の１２：００に、Ｚ．ｚｉｐという名前のファイル（ハッシュ値２Ｂ３１５６）が書き込まれたメディアが取り外されたことが記憶されている。このとき、記憶部２３０−１は、出力情報および転送時刻に更に対応付けて、ファイルを転送した記憶装置の識別情報を記憶してもよい。記憶装置とは、例えば、ＵＳＢメモリ等の半導体デバイス、リムーバブル・ハードディスクドライブ、書込み可能な光学メディアなどであり、記憶装置の識別情報とは、例えば、これらの製造者、製品の種類、製造番号等を識別する情報である。この識別情報は、出力ファイルフィールドに記憶されてもよい。
【００２９】
同様に、ファイルが情報処理装置２０−１の外部から内部に転送された場合、記憶部２３０−１は、そのファイルのハッシュ値を、外部から内部に転送されたことを示す入力情報、転送時刻、および、当該ファイルを転送した記憶装置の識別情報に対応付けて記憶する。一例として、あるエントリには、６月４日の１２：００に、Ｚ．ｚｉｐという名前のファイル（ハッシュ値２Ｂ３１５６）を記録したメディア（識別情報５Ｄ３９８Ｃ）が装着されたことが記憶されている。
なお、ファイルの転送はメディアの着脱に限定されるものではない。ファイルの転送とは、例えば、電子メールであるファイルを他の情報処理装置２０に送信する処理であってよい。この場合、記憶部２３０−１は、記憶装置の識別情報に代えて、その電子メールのヘッダの内容を識別する識別情報を、ハッシュ値等に対応付けて記憶する。
【００３０】
図６は、情報処理装置２０−１が結合処理を検出した場合の処理の流れを示す。検出部２２０−１は、ファイルを結合する処理の要求を検出する（Ｓ６００）。ファイルを結合する処理とは、例えば、複数の第２ファイルをデータ圧縮して単一の第１ファイルを生成する処理である。これに代えて、ファイルを結合する処理とは、添付ファイルである第２ファイルを電子メールである他の第２ファイルに添付して、添付後の電子メールである第１ファイルを生成する処理であってもよい。
【００３１】
この検出の処理は、例えば、検出部２２０−１が、オペレーティングシステム２００−１により検出されるファイル結合のイベントをフックすることによって実現される。詳細には、オペレーティングシステム２００−１が提供する、ファイル結合のイベントが検出された場合に実行させるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）のプログラム中の、結合処理の実行に先立って実行される部分に、検出部２２０−１を実現するプログラムの呼び出しを記述することにより実現される。
【００３２】
ファイルを結合する処理が検出されなければ（Ｓ６００：ＮＯ）、情報処理装置２０−１は図６の処理を終了する。一方、ファイルを結合する処理が検出されたことを条件に（Ｓ６００：ＹＥＳ）、格納部２２５−１は、ファイルが結合されたことを示す結合情報として、結合の処理の種類を示す操作名を記憶部２３０−１に格納する（Ｓ６１０）。格納される操作名は、例えば、データ圧縮であれば「圧縮」、電子メールにファイルを添付する処理であれば「添付」である。そして、結合前のそれぞれの第２ファイルについて、以下の処理を繰り返す（Ｓ６２０）。
【００３３】
まず、格納部２２５−１は、当該第２ファイルに設定されているアクセス制限を示す制限情報を記憶部２３０−１に格納する（Ｓ６２５）。次に、格納部２２５−１は、当該第２ファイルのハッシュ値を算出して、当該制限情報に対応付けて記憶部２３０−１に格納する（Ｓ６３０）。ハッシュ値は、たとえば、第２ファイルをバイナリ・データとみなして、そのバイナリ・データをハッシュ関数に入力することによって算出される。このハッシュ関数は、入力データが異なる場合には極めて高い確率で異なる出力データを出力する関数である。さらに、格納部２２５−１は、当該第２ファイルのファイル名を、当該制限情報およびハッシュ値に対応付けて記憶部２３０−１に格納する（Ｓ６３５）。格納部２２５−１は、以上の処理を、各第２ファイルについて繰り返す（Ｓ６４０）。
【００３４】
そして、検出部２２０−１はオペレーティングシステム２００−１に一旦処理を戻し、オペレーティングシステム２００−１は、複数の第２ファイルを結合して単一の第１ファイルを生成する処理を行う（Ｓ６５０）。この処理の完了を条件に、格納部２２５−１は、結合したこの第１ファイルのハッシュ値を算出して（Ｓ６６０）、第２ファイルについてＳ６２５−Ｓ６３５において記憶した制限情報等に対応付けて格納する（Ｓ６７０）。第１ファイルのハッシュ値は、全ての第２ファイルのそれぞれに対応付けて格納されることが好ましい。同様に、格納部２２５−１は、第１ファイルのファイル名を、各第２ファイルに対応付けて記憶部２３０−１に格納する（Ｓ６８０）。そして、格納部２２５−１は、この結合の処理が実行された時刻を、各第２ファイルに対応付けて記憶部２３０−１に格納する（Ｓ６９０）。
【００３５】
図７は、情報処理装置２０−１が分割処理を検出した場合の処理の流れを示す。検出部２２０−１は、ファイルを分割する処理の要求を検出する（Ｓ７００）。ファイルを分割する処理とは、例えば、複数の第４ファイルをデータ圧縮して生成した単一の第３ファイルをデータ伸張して、少なくとも１つの第４ファイルを生成する処理である。これに代えて、ファイルを分割する処理とは、電子メールである第３ファイルから添付ファイルである第４ファイルを分離する処理であってもよい。この検出の処理は、結合の処理の検出と同様、検出部２２０−１が、オペレーティングシステム２００−１により検出されるイベントをフックすることによって実現されてよい。
【００３６】
ファイルを分割する処理が検出されなければ（Ｓ７００：ＮＯ）、情報処理装置２０−１は図７の処理を終了する。一方。ファイルを分割する処理が検出されたことを条件に（Ｓ７００：ＹＥＳ）、格納部２２５−１は、ファイルが分割されたことを示す分割情報として、分割の処理の種類を示す操作名を記憶部２３０−１に格納する（Ｓ７０５）。格納される操作名は、例えば、データ伸張であれば「伸張」、電子メールからの添付ファイルの分離であれば「保存」である。そして、格納部２２５−１は、分割前の第３ファイルのハッシュ値を算出して（Ｓ７１０）、既に格納した操作名に対応付けて記憶部２３０−１に格納する（Ｓ７１５）。また、格納部２２５−１は、この第３ファイルのファイル名を、既に格納した操作名およびハッシュ値に対応付けて記憶部２３０−１に格納する（Ｓ７２０）。そして、検出部２２０−１はオペレーティングシステム２００−１に一旦処理を戻し、オペレーティングシステム２００−１は分割処理を実行する（Ｓ７３０）。
【００３７】
この処理の完了を条件に、格納部２２５−１は、分割したそれぞれの第４ファイルについて以下の処理を繰り返す（Ｓ７４０）。まず、格納部２２５−１は、当該第４ファイルのハッシュ値を算出して（Ｓ７４５）、算出したそのハッシュ値を、上記第３ファイルについて既に記憶したハッシュ値等に対応付けて記憶部２３０−１に格納する（Ｓ７５０）。また、格納部２２５−１は、当該第４ファイルのファイル名を、既にＳ７５０において格納したハッシュ値に対応付けて記憶部２３０−１に格納する（Ｓ７６０）。情報処理装置２０−１は、以上の処理を各第４ファイルについて繰り返す（Ｓ７７０）。そして、格納部２２５−１は、図７の処理において記憶部２３０−１に格納した各エントリ（即ち、各第４ファイルについて、ハッシュ値およびファイル名を、第３ファイルのハッシュ値およびファイル名に対応付けたエントリ）に対応付けて、更に、分割処理の時刻を格納する（Ｓ７８０）。
【００３８】
図８は、情報処理装置２０−１が入力処理又は出力処理を検出した場合の処理の流れを示す。検出部２２０−１は、入力処理又は出力処理を検出する（Ｓ８００）。入力処理とは、ファイルを情報処理装置２０−１の外部から内部に転送する処理であり、たとえば、着脱可能な記憶装置を情報処理装置２０−１に装着して当該記憶装置からファイルを読み出して当該記憶装置を取り外す処理、または、電子メールを受信する処理のことをいう。一方、出力処理とは、ファイルを情報処理装置２０−１の内部から外部に転送する処理であり、たとえば、当該記憶装置にファイルを書き込んで当該記憶装置を取り外す処理、または、電子メールを送信する処理のことをいう。この検出の処理もまた、例えば検出部２２０−１がオペレーティングシステム２００−１により検出されるイベントをフックすることにより実現される。
【００３９】
入力処理も出力処理も検出されなければ（Ｓ８００：ＮＯ）、情報処理装置２０−１は図８の処理を終了する。一方、入力処理又は出力処理が検出されたことを条件に（Ｓ８００：ＹＥＳ）、格納部２２５−１は、検出された当該処理の操作名を記憶部２３０−１に格納する（Ｓ８１０）。格納される操作名は、例えば、記憶装置に関する入力処理であれば「装着」、電子メールに関する入力処理であれば「受信」であり、これらの操作名が本発明に係る入力情報としての役割を果たす。同様に、記憶装置に関する出力処理であれば、格納される操作名は「取外し」であり、電子メールに関する出力処理であれば「送信」であり、これらの操作名が本発明に係る出力情報としての役割を果たす。
【００４０】
次に、格納部２２５−１は、転送される当該ファイルのハッシュ値を算出して、既に格納した操作名に対応付けて記憶部２３０−１に格納する（Ｓ８２０）。また、格納部２２５−１は、転送される当該ファイルのファイル名を、既に格納した操作名に対応付けて記憶部２３０−１に格納する（Ｓ８３０）。また、格納部２２５−１は、既に格納したこれらの操作名、ハッシュ値およびファイル名に更に対応付けて、ファイルが転送された時刻を格納する（Ｓ８４０）。ファイルが転送された時刻は、電子メールの例の場合は電子メールの送受信時刻であり、記憶装置の例の場合は取り外し又は装着時刻である。また、格納部２２５−１は、記憶装置との間のファイル転送の場合には当該記憶装置のシリアル番号を、電子メールの送受信の場合には当該電子メールのヘッダの内容を識別する情報を、操作名、ハッシュ値、ファイル名および時刻に更に対応付けて記憶部２３０−１に格納する（Ｓ８５０）。
【００４１】
検出部２２０−１は、これに加えて、記憶装置からファイルを読み出した時刻、および／または、記憶装置にファイルを書き込んだ時刻を更に記憶してもよい。これにより、読出および書込みの間で時刻の先後関係を判断することができ、ファイル同一性の判断精度をより高めることができる。
【００４２】
図９は、情報処理装置２０−１がファイルアクセスを検出した場合の処理の流れを示す。図１０は、図９に示す処理の流れをファイル操作に対応付けて概念的に示す。以下、図９および図１０を対比して、情報処理装置２０−１の処理の流れを説明する。検出部２２０−１は、ファイルに対しアクセスの要求が発行されたことを検出する（Ｓ９００）。ファイルに対するアクセスとは、例えば、ファイルの読出、ファイルの書込み、ファイルの削除、又はファイルの更新を含む。上述の例と同様、アクセスの検出もまた、検出部２２０−１がオペレーティングシステム２００−１により検出されるイベントをフックすることにより実現される。図１０に示すように、例えば、分割により生成された第４ファイルｆｎへのアクセスが検出される。
【００４３】
アクセスの要求が検出されなければ（Ｓ９００：ＮＯ）、検出部２２０−１は図９の処理を終了する。アクセスの要求が検出されると（Ｓ９００：ＹＥＳ）、検索部２４０−１は、アクセスの要求されたファイルと属性のマッチする分割処理を記憶部２３０−１から検索する（Ｓ９１０）。たとえば、当該ファイルのハッシュ値に一致する第４ファイルのハッシュ値、および、分割情報の組が記憶部２３０−１から検索される。図１０においては、例えば、ファイルａを分割してファイルｆｎを生成する処理がこれに相当する。
【００４４】
検索されなければ（Ｓ９１５：ＮＯ）、検索部２４０−１は、オペレーティングシステム２００−１に処理を戻し、オペレーティングシステム２００−１は、当該ファイルへアクセスする（Ｓ９９０）。検索されれば（Ｓ９１５：ＹＥＳ）、検索部２４０−１は、当該第４ファイルに対応付けて記憶部２３０−１に記憶されている分割処理の属性を読み出す（Ｓ９２０）。分割処理の属性とは、たとえば、当該第４ファイルおよび分割情報の組に対応して記憶されている、当該第４ファイルを生成するために分割した第３ファイルのハッシュ、および、分割の処理時刻等である。
【００４５】
次に、検索部２４０−１は、読み出した属性にマッチする入力情報を記憶部２３０−１から検索する（Ｓ９２５）。たとえば、当該第３ファイルのハッシュ値に一致するハッシュ値、および、入力情報の組が記憶部２３０−１から検索される。検索される入力情報は、図１０の例においては、ファイルａが情報処理装置２０−１に転送される処理を示す。
【００４６】
検索されなければ（Ｓ９３０：ＮＯ）、検索部２４０−１は、オペレーティングシステム２００−１に処理を戻し、オペレーティングシステム２００−１は、アクセスの要求されたファイルへアクセスする（Ｓ９９０）。
なお、入力情報が検索されない場合において、検索部２４０−１は、読み出した属性にマッチする分割処理を更に検索してもよい。マッチするかどうかの処理内容はＳ９１０として示したものでよい。そこで分割処理が検索されれば、検索部２４０−１は、更に、その分割処理の属性にマッチする入力情報を検索する。このようにすることで、分割処理の結果生成されたファイルが更に分割されるというように、分割が複数段に渡る場合であっても、アクセス制限の情報を適切に検索できる。
【００４７】
一方、検索されれば（Ｓ９３０：ＹＥＳ）、検索部２４０−１は、当該入力情報に対応付けて記憶部２３０−１に記憶されている属性を読み出す（Ｓ９３５）。入力情報の属性とは、たとえば、ファイルが記憶装置から読み出された場合における、その記憶装置のシリアル番号等、および、そのファイルの転送時刻である。
【００４８】
次に、検索部２４０−１は、読み出した属性にマッチする出力情報を記憶部２３０−１から検索する（Ｓ９４０）。たとえば、当該第３ファイルのハッシュ値に一致するハッシュ値、当該入力情報の識別情報に一致する識別情報、および、当該入力情報の転送時刻よりも前の転送時刻に対応付けられている出力情報が検索される。検索される出力情報は、図１０の例においては、ファイルａが情報処理装置２０−６から外部に転送される処理を示す。
【００４９】
検索されなければ（Ｓ９４５：ＮＯ）、検索部２４０−１は、オペレーティングシステム２００−１に処理を戻し、オペレーティングシステム２００−１は、アクセスの要求されたファイルへアクセスする（Ｓ９９０）。検索されれば（Ｓ９４５：ＹＥＳ）、検索部２４０−１は、当該出力情報に対応付けて記憶部２３０−１に記憶されている属性を読み出す（Ｓ９５０）。出力情報の属性とは、例えば、ファイルが記憶装置に書き込まれてその記憶装置が取り外された場合における、そのファイルのハッシュ値、および、取外しの時刻などである。
【００５０】
次に、検索部２４０−１は、読み出した属性にマッチする結合処理を記憶部２３０−１から検索する（Ｓ９５５）。たとえば、このファイルのハッシュ値に一致するハッシュ値、当初にアクセスの要求された第４ファイルのハッシュ値に一致するハッシュ値、および、当該転送時刻よりも前の処理時刻に対応付けられている結合情報が検索される。検索される結合情報は、図１０の例においては、ファイルｆ１−ｎが結合されてファイルａが生成される処理を示す。
【００５１】
属性がマッチしたと判断する条件は、条件設定部２７０−１の設定に依存する。即ち、検索部２４０−１は、このファイルのハッシュ値と一致し、かつ、この結合処理の属性との間で条件設定部２７０−１により設定された条件が満たされる属性の組を検索する。条件設定部２７０−１により条件がファイル種別毎に設定されている場合には、検索部２４０−１は、当初にアクセスの要求された第４ファイルの種別に応じた条件が満たされるかどうかを判断する。時刻の先後関係も属性が満たすべき条件のうちの１つである。満たすべき条件は、このほかに、ファイル名の一致などがある。詳しくは、図１１−１５を参照して後に述べる。
【００５２】
検索されなければ（Ｓ９６０：ＮＯ）、検索部２４０−１は、オペレーティングシステム２００−１に処理を戻し、オペレーティングシステム２００−１は、アクセスの要求されたファイルへアクセスする（Ｓ９９０）。検索されれば（Ｓ９６０：ＹＥＳ）、制限設定部２５０−１は、この結合情報に対応する制限情報を記憶部２３０−１から読み出す（Ｓ９７０）。そして、制限設定部２５０−１は、読み出したこの制限情報に基づいて、アクセスの要求が発行されたこのファイルにアクセス制限を設定する（Ｓ９８０）。設定されるアクセス制限は、制限情報が表すアクセス制限そのものであることが好ましいが、ファイルの転送元および転送先のコンピュータの機種が異なる場合には、制限情報が表すアクセス制限の一部を変更したものであってもよい。そして、検出部２２０−１は、オペレーティングシステム２００−１に処理を戻し、オペレーティングシステム２００−１は、アクセス制限の設定されたそのファイルに、発行された要求に応じてアクセスする（Ｓ９９０）。
【００５３】
以下、図１１−１４を、図１５と対比して、処理の詳細を述べる。
図１１は、Ｓ９１０における処理の詳細を示す。まず、検索部２４０−１は、アクセスの要求が発行されたファイルのハッシュ値を算出する（Ｓ１１００）。図１５の例では、アクセス要求の対象であるＡ．ｐｐｔというファイルに対し、１Ａ２ＢＣ４というハッシュ値が算出される。次に、検索部２４０−１は、記憶部２３０−１を検索対象として、記憶部２３０−１に記憶されている各分割情報について以下の処理を繰り返す（Ｓ１１１０）。
【００５４】
検索部２４０−１は、算出したハッシュ値が、当該分割情報に対応付けられているハッシュ値に一致するかどうか判断する（Ｓ１１２０）。また、検索部２４０−１は、当該ファイルのファイル名が、当該分割情報に対応付けられているファイル名に一致するかどうか判断する（Ｓ１１３０）。何れかが一致しなければ（Ｓ１１２０：ＮＯまたはＳ１１３０：ＮＯ）、検索部２４０−１はＳ１１５０に処理を移して次の分割情報について処理を繰り返す。何れも一致すれば（Ｓ１１３０：ＹＥＳ）、対応する分割情報が検索されたものとして繰返しを終了する（Ｓ１１４０）。図１５の例では、１７：００に第４ファイルとしてファイルＡ．ｐｐｔを生成した伸張処理が検索される。
【００５５】
検索部２４０−１は、以上の処理を各分割情報について繰り返し（１１５０）、対応する分割情報が検索されることなく繰り返し処理が終了した場合には、対応する分割情報が検索されなかったと判断する（Ｓ１１６０）。
検索部２４０−１は、以上の処理により、アクセスが要求された第４ファイルのハッシュ値に一致するハッシュ値、当該第４ファイルのファイル名に一致するファイル名、および、分割情報の組を記憶部２３０−１から検索してゆく。
【００５６】
図１２は、Ｓ９２５における処理の詳細を示す。この処理に先立って、分割情報についての各種属性、例えば第３ファイルの属性が予め読み出されている（上記Ｓ９２０）。図１５の例では、１７：００に伸張処理の対象となったＺ．ｚｉｐおよびハッシュ値（２Ｂ３１５６）が読み出されている。まず、検索部２４０−１は、記憶部２３０−１を検索対象として、記憶部２３０−１に記憶されている各入力情報について以下の処理を繰り返す（Ｓ１２１０）。
【００５７】
検索部２４０−１は、第３ファイルのハッシュ値が、当該入力情報に対応付けられているハッシュ値と一致するかどうか判断する（Ｓ１２２０）。また、検索部２４０−１は、第３ファイルのファイル名が、当該入力情報に対応付けられているファイル名と一致するかどうか判断する（Ｓ１２３０）。また、検索部２４０は、当該入力情報に対応付けられている転送時刻が、第３ファイルを生成する処理の時刻より先かどうか判断する（Ｓ１２４０）。何れかの条件が充足しなければ（Ｓ１２２０：ＮＯ、Ｓ１２３０：ＮＯまたはＳ１２４０：ＮＯ）、検索部２４０−１は、Ｓ１２６０に処理を移して次の入力情報について処理を繰り返す。
【００５８】
何れも充足すれば（Ｓ１２４０：ＹＥＳ）、対応する入力情報が検索されたものとして繰返しを終了する（Ｓ１２５０）。図１５の例では、１５：００に、ファイルＺ．ｚｉｐを記録したメディアが装着された処理が検索される。
検索部２４０−１は、以上の処理を各入力情報について繰り返し（Ｓ１２６０）、対応する入力情報が検索されることなく繰り返し処理が終了した場合には、対応する入力情報が検索されなかったと判断する（Ｓ１２７０）。
【００５９】
図１３は、Ｓ９４０における処理の詳細を示す。この処理に先立って、入力情報についての各種属性、例えば記憶装置の識別情報、操作の種類、およびファイルの転送時刻が予め読み出されている（上記Ｓ９３５）。図１５の例では、転送時刻である１５：００、メディアの識別情報（５Ｄ３９８Ｃ）、および操作名「読出」が読み出されている。検索部２４０−１は、情報処理装置２０−１以外の他の情報処理装置２０−２〜Ｎにおける記憶部２３０を検索対象として（記憶部２３０−２〜Ｎとする）、記憶部２３０−２〜Ｎに記憶されている各出力情報について以下の処理を繰り返す（Ｓ１３１０）。
なお、既に連携部２６０−１により記憶部２３０−２〜Ｎから記憶部２３０−１に情報が転送されている場合には、検索部２４０−１はまず記憶部２３０−１を検索対象とし、検索できなかった場合には連携部２６０−１に指示して情報を収集させたうえで、記憶部２３０−１を検索対象としてもよい。
【００６０】
まず、検索部２４０−１は、入力情報の操作名と当該出力情報の操作名とが対応しているかどうかを判断する（Ｓ１３２０）。例えば、当該入力情報の操作名が「装着」であるのに対し、当該出力情報の操作名が「取外し」であれば、操作名が対応している。一方、当該入力情報の操作名が「装着」であるのに、当該出力情報の操作名が電子メールの「送信」であれば、操作名が対応しない。
【００６１】
次に、検索部２４０−１は、入力情報に対応する識別情報が、当該出力情報に対応する識別情報に一致するかどうかを判断する（Ｓ１３３０）。即ち例えば、ファイルを転送した記憶装置のシリアル番号、電子メールのヘッダなどが一致するかどうかが判断される。次に、検索部２４０−１は、入力情報に対応する転送時刻が、当該出力情報に対応する転送時刻よりも先であるかどうかを判断する（Ｓ１３４０）。次に、検索部２４０−１は、入力情報に対応付けられたファイルのハッシュ値およびファイル名が、当該出力情報に対応付けられたファイルのハッシュ値およびファイル名に一致するかどうかを判断する（Ｓ１３４５）。
【００６２】
何れの条件も充足すれば（Ｓ１３４５：ＹＥＳ）、検索部２４０−１は、対応する出力情報が検索されたものとして繰り返し処理を終了する（Ｓ１３５０）。図１５の例では、１２：００にファイルＺ．ｚｉｐを書き込んだメディアが取り外された処理が検索される。
検索部２４０−１は、以上の処理を各出力情報について繰り返し（Ｓ１３６０）、対応する出力情報が検索されることなく繰り返し処理が終了した場合には、対応する出力情報が検索されなかったと判断する（Ｓ１３７０）。
【００６３】
図１４は、Ｓ９５５における処理の詳細を示す。この処理に先立って、出力情報についての各種属性、例えばファイルのハッシュ値およびファイル名、ならびに、ファイルの転送時刻が予め読み出されている（上記Ｓ９５０）。図１５の例では、転送時刻である１２：００、ファイル名Ｚ．ｚｉｐ、および、ハッシュ値２Ｂ３１５６、が読み出される。検索部２４０−１は、この出力情報が検索された記憶部２３０（たとえば記憶部２３０−Ｍとする）を検索対象として、記憶部２３０−Ｍに記憶されている各結合情報について以下の処理を繰り返す（Ｓ１４１０）。
【００６４】
まず、検索部２４０−１は、当該結合情報に対応して記憶され、結合された第１ファイルを示すハッシュ値が、出力情報に対応するハッシュ値に一致するかどうかを判断する（Ｓ１４２０）。次に、検索部２４０−１は、当該結合情報に対応して記憶された、第１ファイルのファイル名が、出力情報に対応するファイル名と一致するかどうかを判断する（Ｓ１４３０）。次に、検索部２４０−１は、出力情報に対応する転送時刻が、当該結合情報に対応する処理時刻より先であるかどうかを判断する（Ｓ１４４０）。
【００６５】
何れの条件も充足すれば（Ｓ１４４０：ＹＥＳ）、検索部２４０−１は、対応する結合情報が検索されたものとして繰り返し処理を終了する（Ｓ１４５０）。図１５の例では、１１：００にファイルＡ．ｐｐｔと他のファイルを結合してファイルＺ．ｚｉｐを生成した処理が検索される。
検索部２４０−１は、以上の処理を各結合情報について繰り返し（Ｓ１４６０）、対応する結合情報が検索されることなく繰り返し処理が終了した場合には、対応する結合情報が検索されなかったと判断する（Ｓ１４７０）。
【００６６】
このように、情報処理装置２０−１が図１１から図１４までの処理を順次行うことで、アクセスの要求された第４ファイルについて、当該第４ファイルのハッシュ値に一致するハッシュ値、および、当該第４ファイルを生成した時刻よりも先の時刻の組が、情報処理装置２０−１とは異なる情報処理装置から検索される。これにより、ファイル転送のみならずファイルの分割・結合が介在しても、ファイルに設定されていたアクセス制限を適切に維持することができる。また、アクセス制限の検索を、ファイルの結合、ファイルの出力、ファイルの入力、および、ファイルの分割という一連の処理経過を遡ることにより実現することで、設定するべきアクセス制限を精度良くかつ効率的に検索することができる。
【００６７】
図１６は、情報処理装置２０−１として機能するコンピュータ３０のハードウェア構成の一例を示す。なお、情報処理装置２０−２〜Ｎのハードウェア構成についてもその一例は情報処理装置２０−１のものと同様であるので、以下の説明によって代用する。コンピュータ３０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００６８】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００６９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ３０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００７０】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ３０の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ３０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００７１】
コンピュータ３０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ３０にインストールされて実行される。プログラムがコンピュータ３０等に働きかけて行わせる動作は、図１から図１５において説明した情報処理装置２０−１おける動作と同一であるから、説明を省略する。
【００７２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ３０に提供してもよい。
【００７３】
以上、本実施形態に係る情報処理装置２０−１によれば、動作するソフトウェアや所属する局所ネットワークが相互に異なる複数の情報処理装置の間でファイルが転送され、更には、ファイルの分割や結合が行われた場合であっても、ファイルに設定されていたアクセス制限を不必要に厳しくすることなく、適切に維持することができる。これにより、新たなオペレーティングシステムやアプリケーションプログラムの開発においては、既存のシステムとの間でアクセス制限継承のための機能を省略することができ、効率がよい。
【００７４】
また、設定するべきアクセス制限の検索は、ファイルの転送、分割・結合等の記録を時刻を遡って検索することにより実現されるので、検索の精度を高めることができる。更に、検索は、ファイルにアクセスが要求されたことを条件に行われるので、アクセスが要求されない限りは情報処理装置に無用な負荷をかけず、効率がよい。具体的には、アクセスが要求されない限り、検索処理の負荷が発生しないばかりか、他の情報処理装置との間の通信も不要とすることができる。
【００７５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００７６】
【図１】図１は、情報システム１０の全体構成を示す。
【図２】図２は、情報処理装置２０−１から情報処理装置２０−６にファイルを転送する場合において、各ファイルに設定されるアクセス制限の第１例を示す。
【図３】図３は、情報処理装置２０−１から情報処理装置２０−６にファイルを転送する場合において、各ファイルに設定されるアクセス制限の第２例を示す。
【図４】図４は、情報処理装置２０−１の機能構成の一例を示す。
【図５】図５は、記憶部２３０−１のデータ構造の一例を示す。
【図６】図６は、情報処理装置２０−１が結合処理を検出した場合の処理の流れを示す。
【図７】図７は、情報処理装置２０−１が分割処理を検出した場合の処理の流れを示す。
【図８】図８は、情報処理装置２０−１が入力処理又は出力処理を検出した場合の処理の流れを示す。
【図９】図９は、情報処理装置２０−１がファイルアクセスを検出した場合の処理の流れを示す。
【図１０】図１０は、図９に示す処理の流れをファイル操作に対応付けて概念的に示す。
【図１１】図１１は、Ｓ９１０における処理の詳細を示す。
【図１２】図１２は、Ｓ９２５における処理の詳細を示す。
【図１３】図１３は、Ｓ９４０における処理の詳細を示す。
【図１４】図１４は、Ｓ９５５における処理の詳細を示す。
【図１５】図１５は、順次記録されたファイル操作を遡って走査する処理を概念的に示す。
【図１６】図１６は、情報処理装置２０−１として機能するコンピュータ３０のハードウェア構成の一例を示す。
【符号の説明】
【００７７】
１０  情報システム
２０  情報処理装置
３０  コンピュータ
２００  オペレーティングシステム
２１０  制限設定モジュール
２２０  検出部
２２５  格納部
２３０  記憶部
２４０  検索部
２５０  制限設定部
２６０  連携部
２７０  条件設定部
【図１】
2008210300.tif 000003
【図２】
2008210300.tif 000004
【図３】
2008210300.tif 000005
【図４】
2008210300.tif 000006
【図５】
2008210300.tif 000007
【図６】
2008210300.tif 000008
【図７】
2008210300.tif 000009
【図８】
2008210300.tif 000010
【図９】
2008210300.tif 000011
【図１０】
2008210300.tif 000012
【図１１】
2008210300.tif 000013
【図１２】
2008210300.tif 000014
【図１３】
2008210300.tif 000015
【図１４】
2008210300.tif 000016
【図１５】
2008210300.tif 000017
【図１６】
2008210300.tif 000018