説明

コンピュータファイルがコピーされたかを検出するための方法及び装置、並びに、この検出を可能にするための方法及び装置

【課題】
コンピュータファイル(iノード番号を有するコンピュータファイル)がコピーされたか否かを検出する方法を提供する。
【解決手段】
コンピュータファイルの前記iノード番号が取り出される。記憶されたiノード番号が読み込まれ、前記記憶されたiノード番号は、前記コンピュータファイルがコピーされてはならないファイルシステムの前記iノード番号である。取り出されたiノード番号及び読み込まれたiノード番号が比較される。取り出されたiノード番号が読み込まれたiノード番号に一致しない場合、コンピュータファイルがコピーされたものであると判断される。 コンピュータファイルがコピーされたことの検出を可能にする方法、及び前記方法に対応するソフトウェアプログラム製品、及びデバイスが提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコピープロテクト、及び特にソフトウェアのコピープロテクトに関する。
【背景技術】
【0002】
[背景]
このセクションでは技術のさまざまな態様を説明することを目的とする。これらは、下記に記載され、及び/又はクレームされるさまざまな本発明の態様に関連し得る。この説明は、さまざまな本発明の態様のより良好な理解を容易にするために読者に背景情報を提供するのに有効であると考える。したがって、これらの記載は、この観点から理解されるべきであり、かつ従来技術の存在を認めているわけではないと理解されなければならない。
【0003】
ソフトウェアディストリビュータが、一部の人々が代償を払うことなくソフトウェアアプリケーションの無ライセンスコピーを使用しているという著作権侵害に直面していることは珍しいことではない。このことは、特にコンピュータゲームの領域において見られることである。ゲーム提供者、及びディストリビュータは、したがって、保護メカニズムを使用し、この種の著作権侵害を防止することを試みる。この種の保護メカニズムとしては、以下のものが挙げられる。
・SecuROM
・SafeMedia
・フロッピー(登録商標)ディスク上のアドレスマーク及び他のマーク又は同期フィールドの変更
・CD−Rに書くことができないCD−ROMの場所に関するデータを使うこと
・ソフトウェアを適切に実行するために購入の証拠を要求する。レジストレーションキー及びシリアルナンバーはこの場合に利用できる。
・ドングル
・バスの暗号化
・ソフトウェア実行ファイルと同じディレクトリに記憶されなければならないキーファイル
・電話又はインターネットを介しての製品のアクティベーション
【発明の概要】
【発明が解決しようとする課題】
【0004】
ソフトウェアは、しばしばコンピュータのユニークなアイデンティファイアに結びつけられている(例えばハードウェアシリアルナンバ又はMACアドレス)。しかしながら、一般のPCにおいては、このようなアイデンティファイアを容易に利用することは難しい。更に、このアイデンティファイアがファイル(例えばキーファイル)にセットされている場合、このファイル自体が他のコンピュータにコピーされてしまう。そして、MACアドレスは、新しいイーサーネットカードにおいては書き換えられてしまう。したがって、コピープロテクションが破られてしまう。
【0005】
更に上述の課題に加えて、ハッカーは、少なくとも部分的にこのような保護メカニズムを破るツールを開発する。
【0006】
Banikazemiらは、侵入検出システム(IDS:system integrity checker)を「Storage−base File System Integrity Checker」に開示している。システムは、データの変更を検出することが可能で、更にデータの変更されていないバージョンへの、ロールバックを可能とする。IDSは、中央に集められたディスクにデータを記憶する多くのホストと、別個の記憶エリアネットワークボリュームコントローラ(SVC:Storage Area Networks Volume Controller)を有する。とりわけ、SVCは、ファイルのための読出メタデータ(例えばスーパーブロック、及びiノードテーブル(inode table))によって、検証データ(verification data)を生成する。検証データは、それから、ホストによってアクセスできない位置に記憶され、これらによって検証データが改竄されないことを担保する。SVCは、それから、侵入者がファイルを修正したかどうか検証するために、例えばiノード番号を使用する。このシステムは、侵入検出のためにはうまく働くが、ファイルのコピーを防止することはできない。
【0007】
したがって、特に、標準のPCで機能し得る更なるコピープロテクトの方式が必要である。本発明は、この種の解決案を提供する。
【課題を解決するための手段】
【0008】
[発明の概要]
第1の態様において、本発明はコンピュータファイルがコピーされたかどうか検出する方法を実現することを目的とする。コンピュータファイルは、ソフトウェアプログラム及びiノード番号を有している。コンピュータファイルのiノード番号は、ソフトウェアプログラムを実行するプロセッサによって取り出される(retrieve)。記憶されたiノード番号が読み込まれる(read)。そして、記憶されたiノード番号は、コンピュータファイルがコピーできないファイルシステムのiノード番号である。取り出されたiノード番号、及び読み込まれたiノード番号が、比較される。そして、取り出されたiノード番号が読み込まれたiノード番号に一致しない場合、コンピュータファイルがコピーされたと判断される。
【0009】
好ましい第1の実施例において、記憶されたiノード番号は、コンピュータファイルから読み込まれる。
【0010】
第2の好ましい実施例において、読み込まれたiノード番号は、暗号化キーを使用して暗号化され、かつ取り出されたiノード番号との比較を可能にするために、この暗号化キーを用いて暗号化される。
【0011】
第3の好ましい実施例において、読み込まれたiノード番号は、暗号化キーを使用して暗号化される。そして、取り出されたiノード番号は、比較を可能にするために、対応する解読キーを用いて解読される。
【0012】
第4の好ましい実施例において、コンピュータファイルはソフトウェアアプリケーションのためのライセンスファイルである。そして、本方法はデバイスによってソフトウェアアプリケーションの実行中に実行される。ソフトウェアアプリケーションの実行は、ライセンスファイルがコピーされたという判定に応じて停止される。
【0013】
第2の態様において、本発明は、コンピュータファイルの中に含まれるソフトウェアプログラムによってコンピュータファイルをコピーすることの検出を可能にする方法を実現する。コンピュータファイルと、取り出されかつ記憶されるiノード番号とを関連づけることによって、コンピュータファイルが作成される。
【0014】
好ましい第1の実施例において、iノード番号は、コンピュータファイルに記憶される。
【0015】
第3の態様において、本発明は、ソフトウェアプログラムを含み、かつiノード番号を有するコンピュータファイルがコピーされたか否かを検出するためのデバイスを実現する。デバイスは、プロセッサを有し、プロセッサは、ソフトウェアプログラムを実行する際、コンピュータファイルのiノード番号を取り出し、記憶されたiノード番号を読み込み、記憶されたiノード番号は、コンピュータファイルがコピーされていないファイルシステムのiノード番号となり、取り出されたiノード番号、及び読み込まれたiノード番号を比較し、取り出されたiノード番号が読み込まれたiノード番号に一致しない場合、コンピュータファイルがコピーされたと判断する。
【0016】
好ましい第1の実施例において、プロセッサは、さらにソフトウェアアプリケーションを実行し、かつコンピュータファイルがコピーされたという判定に応じて、ソフトウェアアプリケーションを停止させる。
【0017】
第4の態様において、本発明は、コンピュータファイルの中に含まれるソフトウェアプログラムによって、コンピュータファイルがコピーされたことの検出を可能にするためのデバイスを実現する。デバイスは、コンピュータファイルを作成する手順と、作成されたコンピュータファイルからiノード番号を取り出す手順と、作成されたコンピュータファイルに取り出されたiノード番号を記憶する手順とを実行するためのプロセッサを備えている。
【0018】
第5の態様において、本発明は命令を記憶したソフトウェアプログラム製品を対象とする。そのソフトウェアが実行されるときに、プロセッサは第1の態様の方法を実行する。
【0019】
第6の態様において、本発明は命令を記憶したソフトウェアプログラム製品を対象とする。そのソフトウェアが実行されるときに、プロセッサは第2の態様の方法を実行する。
【0020】
添付の図面を参照して、本発明の好適な特徴を記載する。なお、開示は発明を限定することを目的とするものではない。
【図面の簡単な説明】
【0021】
【図1】木構造を使用した従来技術ファイルシステムを例示した図である。
【図2】本発明の好ましい実施例に従ってソフトウェアインストールの方法を例示した図である。
【図3】本発明の好ましい実施例に従ってコピー制御の方法を例示した図である。
【図4】本発明によって方法のインプリメンテーションに適しているシステムを例示した図である。
【発明を実施するための形態】
【0022】
[実施例の説明]
本発明についての主要な発明の概念は、コピー制御をインプリメントするために、ファイルシステムの一態様を使用することである。理解を容易にするために、ファイルシステムという短い用語を用いて説明する。ファイルシステムは、データの構成、及びアクセスを容易にするシステムであると捉えてもよい。例えばディスクのような、ディスクファイル・システムは、記憶装置の用途のためのファイルシステムである。ディスクファイル・システムには、FAT、NTFS、HFS、及びUFSなど、多くのものが存在する。これらは、少数の例に過ぎない。これらの中で、FAT、及びある程度NTFSはMicrosoft Windows(登録商標)によって使用されているため、広範囲に普及している。
【0023】
大部分のディスクファイル・システムに共通の特徴は木構造の使用である。その例を図1に示す。ファイルシステム100は、多くのディレクトリ110、120、130、及び多くのファイル140、141を有する。ルートディレクトリ110は、木構造の最上位に存在する。ルートディレクトリ110は、3つのサブディレクトリ120を有する。サブディレクトリ120の中で、サブディレクトリ2、及びサブディレクトリ3は、多くのファイル140を有する。これに対して、サブディレクトリ1は、更なるサブディレクトリ130を有する。更なるサブディレクトリ130(サブディレクトリ4)は、ファイル141を有する。当業者は、これが例であり、たとえばディレクトリ階層に制限はないことを理解している。
【実施例】
【0024】
ファイルシステム100の各々のエンティティ(すなわち、ディレクトリ、サブディレクトリ、及びファイル)はノードと捉えてもよい(iノード142と呼ばれる)(1つのファイル141だけが例示されている)。各々のiノードはメタデータに関連している。例えば所有に関する情報、アクセス権、及びタイプである。そして、これはiノード番号によって特定される。これは、ファイルシステムにおいてユニークであり、エンティティのライフタイムにおいて不変である。換言すれば、iノード番号は、各々のエンティティに対して一定である。
【0025】
本発明についての主たる発明の考え方は、したがって、コピー制御を実施するためにiノード番号を使用することである。
【0026】
図2は、本発明の好ましい実施例に従ってソフトウェアインストールの方法を例示する。ユーザにはソフトウェアをインストールするために権利があると仮定する。いかなる許可検査も、本発明の範囲に影響するものではない。ステップ210において、ユーザは、インストールアプリケーション(ソフトウェアのためのインストール・ウィザードと呼ばれている)を起動する。インストール・ウィザードは、ソフトウェア・ファイルをファイルシステムにコピーする220。これは、通常ハードディスクになされ、インストールに必要な従来技術のタスクを実行する。なお、このタスクは、本発明の範囲に影響を及ぼすものではない。
【0027】
インストール・ウィザードはまた、ライセンスファイルと呼ぶファイルをファイルシステムに生成する。これは、好ましくはコピーされた(インストールされた)ソフトウェア・ファイルの少なくとも一部と同じディレクトリに生成されることが好ましい。なお、ソフトウェアアプリケーションにとって知ることができる場所であれば、これは、何処に生成されてもよい。インストール・ウィザードは、生成されたライセンスファイルのiノード番号を取り出す240。そして、インストールされるソフトウェアプログラムによって既知のシークレットキーを使用してiノード番号を暗号化する250。インストール・ウィザードは最後に、暗号化されたiノード番号をライセンスファイルに記憶する260。そしてソフトウェアは、インストールされる。
【0028】
ライセンスファイルは、必ずしもiノード値を持つ(及びおそらく記憶する)ためだけのものではない。ライセンスファイルは、また、例えばコンピュータコード及び/又は他のデータを含んでもよい。
【0029】
図3は、本発明の好ましい実施例に従ったコピー制御の方法を例示する。ステップ310において、ソフトウェアが開始される。ソフトウェアはそれからライセンスファイルを開く320。そのiノード番号を取り出す330。そして、シークレットキーによってiノード番号を暗号化する340。ソフトウェアは、それからライセンスファイルに記憶された暗号化された値を読み込み350、そして、暗号化されたiノード番号と、読み込まれた暗号化された値とを比較する360。これらの値が異なる場合には、ソフトウェアの実行は中断される。逆に、値が同一の場合には、ソフトウェアの実行は継続される。同様に、ライセンスファイルがファイルシステムに存在しない場合、方法は320ですでに停止してもよい。当業者であれば、図2、及び図3に例示される方法のステップが方法の働きに影響を及ぼさずに、ある程度変更されてもよいことを理解する。例えば、ソフトウェア・ファイルがディレクトリX(ステップ220)へコピーされる前に、ライセンスファイルが生成されてもよい(ステップ230)。コピーするステップ(220)は、インストール・ウィザード(ステップ210)の実行開始の後であれば、実際にいかなる時期に実行されてもよい。さらに、図3で、読出ステップ(350)は、ソフトウェアの実行開始(310)、及び値の比較(ステップ360)の間のいかなる時点で実行されてもよい。
【0030】
図3のコピー制御方式は、少なくとも一つの別の実施例を有することも理解される。この別の実施例は、暗号化の代わりに解読を使用する。しかし、一般的な考え方は同じである。別の実施例において、ステップ310−330は、本実施例のように実行される。その後、ステップ350(すなわちライセンスファイルからの暗号化された値の読み込み)が続く。しかしながら、暗号化された値は解読される。そして、元のiノード番号が得られる。そして、それは取り出されたライセンスファイルのiノード番号と比較される。当然、この別の実施例で、ソフトウェアは、インストール・ウィザードの暗号化キーに対応する解読キーにアクセスする。更なる変形例において、暗号化されたライセンスファイルのiノード番号は、他の位置(例えばライセンスファイルではない更なるファイル)に記憶される。図4は、本発明による方法のインプリメンテーションに適しているシステムを例示する。システム400は、コンピュータ410、及び記憶装置424を有する。これは、コンピュータ410の内部にあってもよい。コンピュータ410は、都合よくプロセッサ420、メモリ422、ネットワークインターフェース428、及び読み取り装置426を有する。この読み取り装置は、(インストールされていない)ソフトウェアアプリケーション及びインストール・ウィザードを記憶するDVD430のような、データ記憶からデータを読み込むためのものである。
【0031】
ソフトウェアインストール(すなわち図3において例示される方法)の間、読み取り装置426は、インストール・ウィザードを、記憶媒体430から読み込み、プロセッサ420は、方法のステップを実行し、必要であれば他の装置(メモリ422、記憶424等)に、特定のタスクを実行するために命令する。
【0032】
コピー制御(すなわち図4において例示される方法)の間、プロセッサ420は、方法のステップを実行し、必要に応じて他の装置(特に記憶装置424)に特定のタスクを遂行するよう命令する。ソフトウェアの暗号化キー(又は別の実施例においては、解読キー)は、いかなる適切な従来技術のソフトウェア保護技術(例えばコード・オブファスケイション(obfuscation))によって好適に保護されることは言うまでもない。これは、攻撃者が暗号化キーを回復することを難しくすることを目的とする。なお、この種の技術は、本発明の範囲に影響を及ぼすものではない。
【0033】
特定のファイルが、2つの異なるファイルシステムで同じiノード番号に関連づけられることは、現実的にあり得ない。このため、本発明は、無許可のコピーを確実に検出する高い確率のコピープロテクトを提供する。
【0034】
本発明の方法は、標準のオペレーションを用いてインプリメントすることができる。すなわち、リードおよびライトである。このことは、アタッカーが妨害し得る特定のシステムコールを必要としないということを意味する。
【0035】
したがって、本発明は、ソフトウェアアプリケーションのためのコピープロテクトの方法、及びデバイスを提供することができる。
【0036】
明細書、及び必要に応じて請求項及び図面に開示された各々の特長は、独立に、又は組み合わせて提供され得る。ハードウエアによってインプリメントされるよう記載された特長は、ソフトウェアによってもインプリメントすることができる。この逆も同じである。請求項に記載された参照番号は、例示的にのみ利用されるものであり、請求項の技術的範囲を制限するためのものではない。

