[go: up one dir, main page]

JP3637080B2 - Data input / output management apparatus and data input / output management method - Google Patents

Data input / output management apparatus and data input / output management method Download PDF

Info

Publication number
JP3637080B2
JP3637080B2 JP22123594A JP22123594A JP3637080B2 JP 3637080 B2 JP3637080 B2 JP 3637080B2 JP 22123594 A JP22123594 A JP 22123594A JP 22123594 A JP22123594 A JP 22123594A JP 3637080 B2 JP3637080 B2 JP 3637080B2
Authority
JP
Japan
Prior art keywords
output
data
program
input
request
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.)
Expired - Fee Related
Application number
JP22123594A
Other languages
Japanese (ja)
Other versions
JPH0887440A (en
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP22123594A priority Critical patent/JP3637080B2/en
Priority to US08/528,881 priority patent/US5870467A/en
Publication of JPH0887440A publication Critical patent/JPH0887440A/en
Application granted granted Critical
Publication of JP3637080B2 publication Critical patent/JP3637080B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、プログラムからの入力要求に応じてデータを入力し、プログラムからの出力要求に応じてデータを出力するデータ入出力管理装置及びデータ入出力管理方法に関する。
【0002】
【従来の技術】
著作権を有する著作物の無断複製は、著作権法により禁じられている。しかしながら、著作物の無断複製を技術的に防ぐ手段が提供されていないため、それが行なわれるおそれがある。例えば、本、雑誌、新聞、データベースなどの著作物の全部または一部を複製することを技術的に防ぐことはできないため、法の規定に関わらず著作物の無断複製が行なわれるおそれがある。
【0003】
著作物が、ネットワーク、フロッピーディスク、CD−ROMなどの媒体を活用して電子的に提供される場合、さらに無断複製は深刻な問題となる。それは、紙で提供された著作物の複製は、コストや手間がかかる、品質が劣化する、任意の形式での表示ができないなどの欠点があるのに対して、電子的に提供された著作物の複製は、コストや手間は小さく、品質の劣化も小さく、さらにデジタル著作物の場合、任意の形式での表示や部分的な利用が可能であり、無断複製された著作物は元の著作物と比べ遜色がないからである。
【0004】
ところが、電子的な提供された著作物の無断複製を技術的に防ぐ手段は、従来の技術では備わっていない。例えば、著作物を計算機にロードして閲覧する場合、著作物を読み込みこれをユーザに提示するプログラムは、出力要求を発生することにより著作物を外部のポートや他のプロセス、ファイルなどに書き出すことができる。これは、一旦プログラムに著作物を与えたら、その著作物をどのように使用するかはプログラムに委ねられており、プログラムの動作を規定する手段が提供されていないためである。このため、著作物を電子的に形式のままの転載することが可能である。
【0005】
これを防ぐためには、例えばプログラムからのデータ出力要求をすべて拒絶すれば良いが、これではその計算機で動く全てのプログラムからのデータ出力が不可能になり、著作物アプリケーション以外のプログラムの動作に支障が生じる。また、ディスプレイのような媒体に著作物を表示する場合にもプログラムは出力要求を出すため、データ出力要求をすべて禁止すると著作物の表示ができないという問題が生じる。
【0006】
著作物に限らず、一般に、あるデータを読むことは許諾するが、データの複製やそのデータを基にしたデータの生成は禁止したい場合に、これを実現する手段が提供されていない。以下、読むことは可能であるが複製を禁じるデータを、「保護データ」と呼ぶ。プログラムに対して保護データが与えられると、このプログラムは、読み込んだ保護データをファイルに書き込んだり、ポートから外部に出力したり、プロセス間通信により他のプログラムに与えることが可能であり、これにより保護データの複製を作られるおそれがある。
【0007】
これを防ぐには、例えばすべての出力要求を拒絶すればよいが、これでは保護データを読んでいないプログラムからのデータ出力も不可能となり支障を生じる。また、出力要求を拒絶すると、複製を作成されるおそれのないディスプレイのような媒体への保護データの出力も禁止され、データ表示が全くできないという問題が生じる。
【0008】
【発明が解決しようとする課題】
以上のように、従来のデータ入出力管理機構では、著作物データに対して画一的なアクセス制御しかできなかった。また、著作物データの出力を禁じたい場合、すべての出力装置に対するすべてのファイルの出力を禁じる形でしか実現できなかった。
【0009】
したがって、従来のデータ入出力管理機構では、著作物データに対する読出し要求のみを許可する、あるいは複製されるおそれのないディスプレイのような媒体への出力のみ許可するといった、著作物データに対するきめ細い管理を行うことができなかった。
【0010】
本発明は、上記事情を考慮してなされたものであり、指定されたデータに関して読むことやディスプレイ等の表示装置に表示することは可能であるが、複製することはできず、かつ指定されたデータ以外に関しては通常の出力を可能とするデータ入出力管理装置及びデータ入出力管理方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明に係るデータ入出力管理装置は、実行中の1又は複数のプログラムのうちのいずれかから発せられたデータの入出力要求を該プログラムの識別子とともに受理する入出力要求受理手段と、前記入出力要求が入力要求である場合、該入力要求のあったデータを入力し、前記プログラムに該データを与えるデータ入力手段と、前記データ入力手段により入力された前記データが保護データであるか否かを判別する保護データ判別手段と、前記データが保護データである場合、少なくとも前記プログラムの識別子を記録する保護データ入力記録手段と、前記入出力要求が出力要求である場合、該出力要求を発した前記プログラムの識別子が前記保護データ入力記録手段に記録されているか否か調べ、記録されていないときは該出力要求を許諾し、記録されていたときは少なくとも該出力要求のあった出力先を示す情報に基づいて出力要求を許諾するか拒否するかを決定する決定手段と、この決定手段により前記出力要求が許諾された場合にのみ、該出力要求のあったデータを該出力要求のあった出力先へ出力するデータ出力手段とを具備したことを特徴とする。
好ましくは、前記プログラムは全て他のプログラムへ保護データを出力することのないものであり、前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記出力先が他のプログラムからデータを読まれる可能性のないものとして予め定められているものであるならば、前記出力要求を許諾し、それ以外ならば、前記出力要求を拒否すると決定すると決定するようにしてもよい。
好ましくは、前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記出力先が他のプログラムであるならば、前記出力要求を許諾すると決定するとともに、その際、当該他のプログラムが前記保護データ入力記録手段に未だ記録されていなければ、当該他のプログラムを前記保護データ入力記録手段に記録するようにしてもよい。
好ましくは、前記データ入出力管理装置は、出力先を示す情報と、当該出力先への出力を許諾すべきデータの識別子又はこれを特定可能な情報とを対応付けて保持するテーブルを記憶するテーブル記憶手段を更に備え、前記保護データ入力記録手段は、前記プログラムの識別子に対応付けて、当該プログラムへ与えられた保護データの識別子をも記憶し、前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記テーブルを参照し、該プログラムの識別子に対応付けて前記保護データ入力記録手段に識別子が記録されている保護データの全てについて、該要求のあった出力先への出力が許諾すべきものとされているならば、前記出力要求を許諾し、それ以外ならば、前記出力要求を拒否すると決定すると決定するようにしてもよい。
好ましくは、前記プログラムは、新たな保護データの入力要求を発する場合、該保護データの入力を要求させるために、他のプログラムを新たに起動するようにしてもよい。
好ましくは、前記プログラムからの出力要求によらず前記プログラムの保持するデータを出力する機能を有する場合に、前記出力許諾手段は、データを出力しようとする該プログラムの識別子が前記保護データ入力記録手段に記録されていないときは、該プログラムのデータ出力を許諾し、記録されていたときは該プログラムのデータ出力を許諾しないようにしてもよい。
【0015】
また、本発明に係るデータ入出力管理方法は、実行中の1又は複数のプログラムのうちのいずれかから発せられたデータの入出力要求を該プログラムの識別子とともに受理するステップと、前記入出力要求が入力要求である場合、該入力要求のあったデータを前記プログラムに与え、該データが保護データであるか否かを判別し、該データが保護データである場合、少なくとも前記プログラムの識別子を記録するステップと、前記入出力要求が出力要求である場合、該出力要求を発した前記プログラムの識別子が前記保護データ入力記録手段に記録されているか否か調べ、記録されていないときは該出力要求を許諾するし、記録されていたときは少なくとも該出力要求のあった出力先を示す情報に基づいて出力要求を許諾するか拒否するかを決定するステップと、前記出力要求が許諾された場合にのみ、該出力要求のあったデータを該出力要求のあった出力先へ出力するステップとを有することを特徴とするデータ入出力管理方法。
【0016】
【作用】
本発明では、プログラムからデータの入出力要求が発せられたとき、入出力要求受理手段にてこれを受理し、入力要求である場合にデータ入力手段にてデータを読み出し、保護データ判別手段によりこのデータが保護データであるか否かを判別し、保護データであれば、少なくとも、保護データ入力記録手段に該プログラムの識別子を記録する。これによって、保護データ入力記録手段に識別子を記録された各プログラムが保護データを読んだことを管理することができる。
プログラムから入出力要求が出力要求である場合、該出力要求を発したプログラムの識別子が保護データ入力記録手段に記録されているか否か調べ、記録されていないときは(すなわち、該プログラムが保護データを読んでいないときは)、出力要求を許諾してよい。他方、記録されていたときは(すなわち、保護データを読んでいるときは)、少なくとも出力要求のあった出力先を示す情報に基づいて許諾するか否かを決定する。
許諾されたデータは、データ出力手段により出力される。これによって、保護データを読んでいないプログラムについては、通常の出力要求が許諾され、読んだプログラムについては、複製の可能性がない場合のみ出力要求が許諾される。
従って、本発明によれば、保護データは読むことは可能であるが複製することはできず、ディスプレイ等の表示装置には表示することが可能であり、かつ保護データ以外は通常の出力を可能とすることができる。
【0020】
【実施例】
以下、図面を参照しながら本発明の実施例を説明する。
図1は、本発明の実施例に係るデータ入出力管理装置の概略構成図である。図1のように、本実施例のデータ入出力管理装置は、入出力要求受理部1、データ入力部2、保護データ判別部3、保護データ入力記録部4、出力許諾判定部5、データ出力部6からなる。
【0021】
図2は、本実施例の動作を示すフローチャートである。
入出力要求プログラム11が要求を発生すると、入出力要求受理部1はこの要求を受理し、入出力要求プログラム11の識別子および要求の種類を判別する(ステップS21)。
【0022】
通常、OS内部にはプロセスからのシステムコールを受け取りシステムコールの種類を判別するプログラムが提供されているが、上記の入出力要求受理部1はこれに相当するものである。入出力要求プログラム11は、入出力要求受理部1と同じ計算機にて実行されていても、別の計算機にて実行されていても良い。例えば、同じ計算機にて実行されている場合は、プロセスIDを識別子とすればよく、別の計算機にて実行されている場合は、ホストIDとプロセスIDの対を識別子とすればよい。要求の種類の受渡しは、要求を発する際に特定のレジスタに要求の識別子を書き込む、あるいは要求の先頭で識別子を送るなど、あらかじめ定めた手続きによって入出力要求プログラム11が指定し、これを入出力要求受理部1が読み出して判別すれば良い(ステップS22)。
【0023】
入出力要求受理部1により入力要求であることがわかると、データ入力部2が要求されているデータを入力する(ステップS23)。
データ入力部2は、該データがディスク、CD−ROM、テープなどの記憶媒体に記憶されているなら、ここから読み出す。また、ネットワークのような蓄積型でない媒体からデータを読んできても良い。OSにおけるデバイスドライバと呼ばれるソフトが、これらに相当する。
【0024】
保護データ判別部3は、入力を要求されたデータが保護データであるか否かを判別する(ステップS24)。
本実施例では、読み込まれるデータは記憶媒体にファイルとして記憶されており、保護データを含むファイルはあらかじめ定められた形式のヘッダを有しているものとする。従って、保護データ判別部3は読み込んだファイルが本形式のヘッダを有していれば保護データであり、そうでなければ保護データではないと判別すれば良い。このヘッダの形式は、あらかじめ保護データ判別部3に記録されていても良いし、別のファイルに記録されていて保護データ判別部3がそのファイルを参照して知っても良い。また、別のプログラムが管理し、保護データ判別部3に通知しても良い。
【0025】
また、別の判別方法をとってもよい。例えば、ファイル自体に保護データを格納しているか否かを判別するための情報が付加してあるのではなく、データが格納されるファイルの名前により保護データかそうでないかが決定される、あるいはファイルの記憶される媒体の種類、記憶媒体の中の記憶位置により決定されるなどの方式でも良い。
【0026】
図3は、保護データを含むファイルが有しているヘッダの例を示す図である。本実施例では、保護データを格納するファイルには、定まった形式のヘッダが付加されているものとする。このヘッダを所有するファイルに格納されているデータは保護データであり、所有していないファイルに格納されているデータは保護データではない。ヘッダには、保護データを含むファイルであることを示す番号、データファイルを示すデータファイルID、製作者を示す製作者ID、暗号化された保護データを復号するための鍵を特定するための復号鍵番号、などが記述されている。
【0027】
次に、判別の結果、保護データを含むものであった場合は、保護データ入力記録部4に記録を行う(ステップS25)。
図4は、本実施例の保護データ入力記録部4の構造の一例を示す図である。該データが保護データであると判別されたら、保護データ入力記録部4に、入出力要求プログラム11の識別子を記録する。すでに当該識別子が記録されていれば、記録しなくてもよい。本実施例では、本保護データ入出力管理方式から少なくとも一つの保護データを読んだプロセスのIDがリスト構造として記録されている。
【0028】
例えば図4では、図中21のポインタが示すリスト(図中の22)に、プロセスID(図中の23)である“5”と次のリンク先へのポインタ(図中の24)が格納されている。リンク先がない場合は、そのことを示すデータを格納する(図中の25)。
【0029】
最後に、入出力要求プログラム11にデータを与える(ステップS26)。
データが暗号化されていた場合、これを復号して渡しても良い。このためには、ヘッダに記載されている復号鍵の番号と暗号化されたデータを復号化部に渡す。これは、ソフトウェアにより実現しても、セキュリティを高めるためにハードウェアにより実現しても良い。入出力要求プログラム11が別の計算機にて動作している場合は、復号鍵と共に暗号化されたデータを与え、入出力要求プログラム11が動作している計算機にて復号しても良い。
【0030】
一方、入出力要求プログラム11が出力要求を発生すると、入出力要求受理部1が出力要求であることを検出する(ステップS22)。
出力許諾判定部5は、該出力要求を発生した入出力要求プログラム11の識別子が保護データ入力記録部4に記録されているかどうかを調べる(ステップS27)。
【0031】
記録されていなければ、該入出力要求プログラム11は保護データを読んでいないから、保護データを出力する可能性はない。このため出力要求を許諾して良い(ステップS28)。
【0032】
これに対し、入出力要求プログラム11の識別子が保護データ入力記録部4に記録されていれば、該入出力要求プログラム11は保護データを読んだプログラムであるから、出力要求先によって出力要求を認めるかそうでないかを判断する(ステップS29)。
【0033】
出力先が別のプログラムあるいはディスプレイのような他のプログラムから直接はデータを読めない出力機器であれば、出力要求を許諾して良い(ステップS30)。
【0034】
さもなければ、保護データが複製されるおそれがあるので、出力は拒否される(ステップS31)。
出力要求が許可される(ステップS28,S30)と、データ出力部6により出力が行われる(ステップS32)。
【0035】
従って、保護データを読んだことのないプログラムからは自由にデータの出力ができ、保護データを読んだプログラムからの出力はディスプレイのような恒久的でない対象にのみ許し、他への出力は禁じることができる。これにより、保護データが複製されるおそれがなく、あるいは保護データを読んだことのないプログラムからは自由にデータの出力ができる入出データ力管理方式が実現できる。
【0036】
(第2の実施例)
第1の実施例では、出力許諾判定部5は、入出力要求プログラム11の識別子が保護データ入力記録部4に記録されている場合、出力先がディスプレイであるかどうかを判別して出力を諾否を判定している。しかし、出力先は固定されない方が良い場合もある。例えば、一つの計算機が複数のディスプレイを所持している場合、すべてのディスプレイに出力したいとは限らない。また、ディスプレイ以外の特定の機器に保護データの出力をしたい場合もある。このような保護データの出力が許諾される出力先の変更を可能とするためには、保護データの許諾出力先を許諾出力先指定部7にて指定できるようにすればよい。第2の実施例では、これを実現するための一例を示す。
【0037】
図5は、第2の実施例のデータ入出力管理装置の概略構成図である。本実施例においては、第1の実施例の構成に許諾出力先指定部7が加わり、出力許諾判定部5は、保護データ入力記録部4および許諾出力先指定部7を参照するところが第1の実施例と異なる。
【0038】
図6は、本実施例の許諾出力先指定部7の一例である。これによって、保護データの出力が許諾される出力先のテーブルが与えられる。出力許諾判定部5は、出力要求先がこのリストに含まれるなら出力を許諾し、含まれなければ拒絶する。本実施例では、“/dev/console”のようにOSが管理するデバイスの仮想的な名前で指定したが、これに限定されず、ポート番号など一意に出力先が特定できる識別子として出力先を指定すれば良い。本出力先テーブルは、不当に変更されると保護データの複製のおそれがあるので、OSが管理する等の方法で高いセキュリティを保つ必要がある。
【0039】
以上のように、本実施例によれば、保護データの出力が許諾される出力先を変更することも可能となる。
(第3の実施例)
第2の実施例では、全ての保護データに関して出力可能な出力先は共通である。しかし、ある保護データはある出力先に出力したいが、別の保護データはその出力先には出力できないようにしたいような場合もある。この場合には、許諾出力先指定部7に保護データ毎の許諾出力先を指定しておくと共に、保護データ入力記録部4にて各プログラムに与えられた保護データの識別子を記録しておき、出力許諾判定部5はこれらを参照して出力許諾を判定すれば良い。第3の実施例では、これを実現するための一例を示す。
【0040】
図7は、本実施例の保護データ入力記録部4の構造の一例を示す図である。該データが保護データであると判別されたら、保護データ入力記録部4に、入出力要求プログラム11の識別子を記録する。すでに該入出力要求プログラム11の識別子が記録されていれば、その入出力要求プログラム11の読んだ保護データのリストに該データファイルIDを記録する。該入出力要求プログラム11の識別子が記録されていなければ、新たに記録し、その入出力要求プログラム11の読んだ保護データとして該データファイルIDを記録する。
【0041】
例えば図7では、図中31のポインタが示すリスト(図中の32)に、プロセスID(図中の33)である“5”、データファイルIDのリストのリンク先へのポインタ(図中の34)、次のプロセスIDのリストのリンク先へのポインタ(図中の35)が格納されている。図中36のリストには、データファイルID(図中の37)である“123”、次のリンク先へのポインタ(図中の38)が格納されている。同様にして、図7では、データファイルIDが5、20、25、40のプロセスが保護データを読んだプログラムとしてリスト構造として記録されており、さらにID5のプロセスは、データファイルIDが123と25の2種類の保護データを読んでおり、ID20のプロセスは、データファイルIDが8の保護データを、ID25のプロセスは、データファイルIDが123の保護データを、ID40のプロセスは、データファイルIDが85の保護データを読んでいることがわかる。なお、リンク先がない場合は、そのことを示すデータを格納する(図中の39,40)。
【0042】
図8は、本実施例の許諾出力先指定部7の一例である。これは、出力先とそれへの出力が許諾されるデータファイルIDの対応表である。第1行目は、すべてのデータファイルが、“/dev/console”に出力可能であることを示す。第2行目は、データファイルIDが123か65であれば、“/dev/tty0”に出力可能であることを示す。第3行目は、データファイルIDが0以上127以下であるものは、“/dev/fb”に出力可能であることを示す。第4行目は、データファイルIDが0以上127以下でないものは、“/dev/win1”に出力可能であることを示す。
【0043】
出力許諾判定部5は、入出力要求プログラム11の識別子から保護データ入力記録部4を検索し、そのプログラムが読んだデータファイルIDを得る。一つのデータファイルしか記録されていない場合は、許諾出力先指定部7を検索し、そのデータファイルは要求された出力先に出力することが許諾されているか否かを調べる。例えば、“プロセス20”から、“/dev/fb”に出力要求があった場合、出力許諾判定部5は次の処理を行なう。まず、保護データ入力記録部4を検索し、“プロセス20”は“データファイル8”を読んでいることがわかる。次に、許諾出力先指定部7を検索すると、“データファイル8”は、“/dev/fb”への出力が許諾されている。従って“プロセス20”から、“/dev/fb”への出力要求は許諾して良い。
【0044】
出力許諾判定部5が、入出力要求プログラム11の識別子から保護データ入力記録部4を検索し、そのプログラムが読んだデータファイルが2つ以上ある場合、許諾出力先指定部7を検索するが、これらすべてのデータファイルの要求出力先への出力が許諾されている場合のみ、出力を許諾する。例えば、“プロセス5”から、“/dev/tty0”に出力要求があった場合、出力許諾判定部5は次の処理を行なう。まず、保護データ入力記録部4を検索し、“プロセス5”は“データファイル123“と“データファイル25“を読んでいることがわかる。次に、許諾出力先指定部7を検索すると、“データファイル123“は、“/dev/tty0“への出力が許諾されているが、“データファイル25“は、“/dev/tty0“への出力が許諾されていない。従って、もし出力を許諾すると、“データファイル25“が格納する保護データが禁じられている出力先に出力されるおそれがある。よって、出力許諾判定部5は、“プロセス5“からの“/dev/tty0”への出力要求は拒絶する。
【0045】
以上のように、本実施例によれば、保護データごとに出力が許諾される出力先が指定でき、許諾された以外の出力先には出力できないようにすることが可能となる。
【0046】
(第4の実施例)
第1の実施例では、保護データはプログラムからの入力要求によってしか起こらないものとしたが、第2の実施例では、プログラム間で通信を行ないデータの授受を行なう機能をOSが有している場合のデータ入出力管理方式を取り上げる。プログラム間でデータの授受を行なう機能を有するOSにおいてプログラムが実行されている場合、保護データを読んだプログラムが他のプログラムにデータを渡すことができる。このため、プログラム間での通信も管理しなければならない。
【0047】
図9は、第4の実施例のデータ入出力管理装置の概略構成図である。本実施例においては、出力許諾判定部5は、保護データ入力記録部4の記録を参照するだけでなく、変更もする点が、第1の実施例と異なる。
【0048】
図10は、本実施例の動作を示すフローチャートである。このフローチャートは、図2のフローチャートと大部分が同様のものであり、図2のステップS31の処理内容を変更したものである。ここでは、図2のフローチャートと異なる部分だけ説明する。
【0049】
保護データを読んだプログラムが出力要求を行ない(ステップS22,ステップS27)、その出力先がディスプレイのような他のプログラムがデータを読み出すことができない対象でない場合(ステップS29)、出力許諾判定部5は、出力先が他のプログラムであるかどうかを調べる(ステップS41) 。
【0050】
もしそうであれば、出力先のプログラムも保護データを受けとる可能性があるので、出力先プログラムの識別子が保護データ入力記録部4に記録されていなければこれを記録する(ステップS42)。そして、データ出力部6によりプログラム間でのデータの授受を行なえば良い(ステップS32)。
【0051】
ステップS41にて、もし出力先は他のプログラムでなければ、出力は拒否される(ステップS43)。
従って、保護データを読んでいないプログラムからは、従来通りに自由にデータの転送ができる。保護データを読んだプログラムからは、ディスプレイのような他のプログラムからはデータを読み出すことのできない対象にはデータの出力ができ、他のプログラムに対してはデータの授受ができるが、受けとったプログラムも以降では保護データを読んだプログラムとして扱われる。それ以外の対象には、データは出力されない。これにより、保護データの複製が防止できる。
【0052】
(第5の実施例)
第1の実施例や第4の実施例では、保護データを読んでいないプログラムからの出力要求は許諾し、保護データを読んだプログラムからの出力要求は保護データの複製が起こらないような状況でのみ許諾した。したがって、保護データを読んだプログラムからは、たとえ保護データではないデータであってもファイルや外部ポートのような対象に出力することは拒否される。
【0053】
本実施例では、プログラムから出力要求が発せられた時、その出力データが保護データに起因するものであるかそうでないかによって、異なった出力制御ができるようにしたものである。これによって、例えばアプリケーションプログラムが保護データを読んでユーザに表示し、ユーザはそれに関連するメモを作成したいときにメモを保存することがでるようになるなど、実用上多大なる効果がある。
【0054】
第5の実施例は、プログラムは保護データを読み込むこともでき、かつ保護データに起因しないデータをファイルや外部ポートのような対象に出力することができるようにしたものである。
【0055】
図11は、第5の実施例の概略構成図である。
まず、保護データを読んでいないプログラム1(図中の11)が保護データの入力を要求する時、まずプログラム2(図中の12)を生成する。
【0056】
例えば、UNIXでは、forkというシステムコールによりプログラム1を実行しているプロセスの複製を作成してプログラム2と考えれば良い。他のOSにおいても、新たなるプロセスやタスクの生成をOSに対して要求すれば良い。
【0057】
次に、プログラム2から保護データ入出力要求を発生する。
この要求は入出力要求受理部1にて受理され、第1の実施例や第4の実施例と同様に、保護データ入力記録部4に、プログラム2に保護データが与えられたことが記録され、プログラム2は保護データを読むことができる。
【0058】
プログラム2からデータ出力要求が発生された場合には、第1の実施例や第2の実施例と同様に処理され、ファイルや外部ポートのような対象にデータを出力することはできない。
【0059】
しかしながら、プログラム1からデータ出力要求が発生された場合は、プログラム1は保護データを読んでいないため、対象にかかわらずデータを出力することができる。従って、ファイルや外部ポートのような対象に出力したい保護する必要のないデータは、プログラム1が所持することにすれば、自由に出力することができる。
【0060】
これは、例えば次のようにすれば実現できる。まず、プログラム1は、保護データを読んでいない状態で実行を開始する。保護データの入力を行なう際は、新たなプログラム2を生成し、このプログラム2に入力要求を発生させる。ユーザからの入力や保護データ以外のデータの入力は、保護データを入力していないプログラム1が行なう。これによって、保護データと保護されていないデータを別のプログラムに分離して管理することができる。従って、保護されていないデータは、ファイルや外部ポートのような対象に出力することができる。
【0061】
ここで、保護データを2回以上読み込む時は、次の3通りの方式が考えられる。
・以前に保護データを読んだプログラム2が保護データを読む方式
・以前に保護データを読んだプログラム2やプログラム1とは別の第3のプログラムが保護データを読む方式
・以前に読んだ保護データとヘッダの内容が等価な保護データを読む時は、以前に保護データを読んだプログラム2が読み、さもなければ新たな第3のプログラムが保護データを読む方式
いずれの方式においても、保護されてなくファイルや外部ポートのような対象に出力する可能性のあるデータを所有するプログラムと、保護データを所有するプログラムが分離されていれば良い。
【0062】
(第6の実施例)
第1〜第5の実施例では、該プログラムからの出力要求時にデータ出力の許諾判定を行う実施例を示した。ところが、該プログラムの所持するデータを該プログラムからの出力要求なしに出力する機能をデータ入出力管理装置が有している場合もある。
【0063】
例えば、計算機システムにおいて、実際に存在する物理メモリの量を上回るプログラムを実行するために、現在実行が停止されているプログラムのテキストやデータはディスクなどの二次記憶に退避し、必要になったときにメモリにロードする手法がとられていることがある。これらは、ページングやスワッピングよ呼ばれる手法であるが、該プログラムからの出力要求がないにもかかわらず、該プログラムのデータが二次記憶に退避される。こういった機能を有する場合に、保護データが二次記憶に退避されたところで二次記憶媒体を取り外し、他の計算機につなぎ読み出すことにより、メモリ上に展開されていた保護データを複写されるという問題がある。これを防ぐためには、保護データがロードされているメモリ上の領域は二次記憶に退避しないようにすれば良い。
【0064】
該プログラムの所持するデータが該プログラムからの出力要求なしに出力される別の例として、次のような場合がある。プログラムの開発を支援するために、異常事態が起こったときにプログラムのデータをファイルに複写する機能を提供する計算機システムがある。この機能は、例えばUNIXではコアダンプと呼ばれる。コアダンプは、プログラムのデータをファイルに記録するため、これを読み出すことにより元のデータを再生することが可能である。
【0065】
図12は、第6の実施例のデータ入出力管理装置の概略構成図である。本実施例においては、データ入出力管理装置が、データ出力要求部17を有する。データ出力要求部17は、上で述べた二次記憶への退避、コアダンプの作成などの目的に、プログラムの識別子とデータ出力範囲を指定してデータ出力を要求する。出力許諾判定部5は、データ出力要求部17からの出力要求を受けると、図2のステップS27に記した入力要求受理部1からの要求を受けた場合と同様に、保護データ入力記憶部4を参照し、該プログラムが記録されているかどうかを調べる。記録されていなければ、該プログラムは保護データを読んでいないから、出力を許諾しても保護データが出力される可能性はない。このため出力要求を許諾して良い。これに対し、該プログラムの識別子が保護データ入力記憶部4に記録されていれば、該プログラムは保護データを読んだプログラムであるから、図2のステップS29と同様に出力要求先によって出力要求を認めるかそうでないかを判断する。出力先が別のプログラムあるいはディスプレイような他のプログラムから直接はデータを読めない出力機器であれば、出力要求を許諾して良い(図2のステップS30)。さもなければ、保護データが複製されるおそれがあるので、出力は拒否される(図2のステップS31)。出力要求が許可されると、データ出力部6により出力される(図2のステップS32)。なお、入出力プログラム11から入出力要求があったときの1から6の動作は、第1の実施例で述べたものと同等である。
【0066】
以上のように、該プログラムの所持するデータを該プログラムからの出力要求なしに出力する機能をデータ入出力管理装置が有している場合でも、保護データを読んだことのないプログラムからは自由にデータの出力ができ、保護データを読んだことのないプログラムからの出力はディスプレイのような恒久的でない対象にのみ許し、他への出力は禁じることができる。これにより、保護データが複製するおそれがなく、かつ保護データを読んだことのないプログラムからは自由にデータの出力ができる入出力データ管理方式が実現できる。
【0067】
また、出力要求は、明示的にデータを書き出す要求だけに限定されない。
例えば、UNIXのシステムコール「fork」のように、プログラムの複製を作る要求が発生されると、元のプログラムデータ部に複製される。この場合も、データが別のプログラムに出力されるわけであるから、出力要求に含まれるものと解釈する。
【0068】
また、ファイルの属性(名前、モード、時刻など)を変えるような要求も、ファイルシステムに対し、新たに設定する属性を出力する要求であるので、出力要求に含まれるものと解釈する。
【0069】
なお、ここで取り上げた実施例ではプロセスからの要求は要求受理部1で一括して扱ったが、入力要求を受理する入力要求受理部1と出力要求を受理する出力要求受理部1とに独立させれば、それぞれは図2や図10のステップS22のような要求の種類を判別する機能は持たなくても良い。
なお、本発明は上述した各実施例に限定されるものではなく、その要旨を逸脱しない範囲で、種々変形して実施することができる。
【0070】
【発明の効果】
本発明によれば、各プログラムが保護データを読んだか否かを管理するとともに、プログラムから出力要求を受けた場合、該プログラムが保護データを読んだか否かを調べ、および読んだものであるときには出力先を調べた上で、出力要求の諾否を決定するようにするので、指定されたデータに関して、読むことは可能であるが複製することはできず、ディスプレイ等の表示装置に表示することが可能であり、かつ指定された以外のデータに関しては通常の出力を可能とすることができる。
【図面の簡単な説明】
【図1】第1の実施例の概略構成を示す図
【図2】第1の実施例の動作を示すフローチャート
【図3】保護データを含むファイルに付加されるヘッダの例を示す図
【図4】保護データ入力記録部4の例を示す図
【図5】第2の実施例の概略構成を示す図
【図6】許諾出力先指定部の一例を示す図
【図7】第3の実施例の保護データ入力記録部の一例を示す図
【図8】許諾出力先指定部の一例を示す図
【図9】第4の実施例の概略構成を示す図
【図10】第4の実施例の動作を示すフローチャート
【図11】第5の実施例の概略構成を示す図
【図12】第6の実施例の概略構成を示す図
【符号の説明】
1…入出力要求受理部、2…データ入力部、3…保護データ判別部、4…保護デー入力記録部、5…出力許諾判定部、6…データ出力部、7…許諾出力先指定部、17…データ出力要求部
[0001]
[Industrial application fields]
The present invention relates to a data input / output management apparatus and a data input / output management method for inputting data in response to an input request from a program and outputting data in response to an output request from a program.
[0002]
[Prior art]
Unauthorized reproduction of copyrighted work is prohibited by copyright law. However, there is no means to technically prevent unauthorized copying of the copyrighted work, which may be done. For example, it is impossible to technically prevent copying of all or part of a work such as a book, magazine, newspaper, database, etc., and there is a risk that the work will be reproduced without permission regardless of the provisions of the law.
[0003]
If the copyrighted work is provided electronically using a medium such as a network, a floppy disk, or a CD-ROM, unauthorized duplication becomes a serious problem. This is because the reproduction of a copyrighted work provided on paper has the disadvantages of cost, time, quality degradation, and inability to display in any format. The reproduction of the image is less costly and less time-consuming, with less degradation of quality, and in the case of a digital work, it can be displayed in any format or partially used, and the reproduced work without permission is the original work. This is because there is no inferiority.
[0004]
However, there is no means in the prior art to technically prevent unauthorized copying of electronically provided works. For example, when a work is loaded and viewed on a computer, the program that reads the work and presents it to the user writes the work to an external port, other process, or file by generating an output request. Can do. This is because once a work is given to a program, how to use the work is left to the program, and means for defining the operation of the program is not provided. For this reason, it is possible to reprint a copyrighted work electronically.
[0005]
To prevent this, for example, all data output requests from a program may be rejected. However, this makes it impossible to output data from all programs running on the computer, which hinders the operation of programs other than copyrighted applications. Occurs. In addition, since the program issues an output request even when the copyrighted work is displayed on a medium such as a display, if all data output requests are prohibited, the copyrighted work cannot be displayed.
[0006]
In general, it is permitted to read certain data, not limited to copyrighted works, but means for realizing this is not provided when it is desired to prohibit copying of data or generation of data based on the data. Hereinafter, data that can be read but prohibited from being copied is referred to as “protected data”. When protection data is given to the program, this program can write the read protection data to a file, output it to the outside from the port, or give it to other programs by inter-process communication. There is a risk of duplication of protected data.
[0007]
In order to prevent this, for example, all output requests may be rejected. However, this makes it impossible to output data from a program that does not read the protected data, causing a problem. Further, if the output request is rejected, the output of the protection data to a medium such as a display which is not likely to be duplicated is prohibited, and there is a problem that the data cannot be displayed at all.
[0008]
[Problems to be solved by the invention]
As described above, the conventional data input / output management mechanism can only perform uniform access control on copyrighted material data. Also, when it is desired to prohibit the output of copyrighted material data, it could only be realized by prohibiting the output of all files to all output devices.
[0009]
Therefore, the conventional data input / output management mechanism provides fine-tuned management for copyrighted material data, such as permitting only read requests for copyrighted material data or permitting only output to a medium such as a display that is not likely to be copied. Could not do.
[0010]
The present invention has been made in consideration of the above-mentioned circumstances, and it is possible to read designated data and display it on a display device such as a display, but it cannot be duplicated and designated. An object of the present invention is to provide a data input / output management apparatus and a data input / output management method that enable normal output for data other than data.
[0011]
[Means for Solving the Problems]
The data input / output management device according to the present invention comprises an input / output request receiving means for receiving an input / output request for data issued from any one or a plurality of programs being executed together with an identifier of the program; When the output request is an input request, data input means for inputting the requested data and providing the data to the program; whether the data input by the data input means is protected data A protection data discrimination means for discriminating, a protection data input recording means for recording at least an identifier of the program when the data is protection data, and an output request issued when the input / output request is an output request Check whether the identifier of the program is recorded in the protected data input recording means, and if not, grant the output request Determining means for determining whether to permit or reject the output request based on at least information indicating the output destination for which the output request has been recorded, and when the output request is permitted by the determining means And a data output means for outputting the data requested for output to the output destination requested for the output.
Preferably, all the programs do not output the protection data to other programs, and the determination unit is configured to record the identifier of the program that issued the output request in the protection data input recording unit. If the output destination is determined in advance as a possibility that data cannot be read from another program, the output request is permitted, and otherwise, the output request is rejected. Then, it may be determined.
Preferably, the determining means grants the output request if the output destination is another program when the identifier of the program that issued the output request is recorded in the protected data input recording means. At this time, if the other program is not yet recorded in the protection data input recording means, the other program may be recorded in the protection data input recording means.
Preferably, the data input / output management device stores a table that stores information indicating an output destination and an identifier of data that should be permitted to be output to the output destination or information that can specify the identifier. And further comprising a storage means, wherein the protection data input recording means also stores an identifier of the protection data given to the program in association with the identifier of the program, and the determination means is a program that issued the output request. When the identifier is recorded in the protection data input recording means, referring to the table, all of the protection data in which the identifier is recorded in the protection data input recording means in association with the identifier of the program, If the output to the requested output destination is to be permitted, the output request is permitted. It may be determined to be determined to reject the force required.
Preferably, when the program issues an input request for new protection data, another program may be newly started to request the input of the protection data.
Preferably, when having a function of outputting data held by the program regardless of an output request from the program, the output permission unit is configured such that the identifier of the program to output data is the protected data input recording unit. If it is not recorded, the data output of the program may be permitted, and if it is recorded, the data output of the program may not be permitted.
[0015]
The data input / output management method according to the present invention includes a step of receiving an input / output request for data issued from any one or more of the programs being executed together with an identifier of the program; Is an input request, the requested data is given to the program, and it is determined whether the data is protected data. If the data is protected data, at least the identifier of the program is recorded. And if the input / output request is an output request, it is checked whether the identifier of the program that issued the output request is recorded in the protected data input recording means, and if it is not recorded, the output request Whether or not to permit or reject the output request based on at least the information indicating the output destination that requested the output. Steps and, only when the output request is granted, the data input and output management method characterized by a step of outputting the data that has been output request to a output destination of the output request to a constant.
[0016]
[Action]
In the present invention, when a data input / output request is issued from the program, the data is received by the input / output request receiving means, and when it is an input request, the data is read by the data input means, and this data is read by the protection data determining means. It is determined whether or not the data is protected data. If it is protected data, at least the identifier of the program is recorded in the protected data input recording means. Thus, it can be managed that each program whose identifier is recorded in the protection data input recording means has read the protection data.
If the input / output request from the program is an output request, it is checked whether or not the identifier of the program that issued the output request is recorded in the protected data input recording means, and when it is not recorded (that is, the program is protected data If you are not reading), you may grant an output request. On the other hand, when it is recorded (that is, when the protection data is being read), it is determined whether or not to permit based on at least information indicating the output destination for which the output request has been made.
The permitted data is output by the data output means. Thus, a normal output request is permitted for a program that does not read protected data, and an output request is permitted for a read program only when there is no possibility of copying.
Therefore, according to the present invention, the protection data can be read but cannot be duplicated, can be displayed on a display device such as a display, and normal output is possible except for the protection data. It can be.
[0020]
【Example】
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a schematic configuration diagram of a data input / output management apparatus according to an embodiment of the present invention. As shown in FIG. 1, the data input / output management apparatus according to the present embodiment includes an input / output request accepting unit 1, a data input unit 2, a protected data determination unit 3, a protected data input recording unit 4, an output permission determination unit 5, and a data output. It consists of part 6.
[0021]
FIG. 2 is a flowchart showing the operation of this embodiment.
When the input / output request program 11 generates a request, the input / output request accepting unit 1 accepts the request and determines the identifier of the input / output request program 11 and the type of request (step S21).
[0022]
Usually, a program for receiving a system call from a process and discriminating the type of the system call is provided in the OS, and the input / output request accepting unit 1 corresponds to this. The input / output request program 11 may be executed on the same computer as the input / output request accepting unit 1 or may be executed on a different computer. For example, when executed on the same computer, the process ID may be used as an identifier, and when executed on another computer, a pair of host ID and process ID may be used as an identifier. The request type is transferred by the input / output request program 11 specified by a predetermined procedure such as writing a request identifier in a specific register or sending an identifier at the head of the request when issuing the request. The request receiving unit 1 may read and determine (step S22).
[0023]
When the input / output request acceptance unit 1 finds that the request is an input request, the data input unit 2 inputs the requested data (step S23).
If the data is stored in a storage medium such as a disk, CD-ROM, or tape, the data input unit 2 reads out the data. Further, data may be read from a non-storage type medium such as a network. Software called a device driver in the OS corresponds to these.
[0024]
The protected data determination unit 3 determines whether or not the data requested to be input is protected data (step S24).
In this embodiment, it is assumed that the data to be read is stored as a file on the storage medium, and the file including the protection data has a header of a predetermined format. Accordingly, the protected data determination unit 3 may determine that the read file is protected data if it has a header of this format, and if not, it is determined that it is not protected data. The format of this header may be recorded in advance in the protected data discriminating unit 3, or may be recorded in another file and may be known by the protected data discriminating unit 3 referring to the file. Further, another program may manage and notify the protection data determination unit 3.
[0025]
Further, another determination method may be taken. For example, information for determining whether or not protected data is stored in the file itself is not added, but whether the data is protected or not is determined by the name of the file in which the data is stored, or It may be determined by the type of medium in which the file is stored and the storage position in the storage medium.
[0026]
FIG. 3 is a diagram illustrating an example of a header included in a file including protected data. In this embodiment, it is assumed that a fixed format header is added to the file storing the protection data. Data stored in a file that owns this header is protected data, and data stored in a file that is not owned is not protected data. The header includes a number indicating that the file includes protection data, a data file ID indicating the data file, a producer ID indicating the producer, and a decryption for specifying a key for decrypting the encrypted protection data Key number, etc. are described.
[0027]
Next, as a result of the determination, if the protection data is included, recording is performed in the protection data input recording unit 4 (step S25).
FIG. 4 is a diagram illustrating an example of the structure of the protection data input recording unit 4 of the present embodiment. If it is determined that the data is protection data, the identifier of the input / output request program 11 is recorded in the protection data input recording unit 4. If the identifier is already recorded, it is not necessary to record it. In this embodiment, the ID of a process that has read at least one piece of protection data from this protection data input / output management method is recorded as a list structure.
[0028]
For example, in FIG. 4, the process ID (23 in the figure) “5” and the pointer to the next link destination (24 in the figure) are stored in the list (22 in the figure) indicated by the pointer 21 in the figure. Has been. If there is no link destination, data indicating that is stored (25 in the figure).
[0029]
Finally, data is given to the input / output request program 11 (step S26).
If the data is encrypted, it may be decrypted and passed. For this purpose, the decryption key number described in the header and the encrypted data are passed to the decryption unit. This may be realized by software or by hardware to increase security. When the input / output request program 11 is operating on another computer, encrypted data may be given together with the decryption key, and decryption may be performed by the computer on which the input / output request program 11 is operating.
[0030]
On the other hand, when the input / output request program 11 generates an output request, the input / output request accepting unit 1 detects that it is an output request (step S22).
The output permission determination unit 5 checks whether or not the identifier of the input / output request program 11 that has generated the output request is recorded in the protected data input recording unit 4 (step S27).
[0031]
If not recorded, the input / output request program 11 has not read the protection data, so there is no possibility of outputting the protection data. Therefore, an output request may be granted (step S28).
[0032]
On the other hand, if the identifier of the input / output request program 11 is recorded in the protected data input recording unit 4, since the input / output request program 11 is a program that has read the protected data, the output request destination acknowledges the output request. It is determined whether or not (step S29).
[0033]
If the output destination is an output device that cannot directly read data from another program or another program such as a display, an output request may be granted (step S30).
[0034]
Otherwise, since the protection data may be duplicated, the output is rejected (step S31).
When the output request is permitted (steps S28 and S30), the data output unit 6 performs output (step S32).
[0035]
Therefore, data can be output freely from programs that have never read protected data, output from programs that read protected data is allowed only to non-permanent objects such as displays, and output to others is prohibited. Can do. As a result, it is possible to realize an input / output data force management system that can output data freely from a program that does not cause the protection data to be duplicated or that has not read the protection data.
[0036]
(Second embodiment)
In the first embodiment, when the identifier of the input / output request program 11 is recorded in the protected data input recording unit 4, the output permission determination unit 5 determines whether the output destination is a display and accepts or rejects the output. Is judged. However, there are cases where it is better not to fix the output destination. For example, when one computer has a plurality of displays, it does not always want to output to all the displays. In some cases, the protection data may be output to a specific device other than the display. In order to make it possible to change the output destination for which the output of protected data is permitted, the permitted output destination of the protected data may be designated by the permitted output destination designation unit 7. The second embodiment shows an example for realizing this.
[0037]
FIG. 5 is a schematic configuration diagram of the data input / output management device of the second embodiment. In the present embodiment, the permission output destination designation unit 7 is added to the configuration of the first embodiment, and the output permission determination unit 5 refers to the protected data input recording unit 4 and the permission output destination designation unit 7 in the first way. Different from the embodiment.
[0038]
FIG. 6 is an example of the permission output destination designation unit 7 of the present embodiment. As a result, an output destination table that is permitted to output the protection data is provided. The output permission determination unit 5 permits the output if the output request destination is included in this list, and rejects if the output request destination is not included. In this embodiment, the virtual name of the device managed by the OS, such as “/ dev / console”, is specified. However, the present invention is not limited to this, and the output destination is an identifier that can uniquely identify the output destination, such as a port number. You can specify. If this output destination table is illegally changed, the protection data may be copied, so it is necessary to maintain high security by a method such as management by the OS.
[0039]
As described above, according to this embodiment, it is possible to change the output destination to which the output of the protection data is permitted.
(Third embodiment)
In the second embodiment, the output destinations that can be output for all protection data are common. However, there are cases where it is desired to output certain protection data to a certain output destination but not to output other protection data to that output destination. In this case, the permitted output destination for each protected data is specified in the permitted output destination specifying unit 7 and the identifier of the protected data given to each program is recorded in the protected data input recording unit 4. The output permission determination unit 5 may determine the output permission with reference to these. The third embodiment shows an example for realizing this.
[0040]
FIG. 7 is a diagram illustrating an example of the structure of the protection data input recording unit 4 of the present embodiment. If it is determined that the data is protection data, the identifier of the input / output request program 11 is recorded in the protection data input recording unit 4. If the identifier of the input / output request program 11 has already been recorded, the data file ID is recorded in the list of protected data read by the input / output request program 11. If the identifier of the input / output request program 11 is not recorded, the identifier is newly recorded, and the data file ID is recorded as the protection data read by the input / output request program 11.
[0041]
For example, in FIG. 7, in the list (32 in the figure) indicated by the pointer 31 in the figure, “5” which is the process ID (33 in the figure), a pointer to the link destination of the list of data file IDs (in the figure) 34) A pointer (35 in the figure) to the link destination of the list of the next process ID is stored. The list of 36 in the figure stores “123” which is the data file ID (37 in the figure) and a pointer to the next link destination (38 in the figure). Similarly, in FIG. 7, processes with data file IDs 5, 20, 25, and 40 are recorded as a list structure as programs that read protected data, and the process with ID5 has data file IDs 123 and 25. The process of ID20 is the protection data with the data file ID of 8, the process of ID25 is the protection data with the data file ID of 123, the process of ID40 is the data file ID of It can be seen that 85 protected data are being read. If there is no link destination, data indicating that is stored (39, 40 in the figure).
[0042]
FIG. 8 is an example of the permission output destination designation unit 7 of the present embodiment. This is a correspondence table of output destinations and data file IDs permitted to be output to the output destinations. The first line indicates that all data files can be output to “/ dev / console”. The second line indicates that if the data file ID is 123 or 65, it is possible to output to “/ dev / tty0”. The third line indicates that data files whose IDs are 0 or more and 127 or less can be output to “/ dev / fb”. The fourth line indicates that data files whose ID is not between 0 and 127 can be output to “/ dev / win1”.
[0043]
The output permission determination unit 5 searches the protected data input recording unit 4 from the identifier of the input / output request program 11, and obtains the data file ID read by the program. When only one data file is recorded, the permitted output destination designation unit 7 is searched to check whether or not the data file is permitted to be output to the requested output destination. For example, when there is an output request from “process 20” to “/ dev / fb”, the output permission determination unit 5 performs the following processing. First, the protection data input recording unit 4 is searched, and it is understood that “process 20” is reading “data file 8”. Next, when the permitted output destination designation unit 7 is searched, “data file 8” is permitted to be output to “/ dev / fb”. Therefore, an output request from “process 20” to “/ dev / fb” may be permitted.
[0044]
When the output permission determination unit 5 searches the protected data input recording unit 4 from the identifier of the input / output request program 11 and there are two or more data files read by the program, the output permission determination unit 7 searches the license output destination designation unit 7. The output is permitted only when the output of all these data files to the requested output destination is permitted. For example, if there is an output request from “process 5” to “/ dev / tty0”, the output permission determination unit 5 performs the following processing. First, the protection data input recording unit 4 is searched, and it is understood that “process 5” is reading “data file 123” and “data file 25”. Next, when the permitted output destination designation unit 7 is searched, “data file 123” is permitted to be output to “/ dev / tty0”, but “data file 25” is directed to “/ dev / tty0”. Is not allowed to output. Therefore, if the output is permitted, the protected data stored in the “data file 25” may be output to the prohibited output destination. Therefore, the output permission determination unit 5 rejects an output request from “process 5” to “/ dev / tty0”.
[0045]
As described above, according to the present embodiment, it is possible to specify an output destination for which output is permitted for each protected data, and it is possible to prevent output to output destinations other than those permitted.
[0046]
(Fourth embodiment)
In the first embodiment, the protection data is generated only by an input request from the program. However, in the second embodiment, the OS has a function of performing communication between programs and transferring data. The data input / output management method is taken up. When a program is executed in an OS having a function of transferring data between programs, a program that has read protected data can pass data to another program. For this reason, communication between programs must also be managed.
[0047]
FIG. 9 is a schematic configuration diagram of a data input / output management device according to the fourth embodiment. This embodiment is different from the first embodiment in that the output permission determination unit 5 not only refers to the record of the protection data input recording unit 4 but also changes it.
[0048]
FIG. 10 is a flowchart showing the operation of this embodiment. This flowchart is mostly the same as the flowchart of FIG. 2, and the processing content of step S31 of FIG. 2 is changed. Here, only a different part from the flowchart of FIG. 2 is demonstrated.
[0049]
When the program that has read the protected data makes an output request (step S22, step S27), and the output destination is not a target that cannot be read by another program such as a display (step S29), the output permission determination unit 5 Checks whether the output destination is another program (step S41).
[0050]
If so, since the output destination program may also receive the protection data, if the identifier of the output destination program is not recorded in the protection data input recording unit 4, this is recorded (step S42). Then, the data output unit 6 may exchange data between programs (step S32).
[0051]
In step S41, if the output destination is not another program, the output is rejected (step S43).
Therefore, data can be freely transferred as usual from a program that does not read protected data. A program that reads protected data can output data to objects that cannot be read from other programs such as a display, and can send and receive data to other programs. Is treated as a program that reads protected data. Data is not output to other targets. Thereby, duplication of protection data can be prevented.
[0052]
(Fifth embodiment)
In the first and fourth embodiments, an output request from a program that has not read protected data is permitted, and an output request from a program that has read protected data does not cause duplication of the protected data. Only licensed. Therefore, a program that has read protected data refuses to output even non-protected data to a target such as a file or an external port.
[0053]
In the present embodiment, when an output request is issued from a program, different output control can be performed depending on whether the output data originates from protected data or not. Thereby, for example, the application program reads the protection data and displays it to the user, and the user can save the memo when he / she wants to create a memo related thereto.
[0054]
In the fifth embodiment, the program can read the protection data, and can output data that does not originate from the protection data to a target such as a file or an external port.
[0055]
FIG. 11 is a schematic configuration diagram of the fifth embodiment.
First, when the program 1 (11 in the figure) not reading the protection data requests input of the protection data, the program 2 (12 in the figure) is first generated.
[0056]
For example, in UNIX, a copy of a process executing program 1 may be created by a system call called “fork” and considered as program 2. Other OSs may request the OS to generate new processes and tasks.
[0057]
Next, a protection data input / output request is generated from the program 2.
This request is accepted by the input / output request accepting unit 1, and it is recorded in the protected data input recording unit 4 that the protection data is given to the program 2, as in the first and fourth embodiments. Program 2 can read the protected data.
[0058]
When a data output request is generated from the program 2, it is processed in the same manner as in the first and second embodiments, and data cannot be output to a target such as a file or an external port.
[0059]
However, when a data output request is generated from the program 1, since the program 1 does not read the protected data, the data can be output regardless of the target. Therefore, data that does not need to be protected, such as a file or an external port, can be freely output if the program 1 has it.
[0060]
This can be realized, for example, as follows. First, the program 1 starts executing in a state where the protection data is not read. When inputting protection data, a new program 2 is generated and an input request is generated in the program 2. The program 1 which has not input protection data performs the input from a user and data other than protection data. As a result, protected data and unprotected data can be managed separately in different programs. Therefore, unprotected data can be output to a target such as a file or an external port.
[0061]
Here, when the protection data is read twice or more, the following three methods are conceivable.
Program 2 that read protection data before reads protection data
A method in which protected data is read by a third program different from program 2 or program 1 that has previously read protected data.
When reading protected data whose header data is equivalent to the previously read protected data, the program 2 that previously read the protected data reads, otherwise the new third program reads the protected data
In any method, it is only necessary to separate a program that owns data that is not protected and that may be output to a target such as a file or an external port, and a program that owns protected data.
[0062]
(Sixth embodiment)
In the first to fifth embodiments, the embodiment in which the permission determination of the data output is performed at the time of the output request from the program is shown. However, the data input / output management device may have a function of outputting the data held by the program without requesting output from the program.
[0063]
For example, in a computer system, in order to execute a program that exceeds the amount of physical memory that actually exists, the text and data of the program that is currently stopped are saved to secondary storage such as a disk and become necessary. Sometimes a method of loading into memory is taken. These are methods called paging and swapping, but the data of the program is saved in the secondary storage even though there is no output request from the program. When such a function is provided, the protection data developed in the memory is copied by removing the secondary storage medium when the protection data is saved in the secondary storage, and connecting to another computer and reading it out. There's a problem. In order to prevent this, the area on the memory loaded with the protection data should not be saved in the secondary storage.
[0064]
Another example in which data held by the program is output without an output request from the program is as follows. In order to support program development, there is a computer system that provides a function of copying program data to a file when an abnormal situation occurs. This function is called a core dump in UNIX, for example. Since core dump records program data in a file, it is possible to reproduce the original data by reading it.
[0065]
FIG. 12 is a schematic configuration diagram of a data input / output management device according to the sixth embodiment. In this embodiment, the data input / output management device has a data output request unit 17. The data output request unit 17 requests data output by designating a program identifier and a data output range for the purpose of saving to the secondary storage and creating a core dump as described above. When receiving the output request from the data output requesting unit 17, the output permission determining unit 5 receives the request from the input request receiving unit 1 described in step S27 in FIG. To check whether the program is recorded. If it is not recorded, the program does not read the protection data, so there is no possibility that the protection data is output even if the output is permitted. For this reason, an output request may be granted. On the other hand, if the identifier of the program is recorded in the protected data input storage unit 4, the program is a program that has read the protected data, so that an output request is issued by the output request destination as in step S29 of FIG. Judge whether to accept or not. If the output destination is an output device that cannot directly read data from another program or another program such as a display, an output request may be granted (step S30 in FIG. 2). Otherwise, since the protection data may be duplicated, the output is rejected (step S31 in FIG. 2). When the output request is permitted, the data output unit 6 outputs the request (step S32 in FIG. 2). The operations 1 to 6 when an input / output request is made from the input / output program 11 are the same as those described in the first embodiment.
[0066]
As described above, even if the data input / output management device has a function of outputting the data held by the program without an output request from the program, it is free from a program that has not read the protected data. Data can be output, and output from programs that have never read protected data can only be allowed to non-permanent objects such as displays, and output to others can be prohibited. As a result, it is possible to realize an input / output data management method in which protected data can be freely output from a program that has no fear of copying the protected data and has not read the protected data.
[0067]
The output request is not limited to a request for explicitly writing data.
For example, when a request for making a copy of a program is generated, such as a UNIX system call “fork”, the copy is copied to the original program data portion. In this case, since the data is output to another program, it is interpreted as being included in the output request.
[0068]
A request for changing the file attributes (name, mode, time, etc.) is also a request for outputting a newly set attribute to the file system, and is therefore interpreted as being included in the output request.
[0069]
In the embodiment described here, requests from the process are collectively handled by the request receiving unit 1, but the request receiving unit 1 that receives input requests and the output request receiving unit 1 that receives output requests are independent of each other. If so, each may not have the function of determining the type of request as in step S22 of FIG. 2 or FIG.
The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the invention.
[0070]
【The invention's effect】
According to the present invention, whether or not each program has read the protected data is managed, and when an output request is received from the program, it is checked whether or not the program has read the protected data. After checking the output destination, whether or not to accept the output request is determined, so that the specified data can be read but cannot be duplicated and displayed on a display device such as a display. It is possible and normal output can be made possible for data other than those specified.
[Brief description of the drawings]
FIG. 1 is a diagram showing a schematic configuration of a first embodiment.
FIG. 2 is a flowchart showing the operation of the first embodiment.
FIG. 3 is a diagram illustrating an example of a header added to a file including protected data.
FIG. 4 is a diagram showing an example of a protection data input recording unit 4
FIG. 5 is a diagram showing a schematic configuration of a second embodiment.
FIG. 6 is a diagram illustrating an example of a permission output destination designation unit
FIG. 7 is a diagram illustrating an example of a protected data input recording unit according to a third embodiment.
FIG. 8 is a diagram showing an example of a permission output destination designation unit
FIG. 9 is a diagram showing a schematic configuration of a fourth embodiment.
FIG. 10 is a flowchart showing the operation of the fourth embodiment.
FIG. 11 is a diagram showing a schematic configuration of a fifth embodiment.
FIG. 12 is a diagram showing a schematic configuration of a sixth embodiment.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Input / output request reception part, 2 ... Data input part, 3 ... Protection data discrimination | determination part, 4 ... Protection data input recording part, 5 ... Output permission determination part, 6 ... Data output part, 7 ... License output destination designation | designated part, 17: Data output request section

