JP3840399B2 - Method and program for preventing unauthorized use of software, and storage medium - Google Patents

Method and program for preventing unauthorized use of software, and storage medium Download PDF

Info

Publication number
JP3840399B2
JP3840399B2 JP2001329310A JP2001329310A JP3840399B2 JP 3840399 B2 JP3840399 B2 JP 3840399B2 JP 2001329310 A JP2001329310 A JP 2001329310A JP 2001329310 A JP2001329310 A JP 2001329310A JP 3840399 B2 JP3840399 B2 JP 3840399B2
Authority
JP
Japan
Prior art keywords
software
file system
computer
unique information
key data
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
JP2001329310A
Other languages
Japanese (ja)
Other versions
JP2002236522A (en
Inventor
健太 堀
Original Assignee
健太 堀
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 健太 堀 filed Critical 健太 堀
Priority to JP2001329310A priority Critical patent/JP3840399B2/en
Publication of JP2002236522A publication Critical patent/JP2002236522A/en
Application granted granted Critical
Publication of JP3840399B2 publication Critical patent/JP3840399B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ソフトウエアの不正利用防止方法及び該方法に係るコンピュータプログラム並びに該プログラムを記憶した記憶媒体に関し、特に、ソフトウエアを正規に利用する特定のコンピュータに固有のキーデータを使用することで別コンピュータでの該ソフトウエアの不正利用を防止するようにしたものであり、例えばインストールされたソフトウエアを使用する際の不正利用防止、あるいはソフトウエアをコンピュータにインストールする際の不正コピー防止などに役立つものである。
【0002】
【従来の技術】
ソフトウエアの不正使用もしくは不正コピーを防止する従来の技術の代表的なものは、パスワードの入力による方法である。これは、ライセンス提供者から取得した所定のパスワードを入力した場合にだけソフトウエアの使用もしくはコピーを許可する方式である。しかし、この方式では、同じパスワードを用いさえすれば別のコンピュータで同じソフトウエアを使用もしくはコピーすることができるし、また、パスワードは他人に簡単に伝えることができるため、不正コピー防止という意味では明らかに不完全であり、ソフトウエア著作者の権利を保護しきれない。
【0003】
ソフトウエアの不正コピーをより確実に防止するためにハードウエアキーの方法も用いられている。これは、特定の情報をもったハードウエアを鍵として用いるもので、そのハードウエアがコンピュータに結合されているかどうかを判定してソフトウエアの利用を許可する方法である。キーとなるハードウエアは容易にコピーできないため、この方法によればより確実に不正コピーを防止することができるが、コストが大きいために一部の高価なソフトウエアにしか適用できないという問題がある。また、この方法は、通信ネットワークを介してオンラインで手軽にソフトウエア提供・売買を行なう最近のソフトウエア流通形態には全く不適である。
【0004】
上記と類似の機能を安価に実現するために、安価な記録媒体を用いた不正コピー防止方法がある。これは、フロッピーディスク等の可搬性の記録媒体に記録した形態でソフトウエアを提供し、インストール実行時に所定のデータを該記録媒体に書き加えることにより、この記録媒体を用いての次回以降のインストールを制限する方法である。しかし、ソフトウエア流通に際しては可搬性の記録媒体に記録された形態をとることを要するため、この方法もまた、通信ネットワークを介してオンラインで手軽にソフトウエア提供・売買を行なう最近のソフトウエア流通形態には全く不適である。また、記録媒体の読み書き装置を具備していないコンピュータには適用できない、正規のユーザーが該ソフトウエアを再インストールする時に別の新しい記録媒体が必要になる、などの不具合を生ずる。
【0005】
以上のように、コンピュータを特定する固有情報を利用しない不正コピー防止方法では、それだけでは他のコンピュータへの不正コピーを防止することができない。すなわち、同じ記録媒体やシリアル番号あるいはパスワードなどのキーデータを用いて容易にコピーできるという問題があった。
一方、このような容易な不正コピーを回避する方法としてオペレーティングシステムに固有の情報を利用して不正コピーを防止する方法が考えられている。これは、個別コンピュータのオペレーティングシステム毎に固有のID番号を付与し、ソフトウエアの側では自己に専用のオペレーティングシステムID番号を認識しうるよう鍵情報を持ち、該ソフトウエアを利用しようとするコンピュータのオペレーティングシステムのID番号を該ソフトウエア側の鍵情報を用いて照合することで該OSを具えたコンピュータにおける該ソフトウエアの利用可否を判定するようにしたものである。この方法は上述の従来例に比べて不正コピーを有効に防止することができるが、対象ソフトウエアのプログラムは各オペレーティングシステム毎に異なったプログラムとして作成されねばならないので、ソフトウエアの作成手間がかかるという問題がある。加えて、最近流通してきている異なるどんなOSでも動作しうる「クロスプラットホーム」タイプのソフトウエアには適用することができない、という問題がある。
【0006】
【本発明が解決しようとする課題】
本発明は上述の種々の不具合若しくは問題を解決するためになされたもので、ハードウエアキーや可搬性記録媒体を必要とすることなく、また、オペレーティングシステムの制限を受けることなく、ソフトウエア処理だけで、対象とするソフトウエアの不正利用を防止しうる方法及び該方法に係るコンピュータプログラム並びに該プログラムを記憶した記憶波媒体を提供しようとするものである。
【0007】
【課題を解決するための手段】
本発明の請求項1に係るソフトウエア不正利用防止方法は、ライセンスを受けるユーザーのコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第1のステップと、前記第1のステップで生成した固有情報に基づきソフトウエアのライセンス提供者の側でのコンピュータの処理によってキーデータを生成し、該キーデータを前記ユーザに提供する第2のステップと、前記ソフトウエアを利用しようとするコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、前記ソフトウエアを利用しようとするコンピュータの処理によって、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との比較に基づき前記ソフトウエアの利用可否を判定する第4のステップと、前記第2のステップでユーザに提供された前記キーデータを、前記ソフトウエアを利用しようとするコンピュータに設けられたメモリに、保存する第5のステップと、前記第4のステップで前記ソフトウエアが利用可と判定されたことを少なくとも一つの条件として、前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報に適合するように前記メモリに保存されたキーデータの内容を更新する第6のステップとを具備する。
本発明の請求項3に係るソフトウエア不正利用防止方法は、ライセンスを受けるユーザーのコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第1のステップと、前記第1のステップで生成した固有情報に基づきソフトウエアのライセンス提供者の側でのコンピュータの処理によってキーデータを生成し、該キーデータを前記ユーザに提供する第2のステップと、前記ソフトウエアを利用しようとするコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、前記ソフトウエアを利用しようとするコンピュータの処理によって、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との差分を計算し、この差分の大きさに応じて前記ソフトウエアの利用可否を判定する第4のステップとを具備する。
一例として、前記ユーザに提供された前記キーデータから前記ファイルシステムの特徴に基づく固有情報を復元するステップを具備し、前記第4のステップでは、前記復元されたファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報と基づき前記ソフトウエアの利用可否を判定する。
【0008】
本発明に係る方法の概略を説明する。
まず、ユーザーに対して固有のキーデータを発行するための前段階の処理として、該ユーザーが使用する特定のコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する(第1のステップ)。このユーザーとは、例えば対象とするソフトウエアを正規に購入した若しくは購入の意志を示した者である。コンピュータのファイルシステムの特徴の検出は、例えば、コンピュータのファイルシステム情報を読み取ることにより行える。このファイルシステム情報は、個別のコンピュータ毎に固有の、いわば「指紋」のような、情報である。つまり、或るユーザーのコンピュータ(特定のコンピュータ)のファイルシステムは、そのユーザーに特有のファイル使用履歴を示しており、これを固有情報として利用することができる。この第1のステップは、コンピュータのファイルシステムの特徴を検出する(例えばファイルシステム情報を読み取る)処理で済むため、純ソフトウエア処理で遂行でき、特別のハードウエアキーや可搬性記録媒体が不要である。
【0009】
ユーザー側のコンピュータで読み取られたファイルシステム情報に基づく固有情報は、通信ネットワークを介して、あるいはその他任意の手段を介して、ソフトウエアのライセンス提供者に渡される。ソフトウエアのライセンス提供者の側では、該ファイルシステムの特徴に基づく固有情報に基づき、固有のキーデータを生成する(第2のステップ)。例えば、所定の暗号化アルゴリズムに従って該ファイルシステムの特徴に基づく固有情報を変換することで固有のキーデータを生成する。生成されたキーデータは、通信ネットワークを介して、あるいはその他任意の手段を介して、ユーザーに提供される。こうして、ライセンス提供者によってユーザーに対して上記キーデータが発行されることにより、該ユーザーがオーソライズされる(いわばユーザー登録がなされる)。
【0010】
ユーザー側では、ソフトウエアを利用しようとするコンピュータのファイルシステムの特徴を検出し、該検出したファイルシステムの特徴に基づき固有情報を生成する(第3のステップ)。このファイルシステムの特徴の検出も、例えばコンピュータのファイルシステム情報を読み取ることにより行える。ここで、以下、読み取ったファイルシステム情報に基づく固有情報を、便宜上、「現在のファイルシステム情報」ということにする。ここでいう「現在」とは、厳密な今の時点であることを要せず、今よりも適宜前の時点(ただし上記キーデータ作成時以降)でのファイルシステム情報であってもよい。
【0011】
ユーザー側では、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報(つまり「現在のファイルシステム情報」)との比較に基づき前記ソフトウエアの利用可否を判定する(第4のステップ)。この場合、ユーザ側では、提供されたキーデータから前記ファイルシステムの特徴に基づく固有情報を復元するステップを具備するとよい。この復元は、例えば、前記所定の暗号化アルゴリズムの逆変換を行なうことにより、行なえる。その場合は、前記第4のステップでは、前記復元されたファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報とを比較し、両情報の一致若しくは類似性に基づき前記ソフトウエアの利用可否を判定することになる。別の例として、前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報(つまり「現在のファイルシステム情報」)をキーデータに変換し、前記第4のステップでは、前記提供されたキーデータと変換したキーデータとを比較することで、前記ソフトウエアの利用可否を判定するようにしてもよい。要は、ファイルシステムの特徴に基づきソフトウエアの利用可否を判定を行うようになっていればよい。
なお、ユーザ側では、ライセンス提供者から提供されたキーデータを適宜保存しておき、保存したキーデータに基づき該ファイルシステム情報に基づく固有情報を復元するようにするとよい。しかし、ユーザー側でのキーデータの保存は必ずしも必須ではなく、例えば必要なときにライセンス提供者から提供を受けるやり方もあり得る。
【0012】
例えば、キーデータ作成時つまり登録時からみて、ユーザー側のコンピュータのファイルシステム情報に変更がなければ、両ファイルシステム情報が一致する。これは、ユーザー側の現在のコンピュータが、登録時のキーデータ作成の元となったファイルシステム情報に係るコンピュータと明らかに同一であることを意味する。よって、ソフトウエアの利用を許可するのは勿論である。例えば、ユーザー登録時に続けてこの第4のステップを実行する場合がそのような完全一致のケースに該当する。
ユーザー側のコンピュータの使用に伴ってそのファイルシステム情報の内容が当然変わってくる。そのような場合、前記キーデータから復元されたファイルシステム情報と前記第3のステップで検出された「現在のファイルシステム情報」とは相違してくるが、前記第4のステップでは両者の相違が許容範囲内であれば、類似性を認め、ユーザー側で使用するコンピュータに変わりがないと認定して、ソフトウエアの利用を許可する。一方、登録時にオーソライズされたコンピュータ(キーデータを作成する元となったファイルシステム情報に係るコンピュータ)以外の他のコンピュータで当該ソフトウエアを利用しようとするときには、前記第3のステップで検出された「現在のファイルシステム情報」は、当該他のコンピュータのファイルシステム情報であるから、前記キーデータに基づき復元したファイルシステム情報とは、かなり相違する。よって、前記第4のステップでは両者に一致又は類似性がない、つまり両者の相違が許容範囲外、と判定し、ソフトウエアの利用を不可とする。
【0013】
このように、本発明によれば、ユーザー側の個別コンピュータに固有の情報として該コンピュータのファイルシステム情報に着目し、該ファイルシステム情報に基づき個別コンピュータに固有のキーデータを作成して、ソフトウエアを利用しようとするコンピュータにおけるファイルシステム情報を該キーデータを用いて評価することでその利用の可否を判定するようにしたので、完全なソフトウエア処理ベースで不正利用を防止することができ、通信ネットワークを介して流通するソフトウエアの不正利用防止対策として最適であり、また、ハードウエアキーが不要であり、格別の可搬性記録媒体の形態で対象ソフトウエアを提供しなければならないような面倒もなく、ローコストであり、ソフトウエア提供者の側において各オペレーティングシステム毎に対象ソフトウエアを作成しなければならない面倒もなく、更には、オペレーティングシステムによる制限を受けないので「クロスプラットホーム」タイプのソフトウエアにも適用することができる、等々の優れた効果を奏する。
【0014】
なお、コンピュータにおけるソフトウエアの利用とは、様々な利用形態を全て含む。例えば、▲1▼ソフトウエアをコンピュータにインストールすること、▲2▼インストールされたソフトウエアをコンピュータで起動して、実際にそのプログラムを実行すること、あるいは、▲3▼ソフトウエアをコピーすること、などがある。よって、前記第4のステップにおける利用可否判定は、例えば、▲1▼ソフトウエアをコンピュータにインストールするとき、あるいは、▲2▼ソフトウエアをコンピュータで起動するとき(ソフトウエアのプログラムをスタートするとき)、あるいは、▲3▼ソフトウエアをコピーしようとするとき、のいずれか少なくとも1つの時点で実行すればよい。ここで利用不可と判定されたならばその利用を禁止する、つまり、▲1▼インストール処理を中止する、あるいは、▲2▼当該ソフトウエアの起動を禁止する、あるいは、▲3▼ソフトウエアのコピーを禁止する。通常は、▲1▼インストールの禁止と▲2▼ソフトウエアの起動禁止とを行なえば、仮りにコピーは可能であったとして、該ソフトウエアの不正利用を差し止めることができるので、上記▲1▼インストールの禁止と▲2▼ソフトウエアの起動禁止の少なくとも一方を行なえば十分である。勿論、これに限らず、▲3▼ソフトウエアのコピーを禁止することのみを行なっても、ソフトウエアの不正利用を防止する効果をあげることが可能である。要するに、前記第4のステップにおける利用可否判定は、どのような時点で行なっても、それなりに、本発明に特有の効果を奏することができる。また、対象とするソフトウエア内部の適宜の1又は複数の箇所(若しくは該ソフトウエア実行中の任意の1又は複数の時点)で、少なくとも前記第4のステップにおける利用可否判定をそれぞれ行うようにしてよい。そうすれば、不正利用者が或る箇所(例えばインストール時)での利用可否判定機能を無効にしたとしても、他の箇所で該利用可否判定機能を発揮させることができる。
【0015】
また、第4のステップで行なうファイルシステム情報の比較法には種々の手法がありうるので、適宜の手法を採用してよい。一例として、個々のファイルの一致/不一致を比較・判定し、その一致/不一致の度合いからファイルシステム情報全体としての類似度合いを判定する。かかる判定を計量的に行なう一手法として、両ファイルシステム情報の差分若しくは不一致の関数値を計算し、この差分若しくは関数値の大きさに応じて前記ソフトウエアの利用可否を判定する。別の手法としては、パターン認識的手法により両ファイルシステム情報の類似性を判定することが可能である。
【0016】
ところで、ソフトウエア提供者によってオーソライズされたコンピュータであっても、使用に伴ってそのファイルシステム情報がどんどん変化してゆく。そのため、そのままでは、キーデータによって復元される元の(ユーザー登録時の)ファイルシステム情報と現在のファイルシステム情報との相違が大きくなり、許容範囲を越えて、非類似と判定されることになりかねない。これに対処するために、現在のファイルシステム情報に適合するように、キーデータの内容を適応更新するとよい。すなわち、ユーザ側のコンピュータにおいてキーデータを保存しておき、前記第4のステップでは、保存されたキーデータを用いて判定処理を行う(例えば保存されたキーデータから元のファイルシステム情報を復元して、比較処理に用いる)。そして、前記第4のステップで前記ソフトウエアが利用可と判定されたことを少なくとも一つの条件として、前記第3のステップで検出されたファイルシステム情報に適合するように前記保存されたキーデータの内容を更新するステップを更に具備するものとする。第4のステップでソフトウエアが利用可と判定されたことを少なくとも一つの条件とする理由は、正規利用が確認されたときだけ、キーデータの内容を適応更新するためである。更に適宜の条件を付加してキーデータの内容の適応更新を行なうようにしてもよい。例えば、第4のステップでソフトウエアが利用可と判定されるごとに常に更新を行なうようにするのが最善であるが、これに限らず、適当な時間間隔で更新を行なうという条件を付加してもよい。
【0017】
本発明は、方法の発明として実施できるのみならず、該方法に係るコンピュータプログラムあるいは該プログラムを記憶した記憶媒体の形態で実施することができる。例えば、本発明の請求項10に係るコンピュータプログラムは、ユーザーのコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づく固有情報を出力する第1のステップと、出力された前記固有情報に基づき前記ソフトウエアのライセンス提供者側で生成された該固有情報に対応する固有のキーデータを、前記ライセンス提供者の側から受け取る第2のステップと、前記ソフトウエアを利用しようとするコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との比較に基づき前記ソフトウエアの利用可否を判定する第4のステップと、前記第2のステップでユーザに提供された前記キーデータを保存する第5のステップと、前記第4のステップで前記ソフトウエアが利用可と判定されたことを少なくとも一つの条件として、前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報に適合するように前記保存されたキーデータの内容を更新する第6のステップとを具備する。
【0018】
【発明の実施の形態】
以下、本発明の一実施形態を添付図面に基づき詳細に説明する。
図1は本発明に係るソフトウエアの不正利用防止方法の原理を説明する機能ブロック図であり、ブロック10はソフトウエアライセンス提供者(以下、ライセンサーという)側のコンピュータシステムを示し、ブロック20はソフトウエア使用者(以下、ユーザーという)側のコンピュータシステムを示す。
【0019】
ユーザー側のコンピュータシステム20においては、周知のようにコンピュータハードウエア21に適宜のオペレーティングシステム(以下、OSと略称する)22が搭載され、その記憶装置において種々のプログラムやデータの「ファイル」が蓄積されてファイルシステム23を構築している。このファイルシステム23は通常知られているようにディレクトリ階層構造をなしている。ライセンサー側のコンピュータシステム10においても同様の構成を有するが、重要ではないため、図示を省略してある。
【0020】
ユーザー側のコンピュータシステム20におけるブロック24は、本発明に係るソフトウエアの不正利用防止方法を実現するプログラムの部分であり、該プログラムによって実行される処理を機能ブロックによって概念的に示している。一例として、本発明に係るソフトウエアの不正利用防止方法を実現するプログラムは、▲1▼登録プログラムと▲2▼プロテクトプログラムとを含んでいる。図1において、概ね、点線矢印は▲1▼登録プログラムに従う登録時の処理の流れを示し、実線矢印は▲2▼プロテクトプログラムに従うソフトウエア利用時の処理の流れを示している。この▲1▼登録プログラムと▲2▼プロテクトプログラムは、以下述べる例では別々に構成されるものとしているが、一体的に構成されていてもよい。
【0021】
図2は、本発明に係る不正利用防止方法の対象となるソフトウエアの構造の一例を、▲1▼登録プログラムと▲2▼プロテクトプログラムに関連して、示す図である。同図(A)は、▲1▼登録プログラムが、対象ソフトウエアとは別途に供給される例を示す。この場合は、▲1▼登録プログラムは、対象ソフトウエアを提供するライセンサーの側から、対象ソフトウエアの提供を正規に受けようとする(例えば購入しようとする)ユーザーに対して予め提供される。後述する所定の登録手続が完了してから対象ソフトウエアがユーザーに対して提供される。対象ソフトウエアは、該ソフトウエアの本体である「本体プログラム」と、該ソフトウエアをコンピュータにインストールするときに動作する「インストールプログラム」と、インストール済みの該ソフトウエアを起動させる(実行開始)ときに動作する「起動プログラム」とを含み、▲2▼プロテクトプログラムを付属している。この▲2▼プロテクトプログラムは、「インストールプログラム」と「起動プログラム」の少なくとも一方によって呼び出されて、インストール時及び起動時の少なくとも一方で本発明に従う不正利用防止処理が実行される。更に、後述するように、対象ソフトウエア内部の任意の1又は複数の箇所で、この▲2▼プロテクトプログラムが呼び出されて、本発明に従う不正利用防止処理が実行されるようにしてもよい。
【0022】
同図(B)は、対象ソフトウエアが、▲2▼プロテクトプログラムのみならず、▲1▼登録プログラムをも付属して具備する例を示す。この場合は、後述する所定の登録手続の前に対象ソフトウエアが提供されることになるが、所定の登録手続を完了させない限りソフトウエアの利用ができないので、特に問題ない。
同図(C)は、最初に▲1▼登録プログラムと▲2▼プロテクトプログラムだけがユーザーに対して提供され、後述する所定の登録手続が完了してから対象ソフトウエアがユーザーに対して提供される例を示す。
以下の説明では、図2(A)の例のように、▲1▼登録プログラムがまずユーザーに提供され、所定の登録手続が完了してから▲2▼プロテクトプログラム付の対象ソフトウエアがユーザーに提供される場合を想定して説明する。なお、ライセンサーからユーザーに対するこれらのプログラムあるいはソフトウエアの提供は、通信ネットワークを介してオンラインで行なうことができる。
【0023】
図3は、本発明に従う不正利用防止方法の第一段階である、ソフトウエア利用登録手続の流れを略示するフロー図である。この登録手続は、ライセンサーからユーザーに対して提供された前記▲1▼登録プログラムを、ユーザーのコンピュータで起動させることにより、開始される。主に、図3のステップS1,S2,S4が、ユーザーのコンピュータで前記▲1▼登録プログラムによって実行される処理である。ステップS3はライセンサーのコンピュータで行なわれる処理である。
この登録プログラムにおいては、まず、ユーザーのコンピュータのファイルシステム情報を読み取り、これを該登録プログラム中で定義される所定の暗号化アルゴリズムに従って暗号化し、これに基づき暗号化された固有情報を生成する(ステップS1)。図1における暗号化器25のブロックは、この暗号化処理を概念的に示すものである。暗号化アルゴリズムはどのようなものでよい。
【0024】
周知のように、コンピュータのファイルシステムとは、コンピュータの中のファイルの階層的な構造のことを指す。たとえばWindows(マイクロソフ社の商標)では、プログラムExplorer(マイクロソフ社の商標)を用いてこのファイルシステム情報を読み取り、その階層的構造を視覚的に表示することができる機能を有しているので、そのような既存のファイルシステム情報読み取り機能を利用することができる。また、プログラミング言語のファイルI/Oの機能を利用してファイルシステム構造を読み取ることができるので、これによってファイルシステム情報を得ることができる。図4にファイルシステムの例を示す。Cドライブの中に、「古いメール」などのフォルダがあり、さらにその中に、「○○商事打ち合わせ」など適宜の名称のつけられた各種のファイルが配置されている。この例からも判るように、個別のコンピュータは個々のユーザーによって異なった仕方で用いられるため、家庭もしくはオフィスで通常の使用方法をする限り、個々のユーザが使用を重ねることでそのファイルシステムは個別の各コンピュータ毎に特有のものとなる。言い換えると、OSがインストールされた直後などの特殊な場合を除けば、ファイルシステム情報は個別の各コンピュータ毎に固有の情報であるとみなして差し支えない。よって、ファイルシステム情報を個別コンピュータ毎の固有情報として利用し、後述するように、これに基づき個別コンピュータ毎に固有のキーデータを作成することができる。
【0025】
なお、ステップS1で暗号化された固有情報には、ファイルシステム情報のみならず、ファイルシステム以外の他の情報(例えば現在のコンピュータシステムを記述する他の情報)を含んでいてもよい。要するにファイルシステム情報を少なくとも含むものであればよい。また、ユーザーのコンピュータの全てのファイルシステム情報を使用せずに一部のファイルシステム情報(例えば所定の一部ドライブあるいは所定の1又は複数のフォルダのファイルシステム情報)のみを使用して暗号化された固有情報を生成するようにしてもよく、これも本発明の範囲に含まれる。なお、ステップS1での暗号化処理は、後日、不正利用者がキーデータの解読を不正に行なおうとする場合に、その解読を困難にするためである。よって、場合によっては、ステップS1での暗号化処理は省略可能である。
【0026】
次に、生成したファイルシステム情報に基づく暗号化固有情報を、ユーザーからライセンサーに対して送付する(ステップS2)。この固有情報の送付は、通信ネットワークを介してオンラインで行なうことが好ましいが、可搬性媒体を介してオフラインで行なうようにしてもよい。
【0027】
ライセンサーの側では、ユーザーから該ユーザーの使用するコンピュータに固有のファイルシステム情報に基づく暗号化固有情報を受け取ると、所定の変換アルゴリズム(この変換アルゴリズムは暗号化アルゴリズムであることが、不正利用者の解読を防ぐ上で、好ましい)に従って該暗号化固有情報を変換し、キーデータ(正規利用を許可する鍵となるデータ)を生成する(ステップS3)。図1における変換器11のブロックは、この変換処理を概念的に示すものである。こうして、ユーザーの使用するコンピュータに固有のファイルシステム情報に基づきキーデータが作成される。このキーデータは、ライセンサーからユーザーに対して送付され、ユーザでは、受け取ったキーデータを自己のコンピュータに保存する(ステップS4)。このキーデータの送付も、通信ネットワークを介してオンラインで行なうことが好ましいが、可搬性媒体を介してオフラインで行なうようにしてもよい。勿論、キーデータをコンピュータに電子的に保存することをせずに、ライセンサーからユーザーに対して通知されたキーデータをユーザが覚えておき、必要なときにコンピュータに入力するようにしてもよい。
【0028】
こうして、ライセンサーからユーザーにキーデータが渡されることでユーザ登録手続が完了する。対象ソフトウエアは、このユーザ登録手続の前又は後の適宜の段階でライセンサーからユーザーに供給される。この対象ソフトウエアの供給も、通信ネットワークを介してオンラインで行なうことが好ましいが、可搬性媒体を介してオフラインで行なうようにしてもよい。
【0029】
次に、本発明に従う不正利用防止方法の第二段階である、上記▲2▼プロテクトプログラムの動作例を図5に示す機能フローチャートを参照しながら説明する。このプロテクトプログラムは、ユーザーが対象ソフトウエアを自己のコンピュータにインストールするとき、あるいはインストール済みの該ソフトウエアを起動するときに、該ユーザのコンピュータで実行される。インストール時にこのプロテクトプログラムを起動させる場合は、対象ソフトウエアのインストールプログラムの実行時にこのプロテクトプログラムが呼び出されて実行され、その結果ソフトウエア利用可と判定されたならばインストールを行なうことが許可される。また、インストール済みの該ソフトウエアの起動時(ソフトウエア実行開始時)にこのプロテクトプログラムを起動させる場合は、対象ソフトウエアの起動プログラムの実行時にこのプロテクトプログラムが呼び出されて実行され、その結果ソフトウエア利用可と判定されたならば該ソフトウエア本体の実行を開始することが許可される。このプロテクトプログラムは、インストール時とソフトウエア起動時のどちらか一方に限らず、両方の時点で実行してもよい。あるいは、後述するように、対象ソフトウエア内部の任意の1又は複数の箇所で、このプロテクトプログラムが実行されるようにしてもよい。
【0030】
プロテクトプログラムがスタートすると、まず、キーデータを検索し、キーデータが存在するかどうかを判定する(ステップST1)。このキーデータ検索の手法としては、プロテクトプログラムに従って表示される入力画面においてユーザーによるキーデータの所在場所情報の入力を受け付け、入力された所在場所情報からキーデータを取得する方法、あるいは、あらかじめ指定されたディレクトリを検索してキーデータを取得する方法、あるいは、コンピュータの記憶領域を隅からしらみつぶしに検索することでキーデータを取得する方法、など適宜の手法を用いてよい。ここで、キーデータが存在しないと判定された場合は、対象ソフトウエアの利用を不許可とする(ステップST2)。
【0031】
ステップST1によりキーデータが存在することが確認された場合は、このキーデータを逆変換することによって元の暗号化固有情報を生成する(ステップST3)。図1における逆変換器26のブロックは、このステップST3における逆変換処理を概念的に示すものである。この逆変換器26における逆変換アルゴリズムは、前記登録手続時におけるライセンサー側の変換処理(図3のステップS3又は図1の変換器11)による変換アルゴリズムの逆であり、これによりキーデータを変換前の暗号化固有情報に復元する。
【0032】
次に、復元された暗号化固有情報の暗号化を解除(復号)し、元のファイルシステム情報を含む固有情報を復元する(ステップST4)。図1における復号化器27のブロックは、このステップST4における復号処理を概念的に示すものである。復号化器27における復号アルゴリズムは、前記登録手続時における暗号化処理(図3のステップS1又は図1の暗号化器25)による暗号化アルゴリズムの逆であり、これにより該暗号化固有情報の暗号化を解除して元のファイルシステム情報を含む固有情報を復元する。
【0033】
一方、ユーザーのコンピュータの「現在のファイルシステム情報」を適宜の時点で読み取り、これに基づき該ユーザーコンピュータの「現在の固有情報」を提供する(ステップST5)。このステップST5の処理は、ステップST1,ST3,ST4のいずれかのステップの前で行なってもよい。また、ユーザーコンピュータの「現在のファイルシステム情報」を読み取ることは、さらに前の適当な時点で行なっておいて、これを保存しておき、保存した「現在のファイルシステム情報」をこのステップST5で呼び出すようにしてもよい。前述のように、プログラミング言語のファイルI/Oの機能を利用することで、ファイルシステムの情報を取得することができる。また、このステップST5で復元するユーザーコンピュータの「現在の固有情報」には、前述のように、ファイルシステム情報のみならず、ファイルシステム以外の他の情報を含んでいてもよく、要するにファイルシステム情報を少なくとも含むものであればよい。また、ユーザーのコンピュータの全てのファイルシステム情報を使用せずに一部のファイルシステム情報のみを使用して暗号化された固有情報を生成するようにしてもよい。ただし、前記登録手続時におけるキーデータ生成の元となったファイルシステム情報を含む固有情報と同じ種類の情報であることを要する。
【0034】
次に、ステップST4で得られた「元の固有情報(つまり元のファイルシステム情報)」とステップST5で得られた「現在の固有情報(つまり現在のファイルシステム情報)」とを比較し、両情報の差分を求める(ステップST6)。この差分は数値として計算する方法も、ベクトルとして計算する方法も考えられる。たとえば、元の固有情報から得られたファイルシステムに含まれるファイルの集合と、現在のファイルシステムに含まれるファイルの集合をとって、前者と後者の両方に含まれる(一致する)ファイルの個数Aと、前者または後者のいずれか一方にしか含まれない(一致しない)ファイルの個数Bとから、差分Cを下記式で計算するやり方が一例として考えられる。
C=B÷(A+B)
この差分計算法によると、二つのファイルシステムが完全に一致した場合は、B=0であるから、差分Cは0となり、最小値をとる。二つのファイルシステムの一方にしか含まれないファイルが増えるほど、Bが増すことから、差分Cの値が大きくなり、二つのファイルシステムが同名のファイルを一つも含まないときには、A=0であることから、差分Cは最大値である1をとることになる。つまり、差分Cは、0から1までの範囲の小数値をとり、その値が0に近いほど一致度/類似度が高い。
【0035】
次に、比較結果つまり差分Cが所定の許容限界を越えているかどうかを判定する(ステップST7)。図1における比較・判定器28のブロックは、このステップST6,ST7における比較・判定処理を概念的に示すものである。もし、この比較結果つまり差分が許容限界を越えていなければソフトウエアの利用を許可する(ステップST8)。例えば、実行中のプログラム(インストールプログラムまたは起動プログラム)を続行させる。この比較結果つまり差分が許容限界を越えているならば、ソフトウエアの利用を不許可とする(ステップST9)。例えば、不許可のメッセージをコンピュータディスプレイに表示して、プログラム(インストールプログラムまたは起動プログラム)を停止する。
【0036】
例えば、キーデータ作成時つまり登録時からみて、ユーザー側のコンピュータのファイルシステム情報に変更がなければ、両ファイルシステム情報が一致する。これは、ユーザー側の現在のコンピュータが、登録時のキーデータ作成の元となったファイルシステム情報に係るコンピュータと明らかに同一であることを意味する。よって、ソフトウエアの利用を許可するのは勿論である。例えば、登録時にキーデータを取得した後すぐに対象ソフトウエアをインストールしようとする場合がそのような完全一致のケースに該当する。
一方、ユーザー側のコンピュータの使用に伴ってそのファイルシステム情報の内容が当然変わってくる。そのような場合、ステップST4で復元された「元のファイルシステム情報」とステップST5で読み取られた「現在のファイルシステム情報」とは相違してくるが、ステップST7では両者の相違が許容範囲内であれば、類似性を認め、ユーザー側で使用するコンピュータに変わりがないと認定して、ソフトウエアの利用を許可する。この許容限界値は、ライセンサーが自らの責任で予めプロテクトプログラムに設定しておくものとする。
【0037】
一方、登録時にオーソライズされたコンピュータ(キーデータを作成する元となったファイルシステム情報に係るコンピュータ)以外の他のコンピュータで当該ソフトウエアを不正にインストール又は使用開始しようとするときには、仮りにオーソライズされたコンピュータの正規のキーデータを知得したとしても、ステップST5で読み取られた「現在のファイルシステム情報」は、当該他のコンピュータのファイルシステム情報であるから、該正規のキーデータに基づき復元したファイルシステム情報とは、明らかに相違する。よって、ステップST7では両者に一致又は類似性がない、つまり両者の相違が許容範囲外、と判定し、ソフトウエアの利用を不許可とすることができる。従って、判定の基準となる許容限界値が適切に設定されていれば、ソフトウエアの不正利用を適切に防止することができる。
【0038】
ところで、オーソライズされたコンピュータであっても、使用に伴ってそのファイルシステム情報がどんどん変化してゆく。そのため、そのままでは、キーデータによって復元される元の(ユーザー登録時の)ファイルシステム情報と現在のファイルシステム情報との相違が大きくなり、許容範囲を越えて、非類似と判定されることになりかねない。これに対処するために、現在のファイルシステム情報に適合するように、キーデータの内容を適応更新するとよい。
そのために、ソフトウエア利用許可の判定がなされたことを条件に、ステップST9においてキーデータの適応化更新を行なう。すなわち、ステップST5で読み取られた「現在のファイルシステム情報」に適合するようにキーデータの内容を更新する。図1における適応化器29のブロックは、このステップST9における適応化更新処理を概念的に示すものである。図6は、このキーデータ適応化更新処理の一例を示すフロー図である。利用許可の判定がなされたことを条件にステップST90に行き、「現在のファイルシステム情報」に基づき暗号化した固有情報を生成する。この暗号化のために、図3のステップS1における暗号化アルゴリズムと同じ暗号化アルゴリズムを用いる。次にステップST91では、暗号化された固有情報をキーデータに変換する。この変換のために、図3のステップS3におけるライセンサー側の変換アルゴリズムと同じ変換アルゴリズムを用いる。こうして、作成された新しいキーデータによってユーザーコンピュータで保存している古いキーデータを更新するつまり置き換える(ステップST92)。利用不可の場合は、ステップST90〜ST92によるキーデータ更新が行なわれない。なお、ステップST90では、前のステップST5で読み取られた「現在のファイルシステム情報」をそのまま使用してもよいし、あるいは「現在のファイルシステム情報」を読み取る処理をあらためて行ってよい。後述するようにこのキーデータ適応化更新処理を任意の時点で行うようにする場合は、このステップST90で「現在のファイルシステム情報」を読み取り、読み取った「現在のファイルシステム情報」に基づき暗号化した固有情報を生成する。
【0039】
キーデータ適応化更新処理はできるだけ頻繁に行ない、適切なキーデータ更新が常になされることが望ましい。対象ソフトウエアの使用起動時にプロテクトプログラムを実行する仕様においては、上記のようにプロテクトプログラム中にステップST9としてキーデータ適応化更新処理が組み込まれた仕様であれば、該対象ソフトウエアを起動させるたびにキーデータ適応化更新処理を行なうことができる。その場合にあっては、対象ソフトウエアが頻繁に使用するソフトウエアであるならばキーデータ適応化更新処理が比較的十分に行なわれることになる。しかし、対象ソフトウエアが頻繁に使用しないソフトウエアである場合には、キーデータ適応化更新処理を実行する回数が不足し、該ソフトウエアを使用しない間にファイルシステムが大幅に変化することが大いにありうるので、キーデータに対応する古い固有情報(ファイルシステム情報)が現在の固有情報(ファイルシステム情報)と著しく異なることとなり、正規のユーザーに対して使用不許可の判定が下されるおそれが出て来る。一方、対象ソフトウエアのインストール時にのみプロテクトプログラムを実行する仕様においては、上記のようにプロテクトプログラム中にステップST9としてキーデータ適応化更新処理が組み込まれた仕様のみでは、キーデータ適応化更新処理の実行が不足する。
【0040】
以上のようなキーデータ適応化更新処理の実行の不足に対処するために、コンピュータでOSを起動するたびに、もしくは一定時間ごとに、その他適宜の時点で、図6に示されるキーデータ適応化更新処理を実行するようにすればよい。その場合、最新のソフトウエア利用可否判定結果を記憶しておき、最新の判定結果が利用可の場合にのみ、ステップST90〜ST92のキーデータ更新処理を行なうようにすればよい。具体的には、このキーデータ適応化更新処理を実行するプログラムをコンピュータの起動時に自動的に実行されるプログラムのリストに加えておけば十分である。たとえば、Windows(マイクロソフト社の商標)ではスタートアップファイルとして登録しておけばよい。
【0041】
本発明に係る不正利用防止方法においては、使用可と判定する前記許容限界の範囲を広くとりすぎると、不正ユーザーを誤って正規ユーザーと認識する可能性がある。逆に、前記許容限界を狭くとりすぎると、ファイルシステムに急激な変更を加えた場合に、正規ユーザも誤って不正と認識される可能性が高まる。また、ユーザーサービスのためにキーデータを喪失または紛失した場合にキーデータ再発行サービスを行なうことが考えられるが、そのようなキーデータ再発行サービスを悪用して、悪意あるユーザーが別コンピュータの固有情報を利用してキーデータの再発行を要求し、複数のコンピュータでソフトウエアを不正に利用することも不可能ではない。したがって、本発明に係る不正利用防止方法は、全く完全な不正利用防止防止策を提供するものではない。したがって、本発明に係る方法を有効に実施するためには、ライセンサーが自らの責任において使用可否判定の許容範囲若しくは限界値を適切に設定する必要がある。
【0042】
ただし、前記のような不都合があっても、容易にコピーできるパスワードによる従来の不正利用防止方法と比較すれば、本発明の方法に格段の防止力がある。たとえば、従来のパスワード方式では口頭あるいは電子メールなどによって誰にも見つかることなく不正に他人にパスワードを教えることが可能であり、容易に多人数に伝わりうる。しかし、本発明に係る不正利用防止方法では、仮りに不正利用者がプロテクトプログラムに誤認識させる目的でファイルシステムに作為を施そうとしたとしても、まず、キーデータに対応するファイルシステム構造を解読した上で、コンピュータのファイルシステムをそれに合わせて改造しなければならず、多大な手間がかかり、到底、引き合わないものとなる。また、メールで不正にキーデータの再発行を要求しようとしたとしても、心理的な敷居は高く、またそのような不正な要求を高い頻度で繰り返せば不正が明らかになる、などの種々の事情からパスワードによる従来の防止方法と比べて、不正コピーが広まる恐れは格段に少ないと考えられる。
【0043】
以上のように、本発明によれば、ライセンサーが許容限界を適切に設定している場合には、ユーザーがソフトウエアを利用するコンピュータの暗号化固有情報をライセンサーに伝え、正規のキーデータを受け取らない限り当該ソフトウエアをコンピュータで利用することが出来ないので、ソフトウエアの不正利用を有効に防止することができる。また、正規ユーザーであっても1つのソフトウエアを固有情報の異なる他のコンピュータに対してインストールすることは出来ない。よって、ソフトウエアの不正利用防止効果が大である。
なお、インストール時またはソフトウエア起動時に限らず、ソフトウエアのコピー時に本発明に従うプロテクトプログラムを起動させて、不正コピーを禁止するようにしてもよい。また、インストール時にのみ本発明のプロテクトプログラムを実行するものとし、かつ、キーデータ受領時に連続してインストール処理も行なうものとする仕様も可能であり、そのような仕様にあっては、キーデータ適応化更新処理(ステップST9、図6)は省略可能である。
【0044】
なお、図1に示す例では、比較・判定器28のブロックでは、ファイルシステム情報に基づく固有情報同士(つまり暗号化解除した情報同士)で比較を行っているが、この逆に、検出した「現在のファイルシステム情報」を暗号化及び変換して、それに対応するキーデータを生成し、該生成したキーデータと保存してあるキーデータとの比較(つまり暗号化したデータのままの情報同士の比較)によって、利用可否の判定を行うようにしてもよい。しかし、その場合は、不正利用者によるキーデータの改竄の危険性が高まるので、あまり得策ではない。よって、上記実施例に示したようにファイルシステム情報に基づく固有情報(つまり暗号化解除した情報同士)で比較を行う方が得策である。しかし、不利はあるとしてもキーデータ同士で比較する実施態様も、ファイルシステムの特徴に基づきソフトウエアの利用可否を判定するという本発明の技術思想に含まれるものであり、本発明の範囲に含まれる。
【0045】
ソフトウェアが上記の利用可否判定機能によって保護されていても、ソフトウェアの分析と改造によって、該ソフトウェアが不正利用もしくは不正コピーされる恐れがある。これは、ソフトウェアを改造することによって、該ソフトウェア内部の利用可否判定機能を無効化してしまえばよいからである。特に、その利用可否判定機能がソフトウェアの利用もしくはインストールの開始でのみ使用される場合には、その部分だけ改造されてしまうことで、該ソフトウェアが不正利用されてしまう恐れが大きい。このような改造の恐れに対しては、該利用可否判定機能をソフトウェア内部の複数箇所に配備し、何重にも別の箇所で利用可否を判定するようにすると効果的である。これは、ソフトウェア内部の不正に改造された箇所で「利用可能である」と判定されても、別の正常のままに残っている箇所で「利用不可能である」と判定された場合には該ソフトウェアの利用を中止する仕組みとすればよいからである。ソフトウェアの利用可否判定機能を地雷にたとえるならば、地雷を広範囲に埋めておくことによって、狭い範囲に一つだけ埋めておく場合よりも、敵が攻め入ることを難しくできる事情とよく似ている。具体的には、対象ソフトウエア内部の任意の1又は複数の箇所(該対象ソフトウエア実行ステップ中の任意の1又は時点)で、図5のようなプロテクトプログラムが呼び出されて、本発明に従う不正利用防止処理が実行されるようにするとよい。あるいは、対象ソフトウエアの実行中に、適宜の時点(例えば起動時)で図5のプロテクトプログラムのルーチンは1回だけ行い、その後の該対象ソフトウエア内部の任意の1又は複数の箇所(該対象ソフトウエア実行ステップ中の任意の1又は時点)で、図5における少なくともステップST7の判定を行うようにしてもよい。
【0046】
なお、本発明は、必要とあらば、ソフトウエア不正利用防止装置という専用ハードウエアの形態で実施することも可能であり、その場合も本発明に従う効果・利点を享受することができる。よって、本発明に従う不正利用防止方法を専用ハードウエア装置で実現しうるように構成した実施の形態も本発明の範囲に含まれる。
【0047】
【発明の効果】
以上の通り、本発明によれば、ユーザー側の個別コンピュータに固有の情報として該コンピュータのファイルシステム情報に着目し、該ファイルシステム情報に基づき個別コンピュータに固有のキーデータを作成して、ソフトウエアを利用しようとするコンピュータにおけるファイルシステム情報を該キーデータを用いて評価することでその利用の可否を判定するようにしたので、完全なソフトウエア処理ベースで不正利用を防止することができ、通信ネットワークを介して流通するソフトウエアの不正利用防止対策として最適であり、また、ハードウエアキーが不要であり、格別の可搬性記録媒体の形態で対象ソフトウエアを提供しなければならないような面倒もなく、ローコストであり、ソフトウエア提供者の側において各オペレーティングシステム毎に対象ソフトウエアを作成しなければならない面倒もなく、更には、オペレーティングシステムによる制限を受けないので「クロスプラットホーム」タイプのソフトウエアにも適用することができる、等々の優れた効果を奏する。
【図面の簡単な説明】
【図1】 本発明に係るソフトウエアの不正利用防止方法の原理を示す機能ブロック図。
【図2】 本発明に係る不正利用防止方法を実現するプログラム及び対象ソフトウエアの構造を例示する略図。
【図3】 本発明に係る不正利用防止方法に従う登録手続の一例を示すフロー図。
【図4】 ファイルシステムの一例を示す概念図。
【図5】 本発明に係る不正利用防止方法に従うプロテクトプログラムの一例を示すフロー図。
【図6】 キーデータ適応化更新処理の一例を示すフロー図。
【符号の説明】
10 ライセンス提供者側のコンピュータシステム
20 ユーザー側のコンピュータシステム
21 コンピュータハードウエア
22 OS
23 ファイルシステム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for preventing unauthorized use of software, a computer program according to the method, and a storage medium storing the program, and in particular, by using key data specific to a specific computer that normally uses the software. It is intended to prevent unauthorized use of the software on another computer. For example, to prevent unauthorized use when using installed software, or to prevent unauthorized copying when installing software on a computer. It is useful.
[0002]
[Prior art]
A typical example of a conventional technique for preventing unauthorized use or unauthorized copying of software is a method by inputting a password. This is a method of permitting the use or copying of software only when a predetermined password acquired from a license provider is input. However, with this method, if the same password is used, the same software can be used or copied on another computer, and the password can be easily communicated to others. It is clearly incomplete and cannot protect the rights of the software author.
[0003]
A hardware key method is also used to more reliably prevent unauthorized copying of software. In this method, hardware having specific information is used as a key, and it is a method of permitting the use of software by determining whether the hardware is connected to a computer. Since key hardware cannot be copied easily, illegal copying can be prevented more reliably by this method. However, since the cost is high, there is a problem that it can be applied only to some expensive software. . In addition, this method is completely unsuitable for a recent software distribution form in which software is easily provided and traded online via a communication network.
[0004]
In order to realize a function similar to the above at low cost, there is an unauthorized copy prevention method using an inexpensive recording medium. This provides software in a form recorded on a portable recording medium such as a floppy disk, and by writing predetermined data to the recording medium at the time of installation execution, the next and subsequent installations using this recording medium It is a method to restrict. However, since it is necessary to take the form recorded on a portable recording medium when distributing software, this method is also the latest software distribution that provides and sells software online easily via a communication network. It is totally unsuitable for form. In addition, there is a problem that it cannot be applied to a computer that does not have a recording medium read / write device, or that a new new recording medium is required when an authorized user reinstalls the software.
[0005]
As described above, an unauthorized copy prevention method that does not use unique information for identifying a computer cannot prevent unauthorized copying to another computer by itself. That is, there is a problem that copying can be easily performed using the same recording medium, key data such as a serial number or a password.
On the other hand, as a method of avoiding such easy unauthorized copying, a method of preventing unauthorized copying using information unique to the operating system is considered. This is because a unique ID number is assigned to each operating system of an individual computer, and the software side has key information so that it can recognize the dedicated operating system ID number and uses the software. The ID number of the operating system is collated using the key information on the software side to determine whether or not the software can be used in a computer having the OS. Although this method can effectively prevent unauthorized copying as compared with the above-described conventional example, since the program of the target software must be created as a different program for each operating system, it takes time to create the software. There is a problem. In addition, there is a problem that it cannot be applied to “cross-platform” type software that can operate on any different OS that has recently been distributed.
[0006]
[Problems to be solved by the present invention]
The present invention has been made to solve the above-described various problems or problems, and does not require a hardware key or a portable recording medium, and is not limited by an operating system, and only software processing. Thus, an object of the present invention is to provide a method capable of preventing unauthorized use of target software, a computer program according to the method, and a storage wave medium storing the program.
[0007]
[Means for Solving the Problems]
  The present inventionClaim 1The software illegal use prevention method related toGet a licenseUser's computerProcessing of the computerA first step of detecting characteristics of the file system and generating unique information based on the detected characteristics of the file system, and a software license provider side based on the unique information generated in the first stepBy computer processingA second step of generating key data and providing the key data to the user; and a computer to use the softwareProcessing of the computerA third step of detecting characteristics of the file system and generating specific information based on the detected characteristics of the file system;By the processing of the computer trying to use the software,The unique information based on the characteristics of the file system corresponding to the key data and the unique information based on the characteristics of the file system generated in the third stepComparisonAnd a fourth step of determining whether or not the software can be used based onA fifth step of storing the key data provided to the user in the second step in a memory provided in a computer to use the software, and the software in the fourth step. The content of the key data stored in the memory is updated so as to conform to the unique information based on the characteristics of the file system generated in the third step, with at least one condition that the file is determined to be usable And the sixth stepIt comprises.
  According to a third aspect of the present invention, there is provided a software illegal use prevention method for detecting characteristics of a file system of a computer by processing of a computer of a licensed user and generating unique information based on the detected characteristics of the file system. And a second step of generating key data by computer processing on the software license provider side based on the unique information generated in the first step and providing the key data to the user. A third step of detecting characteristics of the file system of the computer by processing of the computer to use the software, and generating unique information based on the detected characteristics of the file system, and using the software Depending on the processing of the computerThe difference between the unique information based on the feature of the file system corresponding to the key data and the unique information based on the feature of the file system generated in the third step is calculated, and the difference according to the magnitude of the difference Determining software availabilityAnd a fourth step.
  As an example, the method includes a step of restoring unique information based on characteristics of the file system from the key data provided to the user. In the fourth step, the unique information based on characteristics of the restored file system includes: Unique information based on the characteristics of the file system generated in the third step;InBased on this, it is determined whether or not the software can be used.
[0008]
An outline of the method according to the present invention will be described.
First, as a pre-stage process for issuing unique key data to the user, the characteristics of the file system of the specific computer used by the user are detected, and unique information is generated based on the detected characteristics of the file system. (First step). This user is, for example, a person who has purchased the intended software or indicated the intention to purchase. The feature of the computer file system can be detected, for example, by reading the computer file system information. This file system information is information unique to each individual computer, such as “fingerprint”. That is, the file system of a certain user's computer (specific computer) shows a file usage history unique to that user, and this can be used as specific information. Since this first step only needs to detect the characteristics of the file system of the computer (for example, read the file system information), it can be performed by pure software processing, and no special hardware key or portable recording medium is required. is there.
[0009]
The unique information based on the file system information read by the computer on the user side is passed to the software license provider via the communication network or any other means. The software license provider generates unique key data based on unique information based on the characteristics of the file system (second step). For example, unique key data is generated by converting unique information based on the characteristics of the file system according to a predetermined encryption algorithm. The generated key data is provided to the user via a communication network or any other means. In this way, the key is issued to the user by the license provider, so that the user is authorized (that is, user registration is performed).
[0010]
On the user side, the characteristics of the file system of the computer that intends to use the software are detected, and unique information is generated based on the detected characteristics of the file system (third step). This feature of the file system can also be detected by reading the file system information of the computer, for example. Hereinafter, the unique information based on the read file system information will be referred to as “current file system information” for convenience. The “current” here does not need to be a strict current time point, and may be file system information at a time point before the present time (however, after the key data is created).
[0011]
  On the user side, the unique information based on the characteristics of the file system corresponding to the key data and the unique information based on the characteristics of the file system generated in the third step (that is, “current file system information”)ComparisonTo determine whether the software can be used or not (fourth step). In this case, the user side may include a step of restoring unique information based on the characteristics of the file system from the provided key data. This restoration can be performed, for example, by performing inverse transformation of the predetermined encryption algorithm. In that case, in the fourth step, the unique information based on the characteristics of the restored file system is compared with the unique information based on the characteristics of the file system generated in the third step, and both information Whether to use the software is determined based on the coincidence or similarity. As another example, unique information based on the characteristics of the file system generated in the third step (that is, “current file system information”) is converted into key data, and in the fourth step, the provided information is provided. The availability of the software may be determined by comparing the key data with the converted key data. In short, it is only necessary to determine whether or not software can be used based on the characteristics of the file system.
  On the user side, the key data provided by the license provider may be stored as appropriate, and the unique information based on the file system information may be restored based on the stored key data. However, it is not always necessary to store the key data on the user side. For example, there is a method of receiving provision from a license provider when necessary.
[0012]
For example, when the key data is created, that is, from the time of registration, if the file system information of the user computer is not changed, the file system information matches. This means that the current computer on the user side is clearly the same as the computer related to the file system information from which the key data was created at the time of registration. Therefore, of course, the use of software is permitted. For example, the case where the fourth step is executed subsequently at the time of user registration corresponds to the case of such a perfect match.
Naturally, the contents of the file system information change with the use of the user's computer. In such a case, the file system information restored from the key data is different from the “current file system information” detected in the third step, but the difference between the two is different in the fourth step. If it is within the allowable range, the similarity is recognized, the computer used on the user side is recognized as being unchanged, and the use of the software is permitted. On the other hand, when trying to use the software on a computer other than the computer authorized at the time of registration (the computer related to the file system information from which the key data is created), it was detected in the third step. Since the “current file system information” is file system information of the other computer, it is quite different from the file system information restored based on the key data. Therefore, in the fourth step, it is determined that there is no match or similarity between them, that is, the difference between the two is out of the allowable range, and the use of the software is disabled.
[0013]
Thus, according to the present invention, focusing on the file system information of the computer as information unique to the individual computer on the user side, key data unique to the individual computer is created based on the file system information, and the software Since the file system information in the computer to be used is evaluated by using the key data to determine whether or not the use is possible, unauthorized use can be prevented on the basis of a complete software processing and communication. It is ideal as a measure to prevent unauthorized use of software distributed over a network, and it does not require a hardware key, and the trouble of having to provide the target software in the form of a special portable recording medium Low cost, and each operator on the software provider's side There is no need to create the target software for each operating system, and since it is not restricted by the operating system, it can be applied to "cross platform" type software, and so on. .
[0014]
Note that the use of software in a computer includes all of various usage forms. For example, (1) installing the software on the computer, (2) starting the installed software on the computer and actually executing the program, or (3) copying the software, and so on. Therefore, the availability determination in the fourth step is, for example, (1) when installing software in a computer, or (2) when starting software on a computer (when starting a software program). Or (3) when copying software, it may be executed at at least one point of time. If it is determined that the software cannot be used, the use is prohibited, that is, (1) the installation process is canceled, (2) the activation of the software is prohibited, or (3) the software is copied. Is prohibited. Usually, if (1) prohibition of installation and (2) prohibition of software activation are performed, it is possible to prevent unauthorized use of the software, assuming that copying is possible. It is sufficient to perform at least one of (2) prohibition of installation and (2) prohibition of activation of software. Of course, the present invention is not limited to this. (3) Even if only copying of software is prohibited, the effect of preventing illegal use of software can be obtained. In short, the availability determination in the fourth step can produce an effect specific to the present invention as it is at any time. In addition, at least one or more locations in the target software (or any one or more points in time during execution of the software), at least the availability determination in the fourth step is performed. Good. Then, even if an unauthorized user invalidates the availability determination function at a certain location (for example, at the time of installation), the availability determination function can be exhibited at another location.
[0015]
Further, since there are various methods for comparing file system information performed in the fourth step, an appropriate method may be adopted. As an example, the match / mismatch of individual files is compared and determined, and the degree of similarity of the entire file system information is determined from the degree of match / mismatch. As a method for making such a determination quantitatively, a difference or mismatch function value between the two file system information is calculated, and the availability of the software is determined according to the magnitude of the difference or the function value. As another method, it is possible to determine the similarity of both file system information by a pattern recognition method.
[0016]
By the way, even if the computer is authorized by a software provider, the file system information changes with use. For this reason, the difference between the original file system information (at the time of user registration) restored by the key data and the current file system information becomes large as it is, and it will be judged as dissimilar beyond the allowable range. It might be. In order to cope with this, it is preferable to adaptively update the contents of the key data so as to match the current file system information. That is, key data is stored in the user computer, and in the fourth step, determination processing is performed using the stored key data (for example, the original file system information is restored from the stored key data). Used for comparison processing). Then, on the basis of at least one condition that the software is determined to be usable in the fourth step, the stored key data is adapted to the file system information detected in the third step. A step of updating the contents is further included. The reason that at least one condition is that the software is determined to be usable in the fourth step is to adaptively update the contents of the key data only when the regular use is confirmed. Further, an appropriate condition may be added to adaptively update the contents of the key data. For example, it is best to always update the software every time it is determined that the software can be used in the fourth step. However, the present invention is not limited to this, and a condition that updates are performed at appropriate time intervals is added. May be.
[0017]
  The present invention can be implemented not only as a method invention but also in the form of a computer program according to the method or a storage medium storing the program. For example, the present inventionClaim 10The computer program according to claim 1 detects a characteristic of a file system of a user's computer and outputs unique information based on the detected characteristic of the file system.And the outputSpecific informationBased onLicense provider of the softwareofOn the sideGeneratedUnique key data corresponding to the unique informationTheA second step of receiving from the license provider side, and a third step of detecting a characteristic of a file system of a computer to use the software and generating unique information based on the detected characteristic of the file system; Specific information based on the characteristics of the file system corresponding to the key data and specific information based on the characteristics of the file system generated in the third step.ComparisonAnd a fourth step of determining whether or not the software can be used based onThe fifth step of storing the key data provided to the user in the second step and the determination that the software is available in the fourth step as at least one condition, A sixth step of updating the content of the stored key data so as to conform to the unique information based on the characteristics of the file system generated in step 3;It comprises.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
