説明

ソフトウェアプロテクト方法

【課題】ソフトウェアプロテクト方法における従来のハードウェア方式及びソフトウェア方式の欠点を解消し、しかも事務用コンピュータで使用されるプログラムのプロテクトをかけることができるようにする。
【解決手段】移動元のコンピュータに記憶されているライセンスコードを削除した際にライセンス移動用コード23を生成するライセンス移動用コード生成手段と、このライセンス移動用コード23と移動元のコンピュータのハードウェア固有情報21からライセンスの正当性を判定し、正当と判定された場合には移動先のコンピュータのハードウェア固有情報21及びライセンス移動するアプリケーション識別情報22を論理演算と暗号化を行って新ライセンスコード24を作成する新ライセンスコード作成手段20と、この新ライセンスコード24を移動先のコンピュータへ登録する登録手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム等のソフトウェアの不正使用を未然に防止するソフトウェアプロテクト方法に関するものである。
【背景技術】
【0002】
コンピュータシステムにおいて、ソフトウェアの不正コピーを防止するソフトウェアプロテクト方法には、ハードウェア方式とソフトウェア方式がある。
【0003】
ハードウェア方式は、コンピュータ本体のUSBコネクタやプリンタコネクタにプロテクト用装置を接続して実行プログラムから適時監視する方式である。このハードウェア方式では、対応するプロテクト用装置が接続されている場合は動作が続行され、接続されていない場合は動作が中断される。
【0004】
一方、ソフトウェア方式は、あらかじめメモリの特定位置に登録されたプロテクト用コードを実行プログラムが適時監視する方式である。このソフトウェア方式では、この対応するプロテクト用コードが登録されている場合は動作が続行され、登録されていない場合には動作が中断される。
【0005】
なお、プロテクト用コードは、実行プログラムを含むソフトウェアをインストールする際に登録するのが一般的である(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−325712号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、ハードウェア方式の場合は、プロテクト用装置が必要になるためソフトウェアの販売価格が上がる欠点があった。
【0008】
また、ソフトウェア方式の場合は、ライセンス契約を無視するなど悪意によれば不正コピーが可能であるので、複数台のコンピュータへのソフトウェアのインストールと実行可能となってしまうという欠点があった。
【0009】
さらに、両方式ともコンパイラで生成した実行ファイルに対するもので、事務用コンピュータで使用されるインタプリタで実行するソースプログラムについてはプロテクトをかける方法がなかった。
【0010】
本発明は、上記の点に鑑みてなされたもので、その目的は、従来のハードウェア方式及びソフトウェア方式の欠点を解消し、しかも事務用コンピュータで使用されるプログラムのプロテクトをかけることができるソフトウェアプロテクト方法を提供するものである。
【課題を解決するための手段】
【0011】
請求項1記載の発明は、移動元のコンピュータに記憶されているライセンスコードを削除した際にライセンス移動用コードを生成するライセンス移動用コード生成手段と、このライセンス移動用コードと移動元のコンピュータのハードウェア固有情報からライセンスの正当性を判定し、正当と判定された場合には移動先のコンピュータのハードウェア固有情報及びライセンス移動するアプリケーション識別情報を論理演算と暗号化を行って新ライセンスコードを作成する新ライセンスコード作成手段と、この新ライセンスコードを移動先のコンピュータへ登録する登録手段とを具備したことを特徴とする。
【発明の効果】
【0012】
以上説明したように本発明によれば、ハードウェア固有情報に基づいて作成されたライセンサコードによりライセンス判定が行われるので、ライセンス登録したコンピュータに限りソフトウェアを動作可能とすることができる。これにより、ライセンスをコンピュータ単位で管理することができる。
【0013】
また、実行対象となるコンピュータを変更する場合にライセンス移動を行い、その際にライセンス削除と合わせてライセンス移動用コードを利用することで、移動元コンピュータでのライセンス登録の確実な削除と、他のコンピュータへの不正コピーを防止することができる。
【0014】
さらに、特権者だけがアプリケーション識別情報をプログラムファイルのヘッダ部等に格納でき、特権者以外はソースプログラムの編集ソフト(ソースエディタ)を使用してもこの識別の参照と変更をできないようにしたので、インタプリタ型プログラム言語で記述するソフトウェアへのプロテクト適用が可能になる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施の形態に係るソフトウェアプロテクト方法が採用された事務コンピュータのシステム構成図。
【図2】同実施の形態に係るアプリケーション識別情報書込みを示す図。
【図3】同実施の形態に係るライセンスコード生成を示す図。
【図4】同実施の形態の動作を説明するためのフローチャート。
【図5】同実施の形態に係るライセンスコードの発行と登録手順例を示す図。
【図6】同実施の形態に係るライセンスコードの移動と登録手順例を示す図
【発明を実施するための形態】
【0016】
以下図面を参照して本発明の一実施の形態について説明する。
【0017】
図1を参照して本ソフトウェアプロテクト方法が実施される例えば事務コンピュータのシステム構成について説明する。
【0018】
図1において、1は事務コンピュータを統括して制御するための制御部である。この制御部1には、ライセンサを管理するライセンス管理部2、プロテクトを検査するプロテクト検査部3、プログラムを実行するプログラム実行部4、各種データを入力する入力部5、各種データを表示する表示部が接続される。
【0019】
ライセンス管理部2には、ライセンスコードを記憶するライセンスコードテーブル7、例えばハードディスク装置のシリアル番号であるハードウェア固有情報を記憶する記憶部8が接続される。
【0020】
また、プロテクト検査部3には、ライセンスコードテーブル7、記憶部8及びプログラムファイル1〜nが格納されるプログラムファイル9が接続される。
【0021】
このプログラムファイル9に格納されるプログラムファイル1〜nは適宜プログラム実行部4に読み出されて実行される。
【0022】
なお、10は印字部、11はインターネットに接続されるインターフェイスである。
【0023】
次に、本発明に係るソフトウェアプロテクト方法の動作について図4のフローチャートを参照して説明する。
【0024】
まず、初期化処理が行われる(ステップS1)。つまり、制御部1は各部2〜6の初期化を行う。
【0025】
次に、表示部6に処理の選択メニュー画面が表示される(ステップS2)。この選択項目にはプログラム実行、ライセンス管理、終了などがある。
【0026】
そして、入力部5から操作者より選択された選択項目を受け付けられる(ステップS3)。
【0027】
ここで、プログラム実行が選択された場合にはステップS4へ、ライセンス管理が選択された場合にはステップS11へ、終了が選択された場合には、ステップS17へ処理が進む。
【0028】
以下、プログラム実行が選択された場合の処理について説明する。まず、プロテクト検査部3は実行対象のプログラムファイル9に格納されたアプリケーション識別情報を読み出して取得する(ステップS4)。ここで、アプリケーション識別情報とは、図2に示すように、アプリケーションソフトウェア開発時に識別情報書込みソフト10を利用して、プログラムファイルのたとえばヘッダ部に格納した情報であり、ここに格納した情報はソースコードの編集ソフト(エディタ)では参照と変更ができないようになっている。
【0029】
次に、プロテクト検査部3はハードウェア固有情報8を読み出して取得する(ステップS5)。ここで、ハードウェア固有情報の例としては、ハードウェア装置のシリアル番号などがある。
【0030】
さらに、プロテクト検査部3はアプリーション識別情報とハードウェア固有情報よりライセンスコードを算出する(ステップS6)。
【0031】
さらに、プロテクト検査部3はライセンスコードテーブル7を参照し、算出したライセンスコードと一致するコードが存在するか調べる(ステップS7)。そして、プロテクト検査部3はライセンス登録の判定を行う(ステップS8)。
【0032】
このステップS8の判定で、算出したライセンスコードと一致するコードがライセンスコードテーブル7にある場合は、ステップS9へ処理が進む。一方、一致するコードがなかった場合はステップS10へ処理が進む。
【0033】
ステップS9において、プログラム実行部4は操作者が選択画面で選択したプログラムについて対応するプログラムファイル群9よりプログラムを読み出して実行する。そして、そのプログラム実行後はステップS2の選択画面表示へ処理が進む。
【0034】
一方、ステップS10においては、表示部6にライセンスコードが未登録である旨の警告メッセージ画面が表示される。そして、ステップS2の選択画面表示へ処理が進む。
【0035】
前述したステップS3の選択でライセンス管理が選択された場合には、表示部6にはソフトウェアライセンス管理に関する処理の選択画面が表示される(ステップS11)。ここで、選択項目には、ハードウェア固有情報の取得、ライセンスコード登録、ライセンス移動などがある。
【0036】
そして、入力部5において操作者より選択入力を受け付けられる(ステップS12)。このステップS12の選択で、ハードウェア固有情報の取得が選択された場合にはステップS13へ、ライセンスコード登録が選択された場合にはステップS14へ、ライセンス移動が選択された場合にはステップS15へ処理が進む。
【0037】
ここで、図5及び図6を参照してソフトウェアライセンスの発行と登録手順の流れを説明する。ライセンス発行と登録手順は、ライセンス新規登録時とライセンス移動時で異なる。
【0038】
まず、第5図を参照してライセンス新規登録時の手順を説明する。ライセンス発行には、ライセンス購入申請者とライセンス発行者の二者が存在する。まず、ライセンス購入申請者は、ソフトウェアを実行するコンピュータのハードウェア固有情報を取得する(ステップS21)。これは、図4のステップS13でライセンス管理部2が取得することになる。
【0039】
そして、ライセンス発行者に対してアプリケーションソフトウェアのライセンス購入申請を行う(ステップS22)。このとき、ハードウェア固有情報も提出する。ライセンス発行者は、ライセンス購入申請を受け付けた後、ハードウェア固有情報と購入対象アプリケーション識別情報を論理演算、暗号化してライセンスコードを作成する(ステップS23)。このとき、ライセンスコードの作成には、図3に示すライセンス生成ソフトウェア20を利用する。そして、申請者へライセンスコードを送付する(ステップS24)。そして、申請者は、発行者よりライセンスコードを受け取り(ステップS25)、対象コンピュータへライセンスコードを登録する(ステップS26)。その際、図4のステップS14でライセンス管理部2がライセンステーブル7へ登録することになる。
【0040】
次に、図6を参照してライセンス移動時の手順を説明する。まず、ライセンス移動申請者はライセンス移動元のコンピュータのハードウェア固有情報を取得する(ステップS31)。その際、ハードウェア固有情報は図4のステップS13でライセンス管理部2が取得することになる。そして、ライセンス移動元のコンピュータにおいてライセンスコードの登録を削除する(ステップS32)。そして、ライセンス削除に伴い、ライセンス移動用コードが作成される。その際、ライセンスの削除は図4のステップS15でライセンス管理部2がライセンステーブル7より対象ライセンスコードを削除することにより行われる。移動用コードの作成は図4のステップS16でライセンス管理部2が削除したライセンスコードを論理演算、暗号化して作成する。そして、ライセンス移動先のコンピュータのハードウェア固有情報を取得する(ステップS33)。そして、ライセンス発行者に対してアプリケーションソフトウェアのライセンス移動申請をする(ステップS34)。このとき、新旧ハードウェア固有情報とライセンス移動用コードも提出する。ライセンス発行者は、ライセンス移動申請を受け付けた後、移動元ハードウェア固有情報とライセンス移動用コードよりライセンスの正当性を判定する(ステップS35)。ここで、正当と判定した場合は、新ライセンスコードを発行する。この場合、提出された新しいハードウェア固有情報と移動対象アプリケーション識別情報を論理演算、暗号化して新ライセンスコードを生成する(ステップS36)。このとき、ライセンスコードの作成には、図3に示すライセンス生成ソフトウェア20を利用する。そして、申請者へライセンスコードを送付する(ステップS37)。この送付はインターネットを介したメールや、FAX等で行われる。
【0041】
そして、申請者は、発行者よりライセンスコードを受け取り(ステップS38)、移動先コンピュータへライセンスコードを登録する(ステップS39)。その際、図4のステップS14でライセンス管理部2がライセンステーブル7へ登録することになる。
【0042】
最後に、図4のステップS3で終了が選択された場合、制御部1が各部2〜6の終了処理を行って処理は終了する(ステップS17)。
【0043】
以上のように、本発明によれば、ソフトウェアのライセンス登録、ライセンス移動、そしてプログラム起動時のライセンス判定は次のように行われる。
【0044】
まず、ライセンス登録手順としては、ライセンス購入申請者がライセンス発行者に対しアプリケーションソフトウェアの購入を申請をする。このとき、ソフトウェアを実行するコンピュータのハードウェア固有情報を取得して提出する。ライセンス発行者は購入対象アプリケーションの識別情報とハードウェア固有情報を論理演算、暗号化してライセンスコードを作成して購入申請者へ送付する。購入申請者はそのライセンスコードをコンピュータへ登録する。
【0045】
次に、ソフトウェアの実行権を他のコンピュータへ移す際、ライセンス移動手順としては、ライセンス移動申請者がライセンス発行者に対してアプリケーションソフトウェアのライセンス移動を申請する。このとき、移動元と移動先のコンピュータのハードウェアの固有情報と、ライセンス移動用コードを提出する。ここで、ライセンス移動用コードは移動元コンピュータでライセンス登録を削除したとき生成されるコードである。ライセンス発行者は移動元コンピュータのハードウェア固有情報とライセンス移動用コードよりライセンスの正当性を判定し、正当である場合は、移動対象アプリケーションの識別情報と移動先コンピュータのハードウェア固有情報を論理演算、暗号化して新ライセンスコードを作成して移動申請者へ送付する。移動申請者はその新ライセンスコードをコンピュータへ登録する。
【0046】
次に、プログラム起動時のライセンス判定は、プログラム起動前にライセンス検査手段が、プログラムファイルに格納されているアプリケーション識別情報と、ハードウェア固有情報と、コンピュータに登録されたライセンスコードより、ライセンスの正当性を判定する。
【0047】
ここで、アプリケーション識別情報は、アプリケーションプログラムごとに用意する情報で、プログラム開発時に特権者がプログラムファイルに格納する。また、特権者以外がソースプログラムを変更しても識別情報は変更されないこととする。
【0048】
ライセンス判定の結果、正当な場合はプログラムを起動し、正当でない場合はプログラム起動を中止する。
【0049】
なお、上記実施の形態では事務コンピュータにソフトウェアプロテクト方法が採用された例を示したが、インタプリタ型のプログラム言語をアプリケーションプログラムに使用しているコンピュータであれば事務コンピュータに限らず他のコンピュータでも良い。
【符号の説明】
【0050】
1…制御部、2…ライセンス管理部、3…プロテクト検査部、4…プログラム実行部、7…ライセンスコードテーブル、8…記憶部、9…プログラムファイル。

【特許請求の範囲】
【請求項1】
移動元のコンピュータに記憶されているライセンスコードを削除した際にライセンス移動用コードを生成するライセンス移動用コード生成手段と、
このライセンス移動用コードと移動元のコンピュータのハードウェア固有情報からライセンスの正当性を判定し、正当と判定された場合には移動先のコンピュータのハードウェア固有情報及びライセンス移動するアプリケーション識別情報を論理演算と暗号化を行って新ライセンスコードを作成する新ライセンスコード作成手段と、
この新ライセンスコードを移動先のコンピュータへ登録する登録手段とを具備したことを特徴とするソフトウェアプロテクト方法。
【請求項2】
前記登録手段はメールを介して行うことを特徴とする請求項1記載のソフトウェアプロテクト方法。
【請求項3】
前記移動元のコンピュータに記憶されているライセンスコードは、コンピュータのハードウェア固有情報及び実行されるアプリケーションプログラムの固有情報であるアプリケーション識別情報から作成されることを特徴とする請求項1記載のソフトウェアプロテクト方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−100476(P2011−100476A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2010−288318(P2010−288318)
【出願日】平成22年12月24日(2010.12.24)
【分割の表示】特願2005−8032(P2005−8032)の分割
【原出願日】平成17年1月14日(2005.1.14)
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】