Claims (7)

実行中の1又は複数のプログラムのうちのいずれかから発せられたデータの入出力要求を該プログラムの識別子とともに受理する入出力要求受理手段と、
前記入出力要求が入力要求である場合、該入力要求のあったデータを入力し、前記プログラムに該データを与えるデータ入力手段と、
前記データ入力手段により入力された前記データが保護データであるか否かを判別する保護データ判別手段と、
前記データが保護データである場合、少なくとも前記プログラムの識別子を記録する保護データ入力記録手段と、
前記入出力要求が出力要求である場合、該出力要求を発した前記プログラムの識別子が前記保護データ入力記録手段に記録されているか否か調べ、記録されていないときは該出力要求を許諾し、記録されていたときは少なくとも該出力要求のあった出力先を示す情報に基づいて出力要求を許諾するか拒否するかを決定する決定手段と、
この決定手段により前記出力要求が許諾された場合にのみ、該出力要求のあったデータを該出力要求のあった出力先へ出力するデータ出力手段を具備したことを特徴とするデータ入出力管理装置。
Input / output request accepting means for accepting an input / output request for data issued from either one or a plurality of programs being executed together with an identifier of the program;
When the input / output request is an input request, data input means for inputting the requested data and giving the data to the program;
Protected data determination means for determining whether or not the data input by the data input means is protected data;
When the data is protected data, at least protected data input recording means for recording an identifier of the program;
If the input / output request is an output request, check whether the identifier of the program that issued the output request is recorded in the protected data input recording means, and if not , grant the output request, Determining means for determining whether to permit or reject the output request based on at least information indicating the output destination where the output request has been recorded,
Only when the output request is authorized by the determining means, data input and output management, characterized by comprising a data output means for outputting the data that has been output request to a output destination of the output request apparatus.
前記プログラムは全て他のプログラムへ保護データを出力することのないものであり、All of the programs do not output protection data to other programs,
前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記出力先が他のプログラムからデータを読まれる可能性のないものとして予め定められているものであるならば、前記出力要求を許諾し、それ以外ならば、前記出力要求を拒否すると決定すると決定することを特徴とする請求項1に記載のデータ入出力管理装置。The determining means is determined in advance so that the output destination is not likely to be read from another program when the identifier of the program that issued the output request is recorded in the protected data input recording means. 2. The data input / output management apparatus according to claim 1, wherein if it is, the output request is permitted, and otherwise, it is determined that the output request is rejected.
前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記出力先が他のプログラムであるならば、前記出力要求を許諾すると決定するとともに、その際、当該他のプログラムが前記保護データ入力記録手段に未だ記録されていなければ、当該他のプログラムを前記保護データ入力記録手段に記録することを特徴とする請求項1に記載のデータ入出力管理装置。The determining means determines that the output request is permitted if the output destination is another program when the identifier of the program that issued the output request is recorded in the protected data input recording means. In this case, if the other program is not yet recorded in the protection data input recording means, the other program is recorded in the protection data input recording means. Output management device. 前記データ入出力管理装置は、出力先を示す情報と、当該出力先への出力を許諾すべきデータの識別子又はこれを特定可能な情報とを対応付けて保持するテーブルを記憶するテーブル記憶手段を更に備え、The data input / output management device includes a table storage unit that stores a table that holds information indicating an output destination and an identifier of data that should be permitted to be output to the output destination or information that can specify the identifier. In addition,
前記保護データ入力記録手段は、前記プログラムの識別子に対応付けて、当該プログラムへ与えられた保護データの識別子をも記憶し、The protection data input recording means also stores an identifier of protection data given to the program in association with the identifier of the program,
前記決定手段は、前記出力要求を発したプログラムの識別子が前記保護データ入力記録手段に記録されていたときにおいて、前記テーブルを参照し、該プログラムの識別子に対応付けて前記保護データ入力記録手段に識別子が記録されている保護データの全てについて、該要求のあった出力先への出力が許諾すべきものとされているならば、前記出力要求を許諾し、それ以外ならば、前記出力要求を拒否すると決定すると決定することを特徴とする請求項1に記載のデータ入出力管理装置。The determination means refers to the table when the identifier of the program that issued the output request is recorded in the protection data input recording means, and associates the identifier with the program identifier in the protection data input recording means. If the output to the requested output destination is to be permitted for all the protected data in which the identifier is recorded, the output request is permitted. Otherwise, the output request is rejected. The data input / output management device according to claim 1, wherein the data input / output management device is determined to be determined.
前記プログラムは、新たな保護データの入力要求を発する場合、該保護データの入力を要求させるために、他のプログラムを新たに起動することを特徴とする請求項1に記載のデータ入出力管理装置。  2. The data input / output management apparatus according to claim 1, wherein when the program issues an input request for new protection data, the program starts another program to request the input of the protection data. . 前記プログラムからの出力要求によらず前記プログラムの保持するデータを出力する機能を有する場合に、前記出力許諾手段は、データを出力しようとする該プログラムの識別子が前記保護データ入力記録手段に記録されていないときは、該プログラムのデータ出力を許諾し、記録されていたときは該プログラムのデータ出力を許諾しないことを特徴とする請求項1に記載のデータ入出力管理装置。  When the output permission unit has a function of outputting data held by the program regardless of an output request from the program, the output permission unit records an identifier of the program to output the data in the protected data input recording unit. 2. The data input / output management apparatus according to claim 1, wherein when the data is not recorded, the data output of the program is permitted, and when the data is recorded, the data output of the program is not permitted. 実行中の1又は複数のプログラムのうちのいずれかから発せられたデータの入出力要求を該プログラムの識別子とともに受理するステップと、
前記入出力要求が入力要求である場合、該入力要求のあったデータを前記プログラムに与え、該データが保護データであるか否かを判別し、該データが保護データである場合、少なくとも前記プログラムの識別子を記録するステップと、
前記入出力要求が出力要求である場合、該出力要求を発した前記プログラムの識別子が前記保護データ入力記録手段に記録されているか否か調べ、記録されていないときは該出力要求を許諾するし、記録されていたときは少なくとも該出力要求のあった出力先を示す情報に基づいて出力要求を許諾するか拒否するかを決定するステップと
前記出力要求が許諾された場合にのみ、該出力要求のあったデータを該出力要求のあった出力先へ出力するステップとを有することを特徴とするデータ入出力管理方法。
Receiving an input / output request for data issued from any one or more of the running programs together with an identifier of the program;
If the input / output request is an input request, the data requested by the input is supplied to the program, and it is determined whether or not the data is protected data. If the data is protected data, at least the program Recording the identifier of
When the input / output request is an output request, it is checked whether or not the identifier of the program that issued the output request is recorded in the protected data input recording means, and if it is not recorded, the output request is granted. and determining whether to accept or refuse permission an output request based on the information indicating the a output destination of at least the output request when it was recorded,
A data input / output management method comprising: outputting the data requested for output to the output destination requested for the output only when the output request is granted.
JP22123594A 1994-09-16 1994-09-16 Data input / output management apparatus and data input / output management method Expired - Fee Related JP3637080B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22123594A JP3637080B2 (en) 1994-09-16 1994-09-16 Data input / output management apparatus and data input / output management method
US08/528,881 US5870467A (en) 1994-09-16 1995-09-15 Method and apparatus for data input/output management suitable for protection of electronic writing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22123594A JP3637080B2 (en) 1994-09-16 1994-09-16 Data input / output management apparatus and data input / output management method

Publications (2)

Publication Number Publication Date
JPH0887440A JPH0887440A (en) 1996-04-02
JP3637080B2 true JP3637080B2 (en) 2005-04-06

Family

ID=16763592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22123594A Expired - Fee Related JP3637080B2 (en) 1994-09-16 1994-09-16 Data input / output management apparatus and data input / output management method

Country Status (1)

Country Link
JP (1) JP3637080B2 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3779837B2 (en) * 1999-02-22 2006-05-31 松下電器産業株式会社 Computer and program recording medium
JP2001202279A (en) * 2000-01-19 2001-07-27 Victor Co Of Japan Ltd File managing method and file managing program recording medium
JP5249376B2 (en) * 2000-11-20 2013-07-31 ハミングヘッズ株式会社 Information processing apparatus and method, and program
JP2003044297A (en) 2000-11-20 2003-02-14 Humming Heads Inc Information processing method and device controlling computer resource, information processing system, control method therefor, storage medium and program
JP3927376B2 (en) * 2001-03-27 2007-06-06 日立ソフトウエアエンジニアリング株式会社 Data export prohibition program
JP3904408B2 (en) * 2001-05-02 2007-04-11 株式会社リコー Information management system, information management method, and information management program
JP4128348B2 (en) * 2001-10-25 2008-07-30 富士通株式会社 Data management system
JP2004302995A (en) * 2003-03-31 2004-10-28 Fujitsu Ltd File access restriction program
JP2005128996A (en) 2003-09-30 2005-05-19 Dainippon Printing Co Ltd Information processing apparatus, information processing system, and program
JP4389622B2 (en) * 2004-03-24 2009-12-24 日本電気株式会社 Data monitoring method, information processing apparatus, program and recording medium, and information processing system
JP4628073B2 (en) * 2004-11-30 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ Access control apparatus and access control method
JP2008083886A (en) * 2006-09-27 2008-04-10 Hitachi Software Eng Co Ltd Confidential information leakage prevention method and system
US20100186068A1 (en) * 2007-06-12 2010-07-22 Yoshiki Okuyama Communication apparatus, communication control method, and program
JP4087434B1 (en) * 2007-07-23 2008-05-21 Sky株式会社 Data security control system
JP5011136B2 (en) * 2008-01-21 2012-08-29 株式会社日立製作所 Information leak detection system
WO2010067703A1 (en) * 2008-12-08 2010-06-17 日本電気株式会社 Data dependence analyzer, information processor, data dependence analysis method, and program
JP2009151827A (en) * 2009-04-06 2009-07-09 Nec Corp Data monitoring method, information processor, program, recording medium, and information processing system
JP6852337B2 (en) * 2016-09-29 2021-03-31 富士通株式会社 Information processing equipment, information processing programs, information processing systems and information processing methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63129564A (en) * 1986-11-19 1988-06-01 Fujitsu Ltd Method for preventing unauthorized copying of recording media
JP2568908B2 (en) * 1988-11-25 1997-01-08 富士写真フイルム株式会社 Digital image storage and playback device
JPH05210594A (en) * 1992-01-30 1993-08-20 Ricoh Co Ltd Method for protecting copyright of external storage medium
JPH08137686A (en) * 1994-09-16 1996-05-31 Toshiba Corp Method and device for managing data on literary work