FIG. 1 is a functional block diagram for explaining the principle of a method for preventing unauthorized use of software according to the present invention. Block 10 shows a computer system on the side of a software license provider (hereinafter referred to as licensor), and block 20 is A computer system of a software user (hereinafter referred to as a user) is shown.
[0019]
In the computer system 20 on the user side, as is well known, an appropriate operating system (hereinafter abbreviated as OS) 22 is mounted on the computer hardware 21, and various programs and data “files” are stored in the storage device. Thus, the file system 23 is constructed. This file system 23 has a directory hierarchical structure as is generally known. The computer system 10 on the licensor side has the same configuration, but it is not important and is not shown.
[0020]
A block 24 in the computer system 20 on the user side is a part of a program that realizes the software illegal use prevention method according to the present invention, and the processing executed by the program is conceptually shown by functional blocks. As an example, a program for realizing a method for preventing unauthorized use of software according to the present invention includes (1) a registration program and (2) a protect program. In FIG. 1, the dotted arrows generally indicate the flow of processing when registering according to (1) the registration program, and the solid arrows indicate the flow of processing when using software according to (2) the protect program. The (1) registration program and (2) protect program are configured separately in the example described below, but may be configured integrally.
[0021]
FIG. 2 is a diagram showing an example of the structure of software that is a target of the unauthorized use prevention method according to the present invention, in relation to (1) a registration program and (2) a protection program. FIG. 1A shows an example in which (1) a registration program is supplied separately from the target software. In this case, (1) the registration program is provided in advance to a user who intends to receive the provision of the target software (for example, to purchase) from the side of the licensor that provides the target software. . The target software is provided to the user after a predetermined registration procedure described later is completed. The target software includes a “main program” that is the main body of the software, an “installation program” that operates when the software is installed on the computer, and a start of the installed software (execution start) (2) A protect program is attached. (2) The protect program is called by at least one of the “install program” and the “start program”, and unauthorized use prevention processing according to the present invention is executed at least at the time of installation and at the time of start. Further, as will be described later, the protect program may be called at any one or a plurality of locations in the target software to execute the unauthorized use prevention processing according to the present invention.
[0022]
FIG. 5B shows an example in which the target software includes not only the (2) protect program but also the (1) registration program. In this case, the target software is provided before the predetermined registration procedure described later, but there is no particular problem because the software cannot be used unless the predetermined registration procedure is completed.
In FIG. 8C, only (1) registration program and (2) protect program are provided to the user first, and the target software is provided to the user after a predetermined registration procedure described later is completed. An example is shown.
In the following description, as in the example of FIG. 2A, (1) a registration program is first provided to the user, and after the predetermined registration procedure is completed, (2) the target software with the protect program is sent to the user. A description will be given assuming that it is provided. The provision of these programs or software from the licensor to the user can be performed online via a communication network.
[0023]
FIG. 3 is a flowchart schematically showing the flow of the software use registration procedure, which is the first stage of the unauthorized use prevention method according to the present invention. This registration procedure is started by activating the registration program provided to the user from the licensor on the user's computer. Mainly, steps S1, S2 and S4 of FIG. 3 are processes executed by the user's computer according to the registration program (1). Step S3 is a process performed by the computer of the licensor.
In this registration program, first, file system information of a user's computer is read, and is encrypted according to a predetermined encryption algorithm defined in the registration program, and encrypted unique information is generated based on this (see FIG. Step S1). The block of the encryptor 25 in FIG. 1 conceptually shows this encryption process. Any encryption algorithm may be used.
[0024]
As is well known, a computer file system refers to a hierarchical structure of files in a computer. For example, Windows (trademark of Microsoft Corporation) has a function that can read this file system information using a program Explorer (trademark of Microsoft Corporation) and visually display its hierarchical structure. Such an existing file system information reading function can be used. Further, since the file system structure can be read using the file I / O function of the programming language, file system information can be obtained thereby. FIG. 4 shows an example of a file system. There is a folder such as “Old Mail” in the C drive, and various files with appropriate names such as “Meeting with XX Trading” are arranged therein. As can be seen from this example, individual computers are used in different ways depending on individual users, so as long as they are used normally at home or in the office, each user can use the file system individually. It will be unique to each computer. In other words, except for special cases such as immediately after the OS is installed, the file system information can be regarded as information unique to each individual computer. Therefore, the file system information is used as unique information for each individual computer, and as described later, unique key data can be created for each individual computer based on this.
[0025]
The unique information encrypted in step S1 may include not only the file system information but also other information other than the file system (for example, other information describing the current computer system). In short, any file system information may be included. In addition, it is encrypted using only a part of the file system information (for example, the file system information of a predetermined partial drive or a predetermined folder or folders) without using all the file system information of the user's computer. The unique information may be generated, and this is also included in the scope of the present invention. Note that the encryption process in step S1 is to make it difficult for an unauthorized user to decrypt the key data at a later date. Therefore, in some cases, the encryption process in step S1 can be omitted.
[0026]
Next, the encryption specific information based on the generated file system information is sent from the user to the licensor (step S2). This unique information is preferably sent online via a communication network, but may be sent offline via a portable medium.
[0027]
When the licensor receives encryption specific information from the user based on file system information specific to the computer used by the user, the licensor receives a predetermined conversion algorithm (this conversion algorithm is an encryption algorithm. The encrypted unique information is converted according to (preferably for preventing the decryption of), and key data (data serving as a key permitting regular use) is generated (step S3). The block of the converter 11 in FIG. 1 conceptually shows this conversion process. Thus, key data is created based on file system information unique to the computer used by the user. This key data is sent from the licensor to the user, and the user stores the received key data in his computer (step S4). The key data is preferably sent online via a communication network, but may be sent offline via a portable medium. Of course, without storing the key data electronically in the computer, the user may remember the key data notified to the user from the licensor and input it to the computer when necessary. .
[0028]
In this way, the user registration procedure is completed when the key data is passed from the licensor to the user. The target software is supplied from the licensor to the user at an appropriate stage before or after the user registration procedure. The supply of the target software is preferably performed online via a communication network, but may be performed offline via a portable medium.
[0029]
Next, an example of the operation of the above (2) protect program, which is the second stage of the unauthorized use prevention method according to the present invention, will be described with reference to a function flowchart shown in FIG. This protect program is executed on the user's computer when the user installs the target software on his computer or when the installed software is started. When starting this protected program during installation, this protected program is called and executed when the installation program of the target software is executed, and if it is determined that the software can be used as a result, installation is permitted. . Also, when starting this protected program when starting the installed software (when starting software execution), this protected program is called and executed when the start program of the target software is executed. If it is determined that the software can be used, it is permitted to start execution of the software body. This protect program is not limited to either one at the time of installation or at the time of software activation, and may be executed at both times. Alternatively, as will be described later, this protect program may be executed at any one or a plurality of locations inside the target software.
[0030]
When the protect program starts, first, key data is searched to determine whether key data exists (step ST1). This key data search method accepts the input of key data location information by the user on the input screen displayed according to the protect program, acquires key data from the input location information, or is designated in advance. An appropriate method may be used, such as a method of acquiring key data by searching a directory or a method of acquiring key data by searching a storage area of a computer from the corner. If it is determined that the key data does not exist, the use of the target software is not permitted (step ST2).
[0031]
If it is confirmed in step ST1 that the key data exists, the original encrypted unique information is generated by inversely converting the key data (step ST3). The block of the inverse converter 26 in FIG. 1 conceptually shows the inverse conversion process in step ST3. The reverse conversion algorithm in the reverse converter 26 is the reverse of the conversion algorithm by the conversion process on the licensor side (step S3 in FIG. 3 or the converter 11 in FIG. 1) during the registration procedure, thereby converting the key data. Restore to previous encryption specific information.
[0032]
Next, the restored encrypted unique information is decrypted (decrypted), and the unique information including the original file system information is restored (step ST4). The block of the decoder 27 in FIG. 1 conceptually shows the decoding process in step ST4. The decryption algorithm in the decryptor 27 is the reverse of the encryption algorithm by the encryption process (step S1 in FIG. 3 or the encryptor 25 in FIG. 1) at the time of the registration procedure. Unbind and restore the unique information including the original file system information.
[0033]
On the other hand, “current file system information” of the user's computer is read at an appropriate time, and based on this, “current unique information” of the user computer is provided (step ST5). The process of step ST5 may be performed before any of steps ST1, ST3, ST4. Further, reading the “current file system information” of the user computer is performed at an appropriate previous time, and is stored, and the saved “current file system information” is stored in step ST5. You may make it call. As described above, the file system information can be acquired by using the file I / O function of the programming language. Further, as described above, the “current unique information” of the user computer restored in step ST5 may include not only the file system information but also other information other than the file system. In short, the file system information As long as it contains at least. Alternatively, the encrypted unique information may be generated using only a part of the file system information without using all the file system information of the user's computer. However, it must be the same type of information as the unique information including the file system information that is the source of key data generation during the registration procedure.
[0034]
Next, the “original unique information (that is, the original file system information)” obtained in step ST4 is compared with the “current unique information (that is, the current file system information)” obtained in step ST5. A difference in information is obtained (step ST6). This difference can be calculated as a numerical value or a vector. For example, taking the set of files included in the file system obtained from the original unique information and the set of files included in the current file system, the number A of files included (matched) in both the former and the latter As an example, a method of calculating the difference C by the following equation from the number B of files that are included (not matched) only in either the former or the latter can be considered.
C = B ÷ (A + B)
According to this difference calculation method, when the two file systems completely match, since B = 0, the difference C becomes 0 and takes the minimum value. Since B increases as the number of files included in only one of the two file systems increases, the value of the difference C increases. When the two file systems do not include any file with the same name, A = 0. Therefore, the difference C takes 1 which is the maximum value. That is, the difference C takes a decimal value in the range from 0 to 1, and the closer the value is to 0, the higher the matching / similarity.
[0035]
Next, it is determined whether the comparison result, that is, the difference C exceeds a predetermined allowable limit (step ST7). The block of the comparison / determination unit 28 in FIG. 1 conceptually shows the comparison / determination process in steps ST6 and ST7. If this comparison result, that is, the difference does not exceed the allowable limit, the use of the software is permitted (step ST8). For example, the running program (installation program or startup program) is continued. If this comparison result, that is, the difference exceeds the allowable limit, the use of the software is not permitted (step ST9). For example, an unauthorized message is displayed on the computer display, and the program (installation program or activation program) is stopped.
[0036]
For example, when the key data is created, that is, from the time of registration, if the file system information of the user computer is not changed, the file system information matches. This means that the current computer on the user side is clearly the same as the computer related to the file system information from which the key data was created at the time of registration. Therefore, of course, the use of software is permitted. For example, a case where the target software is to be installed immediately after obtaining the key data at the time of registration corresponds to such a completely coincidence case.
On the other hand, the content of the file system information naturally changes with the use of the user's computer. In such a case, the “original file system information” restored in step ST4 is different from the “current file system information” read in step ST5, but the difference between the two is within an allowable range in step ST7. If this is the case, the similarity is recognized, the computer used on the user side is recognized as being unchanged, and the use of the software is permitted. The allowable limit value is set in advance in the protect program by the licensor at his / her own risk.
[0037]
On the other hand, if the software is illegally installed or started to be used on a computer other than the computer authorized at the time of registration (the computer related to the file system information from which the key data is created), the software is temporarily authorized. Even if the regular key data of the other computer is obtained, the “current file system information” read in step ST5 is the file system information of the other computer, and thus is restored based on the regular key data. It is clearly different from file system information. Therefore, in step ST7, it can be determined that there is no match or similarity between the two, that is, the difference between the two is out of the allowable range, and the use of the software can be prohibited. Therefore, if an allowable limit value serving as a criterion for determination is appropriately set, unauthorized use of software can be appropriately prevented.
[0038]
By the way, even an authorized computer changes its file system information with use. For this reason, the difference between the original file system information (at the time of user registration) restored by the key data and the current file system information becomes large as it is, and it will be judged as dissimilar beyond the allowable range. It might be. In order to cope with this, it is preferable to adaptively update the contents of the key data so as to match the current file system information.
For this purpose, the key data is adaptively updated in step ST9 on condition that the software use permission is determined. That is, the contents of the key data are updated so as to conform to the “current file system information” read in step ST5. The block of the adaptor 29 in FIG. 1 conceptually shows the adaptation update process in step ST9. FIG. 6 is a flowchart showing an example of the key data adaptation update process. The process goes to step ST90 on condition that the use permission is determined, and the unique information encrypted based on the “current file system information” is generated. For this encryption, the same encryption algorithm as that in step S1 in FIG. 3 is used. Next, in step ST91, the encrypted unique information is converted into key data. For this conversion, the same conversion algorithm as the conversion algorithm on the licensor side in step S3 in FIG. 3 is used. Thus, the old key data stored in the user computer is updated or replaced with the new key data thus created (step ST92). If it cannot be used, the key data is not updated in steps ST90 to ST92. In step ST90, the “current file system information” read in the previous step ST5 may be used as it is, or the process of reading “current file system information” may be performed again. As will be described later, when this key data adaptation update process is performed at an arbitrary time point, the “current file system information” is read in step ST90, and encryption is performed based on the read “current file system information”. Generated unique information.
[0039]
It is desirable that the key data adaptation update process is performed as frequently as possible, and appropriate key data update is always performed. In the specification for executing the protect program at the start of use of the target software, as long as the specification includes the key data adaptation update process as step ST9 in the protect program as described above, every time the target software is started. In addition, key data adaptation update processing can be performed. In that case, if the target software is frequently used software, the key data adaptation update process is relatively sufficiently performed. However, if the target software is software that is not frequently used, the number of times that the key data adaptation update processing is executed is insufficient, and the file system greatly changes while the software is not used. Because it is possible, the old unique information (file system information) corresponding to the key data will be significantly different from the current unique information (file system information), and there is a risk that legitimate users will be denied use. Come out. On the other hand, in the specification in which the protect program is executed only at the time of installation of the target software, only the specification in which the key data adaptation update processing is incorporated in step ST9 in the protection program as described above is the key data adaptation update processing. Insufficient execution.
[0040]
In order to deal with the shortage of execution of the key data adaptation update process as described above, the key data adaptation shown in FIG. 6 is performed every time the OS is started on the computer or at certain time intervals. Update processing may be executed. In that case, the latest software availability determination result may be stored, and the key data update process of steps ST90 to ST92 may be performed only when the latest determination result is available. Specifically, it is sufficient to add a program that executes the key data adaptation update process to a list of programs that are automatically executed when the computer is started. For example, in Windows (a trademark of Microsoft Corporation), it may be registered as a startup file.
[0041]
In the unauthorized use prevention method according to the present invention, if the range of the allowable limit that is determined to be usable is too wide, an unauthorized user may be mistakenly recognized as a regular user. On the other hand, if the allowable limit is too narrow, there is a high possibility that a legitimate user will be mistakenly recognized as illegal when a sudden change is made to the file system. In addition, it is conceivable to perform a key data reissue service when the key data is lost or lost due to user services. It is not impossible to request the reissuance of key data using information and illegally use software on a plurality of computers. Therefore, the unauthorized use prevention method according to the present invention does not provide a complete prevention measure against unauthorized use. Therefore, in order to effectively carry out the method according to the present invention, it is necessary for the licensor to appropriately set the allowable range or limit value of the usability determination at his / her own responsibility.
[0042]
However, even if there is such an inconvenience as described above, the method of the present invention has a significant prevention power as compared with the conventional unauthorized use prevention method using a password that can be easily copied. For example, in the conventional password method, a password can be illegally taught to others without being found by anyone by verbal or e-mail, and can be easily transmitted to many people. However, in the unauthorized use prevention method according to the present invention, even if an unauthorized user tries to perform an operation on the file system for the purpose of misrecognizing the protected program, the file system structure corresponding to the key data is first decrypted. In addition, the computer's file system must be modified accordingly, which takes a lot of time and cannot be used at all. In addition, even if an attempt is made to request reissuance of key data fraudulently by e-mail, the psychological threshold is high, and fraud is revealed if such fraudulent requests are repeated frequently. Therefore, compared with the conventional prevention method using passwords, it is considered that there is much less fear of unauthorized copying.
[0043]
As described above, according to the present invention, when the licensor appropriately sets the allowable limit, the user transmits the encryption specific information of the computer using the software to the licensor, and the authorized key data Since the software cannot be used on a computer unless it is received, unauthorized use of the software can be effectively prevented. Moreover, even a legitimate user cannot install one software on another computer having different unique information. Therefore, the effect of preventing unauthorized use of software is great.
It should be noted that not only at the time of installation or at the time of software activation, but also at the time of copying software, a protect program according to the present invention may be activated to prohibit unauthorized copying. It is also possible to have a specification that the protection program of the present invention is executed only at the time of installation, and that the installation process is also performed continuously when key data is received. The update process (step ST9, FIG. 6) can be omitted.
[0044]
In the example shown in FIG. 1, in the block of the comparison / determination unit 28, the unique information based on the file system information (that is, the decrypted information) is compared, but conversely, the detected “ The current file system information "is encrypted and converted to generate corresponding key data, and the generated key data is compared with the stored key data (that is, the encrypted data remains The use / non-use determination may be performed by (comparison). However, in that case, the risk of falsification of key data by an unauthorized user increases, so it is not a good idea. Therefore, as shown in the above-described embodiment, it is better to perform comparison using unique information (that is, decrypted information) based on file system information. However, even if there is a disadvantage, the embodiment in which the key data are compared with each other is also included in the technical idea of the present invention that determines whether or not the software can be used based on the characteristics of the file system, and is included in the scope of the present invention. It is.
[0045]
Even if the software is protected by the above-described availability determination function, the software may be illegally used or illegally copied by analyzing and modifying the software. This is because it is only necessary to invalidate the availability determination function inside the software by modifying the software. In particular, when the availability determination function is used only at the start of software use or installation, there is a high possibility that the software is illegally used by modifying only that part. In order to cope with such a possibility of modification, it is effective to provide the availability determination function at a plurality of locations inside the software and to determine availability at multiple locations. Even if it is determined that the software is illegally modified inside the software, it can be used, but if it is determined that it cannot be used in another part that remains normal This is because a mechanism for stopping the use of the software may be used. If you compare the software availability decision function to landmines, it is very similar to the situation where it is more difficult for enemies to invade by filling landmines extensively than if only one is buried in a narrow area. . Specifically, the protection program as shown in FIG. 5 is called at any one or a plurality of locations in the target software (any one or time point in the target software execution step), and the illegality according to the present invention is performed. It is recommended that the usage prevention process be executed. Alternatively, during execution of the target software, the protect program routine of FIG. 5 is performed only once at an appropriate time (for example, at the time of activation), and then one or a plurality of locations (the target The determination at least in step ST7 in FIG. 5 may be performed at any one or time point during the software execution step.
[0046]
If necessary, the present invention can be implemented in the form of dedicated hardware such as a software unauthorized use prevention device, and even in this case, the effects and advantages according to the present invention can be enjoyed. Therefore, an embodiment configured so that the unauthorized use prevention method according to the present invention can be realized by a dedicated hardware device is also included in the scope of the present invention.
[0047]
【The invention's effect】
As described above, according to the present invention, focusing on the file system information of the computer as information unique to the individual computer on the user side, key data unique to the individual computer is created based on the file system information, and the software Since the file system information in the computer to be used is evaluated by using the key data to determine whether or not the use is possible, unauthorized use can be prevented on the basis of a complete software processing and communication. It is ideal as a measure to prevent unauthorized use of software distributed over a network, and it does not require a hardware key, and the trouble of having to provide the target software in the form of a special portable recording medium Low cost, and each operator on the software provider's side There is no need to create the target software for each operating system, and since it is not restricted by the operating system, it can be applied to "cross platform" type software, and so on. .
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing the principle of a method for preventing unauthorized use of software according to the present invention.
FIG. 2 is a schematic diagram illustrating the structure of a program and target software for realizing an unauthorized use prevention method according to the present invention.
FIG. 3 is a flowchart showing an example of a registration procedure according to the unauthorized use prevention method according to the present invention.
FIG. 4 is a conceptual diagram illustrating an example of a file system.
FIG. 5 is a flowchart showing an example of a protection program according to the unauthorized use prevention method of the present invention.
FIG. 6 is a flowchart showing an example of key data adaptation update processing.
[Explanation of symbols]
10 License provider computer system
20 User computer system
21 Computer hardware
22 OS
23 File system

Claims (14)

ライセンスを受けるユーザーのコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第1のステップと、
前記第1のステップで生成した固有情報に基づきソフトウエアのライセンス提供者の側でのコンピュータの処理によってキーデータを生成し、該キーデータを前記ユーザに提供する第2のステップと、
前記ソフトウエアを利用しようとするコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、
前記ソフトウエアを利用しようとするコンピュータの処理によって、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との比較に基づき前記ソフトウエアの利用可否を判定する第4のステップと
前記第2のステップでユーザに提供された前記キーデータを、前記ソフトウエアを利用しようとするコンピュータに設けられたメモリに、保存する第5のステップと、
前記第4のステップで前記ソフトウエアが利用可と判定されたことを少なくとも一つの条件として、前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報に適合するように前記メモリに保存されたキーデータの内容を更新する第6のステップと
を具備するソフトウエアの不正利用防止方法。
Detecting a characteristic of a file system of the computer by processing of a computer of a licensed user, and generating unique information based on the characteristic of the detected file system;
A second step of generating key data by computer processing on the software license provider side based on the unique information generated in the first step, and providing the key data to the user;
A third step of detecting characteristics of the file system of the computer by processing of the computer that intends to use the software, and generating unique information based on the detected characteristics of the file system;
Comparison between the unique information based on the characteristics of the file system corresponding to the key data and the unique information based on the characteristics of the file system generated in the third step by a process of a computer that intends to use the software A fourth step of determining whether or not the software can be used based on :
A fifth step of storing the key data provided to the user in the second step in a memory provided in a computer to use the software;
On the basis of at least one condition that the software is determined to be usable in the fourth step, the memory is adapted to match the unique information based on the characteristics of the file system generated in the third step. A sixth step of updating the content of the stored key data, and a method of preventing unauthorized use of software, comprising:
前記第4のステップでは、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との差分を計算し、この差分の大きさに応じて前記ソフトウエアの利用可否を判定する請求項1記載のソフトウエアの不正利用防止方法。In the fourth step, a difference between the unique information based on the feature of the file system corresponding to the key data and the unique information based on the feature of the file system generated in the third step is calculated, and the difference is calculated. The method of preventing unauthorized use of software according to claim 1 , wherein whether or not the software can be used is determined according to a size of the software. ライセンスを受けるユーザーのコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第1のステップと、
前記第1のステップで生成した固有情報に基づきソフトウエアのライセンス提供者の側でのコンピュータの処理によってキーデータを生成し、該キーデータを前記ユーザに提供する第2のステップと、
前記ソフトウエアを利用しようとするコンピュータの処理によって該コンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、
前記ソフトウエアを利用しようとするコンピュータの処理によって、前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との差分を計算し、この差分の大きさに応じて前記ソフトウエアの利用可否を判定する第4のステップと
を具備するソフトウエアの不正利用防止方法。
Detecting a characteristic of a file system of the computer by processing of a computer of a licensed user, and generating unique information based on the characteristic of the detected file system;
A second step of generating key data by computer processing on the software license provider side based on the unique information generated in the first step, and providing the key data to the user;
A third step of detecting characteristics of the file system of the computer by processing of the computer that intends to use the software, and generating unique information based on the detected characteristics of the file system;
The difference between the unique information based on the characteristics of the file system corresponding to the key data and the unique information based on the characteristics of the file system generated in the third step by processing of the computer that intends to use the software It was calculated, and the fourth step of determining availability of said software in accordance with the magnitude of the difference
A method for preventing unauthorized use of software comprising :
前記ユーザに提供された前記キーデータから前記ファイルシステムの特徴に基づく固有情報を復元するステップを具備し、
前記第4のステップでは、前記復元されたファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報と基づき前記ソフトウエアの利用可否を判定する請求項1乃至3のいずれかに記載のソフトウエアの不正利用防止方法。
Restoring the unique information based on the characteristics of the file system from the key data provided to the user,
Wherein in the fourth step, determine the software availability based on the unique information based on the characteristics of the reconstructed file system the file system generated by the unique information and the third step based on the characteristics of The method for preventing unauthorized use of software according to any one of claims 1 to 3 .
前記第2のステップでは、所定の変換アルゴリズムに従って前記ファイルシステムの特徴に基づく固有情報を前記キーデータに変換し、
前記固有情報を復元するステップでは、前記所定の変換アルゴリズムの逆変換によって、前記キーデータから前記ファイルシステムの特徴に基づく固有情報を復元する請求項に記載のソフトウエアの不正利用防止方法。
In the second step, unique information based on the characteristics of the file system is converted into the key data according to a predetermined conversion algorithm,
5. The method for preventing unauthorized use of software according to claim 4 , wherein in the step of restoring the unique information, the unique information based on the characteristics of the file system is restored from the key data by inverse transformation of the predetermined conversion algorithm.
前記第1及び第3のステップにおいて、コンピュータのファイルシステム情報を読み取ることにより前記ファイルシステムの特徴を検出する請求項1乃至のいずれかに記載のソフトウエアの不正利用防止方法。Wherein the first and third step, the software of the unauthorized use preventing method according to any one of claims 1 to 5 for detecting a characteristic of the file system by reading the file system information of the computer. 前記第4のステップは、前記ソフトウエアを前記コンピュータにインストールするとき、あるいは、前記ソフトウエアを前記コンピュータで起動するとき、あるいは、前記ソフトウエアを前記コンピュータでコピーしようとするとき、のいずれか少なくとも1つの時点で実行され、該第4のステップで利用不可と判定されたならばその利用を禁止する請求項1乃至のいずれかに記載のソフトウエアの不正利用防止方法。The fourth step is at least one of installing the software on the computer, starting the software on the computer, or copying the software on the computer. The method for preventing unauthorized use of software according to any one of claims 1 to 6 , which is executed at one time point and prohibits the use if it is determined that the use is not possible in the fourth step. 前記第4のステップは、前記ソフトウエアを前記コンピュータで利用中の任意の1又は複数の時点で実行され、いずれかの時点で実行された該第4のステップで利用不可と判定されたならばその利用を禁止する請求項1乃至のいずれかに記載のソフトウエアの不正利用防止方法。The fourth step is executed at any one or a plurality of times when the software is being used by the computer, and if it is determined that the software is not available at the fourth step executed at any time The method for preventing unauthorized use of software according to any one of claims 1 to 7 , wherein the use is prohibited. 請求項1乃至8のいずれかに記載のソフトウエアの不正利用防止方法をコンピュータに実行させるためのコンピュータプログラム。  A computer program for causing a computer to execute the software illegal use prevention method according to claim 1. コンピュータのソフトウエアの不正利用を防止する方法を前記コンピュータに実行させるためのプログラムであって、このプログラムは、
ユーザーのコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づく固有情報を出力する第1のステップと、
出力された前記固有情報に基づき前記ソフトウエアのライセンス提供者側で生成された該固有情報に対応する固有のキーデータを、前記ライセンス提供者の側から受け取る第2のステップと、
前記ソフトウエアを利用しようとするコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、
前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との比較に基づき前記ソフトウエアの利用可否を判定する第4のステップと
前記第2のステップでユーザに提供された前記キーデータを保存する第5のステップと、
前記第4のステップで前記ソフトウエアが利用可と判定されたことを少なくとも一つの条件として、前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報に適合するように前記保存されたキーデータの内容を更新する第6のステップと
を具備する。
A program for causing a computer to execute a method for preventing unauthorized use of computer software,
Detecting a characteristic of a file system of a user's computer and outputting unique information based on the characteristic of the detected file system ;
A second step of receiving, from the license provider side , unique key data corresponding to the unique information generated on the license provider side of the software based on the outputted unique information;
A third step of detecting characteristics of a file system of a computer that intends to use the software, and generating unique information based on the characteristics of the detected file system;
Determining whether to use the software based on a comparison between the unique information based on the characteristics of the file system corresponding to the key data and the unique information based on the characteristics of the file system generated in the third step; and the step of,
A fifth step of storing the key data provided to the user in the second step;
The at least one condition that the software is determined to be usable in the fourth step is stored in such a manner as to conform to the unique information based on the characteristics of the file system generated in the third step. A sixth step of updating the contents of the key data .
コンピュータのソフトウエアの不正利用を防止する方法を前記コンピュータに実行させるためのプログラムであって、このプログラムは、A program for causing a computer to execute a method for preventing unauthorized use of computer software,
ユーザーのコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づく固有情報を出力する第1のステップと、Detecting a characteristic of a file system of a user's computer and outputting unique information based on the characteristic of the detected file system;
出力された前記固有情報に基づき前記ソフトウエアのライセンス提供者の側で生成された該固有情報に対応する固有のキーデータを、前記ライセンス提供者の側から受け取る第2のステップと、A second step of receiving, from the license provider side, unique key data corresponding to the unique information generated on the license provider side of the software based on the outputted unique information;
前記ソフトウエアを利用しようとするコンピュータのファイルシステムの特徴を検出し、検出したファイルシステムの特徴に基づき固有情報を生成する第3のステップと、A third step of detecting characteristics of a file system of a computer to use the software and generating unique information based on the detected characteristics of the file system;
前記キーデータに対応する前記ファイルシステムの特徴に基づく固有情報と前記第3のステップで生成された前記ファイルシステムの特徴に基づく固有情報との差分を計算し、この差分の大きさに応じて前記ソフトウエアの利用可否を判定する第4のステップとThe difference between the unique information based on the feature of the file system corresponding to the key data and the unique information based on the feature of the file system generated in the third step is calculated, and the difference according to the magnitude of the difference A fourth step of determining the availability of software;
を具備する。It comprises.
前記第1のステップでは、前記ファイルシステムの特徴に基づく固有情報をネットワークを介して前記ソフトウエアのライセンス提供者に対して送付し、前記第2のステップでは、前記ライセンス提供者の側で生成された前記キーデータをネットワークを介して受け取る請求項10又は11に記載のプログラム。 In the first step, unique information based on the characteristics of the file system is sent to the software license provider via the network, and in the second step, it is generated on the license provider side. The program according to claim 10 or 11, wherein the key data is received via a network. 少なくとも前記第4のステップが、前記ソフトウエア内部の1又は複数の箇所で実行され、いずれかの箇所で実行された該第4のステップで利用不可と判定されたならばその利用を禁止する請求項10乃至12のいずれかに記載のプログラム。  At least the fourth step is executed at one or a plurality of locations inside the software, and if it is determined that use is not possible at the fourth step executed at any location, the use is prohibited. Item 13. The program according to any one of Items 10 to 12. 請求項10乃至13のいずれかに記載のプログラムを記憶してなるコンピュータ読み取り可能な記憶媒体。  A computer-readable storage medium storing the program according to claim 10.
JP2001329310A 2000-12-05 2001-10-26 Method and program for preventing unauthorized use of software, and storage medium Expired - Fee Related JP3840399B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001329310A JP3840399B2 (en) 2000-12-05 2001-10-26 Method and program for preventing unauthorized use of software, and storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000370630 2000-12-05
JP2000-370630 2000-12-05
JP2001329310A JP3840399B2 (en) 2000-12-05 2001-10-26 Method and program for preventing unauthorized use of software, and storage medium

Publications (2)

Publication Number Publication Date
JP2002236522A JP2002236522A (en) 2002-08-23
JP3840399B2 true JP3840399B2 (en) 2006-11-01

Family

ID=26605295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001329310A Expired - Fee Related JP3840399B2 (en) 2000-12-05 2001-10-26 Method and program for preventing unauthorized use of software, and storage medium

Country Status (1)

Country Link
JP (1) JP3840399B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004193722A (en) * 2002-12-09 2004-07-08 Dainippon Printing Co Ltd Mobile communication terminal with recording carrier mounted thereon and service providing system employing the same
US7290149B2 (en) 2003-03-03 2007-10-30 Microsoft Corporation Verbose hardware identification for binding a software package to a computer system having tolerance for hardware changes
US7296294B2 (en) 2003-03-03 2007-11-13 Microsoft Corporation System for binding secrets to a computer system having tolerance for hardware changes
JP4675642B2 (en) * 2005-02-22 2011-04-27 Kddi株式会社 Program obfuscation apparatus, method and program
JP4477670B2 (en) * 2005-03-16 2010-06-09 富士通株式会社 Key management apparatus and method in library apparatus
JP4991592B2 (en) * 2008-02-18 2012-08-01 株式会社リコー Software alteration detection method, software alteration detection program and device
CN105763521B (en) 2014-12-18 2019-09-20 阿里巴巴集团控股有限公司 A kind of device authentication method and device

Also Published As

Publication number Publication date
JP2002236522A (en) 2002-08-23

Similar Documents

Publication Publication Date Title
US7752139B2 (en) Method and system for managing software licenses and reducing unauthorized use of software
US6857067B2 (en) System and method for preventing unauthorized access to electronic data
US7991995B2 (en) Method and apparatus for protecting information and privacy
US7434251B2 (en) System and method for authentication
US7475254B2 (en) Method for authenticating software using protected master key
US6233567B1 (en) Method and apparatus for software licensing electronically distributed programs
US6683954B1 (en) Key encryption using a client-unique additional key for fraud prevention
US6961852B2 (en) System and method for authenticating software using hidden intermediate keys
US7236958B2 (en) Electronic software license with software product installer identifier
US5490216A (en) System for software registration
JP3363379B2 (en) Method and apparatus for protecting application data in a secure storage area
JP2003500722A (en) Information protection method and device
JP3840399B2 (en) Method and program for preventing unauthorized use of software, and storage medium
US7006997B2 (en) Method and program for preventing unfair use of software
EP1471405A1 (en) Method and device for protecting information against unauthorised use
JPH07110767A (en) Method for managing and controlling software utilization license
US8490208B2 (en) Method and device for detecting if a computer file has been copied and method and device for enabling such detection
JP4194772B2 (en) Software use authentication method, software use authentication program, recording medium recording the software use authentication program, data used in the software use authentication method, and recording medium recording the data
JP2002015511A (en) Off-line sharing security system using removable media
US20040123126A1 (en) Method and apparatus for deterring piracy
US7197144B1 (en) Method and apparatus to authenticate a user's system to prevent unauthorized use of software products distributed to users
JP3289656B2 (en) Program execution control method
JP2000207197A (en) System and method for protecting computer software
WO2000075758A1 (en) Protection against unauthorized use of software products

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees