JP2008522278A - ソフトウェアアプリケーションを著作権侵害から保護するための方法およびシステム - Google Patents
ソフトウェアアプリケーションを著作権侵害から保護するための方法およびシステム Download PDFInfo
- Publication number
- JP2008522278A JP2008522278A JP2007542515A JP2007542515A JP2008522278A JP 2008522278 A JP2008522278 A JP 2008522278A JP 2007542515 A JP2007542515 A JP 2007542515A JP 2007542515 A JP2007542515 A JP 2007542515A JP 2008522278 A JP2008522278 A JP 2008522278A
- Authority
- JP
- Japan
- Prior art keywords
- software application
- software
- application
- user
- user machine
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
Abstract
本発明は、不正使用からソフトウェアアプリケーションを保護するための方法を対象とし、該方法は、ユーザマシンによって前記ソフトウェアアプリケーションの第1パートを実行するステップと、ネットワーク上のユーザマシンによってアクセスすることができるリモートサーバ上の前記ソフトウェアアプリケーションの第2パートを実行し、これによって、前記第2パートを前記ユーザマシンから切り離すステップと、前記ネットワークを介して前記第1パートと前記第2パートとの間で通信を行い、これによって、前記ソフトウェアアプリケーションがハッキングされるのを防止するステップと、を備える。他の実施形態において、本発明は、ソフトウェアアプリケーションを対象とする。該ソフトウェアアプリケーションは、ユーザマシン上で実行される第1パートと、ネットワーク上の前記ユーザマシンによってアクセスすることができるリモートサーバ上で実行され、これによって、前記ユーザマシンから切り離される第2パートと、前記第1パートと前記第2パートとの間の通信を行い、これによって、前記ソフトウェアアプリケーションがハッキングされるのを防止するための通信モジュールと、を備える。
Description
本発明は、ソフトウェアプロテクションの分野に関する。
本明細書において、ソフトウェアの著作権侵害という用語は、ソフトウェアを不法にコピーしたり、配布したり、または、使用したりすることを意味する。
今日のほとんどのコンピュータユーザがソフトウェアを不正に使用したり複製したりすることが不法であると認識しているという事実にもかかわらず、一般に、多くのユーザは、ソフトウェアを価値のある知的財産として扱うことの重要性を無視している。BSA(Business Software Alliance)が毎年開催する全世界ソフトウェア著作権侵害の研究会第7回(Seventh Annual Global Software Piracy Study)によると、2003年のビジネス用ソフトウェアアプリケーション市場における著作権侵害による収益の損失は、290億ドルを超えた。
数種類のよく知られているタイプのソフトウェア著作権侵害を以下に挙げる。
ソフトリフティング
1回のコピーのライセンスが付与されるソフトウェアを購入したが、そのライセンス契約条件に反して、数台のコンピュータにソフトウェアをロードすること(例えば、友人、同僚および他の人達とソフトウェアを共用すること)。
アップロードおよびダウンロード
モデムを介してオンラインサービスプロバイダー、および/または、インターネットに接続しているエンドユーザが、著作権を有するソフトウェアを不正にコピーして利用することができるようにすること。
ソフトウェアの偽造
著作権を有するソフトウェアを合法的にみせかけて設計した形式で不法にコピーしたり販売したりすること。
OEMアンバンドリング
特定の同梱ハードウェアと抱合せ販売するためのソフトウェアをスタンドアロンソフトウェアとして販売すること。
ハードディスクへのロード
多くの場合、エンドユーザが特定のハードウェアディーラからハードウェアを買うよう購買意欲を促進するために、ソフトウェアの不正コピーをパーソナルコンピュータのハードディスク上にインストールすること。
レンタル
一時的使用のため、ソフトウェアを不正に販売すること。
ハッキング
コンピュータアプリケーションのプロテクションシールドを変更して、アプリケーションの不正使用を可能にすること。
ソフトリフティング
1回のコピーのライセンスが付与されるソフトウェアを購入したが、そのライセンス契約条件に反して、数台のコンピュータにソフトウェアをロードすること(例えば、友人、同僚および他の人達とソフトウェアを共用すること)。
アップロードおよびダウンロード
モデムを介してオンラインサービスプロバイダー、および/または、インターネットに接続しているエンドユーザが、著作権を有するソフトウェアを不正にコピーして利用することができるようにすること。
ソフトウェアの偽造
著作権を有するソフトウェアを合法的にみせかけて設計した形式で不法にコピーしたり販売したりすること。
OEMアンバンドリング
特定の同梱ハードウェアと抱合せ販売するためのソフトウェアをスタンドアロンソフトウェアとして販売すること。
ハードディスクへのロード
多くの場合、エンドユーザが特定のハードウェアディーラからハードウェアを買うよう購買意欲を促進するために、ソフトウェアの不正コピーをパーソナルコンピュータのハードディスク上にインストールすること。
レンタル
一時的使用のため、ソフトウェアを不正に販売すること。
ハッキング
コンピュータアプリケーションのプロテクションシールドを変更して、アプリケーションの不正使用を可能にすること。
ソフトウェア著作権侵害に対する1つの解決法は、アラジンノリッジシステムズリミティド(Aladdin Knowledge Systems Ltd.)が製造するHASP(登録商標)である。HASPは、ソフトウェアアプリケーションのプロテクション(すなわち、著作権侵害の防止)およびDRM(Digital Right Management)のための製品ファミリである。現在、HASPファミリは、以下の製品を含む。
−HASP HL(登録商標)
ハードウェアベースのライセンシングおよびソフトウェアプロテクションシステムである。
−プリブリッジ(Privilege)(登録商標)
ソフトウェアベースのライセンシング、ソフトウェアプロテクションおよびソフトウェア配布システムである。
−プリブリッジトライアルウェアツールキット(Privilege Trialware Toolkit)
安全でかつ管理されたソフトウェアのトライアルウェアを作成するためのものである。
−HASP DocSeal(登録商標)
HTMLファイル中の知的財産および機密情報を保護するためのハードウェアベースのシステムである。
−HASP HL(登録商標)
ハードウェアベースのライセンシングおよびソフトウェアプロテクションシステムである。
−プリブリッジ(Privilege)(登録商標)
ソフトウェアベースのライセンシング、ソフトウェアプロテクションおよびソフトウェア配布システムである。
−プリブリッジトライアルウェアツールキット(Privilege Trialware Toolkit)
安全でかつ管理されたソフトウェアのトライアルウェアを作成するためのものである。
−HASP DocSeal(登録商標)
HTMLファイル中の知的財産および機密情報を保護するためのハードウェアベースのシステムである。
例えば、HASP HL(登録商標)は、トークン(「ドングル」としても知られる)形式で配布され、コンピュータのUSBポートまたは同様のポート(例えば、パラレルポート)に挿入される。これは、ソフトウェアプロテクションのためにデータを暗号化したり解読したりするのに使用されるハードウェアベースの暗号化エンジンである。実行中、HASP HL(登録商標)は、保護するアプリケーションから暗号化された文字列を受け取って、模倣することができない方法でこれらの文字列を解読する。保護するアプリケーションが、HASP HL(登録商標)から返された解読済のデータによって、プログラムをロードして実行するか、一定の構成要素のみ実行するか、または、全く実行しないかなどのプログラムの実行モードに影響する。HASPのオンチップ暗号化エンジンは、128ビットのAES暗号化アルゴリズム(AES Encryption Algorithm)、ユニバーサルAPI(Universal API)、シングルライセンスキャパシティ、クロスプラットフォームUSBなどを使用している。
ソフトウェアプロテクションのための他の方法は、『ローカルライセンシングサーバ(Local Licensing Server)』、すなわち、組織の専用ネットワーク上で動作し、1つまたは複数のソフトウェア製品のライセンシング/プロテクション機能を制御するサーバをベースとする。例えば、1台のローカルライセンシングサーバにN個のライセンシングプールが提供される。すなわち、プログラムのコピーを同時にN個まで使用することが許可される。ソフトウェアのコピーがアクティベートされる度に、ソフトウェアがライセンシングサーバに実行許可を「要請」する。ユーザが1人ずつソフトウェアアプリケーションを実行する度に、ライセンシングプールを1個ずつ減らし、ユーザがアプリケーション作業を終了する度に、ライセンシングプールを1個ずつ増やす。N人より多くのユーザがアプリケーションを同時に使用する場合、サーバは、組織が購入したライセンス契約条件に従って、追加ライセンスの許可を拒否したり、組織に追加使用分の料金を課金したりすることができる。
ソフトウェアプロテクションに対する他の解決法として、プロダクトアクティベーションがよく知られている。ソフトウェアアクティベーションとしても知られているプロダクトアクティベーションは、ソフトウェアアプリケーションの配布方法や使用方法に関してより多くの制御を行うユニークなビジネスモデルである。基本的には、ソフトウェアをインストールすることができる回数を制限することによって知的財産を保護するソフトウェアプロテクションを提供する。一般に、ソフトウェアアクティベーションの目的は、ソフトウェアアプリケーションのインストールを1台のマシン上で許可することである。インストール後の予め定められた期間内(例えば、30日以内)に、ユーザは、システムを「アクティベート」しなければならず、この場合のみ、ソフトウェアアプリケーションを使用することができる。アクティベートすることによって、一般にインターネットを介して、ソフトウェアアプリケーションがインストールされたマシンとライセンシングサーバとの間の通信が行われ、アプリケーションがインストールされたハードウェアに関する情報が提供される。ソフトウェアが合法的に購入されていれば、リモートサーバによってリリースコードが提供され、ユーザシステム上に記録される。ソフトウェアアプリケーションが呼び出される度に、このコードとマシンのハードウェア構成要素(例えば、ディスプレイアダプタのタイプ、SCSIアダプタ、IDEアダプタまたはプロセッサのタイプなど)とを照合する。そして、コードが所定のものに対応している場合のみ、実行が許可される。
プロダクトアクティベーションによる解決法は、ユーザのハードウェアとの関連が強いため、ユーザのハードウェアが変更されると、ユーザのマシンを明確に識別することが困難になる。1台のマシンを他のマシンと入れ換えると、ユーザは、再度ソフトウェアをアクティベートしなければならない。また、複数のマシン上でライセンスを与えられた1個のソフトウェアアプリケーションを実行すると、他にも支障をきたすことになる。
トークンは、リバースエンジニアリングによる複製さえも阻止するよう設計された移動ハードウェアデバイスである。したがって、トークンによる解決法で数多くのソフトウェアアクティベーションの問題が解決される。しかしながら、トークンは、ハードウェア構成部品であり、減価償却するものである。さらに、ユーザがトークンを所持しているときにトークンの内容を変えるのは厄介な手続になるなどの理由により、メーカーの観点から考えると、トークンによってソフトウェアアプリケーションを保護する場合、追加費用がかかってしまう。
ライセンシングサーバによる解決法は、トークンによる解決法より組織内で使用するのに適しているが、ライセンシングサーバによる解決法には、オーバーロードなどの欠点もある。このオーバーロードによって、組織内でソフトウェアアプリケーションの動作が中断する場合などがある。
したがって、本発明の目的は、著作権侵害からソフトウェアアプリケーションを保護するためのシステムを提供することによって、従来技術の問題を解決することである。
本発明の他の目的は、ハードウェア手段を使用せずに実現することができるソフトウェア著作権侵害の解決法を提供することである。
本発明の他の目的は、組織および個々のユーザの両方に適応するソフトウェアアプリケーションを保護するための解決法を提供することである。
本発明の他の目的および利点は、説明が進むにつれて明白になるであろう。
本発明は、一実施形態において、不正使用からソフトウェアアプリケーションを保護するための方法を対象とする。この方法は、 ユーザマシンによって前記ソフトウェアアプリケーションの第1パートを実行するステップと、ネットワーク上のユーザマシンによってアクセスすることができるリモートサーバ上の前記ソフトウェアアプリケーションの第2パートを実行し、これによって、前記第2パートをユーザマシンから切り離すステップと、前記ネットワークを介して前記第1パートと前記第2パートとの間で通信を行い、これによって、ソフトウェアアプリケーションがハッキングされるのを防止するステップと、を備える。
他の好ましい実施形態において、本発明は、ソフトウェアアプリケーションを対象とする。このソフトウェアアプリケーションは、ユーザマシン上で実行される第1パートと、ネットワーク(WAN、LANなど)上の前記ユーザマシンによってアクセスすることができるリモートサーバ上で実行され、これによって、前記ユーザマシンから切り離される第2パートと、前記第1パートと前記第2パートとの間の通信を行うための通信モジュールと、を備え、これによって、前記ソフトウェアアプリケーションがハッキングされるのを防止する。
一般に、ソフトウェアアプリケーションの第2パートは、1つのソフトウェアアプリケーションまたは複数のソフトウェアアプリケーションのライセンシング動作(例えば、ライセンス契約条件に従ってアプリケーションが実行されていることを確認)を実行する。
本発明の他の好ましい実施例によれば、プロテクションシールドによって、ソフトウェアアプリケーションの第1パート、第2パート、または全パートさえも保護することができる。
ソフトウェアアプリケーションの第2パートは、実行可能プログラムを備えてもよい。代替または追加の方法として、ソフトウェアアプリケーションの第2パートは、データオブジェクトを含んでもよい。さらに、データオブジェクトは、キー(暗号キー、識別キーなど)を含んでもよい。
第1パートと第2パートとの間の通信の機密を保護するのが好ましい。本発明の好ましい実施例によれば、通信は選択式である。
添付の図を共に参照すると、本発明をよりよく理解できるであろう。
本明細書において、「プロテクションシールド」または「セキュリティシールド」という用語は、ソフトウェアアプリケーションが不正オブジェクトによって使用されないよう保護するためソフトウェアアプリケーションに付加されたソフトウェアパートおよび/またはハードウェアパートを意味する。プロテクションシールドは、開発中のアプリケーションまたは配布版のアプリケーションに追加することができる。
当分野において、「ソフトウェア」という用語は、コンピュータの命令および/またはデータを意味する。当分野において、「ソフトウェアアプリケーション」という用語は、何らかの機能を実行するためのプログラムおよび/またはデータを意味する。例えば、ワードプロセッサ、スプレッドシートおよびデータベース管理システムは、ソフトウェアアプリケーションに分類される。本明細書において、「ソフトウェアアプリケーションパート」という用語は、ソフトウェアアプリケーションの構成要素が実行可能コードであるかデータであるかにかかわらず、これらの構成要素全体より小さいものを意味する。例えば、ソフトウェアアプリケーション全体より少ない1つまたは複数の関数、DLLファイルまたは実行可能ファイル(例えば、EXEファイル)、1つまたは複数のスクリプト、1つまたは複数のデータファイル、データベースの1つまたは複数のレコード、1つまたは複数のバイトデータ、および上記の任意の組合せを意味する。これらの構成要素が集合して1つのソフトウェアアプリケーションに属するとき、それぞれをソフトウェアアプリケーションの「パート」と呼ぶことができる。
図1は、従来技術によって保護される代表的なソフトウェアアプリケーションを示す概略図である。ユーザマシン20は、ソフトウェアアプリケーション40を実行する。このソフトウェアアプリケーション40は、パート1、パート2、パート3、GUI(Graphical User Interface)およびプロテクションシールドのモジュールを備える。すべてのパートは、ユーザマシン20上で実行される。
ソフトウェアアプリケーションが著作権侵害に対して脆弱である主な原因の1つは、ユーザがソフトウェアアプリケーションの全パートを利用することができることである。実行可能ファイルであるかデータファイルであるかにかかわらず、ユーザがソフトウェアパートを使用することができるため、ユーザは、ファイルを修正することができる。ハッカーが使用する方法の1つは、アプリケーションが実行されている間、このアプリケーションのコードおよびデータをトレースすることである。ハッカーは、デバッガを使って、1ステップずつアプリケーションを実行し、各ステップにおいて実行される動作を追い、変数やメモリのその時点の内容を調べることもある。こうして、ユーザが、ソフトウェアアプリケーションのファイルを使用したり、あるいは、実行中にRAMに格納されているソフトウェアアプリケーションパートさえ使用したりすることができるため、ソフトウェアアプリケーションは、ハッキングに対して脆弱になってしまう。このように、適当な労力、時間および資源を使えば、ソフトウェアアプリケーションのプロテクションシールドを取り除くことができる。結果として、ソフトウェアアプリケーションが保護されず、他の権限を持たないユーザに配布されてしまうこともある。
本発明の好ましい実施例によれば、この問題を解決するため、ソフトウェアアプリケーションの全パートをリモートサーバ上に保管し、ユーザマシンの代わりにこのリモートサーバまたは別のリモートサーバによってこれらのパートを実行する。
図2は、本発明の好ましい実施例による図1で示したソフトウェアアプリケーションパートの概略展開図である。従来技術のようにユーザマシン20上でアプリケーション40の全パートを実行する代わりに、通信チャネル80を介してインターネット30経由でユーザマシン20からアクセスすることができるリモートサーバ10上で、パート1、パート2およびパート3を実行する。ユーザとアプリケーションとの間の接続は、ユーザマシン20によって実行されるGUIモジュール40によって行われる。
アプリケーション40が2つのプラットフォーム上、すなわち、ユーザコンピュータ20およびリモートサーバ10上で展開されるため、プロテクションシールドの役割は、従来技術のものと異なる。アプリケーションの所有者がサーバ10のオペレータを信用しない場合、または、プロテクションレベルを向上させるため、リモートサーバ10上で実行されるプログラムパートも保護してもよい。例えば、アプリケーションを実行するユーザの人数、ユーザの識別情報など、リモートサーバ10がアプリケーションを利用する方法をコントロールすることができるため、ユーザマシン20上のプロテクションシールドは、それほど厳格でなくてもよい。さらに、特にデータが機密性を有する場合、ユーザマシン20とリモートサーバとの間で交換されるデータを保護することもできる。例えば、交換データを暗号化したり、交換データにデジタル署名したりするなどの暗号法によって、交換データを保護してもよい。
ユーザがソフトウェアアプリケーション40にアクセスするのを防止するため、ユーザがソフトウェアアプリケーションを変更することはできない。その結果、従来技術と比べてプロテクションレベルが向上する。
本発明の一実施例において、アプリケーションがユーザマシン20上で動作しないため、ユーザとの間のインタフェースは、ブラウザまたは専用プログラムによって実行してもよい。図2において、ユーザマシン20によって実行されるGUIモジュールがこれを示す。
図3は、本発明の他の好ましい実施例による図1で示したソフトウェアアプリケーションパートの概略展開図である。本実施例では、アプリケーションのパート1およびパート2は、リモートサーバ10によって実行される。一方、アプリケーションのパート3は、ユーザマシン20によって実行される。このように、プログラムの全パートをリモートサーバ10上で実行する必要はない。ある場合においては、例えば、いくつかのコアルーチンまたはライセンシングモジュールなどのアプリケーションの一定のパートだけを保護し、それでもなお良好なプロテクションを得るのが適当である。これらの一定のパートは、リモートサーバ10によって実行してもよい。
本発明の他の好ましい実施例によると、リモートサーバ10上で実行されるソフトウェアアプリケーション40のパートは、ソフトウェアアプリケーション40のライセンシングに関するパートである。
図4は、本発明の他の好ましい実施例によるソフトウェアアプリケーションパートの概略展開図である。図3と図4の相違点は、次の通りである。図3では、ソフトウェアアプリケーション40のいくつかのパートは、広域ネットワーク30(例えば、インターネット)上のユーザマシン20から使用することができるリモートサーバ10によって実行される。一方、図4では、ソフトウェアアプリケーション40のいくつかのパートは、ローカルエリアネットワーク60を介してユーザマシン20から使用することができるローカルサーバ70によって実行される。
図3で示す展開図は、少なくとも以下の観点において従来技術と異なる。
本発明によれば、リモートサーバは、『広域ネットワーク』を介してアクセス可能であるが、従来技術では、リモートサーバは、『ローカルエリアネットワーク』を介してアクセス可能である。ローカルサーバは、ローカルエリアネットワークの一部であり、したがって、ローカルエリアネットワークのユーザは、広域ネットワークのユーザより容易にアクセスすることができるため、この相違点は、重要である。例えば、通常、ローカルエリアネットワークのユーザは、物理的に(サーバを含む)ローカルエリアネットワークのインフラストラクチャを使用することが可能である。したがって、少なくともローカルエリアネットワークのオペレータは、ローカルサーバ上で動作するライセンシングモジュールをデバッグすることができる。
図4で示す展開図は、少なくとも以下の観点において従来技術と異なる。
本発明によれば、ローカルエリアネットワークを介してアクセス可能であるか、または、広域ネットワークを介してアクセス可能であるかに係わらず、ライセンシングサーバは、保護するソフトウェアアプリケーションのパート全体を形成しない。例えば、本発明によれば、いくつかのコアルーチンは、リモートサーバ上で実行することができるが、プロテクションシールドのパートを形成する場合も形成しない場合もある。しかしながら、従来技術では、ライセンシングだけに対処しており、プロテクションには対処しない。
本発明では、ソフトウェアアプリケーションのパートを複数のコンピュータシステム上で実行することができるため、多様なコンピュータ上の多様なアプリケーションパートが相互に通信することができることが望ましいことを認識されたい。通信チャネルの機密を保護すること、すなわち、暗号化通信を提供すること、または、少なくとも権限のないオブジェクトが通信情報の内容を解釈することができないことを保証することが望ましい。
図5は、本発明の他の実施例によるソフトウェアアプリケーションパートの概略展開図である。ユーザマシン20のグループが、ローカルネットワーク60に接続され、ローカルネットワーク60は、広域ネットワーク30に接続されている。
本実施例によれば、プロテクション動作は、リモートサーバ10(プロテクション−Aパート)と、ローカルサーバ70(プロテクション−Cパート)と,ユーザマシン20(プロテクション−Bパート)との間に分割される。
本発明の他の好ましい実施例によれば、ウェブライセンシングサーバまたはローカルライセンシングサーバのいずれかまたは両方であるライセンシングサーバは、アプリケーションが、組織が購入したライセンス契約条件に従って動作していることを確認するよう動作する。この確認は、定期的にまたはランダムな間隔で実行する場合がある。好ましい一実施例では、アプリケーションをアクティベートする時にユーザのアプリケーションを使用する権限をチェックする代わりに、または、それに加えて、サーバが、5分毎などの所与の間隔で、同時にアプリケーションを使用している権限を与えられたユーザの人数をチェックし、ライセンシングプールにおける使用可能なライセンス/使用中のライセンスの数を更新する。ユーザの人数がライセンス契約によって許可された人数を超えた場合、ライセンシングサーバによって、組織に追加使用分の料金を課金したり、何人かのユーザに対してアプリケーションのいくつかの機能を限定(例えば、Saveオプションを停止)したり、何人かのユーザに対して使用を拒否したりしてもよい。
従来技術では、ソフトウェアアプリケーションを呼び出しただけでソフトウェアアプリケーションが使用される。これとは対照的に、本発明の本実施例では、アプリケーションの実行時にソフトウェアアプリケーションの使用方法がライセンス契約条件に準拠していることの確認も行う。
図6は、本発明の好ましい実施例によるソフトウェアアプリケーションを保護するためのプロセスのフローチャートである。ソフトウェアアプリケーションを呼び出した後、ユーザのアプリケーションを使用する権限を調べる。図6に示すように、ユーザがアプリケーションを使用する権限を与えられていない場合、アプリケーションを中止してもよい。別法として、ユーザがアプリケーションの機能を限定して使用することを許可するか、または、アプリケーションを限定された方法で使用することを許可してもよい。ユーザがアプリケーションを使用する権限を与えられている場合、アプリケーションの実行中5分間隔で追加のチェックを行う。上記で説明したように、追加のチェックによって、ユーザがライセンス契約条件の下ソフトウェアアプリケーションを使用する権限を与えられていることを確認する。ライセンス契約によって許可されている人数より多くのユーザがアプリケーションを同時に使用している場合、ライセンシングサーバによって、組織に追加料金を課金したり、何人かのユーザに対してアプリケーションのいくつかの機能を限定(例えば、Saveオプションを停止)したり、何人かのユーザに対して使用を拒否したりしてもよい。
ローカルライセンシングサーバの方がウェブライセンシングサーバよりソフトウェアアプリケーションの実行中にライセンス契約条件に準拠して使用されているか否かを追加確認するのに適していることを認識されたい。ウェブライセンシングサーバ上でこのような動作を実行すると、潜在的ユーザが多数いるため、結果としてウェブサーバに過負荷を与えてしまう。
本発明の他の好ましい実施例によれば、ローカルライセンシングサーバおよびウェブライセンシングサーバの両方が動作して、ソフトウェアアプリケーションの実行中にライセンス契約条件に準拠して使用されているか否かを追加確認してもよい。本実施例では、ローカルライセンシングサーバが使用状況を測定し、この測定した使用状況をウェブライセンシングサーバに報告するよう動作することもある。そして、ウェブライセンシングサーバが、測定した使用状況がライセンス契約条件に準拠していることを確認するよう動作してもよい。
本発明の一実施例によれば、サーバとの間の接続が断続的であってもよい。したがって、ユーザサイトにおけるソフトウェアアプリケーションは、ウェブライセンシングサーバとの間の接続が切断された後、限定された期間(例えば1時間、1日など)だけ実行される。そして、この期間中にサーバとの間の接続が再確立されない場合、ソフトウェアは実行を中止したり、いくつかの機能を制限したりなどする。
本発明の一実施例によれば、(例えば、システム障害のため)サーバの1つが停止した場合、他のサーバが使用可能であれば、このサーバによって、ライセンシング動作(ユーザのアプリケーションを使用する権限のチェック、アプリケーションを同時に使用するユーザの人数がライセンス契約条件を超えていないかのチェックなど)を実行する。
ライセンス契約条件上でアプリケーションを実行する間、アプリケーションの使用状況をモニターしながら生成される副生成物としてアプリケーションの使用状況に関する情報が蓄積される。例えば、ワードプロセッサの辞書機能の使用状況をモニターするための専用システムをインストールする代わりに、ライセンシングアプリケーションによってこの情報を蓄積することができる。蓄積された情報によって、ある機能またはアプリケーションを購入するか否か、ライセンスをいくつ購入するかなどを決定する構成手段が提供される。さらに、アプリケーションメーカは、同様にこの情報を使用してもよい。
本発明のライセンシングサーバは、多様な支払金額モデルと連結して利用することができる。例えば、本発明の一実施例によれば、支払金額は、1人のユーザまたは複数のユーザがアプリケーションをアクティベートした回数をベースにしてもよい。本発明の他の実施例によれば、支払金額は、アプリケーションが動作していた期間をベースにしてもよい。追加または代替の方法として、支払金額は、アプリケーションを呼び出した回数とアプリケーションを使用した期間との任意の適当な組合せをベースにしてもよい。本発明の他の実施例によれば、支払金額は、同時に実行するインスタンスの最大数をベースにしてもよい。
当分野では、研究開発工程を簡易にするため、ソフトウェアアプリケーションの研究開発作業をプロテクション/ライセンシングの研究開発作業から切り離すのが一般的である。また、プロテクション/ライセンシング問題を専門とする会社がある。プロテクションシールドは、既存のソフトウェアアプリケーションに容易に追加することができるよう設計されている。さらに、プロテクションシールドは、ソフトウェアメーカがプロテクションシールドと対話処理を行うことができるAPI(Application Software Interface)と共に提供される。実際、プロテクションシールドがアプリケーションの他の部分から切り離されたツールであるため、アプリケーションソフトウェア開発者は、開発者が専門とするテーマに研究開発を集中することができる。本発明において、WWWサーバ上で実行されるソフトウェアアプリケーションパートは、エンドユーザ/組織から切り離されてプロテクションシールドに属するのが好ましい。
エンベローププロテクションは、ファイルのコード化および高度なアンチデバッグ機能を提供することによって、セキュリティの総合的レベルを向上させる。例えば、HASPエンベロープユーティリティは、代表的なプロテクションエンベロープである。これによって、アプリケーションの実行可能ファイルおよびライブラリィファイルの周囲にプロテクション用シールドを追加する。HASPエンベロープ(HASP Envelope)は、リバースエンジニアリングを防止する手段や他のアンチデバッグ方法を提供する。HASPエンベロープは、ランダムに組み立てられた多数のプロテクションレイヤによって、アプリケーションファイルをラッピングする。ランダムマルチレイヤラッピングエンベロープによって、実装されるプロテクションストラテジーが、保護するアプリケーションごとに異なることが保証される。HASPエンベロープは、保護するソフトウェアとHASPキー(HASP Key)とをリンクする。このHASPキーは、「セキュリティトークン」、すなわち、ホストとの有線または無線の接続を介してホストにプロテクション機能およびセキュリティ機能を提供するホストの外部のハードウェアである。保護するソフトウェアが要求するHASPキーにアクセスすることができないときは、常に、保護するソフトウェアとHASPキーとの間のリンクが切断されている。この場合、プログラムは機能するのを中止する。プロテクションプロセス中に、元のファイルを破棄し、新しいファイルを作成する。作成された新しいファイルは、ユーザに配布されるファイルである。
HASPによって、システムおよびユーザレベルの両方のデバッグ方法を検出することができる。HASPシステムによって検出を開始するようアクティベートすることによって、プロテクションスキームの弱体化を試みる潜在的攻撃をブロックすることができる。ユーザは、スクランブリングのためのHASPキーアクセスの回数を設定することができる。この設定によって、保護するアプリケーションによるHASPキーの呼び出しがどれだけコンパクトになるかをコントロールする。『暗号化レベル(Encryption Level)』スライダによってスクランブリングのためのHASPキーアクセスの回数を決定する。保護するモジュールの数が増えるほど、保護するアプリケーションのスタートアップにかかる時間および結果ファイルのサイズが増大する。暗号化レベルと保護するファイルのサイズおよびスタートアップのスピードとの間にもトレードオフがある。暗号化レベルが高度になるほど、スタートアップは遅くなり、さらに、保護するアプリケーションのサイズは大きくなる。
本発明の他の実施例によれば、ライセンシングサーバは、購入されたライセンス契約条件によってユーザまたは組織のアプリケーションの使用方法が限定される「実施スキーム」を利用するよう動作する。本実施例では、組織は、購入した分より多くのライセンスを同時に使用することができない。本発明の他の実施例によれば、ライセンシングサーバは、プログラムの使用状況を計測し、これによってユーザ/組織に課金する「計測スキーム」を利用するよう動作する。本実施例では、ユーザがソフトウェアアプリケーションを実行した回数に従って、組織に課金される。本発明の他の実施例によれば、ライセンシングサーバは、実施スキームと計測スキームの両方を利用するよう動作する。本実施例では、例えば、ライセンス契約条件によって同時にN人のユーザまで許可される場合、N人より多くのユーザがアプリケーションを同時に使用すると、追加料金が組織に課金される。
本発明によれば、インターネットを介してウェブライセンシングサーバと接続されるため、ユーザは、例えば自宅などの組織のLANの外部からアプリケーションソフトウェアをアクティベートすることができることを認識されたい。
さらに、ネットワーク上の「選択式」通信というテーマが当分野で周知であることを認識されたい。例えば、ユーザがウェブサイトをブラウジングするとき、このウェブサイトを運用するウェブサーバ上の一定の内容にだけアクセスするように限定される。このように、ユーザがウェブサイト上のデータにアクセスすることができるということが、ウェブサイト上のデータに無制限にアクセスすることができるということを意味しない。また、ユーザがリモートサーバとの間で通信を行うということが、リモートサーバがユーザマシンに無制限にアクセスすることができるということを意味するわけではない。実際に、ユーザは、ウェブサイトサーバがユーザのコンピュータに格納された情報にアクセスするのを防止することができる。このように、本発明の好ましい実施例によれば、多様なコンピュータマシン上にあるソフトウェアアプリケーションパート間の通信は「選択式」である。こうして、リモートワークステーションが、格納された情報を変更したりおよび/または格納された情報にアクセスしたりするのを完全にまたは選択式で防止するようサーバを構成したりおよび/またはプログラミングしたりし、動作するようにするのが好ましい。さらに、リモートワークステーションが少なくとも選択式でサーバに格納された情報にアクセスすることができるのが好ましい。
当業者であれば、本発明の範囲を逸することなく、他の形式と方法で本発明を実施することができることを認識するであろう。本明細書に記載された本実施例は、説明のためのものであり、制限するためのものではないと考えるべきである。
Claims (23)
- 不正使用からソフトウェアアプリケーションを保護するための方法であって、該方法は、
ユーザマシンによって前記ソフトウェアアプリケーションの第1パートを実行するステップと、
ネットワークを介して前記ユーザマシンに接続され、該ネットワークを介して前記ユーザマシンによって使用のためアクセスすることはできるが修正することはできない前記ソフトウェアアプリケーションの第2パートを提供するよう構成されるリモートサーバによって、該第2パートを実行するステップと、を備え、
前記第1パートおよび前記第2パートの少なくとも1つを実行するため、前記第1パートと前記第2パートとの間で通信が必要な場合、前記第1パートと前記第2パートとは前記ネットワークを介して通信し、
したがって、少なくとも前記ソフトウェアアプリケーションの第2パートが前記ユーザマシンによってハッキングされるのを防止する方法。 - 前記ソフトウェアアプリケーションの第2パートは、前記ソフトウェアアプリケーションに関するライセンシング動作を実行する請求項1に記載の方法。
- 前記ライセンシング動作は、前記ソフトウェアアプリケーションがライセンス契約条件に従って実行されることを確認することと、前記ユーザマシンおよび/または前記ユーザマシンのユーザが、前記ソフトウェアアプリケーションを実行する権限を与えられていることを確認することと、前記ユーザマシンおよび/または前記ユーザマシンのユーザが、前記ソフトウェアアプリケーションを実行する権限を与えられていることを定期的に確認することと、を備えるグループから選択される請求項2に記載の方法。
- 前記ネットワークは、広域ネットワークである請求項1に記載の方法。
- 前記ネットワークは、ローカルエリアネットワークである請求項1に記載の方法。
- 前記ソフトウェアアプリケーションの第1パートは、プロテクションシールドによって保護される請求項1に記載の方法。
- 前記ソフトウェアアプリケーションの第2パートは、プロテクションシールドによって保護される請求項1に記載の方法。
- 前記ソフトウェアアプリケーションの第2パートは、実行可能モジュールと、データオブジェクトと、実行可能モジュールおよびデータオブジェクトと、を備えるグループから選択される請求項1に記載の方法。
- 前記データオブジェクトは、キーを備える請求項8に記載の方法。
- 前記キーは、暗号キーと、識別キーと、を備えるグループから選択される請求項9に記載の方法。
- 前記通信は、選択式である請求項1に記載の方法。
- 前記通信は、機密が保護される請求項1に記載の方法。
- ユーザマシン上で実行される第1パートと、
ネットワーク上の前記ユーザマシンによってアクセスすることができるリモートサーバ上で実行され、したがって、前記ユーザマシンから切り離される第2パートと、
前記第1パートと前記第2パートとの間の通信を行うための通信モジュールと、を備え、
これによって、前記ソフトウェアアプリケーションがハッキングされるのを防止するソフトウェアアプリケーション。 - 前記ネットワークは、広域ネットワークである請求項13に記載のソフトウェアアプリケーション。
- 前記ネットワークは、ローカルエリアネットワークである請求項13に記載のソフトウェアアプリケーション。
- 前記ソフトウェアアプリケーションの第1パートは、プロテクションシールドによって保護される請求項13に記載のソフトウェアアプリケーション。
- 前記ソフトウェアアプリケーションの第2パートは、プロテクションシールドによって保護される請求項13に記載のソフトウェアアプリケーション。
- 前記通信モジュールは、プロテクションシールドによって保護される請求項13に記載のソフトウェアアプリケーション。
- 前記ソフトウェアアプリケーションの第2パートは、実行可能モジュールと、データオブジェクトと、実行可能モジュールおよびデータオブジェクトと、を備えるグループから選択される請求項13に記載のソフトウェアアプリケーション。
- 前記データオブジェクトは、キーを備える請求項19に記載のソフトウェアアプリケーション。
- 前記キーは、暗号キーと、識別キーと、を備えるグループから選択される請求項20に記載のソフトウェアアプリケーション。
- 前記通信は、選択式である請求項13に記載のソフトウェアアプリケーション。
- 前記通信は、機密が保護される請求項13にソフトウェアアプリケーション。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63115004P | 2004-11-29 | 2004-11-29 | |
US11/186,854 US20060242082A1 (en) | 2004-11-29 | 2005-07-22 | Method and system for protecting of software application from piracy |
PCT/IL2005/001264 WO2006056993A2 (en) | 2004-11-29 | 2005-11-28 | A method and system for protecting a software application from piracy |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008522278A true JP2008522278A (ja) | 2008-06-26 |
JP2008522278A5 JP2008522278A5 (ja) | 2009-01-22 |
Family
ID=36498354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007542515A Pending JP2008522278A (ja) | 2004-11-29 | 2005-11-28 | ソフトウェアアプリケーションを著作権侵害から保護するための方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060242082A1 (ja) |
EP (1) | EP1825449A4 (ja) |
JP (1) | JP2008522278A (ja) |
RU (1) | RU2007122786A (ja) |
WO (1) | WO2006056993A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016500176A (ja) * | 2012-10-17 | 2016-01-07 | マイクロソフト テクノロジー ライセンシング,エルエルシー | ライセンスの以前および現在の状態から決定されるアプリケーション・モード |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070265980A1 (en) * | 2006-05-15 | 2007-11-15 | Mukesh Sehgal | Systems and methods for managing, maximizing and clearing contractually based media assets |
EP1901191B1 (de) * | 2006-09-18 | 2013-02-27 | Siemens Enterprise Communications GmbH & Co. KG | Verfahren und Anordnung zur Verwaltung von Lizenzen |
JP2009070247A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置、情報処理方法および画像処理装置 |
US8719586B1 (en) * | 2011-03-09 | 2014-05-06 | Amazon Technologies, Inc. | Digital rights management for applications |
JP2022153935A (ja) * | 2021-03-30 | 2022-10-13 | 本田技研工業株式会社 | 車両プログラム更新装置、車両、車両情報管理サーバ、プログラム更新方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5138712A (en) * | 1989-10-02 | 1992-08-11 | Sun Microsystems, Inc. | Apparatus and method for licensing software on a network of computers |
JPH0799497B2 (ja) * | 1990-12-14 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ソフトウェアの使用を管理するための装置及び方法 |
US5260999A (en) * | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5671412A (en) * | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US5790664A (en) * | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
US6049789A (en) * | 1998-06-24 | 2000-04-11 | Mentor Graphics Corporation | Software pay per use licensing system |
US7370071B2 (en) * | 2000-03-17 | 2008-05-06 | Microsoft Corporation | Method for serving third party software applications from servers to client computers |
WO2002042888A2 (en) * | 2000-11-23 | 2002-05-30 | Koninklijke Philips Electronics N.V. | Device for storing and reproducing audio and/or video |
WO2002056203A1 (en) * | 2000-12-08 | 2002-07-18 | Matsushita Electric Industrial Co., Ltd. | Distribution device, terminal device, and program and method for use therein |
US7272725B2 (en) * | 2002-06-25 | 2007-09-18 | Sas Validy | Method to protect software against unwanted use with a “temporal dissociation” principle |
US20040054893A1 (en) * | 2002-09-18 | 2004-03-18 | Anthony Ellis | Method and system for a file encryption and monitoring system |
-
2005
- 2005-07-22 US US11/186,854 patent/US20060242082A1/en not_active Abandoned
- 2005-11-28 EP EP05812637A patent/EP1825449A4/en not_active Withdrawn
- 2005-11-28 RU RU2007122786/09A patent/RU2007122786A/ru not_active Application Discontinuation
- 2005-11-28 JP JP2007542515A patent/JP2008522278A/ja active Pending
- 2005-11-28 WO PCT/IL2005/001264 patent/WO2006056993A2/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016500176A (ja) * | 2012-10-17 | 2016-01-07 | マイクロソフト テクノロジー ライセンシング,エルエルシー | ライセンスの以前および現在の状態から決定されるアプリケーション・モード |
Also Published As
Publication number | Publication date |
---|---|
WO2006056993A3 (en) | 2007-07-19 |
EP1825449A4 (en) | 2009-07-29 |
RU2007122786A (ru) | 2009-01-10 |
EP1825449A2 (en) | 2007-08-29 |
WO2006056993A2 (en) | 2006-06-01 |
US20060242082A1 (en) | 2006-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090094601A1 (en) | Method and device for protecting software from unauthorized use | |
JP4073913B2 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
US6006190A (en) | Computer implemented method and a computer system for enforcing software licenses | |
Chang et al. | Protecting software code by guards | |
JP4702957B2 (ja) | 耐タンパ・トラステッド仮想マシン | |
EP1672554B1 (en) | A method for blocking unauthorized use of a software application | |
US20040225894A1 (en) | Hardware based method for digital rights management including self activating/self authentication software | |
US20040107368A1 (en) | Method for digital rights management including self activating/self authentication software | |
US20040117664A1 (en) | Apparatus for establishing a connectivity platform for digital rights management | |
US20040117644A1 (en) | Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content | |
US20040117628A1 (en) | Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content | |
US20040117663A1 (en) | Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution | |
US20030221116A1 (en) | Security framework for protecting rights in computer software | |
WO1998009209B1 (en) | Systems and methods for secure transaction management and electronic rights protection | |
US8225290B2 (en) | Systems and methods for regulating execution of computer software | |
US20040117631A1 (en) | Method for digital rights management including user/publisher connectivity interface | |
GB2404537A (en) | Controlling access to data using software wrappers | |
GB2404536A (en) | Protection of data using software wrappers | |
JP2003330560A (ja) | デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体 | |
JP2008522278A (ja) | ソフトウェアアプリケーションを著作権侵害から保護するための方法およびシステム | |
US20150262084A1 (en) | Methods for defending static and dynamic reverse engineering of software license control and devices thereof | |
US10789338B2 (en) | Software algorithm security | |
KR101604892B1 (ko) | 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치 | |
CN111611551B (zh) | 一种基于国密算法的动态链接库保护方法及其系统 | |
US7254719B1 (en) | Method and system for protecting software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081128 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110614 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111115 |