Also Published As

Publication number Publication date
JPH0887440A (en) 1996-04-02

Similar Documents

Publication Publication Date Title
JP3637080B2 (en) Data input / output management apparatus and data input / output management method
US5870467A (en) Method and apparatus for data input/output management suitable for protection of electronic writing data
JP3671178B2 (en) Integrity authentication and verification system for content usage environment
CN100362495C (en) Device and method for preventing information leakage
JP4007873B2 (en) Data protection program and data protection method
EP0561685B1 (en) An electronic data protection system
JP4208085B2 (en) Application program control method and apparatus
EP2073141A1 (en) Information processing device and method, computer-readable recording medium, and external storage medium
JP2003022338A (en) Content management method and content management device
JPH08137686A (en) Method and device for managing data on literary work
EP0818723A2 (en) Computer system with a copy-protecting function and recording medium for use with the same
US20040098343A1 (en) Contents reproducing apparatus, contents reproduction control program and recording medium having a contents reproduction control program recorded thereon
JP2001256014A (en) Output system, output method to be used for the same and recording medium in which program to be executed in output system is recorded
JP3765145B2 (en) Electronic information distribution method
US7966460B2 (en) Information usage control system, information usage control device and method, and computer readable medium
JP4389622B2 (en) Data monitoring method, information processing apparatus, program and recording medium, and information processing system
CN1637851B (en) Music device for selectively decrypting available content in loaded composite content
JP4516598B2 (en) How to control document copying
JP2004302995A (en) File access restriction program
WO1998027494A1 (en) Electronic document management method
JPH05265832A (en) Client/server-type filing system with data security function
JP2008539502A (en) Validation
JPWO2007049337A1 (en) Print image generation program, recording medium thereof, and print image generation method
JP2009151827A (en) Data monitoring method, information processor, program, recording medium, and information processing system
JP5239702B2 (en) Information use control system and program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040506

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: 20050104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050107

LAPS Cancellation because of no payment of annual fees