【特許請求の範囲】
【請求項1】
コンピュータファイルがコピーされたか否かを検出する方法であって、前記コンピュータファイルはソフトウェアプログラムを含み、かつiノード番号を有し、前記ソフトウェアプログラムを実行しているデバイスにおいて、当該方法は:
− 前記コンピュータファイルの前記iノード番号を取り出すステップと;
− 記憶されたiノード番号を読み込むステップであって、前記記憶されたiノード番号は、前記コンピュータファイルがコピーされてはならないファイルシステムの前記iノード番号である、前記読み込むステップと;
− 前記取り出されたiノード番号及び前記読み込まれたiノード番号を比較するステップと;
− 前記取り出されたiノード番号が前記読み込まれたiノード番号に一致しない場合、前記コンピュータファイルがコピーされたものであると判断するステップと;
を有する方法。
【請求項2】
前記記憶されたiノード番号は、前記コンピュータファイルから読み込まれる、請求項1記載の方法。
【請求項3】
前記読み込まれたiノード番号は、暗号化キーを使用して暗号化され、
当該方法は、前記比較を可能にするために、前記暗号化キーを用いて、前記取り出されたiノード番号を暗号化するステップ、を更に含む請求項1記載の方法。
【請求項4】
前記読み込まれたiノード番号は、暗号化キーを使用して暗号化され、
当該方法は、前記比較を可能にするために、対応する解読キーを用いて、前記取り出されたiノード番号を解読するステップ、を更に含む請求項1記載の方法。
【請求項5】
前記コンピュータファイルはソフトウェアアプリケーションのためのライセンスファイルであり、当該方法の前記ステップは、前記デバイスによって前記ソフトウェアアプリケーションの実行中に実施され、かつ、当該方法は、前記ライセンスファイルがコピーされたという判断に応じて、前記ソフトウェアアプリケーションの前記実行を停止するステップ、を更に含む請求項1記載の方法。
【請求項6】
コンピュータファイルのコピーの検出を、前記コンピュータファイルに含まれるソフトウェアプログラムによって可能にする方法であって、デバイスにおいて:
− 前記コンピュータファイルを作成するステップであって、これにより前記コンピュータファイルをiノード番号と関連づける、前記作成するステップと;
− 前記作成されたコンピュータファイルの前記iノード番号を取り出すステップと;
− 前記取り出されたiノード番号を記憶するステップと;
を有する方法。
【請求項7】
前記取り出されたiノード番号は、前記コンピュータファイルに記憶される、請求項6記載の方法。
【請求項8】
コンピュータファイルがコピーされたか否かを検出するためのデバイスであって、前記コンピュータファイルは、ソフトウェアプログラムを含み、かつiノード番号を有し、前記デバイスはプロセッサを有し、前記ソフトウェアプログラムを実行するときに、プロセッサが、
− 前記コンピュータファイルの前記iノード番号を取り出し;
− 記憶されたiノード番号を読み込み、前記記憶されたiノード番号は、前記コンピュータファイルがコピーされてはならないファイルシステムの前記iノード番号であり;
− 前記取り出されたiノード番号及び前記読み込まれたiノード番号を比較し;
− 前記取り出されたiノード番号が前記読み込まれたiノード番号に一致しない場合、前記コンピュータファイルがコピーされたものであると判断する;
デバイス。
【請求項9】
前記プロセッサは、ソフトウェアアプリケーションを実行し、かつ、前記コンピュータファイルがコピーされたという判定に応じて前記ソフトウェアアプリケーションの前記実行を停止する、請求項8記載のデバイス。
【請求項10】
コンピュータファイルに含まれるソフトウェアプログラムによって、前記コンピュータファイルのコピーの検出を可能にするためのデバイスであって、前記デバイスはプロセッサを有し、前記プロセッサは:
− 前記コンピュータファイルを作成し;
− 作成された前記コンピュータファイルのiノード番号を取り出し;
− 前記取り出されたiノード番号を記憶する;
デバイス。
【請求項11】
ソフトウェアプログラム製品であって、その中に記憶された命令を有し、前記命令は、プロセッサによって実行されるときに、前記請求項1ないし5のうちいずれか1項記載の方法を実施する、ソフトウェアプログラム製品。
【請求項12】
ソフトウェアプログラム製品であって、その中に記憶された命令を有し、前記命令は、プロセッサによって実行されるときに、前記請求項6又は7記載の方法を実施する、ソフトウェアプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−138514(P2011−138514A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−291650(P2010−291650)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】