JP2005157904A - プログラムの不正使用監視装置およびその方法 - Google Patents

プログラムの不正使用監視装置およびその方法 Download PDF

Info

Publication number
JP2005157904A
JP2005157904A JP2003397988A JP2003397988A JP2005157904A JP 2005157904 A JP2005157904 A JP 2005157904A JP 2003397988 A JP2003397988 A JP 2003397988A JP 2003397988 A JP2003397988 A JP 2003397988A JP 2005157904 A JP2005157904 A JP 2005157904A
Authority
JP
Japan
Prior art keywords
program
feature amount
user
unit
unauthorized use
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
Application number
JP2003397988A
Other languages
English (en)
Inventor
Tomoyoshi Ito
智祥 伊藤
Takao Yamaguchi
孝雄 山口
Yuji Sato
雄二 里
Takenobu Aoshima
武伸 青島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003397988A priority Critical patent/JP2005157904A/ja
Publication of JP2005157904A publication Critical patent/JP2005157904A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】 柔軟性、利便性に優れ、かつ、プログラムの改ざんがあった場合でも、プログラムの不正使用を防止すること。
【解決手段】 本発明は、プログラムとこのプログラムの正規ユーザとの組を登録しておき、ユーザが実行しようとするプログラムの特徴量と、登録してあるプログラムの特徴量を比較することによりユーザが実行しようとするプログラムを特定し、このユーザが特定したプログラムの正規ユーザであるか検出する方法において、ユーザが実行しようとするプログラムおよび登録してあるプログラムの特徴量を抽出する特徴量抽出方法を定期的に更新するようにしたものである。
【選択図】 図1

Description

作成者もしくは正当な所有者の許可なくプログラムを不正に使用したことを監視するプログラムの不正使用監視装置およびその方法に関する。
ソフトウェアプログラム(以下プログラム)は、複製を容易に作成できるという性質により、著作権侵害が頻発し、作成者もしくは正当な所有者の許可のない不正なコピーが横行している。このようなプログラムの不正使用の問題は、コンピュータネットワークの進展により益々深刻化しており、プログラムの不正使用防止技術が重要なキー技術として認識されている。
プログラムの不正使用防止の従来手法は多数存在するが、代表的なものとしては、(1)ライセンスナンバー方式(2)ハードウェアキー方式(3)暗号化方式(4)プログラムの特徴量を利用する方式などかあげられる。
(1)ライセンスナンバー方式とは、プログラムとともにライセンスナンバーを発行し、プログラムのインストール時もしくは起動時にライセンスナンバーを入力させる方式である。これにより、ライセンスキーなしではプログラムを動作させることができなくなり、不正な使用を防止することができる。代表的な例としては、マイクロソフトのWindows(R)シリーズがある。Windows(R)シリーズでは、パッケージCD−ROMとライセンスナンバーをセットで配布し、プログラムのインストール時にユーザにライセンスナンバーを入力させる。
(2)ハードウェアキー方式とは、“ドングル”と呼ばれる特殊なハードウェア装置を端末に装着し、ハードウェアがソフトウェアの正当性を検証する方式である。ハードウェアキー方式の例は、特許文献1に記載されている。この特許では、コンピュータの動作中にプログラムもしくはプログラムの一部が有効であるかどうかを判断するための方法が記載されている。
(3)暗号化方式とは、暗号化したプログラムと鍵データを配布し、プログラム実行時にプログラムを復号化して実行する方法である。鍵データの保存方法が問題となるが、端末にユーザによる閲覧が不可能な領域を設けて、そこに鍵を保存することで、鍵データの流出を防ぐことは可能である。
(4)プログラムの特徴量を利用する方式とは、配布するプログラムとこのプログラムの正規のユーザとの対応を登録しておき、ユーザ端末であるプログラムが実行された場合に、ユーザ端末で実行されたプログラムの特徴量と、予め登録してあるプログラムの特徴量との比較をし、A)これらの特徴量の一致をみることによりユーザ端末で実行されたプログラムを特定し、B)ユーザ端末のユーザがA)において特定したプログラムの正規のユーザでないという場合に、このユーザに対して報復措置を実施する方式である。本方式の例は、例えば特許文献2に記載されている。
この例では、不正使用の疑いのあるユーザ端末が不正使用している疑いのあるプログラムより特徴量としてプログラムの一部分のハッシュ値を数箇所とり、予め登録してあったオリジナルのプログラムの同じ箇所のハッシュ値と比較する。これらの特徴量を比較した結果、不正使用している疑いのあるプログラムとオリジナルのプログラムが同じプログラムであると判定した場合には、報復措置としてそのプログラムの実行を禁止することで、不正使用を防止している。
米国特許第3996499号明細書 特開平11−213031号公報
しかしながら、(1)ライセンスナンバー方式では、ユーザはライセンスキーとプログラムをセットで流出させることができるため、不正使用防止の効果は薄い。
別の例では、プログラムをインストールする端末を特定する情報をプログラムの配布元に通知し、プログラムの配布元がその情報に基づいてライセンスキーを発行する方法が取られている。この方法であれば、プログラムのライセンスキーが端末固有となるため、他の端末で同じライセンスキーを使用することができず、プログラムの不正使用を防止することができる。
しかしながら、この方法では、プログラムを改変し、ライセンスキー認証を無効化することが可能である。ライセンスキーが無効化されたプログラムに関しては、すべての端末で動作が可能となるため、この方法であっても不正使用を完全に防止することはできない。
また、(2)ハードウェアキー方式では、各種のプログラムが端末で動作する場合に、各プログラムに対応したハードウェアキーをすべて端末に接続する必要があり、利便性が低い。また、プログラム以外にハードウェアをユーザに配布する必要があるため、ネットワークを介した配布ができないという点で、柔軟性に欠けている。
また、(3)暗号化方式では、プログラムの復号化のオーバヘッドにより、プログラムの起動や実行が極端に遅延する。また、プログラムが実行可能な状態でメモリ上にロードされなければならないため、メモリ上では暗号化されていない平文の状態になる。したがって、メモリ上のプログラムをコピーされてしまう可能性があるため、不正使用を完全に防止することはできない。
また、(4)プログラムの特徴量を利用する方式では、不正使用者がプログラムを改ざんすることで同一性判定基準としている特徴量を変化させた場合に、不正使用を検出できなくなる。
以上のように、柔軟性、利便性に優れ、かつ、プログラムの改ざんがあった場合でも、プログラムの不正使用を防止するプログラム不正使用防止方法は存在していない。
本発明は、かかる点に鑑みてなされたものであり、柔軟性、利便性に優れ、かつ、プログラムの改ざんがあった場合でも、プログラムの不正使用を防止することを目的とする。
本発明は、プログラムとこのプログラムの正規ユーザとの組を登録しておき、ユーザが実行しようとするプログラムの特徴量と、登録してあるプログラムの特徴量を比較することによりユーザが実行しようとするプログラムを特定し、このユーザが特定したプログラムの正規ユーザであるか検出する方法において、ユーザが実行しようとするプログラムおよび登録してあるプログラムの特徴量を抽出する特徴量抽出方法を定期的に更新するようにしたものである。
本発明により、特徴量抽出方法が定期的に更新できるので、プログラムから特徴量を抽出する部分の特定が困難になる。つまり、仮に、同一性を判定するための特徴量を変化させるようにプログラムを改変されたとしても、特徴量抽出方法が更新されることにより、改変したプログラムは特徴量を用いた同一性判定を逃れられなくなる。すなわち、プログラムを改変したとしても特徴量を用いた同一性判定を逃れられるのは、一定期間のみとなる。これにより、プログラムの不正使用を防止できる。また、本発明は、プログラムの特徴量を利用する方式を用いているため、柔軟性、利便性に優れたプログラムの不正使用防止法を提供できる。
本発明の第1の態様にかかるプログラム不正使用監視装置は、プログラムと前記プログラムの正規ユーザとの組を複数登録したユーザ情報テーブルと、ユーザに対して前記プログラムの特徴量を抽出する特徴量抽出プログラムを送信する特徴量抽出プログラム送信部と、前記特徴量抽出プログラムを用いて抽出した前記ユーザが実行しようとするプログラムの特徴量を受信する特徴量受信部と、受信した前記特徴量と前記特徴量抽出プログラムを用いて抽出した前記ユーザ情報テーブルに登録した前記プログラムの特徴量と比較することで前記実行しようとするプログラムを特定する特徴量比較部と、前記ユーザ情報テーブルを参照し前記ユーザが特定した前記プログラムの正規ユーザであるか検出し、前記ユーザが前記正規ユーザでない場合は前記ユーザに対して前記特定したプログラムの実行を禁止させる制御信号を送信する実行禁止判定部と、を具備し、前記特徴量抽出プログラム送信部は、前記ユーザに送信する前記特徴量抽出プログラムを更新する。
これにより、特徴量抽出プログラムを定期的に更新できるので、プログラムから特徴量を抽出する部分の特定が困難になる。つまり、仮に、同一性を判定するための特徴量を変化させるようにプログラムを改変されたとしても、特徴量抽出プログラムが更新されることにより、改変したプログラムは特徴量を用いた同一性判定を逃れられなくなる。すなわち、プログラムを改変したとしても特徴量を用いた同一性判定を逃れられるのは、一定期間のみとなる。これにより、プログラムの不正使用を防止できる。また、本発明は、プログラムの特徴量を利用する方式を用いているため、柔軟性、利便性に優れたプログラムの不正使用防止法を提供できる。
本発明の第2の態様にかかるユーザ端末は、プログラムの特徴量を抽出する特徴量抽出プログラムを更新する特徴量抽出プログラム更新部と、前記特徴量抽出プログラムを用いて実行するプログラムの特徴量を抽出する特徴量抽出部と、抽出した前記特徴量をプログラムの不正使用を監視する不正使用監視サーバへ送信する特徴量送信部と、前記不正使用監視サーバから送られてきた前記実行するプログラムの実行を禁止させる制御信号を受信し、前記制御信号に基づいて前記実行するプログラムの実行を禁止するプログラム実行制御部と、を具備した構成を採る。
これにより、特徴量を抽出する特徴量抽出プログラムを更新することができ、プログラムの改ざんにより特徴量を改変しても、不正使用が発覚しないようにすることが困難となる。
本発明の第3の態様は、第2の態様にかかるユーザ端末において、前記特徴量抽出プログラムは有効期限もしくは有効回数を有し、前記プログラム実行制御部は前記有効期限もしくは有効回数を超過した場合に前記プログラムの実行を禁止する。
これにより、特徴量抽出プログラムを更新しないことでプログラムの不正使用を続けることを防止することができる。
本発明の第4の態様は、第3の態様にかかるユーザ端末において、前記特徴量抽出プログラムと前記有効期限もしくは有効回数を対応付けて格納するテーブルを具備し、前記特徴量抽出プログラム更新部は、前記有効期限もしくは有効回数を改変不可能な形式にて前記テーブルに保存する。
これにより、ユーザが不正に有効期限もしくは有効回数を書き換えることができなくなる。この結果、不正にプログラムを使用することを防ぐことが可能となる。
本発明の第5の態様は、第2の態様から第4の態様のいずれかにかかるユーザ端末において、前記特徴量送信部は、前記特徴量の送信を失敗した際に、所定期間後に再度前記特徴量の送信を試みる。
これにより、正当な権利を有するユーザが通信できない場合であっても、再度特徴量の送信を試みることにより、プログラムの実行を妨げられることがなくなる。
本発明の第6の態様は、第5の態様にかかるユーザ端末において、前記特徴量送信部は、前記特徴量の送信を失敗した際に、前記特徴量を改変不可能な形式に変換して保存する。
これにより、蓄積された特徴量情報を書き換えることで、不正にプログラムを使用することを防止することができる。
本発明の第7の態様は、第2の態様から第5の態様のいずれかにかかるユーザ端末において、前記特徴量は有効期限を有し、前記特徴量が前記有効期限を超過した場合には、前記特徴量送信部が前記特徴量の送信をやめる。
これにより、特徴量の送信を意図的に妨害することで、プログラムを不正に使用し、かつプログラムの不正使用が発覚しないようにする行為を防止することができる。
本発明の第8の態様は、第7の態様にかかるユーザ端末において、前記特徴量が前記有効期限を超過した場合には、前記プログラム実行制御部が前記プログラムの実行を禁止する。
これにより、特徴量の送信を意図的に妨害することで、プログラムを不正に使用し、かつプログラムの不正使用が発覚しないようにする行為を防止することができる。
本発明の第9の態様は、第2の態様から第8の態様のいずれかにかかるユーザ端末において、前記プログラム実行制御部は、実行を禁止した前記プログラムのリストを作成し保存する。
これにより、実行を禁止したプログラムを明示的に認識できる。
本発明の第10の態様は、第9の態様にかかるユーザ端末において、前記プログラム実行制御部は、前記リストを改変できない形式で保存する。
これにより、リストを不正に改変することができなくなる。
本発明の第11の態様は、第9の態様または第10の態様にかかるユーザ端末において、前記プログラム実行制御部は、起動したプログラムが前記リストに含まれる場合には、前記起動したプログラムを停止する。
これにより、プログラムの不正使用を明示的に禁止することが可能となる。
本発明の第12の態様は、第2の態様から第11の態様のいずれかにかかるユーザ端末において、前記プログラム実行制御部は、前記プログラムが不正使用されていることをあらわす情報を提示する。
これにより、ユーザに対して、不正使用の防止機構が働いてきることを明示することができる。
本発明の第13の態様は、第1の態様のプログラム不正使用監視装置と、第2の態様から第12の態様のいずれかに記載のユーザ端末と、を具備したことを特徴とするプログラム不正使用防止システムである。
本発明の第14の態様は、プログラムと前記プログラムの正規ユーザとの組を登録しておき、ユーザが実行しようとするプログラムの特徴量と、登録してあるプログラムの特徴量を比較することにより前記ユーザが実行しようとするプログラムを特定し、前記ユーザが特定したプログラムの正規ユーザであるか検出するプログラム不正使用防止方法であって、前記ユーザが実行しようとするプログラムおよび前記登録してあるプログラムの特徴量を抽出する特徴量抽出方法を定期的に更新することを特徴とするプログラム不正使用防止方法である。
以下、本発明の実施の形態について添付図面を用いて詳細に説明する。
本発明では、ソフトウェアの不正使用に対して、プログラムの不正使用を監視する不正使用監視サーバでプログラムの実行を監視し、プログラムの不正使用を検出した場合にはその実行を制限する。
本発明で使用する方式は、従来の技術に述べた(4)の方式を用いている。ただし、先にも述べたとおり(4)の方式においては、プログラムの改ざんがあった場合に、不正使用を検出できない場合がある。つまり、もし、不正使用をたくらむユーザにプログラムの特徴量としてどのような情報を抽出しているのかを知られてしまった場合は、その特徴量として抽出する情報を改変するようにプログラムを改ざんされ、プログラムの不正使用を検出できなくなってしまう。
本発明は、その特徴量を改変するようにプログラムを改ざんされてしまうということに着目し、プログラムの特徴量を抽出する特徴量抽出プログラムを定期的に更新するようにした。これにより、仮に同一性を判定するための特徴量を変化させるようにプログラムを改変されたとしても、そのプログラムが同一性判定を逃れることができるのは一定期間のみとなる。
以下、本発明の一実施の形態にかかるプログラム不正使用防止システムついて、添付図面を用いて詳細に説明する。
まず、図1を用いて、本実施の形態にかかるプログラム不正使用防止システムについて説明する。図1は、本発明の実施の形態にかかるプログラム不正使用防止システムをあらわす概略図である。
本実施の形態にかかるプログラム不正使用防止システム100は、プログラム配布サーバ101と、不正使用監視サーバ102と、ユーザ端末103とで構成される。
プログラム配布サーバ101は、ユーザに配布するソフトウェアを配置するサーバである。また、プログラム配布サーバ101は、配布するプログラムを不正使用監視サーバ102に登録する。
ユーザ端末103は、プログラム配布サーバ101からプログラムを取得して実行する端末である。また、ユーザ端末103は、不正使用監視サーバ102にユーザ登録を行う。また、ユーザ端末103は、実行したプログラムごとにその特徴量を抽出し、不正使用監視サーバ102に通知する。
不正使用監視サーバ102は、プログラム配布サーバ101により登録されたプログラムを保存する。また、不正使用監視サーバ102は、ユーザ端末103からプログラムの特徴量を受信し、保存したプログラムから抽出した特徴量と比較する。比較の結果、A)保存しているプログラムと特徴量が一致し、かつB)ユーザ登録されているユーザではない、という条件が成立した場合には、不正使用監視サーバ102は、ユーザ端末103に対して不正使用を禁止するためのメッセージ送信を行う。
次に、上記システムの処理の流れについて説明する。
まず、プログラム配布サーバ101から不正使用監視サーバ102へプログラム登録要求を送信する(1.プログラムの登録)。
次に、ユーザ端末103からプログラム配布サーバ101にプログラム配布要求を送信する(2.ユーザ登録)。
プログラム配布要求には、プログラムを利用するユーザおよび端末の情報が含まれる。
次に、プログラム配布サーバ101から不正使用監視サーバ102へユーザ登録要求を送信する(3.ユーザの登録)。
次に、プログラム配布サーバ101が、ユーザ端末103からプログラム配布要求を受信し、それに応答してユーザ端末103にプログラムを配布する(4.プログラムの配布)。
次に、不正使用監視サーバ102がユーザ端末103へ特徴量抽出プログラムの最新バージョンを配布する(5.取得すべき特徴量の更新)。
次に、ユーザ端末103が不正使用監視サーバ102に対して特徴量登録要求を送信する(6.使用したプログラムの特徴量の通知)。
そして、不正使用監視サーバ102は、受信した特徴量を用いてユーザ端末103が実行するプログラムを特定し、不正使用を検出した場合には、ユーザ端末103に対してプログラムの使用禁止指示を送信する(7.不正使用の禁止通知)。
以上の手順でメッセージを送信することで、プログラムの不正な使用を防止することができる。
特に、特徴量抽出プログラムを定期的に更新するので、ユーザ端末103において、プログラムから特徴量を抽出する部分の特定が困難になる。つまり、仮に、ユーザ端末103が、同一性を判定するための特徴量を変化させるようにプログラムを改変したとしても、特徴量抽出プログラムが更新されることにより、改変したプログラムは特徴量を用いた同一性判定を逃れられなくなる。すなわち、プログラムを改変したとしても特徴量を用いた同一性判定を逃れられるのは、一定期間のみとなる。
次に、プログラム配布サーバ101の構成について図2を用いて説明する。図2は、本実施の形態にかかるプログラム配布サーバ101の構成図である。
プログラム配布サーバ101には、プログラム蓄積部201が設けられている。プログラム蓄積部201は、ユーザ端末103に配布するプログラムを蓄積する記録媒体である。具体的には、プログラム蓄積部201は、ハードディスクドライブ、DVD−RAMなどである。
また、プログラム配布サーバ101には、プログラム配布部202が設けられている。プログラム配布部202は、プログラム蓄積部201に蓄積されたプログラムを、ネットワークを介してユーザ端末103に配布する手段である。
プログラムの配布は、FTP、HTTPといった通信プロトコルを用いて行うことを想定している。すなわち、プログラム配布部202は、FTPサーバ、HTTPサーバにより構成される。
また、プログラム配布サーバ101には、プログラム登録部203が設けられている。プログラム登録部203は、不正使用監視サーバ102にプログラムを登録する手段である。
プログラムの登録は、FTP、HTTPといった通信プロトコルを用いて行うことを想定している。すなわち、プログラム登録部203は、FTPクライアント、HTTPクライアントにより構成されることを想定している。
なお、本発明の実施の形態では、プログラムはプログラム配布サーバ101を用いて配布することを想定しているが、プログラムはCD−ROMなどのリムーバブルメディアを用いて配布してもよい。その場合には、プログラム配布サーバ101は不要である。また、この場合のプログラムの不正使用監視サーバ102への登録は、リムーバブルメディアを介して行うものとする。
次に、不正使用監視サーバ102について、図3を用いて説明する。図3は、本実施の形態にかかる不正使用監視サーバ102の構成図である。
不正使用監視サーバ102には、プログラム受信部204が設けられている。プログラム受信部204は、プログラム配布サーバ101より登録されるプログラムを受信し、プログラム蓄積部217に蓄積する手段である。プログラムの登録は、FTP、HTTPといった通信プロトコルを用いて行うことを想定している。すなわち、プログラム受信部204は、FTPサーバ、HTTPサーバにより構成される。
プログラム蓄積部217は、ハードディスクドライブ、DVD−RAMなどである。
また、不正使用監視サーバ102には、特徴量抽出部210が設けられている。特徴量抽出部210は、プログラム蓄積部217に蓄積されたプログラムの特徴量を抽出して、プログラムの名称と対応付けて特徴量比較部208に渡す手段である。特徴量抽出部210は、プログラムから特徴量を抽出する特徴量抽出プログラムを、特徴量抽出プログラム更新部209により更新することができ、また、選択することができる。
プログラムから抽出する特徴量としては、プログラムの名称、サイズといった基本的な情報から、プログラム中に使われる変数名、プログラムの構文、フローグラフ、クラスの継承関係、ある実行時点でのデータ依存関係、フロー依存関係などが考えられる。また、Conte,S.D.,H.E.Dunsmore and V.Y.Shen,Software Engineering Metrics and Models,The Benjamin/Cummings Publishing Company,1986に記載されているプログラムの尺度を特徴量としてもよい。また、上記の特徴量のうち、いくつかを組み合わせて利用することも可能である。
また、不正使用監視サーバ102には、特徴量抽出プログラム蓄積部212が設けられている。特徴量抽出プログラム蓄積部212は、特徴量抽出プログラム212aをその有効期限212bと対応付けて蓄積する蓄積媒体である。具体的には、特徴量抽出プログラム蓄積部212は、ハードディスクドライブ、DVD−RAMなどである。
また、不正使用監視サーバ102には、特徴量抽出プログラム送信部213が設けられている。特徴量抽出プログラム送信部213は、特徴量抽出プログラムを、その有効期限とあわせてユーザ端末103に送信する手段である。
また、不正使用監視サーバ102には、特徴量抽出プログラム更新部209が設けられている。特徴量抽出プログラム更新部209は、特徴量比較部208より指示された特徴量抽出プログラムを特徴量抽出プログラム蓄積部212から取り出し、特徴量抽出部210にインストールする手段である。
また、不正使用監視サーバ102には、特徴量受信部206が設けられている。特徴量受信部206は、ユーザ端末103からの特徴量登録要求(特徴量、特徴量を抽出したときに用いた特徴量抽出プログラムのバージョン、ユーザ情報、端末情報)を受信し、特徴量蓄積部207へ蓄積する手段である。
特徴量蓄積部207は、特徴量登録要求に含まれる特徴量、特徴量を抽出したときに用いた特徴量抽出プログラムのバージョン、ユーザ情報、端末情報を蓄積するための特徴量テーブル300を備える蓄積媒体である。具体的には、特徴量蓄積部207は、ハードディスクドライブ、DVD−RAMなどである。また、特徴量蓄積部207は、特徴量登録要求に含まれる特徴量、特徴量を抽出したときに用いた特徴量抽出プログラムのバージョン、ユーザ情報、端末情報を特徴量テーブル300により蓄積する。
特徴量比較部208は、特徴量蓄積部207から特徴量、特徴量を抽出したときに用いた特徴量抽出プログラムのバージョン、ユーザ情報、端末情報を取り出し、特徴量抽出プログラム更新部209に特徴量抽出プログラムのバージョンを通知する。また、特徴量比較部208は、特徴量抽出部210から、特徴量と、その特徴量を抽出したプログラムの名称を受け取り、特徴量蓄積部207から取得した特徴量と比較する。比較の結果、特徴量が等しい(すなわち、特徴量を抽出したプログラムが同一のプログラムである)と判定した場合には、特徴量比較部208は、ユーザ情報、端末情報、特徴量抽出部210から取得したプログラムの名称を実行禁止判定部211に通知する。
実行禁止判定部211は、特徴量比較部208からユーザ情報、プログラムの名称、端末情報を受信し、これらの情報を用いてユーザ情報保存部215の検索を行って、ユーザがそのプログラムのユーザ登録を行っているかどうかを確認する。そして、実行禁止判定部211は、確認の結果に基づいて、ユーザ端末103にプログラムの実行を許可するか、プログラムの実行を禁止するかを切り替える制御信号を送信する。具体的には、ユーザが登録を行っていないと判定された場合には、実行禁止判定部211は、制御信号をプログラムの実行を禁止する指示にしてユーザ端末103に送る。また、ユーザが登録を行っていると判定された場合には、実行禁止判定部211は、制御信号をプログラムの実行を許可する指示にしてユーザ端末103に送る。
実行禁止指示は、実行を禁止するプログラムの特徴量の情報が含まれるものとする。
ユーザ登録受信部214は、不正使用監視サーバ102を介して、ユーザ端末103からのユーザ登録要求を受け付け、ユーザ情報をユーザ情報保存部215に蓄積する手段である。
ユーザ情報は、例えば、ユーザの名前、ユーザの住所、電話番号など、ユーザを一意に特定できる情報であればなんでもよい。
ユーザ情報保存部215は、ユーザ登録情報を蓄積するユーザ情報テーブル400を備えた記憶媒体である。具体的には、ユーザ情報保存部215は、ハードディスクドライブ、DVD−RAMなどである。
次に、ユーザ端末103の構成について図4を用いて説明する。図4は、本実施の形態にかかるユーザ端末103の構成図である。
ユーザ端末103には、プログラム取得部216が設けられている。プログラム取得部216は、プログラム配布サーバ101からプログラムを取得し、プログラム蓄積部229に蓄積する手段である。
プログラム蓄積部229は、ハードディスクドライブ、DVD−RAMなどである。
また、ユーザ端末103には、ユーザ情報取得部219が設けられている。ユーザ情報取得部219は、ユーザ情報を取得し、その情報をユーザ登録送信部218や特徴量送信部227に渡す手段である。
ユーザ情報は、ユーザの名前や住所、電話番号などであり、予め端末に登録されている情報を用いてもよいし、ユーザに情報を入力させて取得してもよい。
また、ユーザ端末103には、特徴量抽出プログラム更新部221が設けられている。特徴量抽出プログラム更新部221は、不正使用監視サーバ102から特徴量抽出プログラムとその有効期間を取得し、特徴量抽出プログラムを特徴量抽出部220にインストールする手段である。
また、特徴量抽出プログラム更新部221は、特徴量抽出プログラムの有効期限を、暗号化部225を用いて暗号化し、有効期限蓄積部222に蓄積する機能を有する。さらに、特徴量抽出プログラム更新部221は、特徴量抽出部220の有効期限が切れた場合には、実行制御部223にプログラムの実行を禁止する実行禁止指示を通知する機能を有する。
なお、有効期限の変わりに有効回数を用いてもよい。
特徴量抽出部220は、プログラムの起動を検出し、特徴量抽出プログラムを用いて、起動したプログラムの特徴量を抽出して実行制御部223と特徴量送信部227に通知する。
実行制御部223は、不正使用監視サーバ102から送付されるプログラムの実行禁止もしくは実行許可を切り替える指示を受信し、この指示が実行禁止を示す場合は禁止リスト224に実行を禁止するプログラムの特徴量を追加する。禁止リストは、暗号化部225を用いて暗号化されるものとする。一方、実行制御部223は、指示が実行許可を示す場合は、プログラムを実行する。
禁止リスト224は、実行を禁止したプログラムのリストである。禁止リスト224により、実行を禁止したプログラムを明示的に認識できる。
また、実行制御部223は、プログラムの起動時に、禁止リスト224を検索し、特徴量抽出部220から通知される特徴量が含まれているかどうかを確認する。禁止リスト224に特徴量が含まれている場合には、実行制御部223は、そのプログラムは起動されず、プログラムが不正使用されていて起動できないことを警告するメッセージをユーザに提示する。これにより、ユーザ端末103のユーザに対して、不正使用の防止機構が働いてきることを明示することができる。
さらに、実行制御部223は、特徴量送信部227や特徴量抽出プログラム更新部221からプログラム実行禁止指示を受け取り、すべてのプログラムの実行を禁止する機能を有する。
プログラム実行部226は、プログラムを実際に実行するプラットフォームである。プログラム実行部226は、実行制御部223の実行禁止指示があった場合には、即座にプログラムの実行を停止する。
特徴量送信部227は、特徴量抽出部220から通知されるプログラムの特徴量と、プログラムの特徴量を抽出したときの特徴量抽出プログラムのバージョン、ユーザ情報、端末情報を取得し、不正使用監視サーバに送信する手段である。
また、特徴量送信部227は、ユーザ端末103がネットワークに接続されていないなどの理由により不正使用監視サーバに上記の情報を送信できない場合には、上記の情報を、暗号化部225を用いて暗号化し、特徴量蓄積部228に保存する。特徴量送信部227は、上記情報の保存の際には、保存日時、その特徴量の有効期限を合わせて記録する。特徴量送信部227は、その特徴量の有効期限は、特徴量を抽出した日時から一定期間後に設定する。その後、特徴量送信部227は、一定時間ごとに不正使用監視サーバ102に上記情報の送信を試みる。そして、上記で定めた有効期限を過ぎても送信に成功しない場合には、特徴量送信部227は実行制御部223にプログラム実行禁止指示を行う。
暗号化部225は、実行制御部223、特徴量送信部227、特徴量抽出プログラム更新部221の各手段からの情報を、ユーザが改変できない形式で暗号化して、送り返す手段である。暗号化方式としては、DESなど標準的な方式を用いることができる。また、暗号化部225が、禁止リスト224、特徴量、特徴量の有効期限をユーザが改変できないように暗号化することにより、ユーザが、禁止リスト224、特徴量、特徴量の有効期限を不正に改変することを防止できる。この結果、プログラムの不正使用を防止できる。
なお、暗号化部225は、予め定められた暗号化方式(すなわち、ユーザ端末103に出荷前に組み込まれている方式)を使う。暗号化を行うための鍵は、暗号化部225のみが知っており、暗号化部225の中に秘密に保存されている。また、暗号化部225は、中に鍵を秘密に保存するために、ハードウェア/ソフトウェア耐タンパ技術を用いて実装される。これにより、ユーザは容易に暗号化鍵を暗号化部225から取得できないようにできる。
特徴量蓄積部228は、プログラムの特徴量と、プログラムの特徴量を抽出したときの特徴量抽出プログラムのバージョン、ユーザ情報、端末情報、保存日時、その特徴量の有効期限などを対応付けて格納する特徴量テーブル500を備えた記憶媒体である。
以上のように、プログラム配布サーバ101、不正使用監視サーバ102、およびユーザ端末103は構成されている。
次に、本実施の形態にかかる特徴量蓄積部207が備える特徴量テーブル300について図5を用いて説明する。図5は、本実施の形態にかかる特徴量蓄積部207に蓄積される特徴量テーブル300の構成図である。
特徴量テーブル300は、特徴量301と、特徴量抽出プログラムのバージョン302と、ユーザ情報303と、端末情報304との組を複数格納している。
特徴量301は、ユーザ端末103で抽出された特徴量である。
特徴量抽出プログラムのバージョン302は、特徴量301の抽出を行ったときに用いた特徴量抽出プログラムのバージョン情報である。
ユーザ情報303は、特徴量301を抽出したユーザ端末103のユーザ情報である。
端末情報は、特徴量301を抽出したユーザ端末103を特定する情報である。
以上のように特徴量テーブル300は構成されている。
また、ユーザ端末103からの特徴量登録要求を受信すると特徴量テーブル300の行が追加され、後に述べる特徴量比較処理を行った行は特徴量テーブル300から削除される。
次に、ユーザ情報保存部215に保存されるユーザ情報テーブル400について図6を用いて説明する。図6は、本実施の形態にかかるユーザ情報テーブル400の構成図である。
ユーザ情報テーブル400は、プログラムの名称401と、端末情報402と、ユーザ情報403との組を複数格納する。
プログラムの名称401は、プログラムを一意に表す名称である。
端末情報402は、ユーザ登録要求に含まれる端末情報である。
ユーザ情報403は、ユーザ登録要求に含まれるユーザ情報である。
以上のようにユーザ情報テーブル400は構成されている。このように、ユーザ情報テーブル400に、プログラムの名称401と、プログラムの正規のユーザを示すユーザを端末情報402およびユーザ情報403とを対応付けて格納することにより、プログラムと正規のユーザとの対応を明確にできる。
また、ユーザ情報テーブル400は、ユーザから新たなユーザ登録要求を受信すると行が追加される。
次に、特徴量蓄積部228が備える特徴量テーブル500について、図7を用いて説明する。図7は、特徴量蓄積部228に格納される特徴量テーブル500の構成図である。
特徴量テーブル500は、特徴量501と、特徴量抽出プログラムのバージョン502と、取得日503と、有効期限504と、端末情報505と、ユーザ情報506と、の組を複数格納している。
特徴量501は、抽出した特徴量である。特徴量抽出プログラムのバージョン502は、特徴量501を抽出するのに用いた特徴量抽出プログラムのバージョン情報である。
取得日503は、特徴量501を抽出した日付である。有効期限504はその特徴量501がいつまで有効であるかをあらわす有効期限である。
端末情報505は、特徴量501を抽出したアプリケーションを使用していたユーザ端末103を一意に示す端末情報である。
ユーザ情報506は、特徴量501を取得したアプリケーションを利用していたユーザのユーザ情報である。
以上のように特徴量テーブル500は構成されている。
また、特徴量テーブル500は、特徴量送信部227が特徴量の送信に失敗すると情報を一時的に保存しておくために作成され、特徴量の再送信に成功した場合に削除される。
次に、プログラム不正使用防止システム100の動作について、図8を用いて説明する。図8は、本実施の形態にかかるプログラム不正使用防止システム100におけるプログラムの不正使用防止処理のシーケンス図である。
まず、プログラム配布サーバ101が、配布するプログラムを不正使用監視サーバ102に登録要求を行うプログラム登録要求処理を行う(ST801)。そして、これに対して不正使用監視サーバ102が、配布するプログラムの登録を行うプログラム登録処理を行う(ST802)。
次に、ユーザ端末103が、プログラム配布サーバ101に対して、プログラムの取得を行うためのプログラム取得処理を行う(ST803)。そして、これに対して、プログラム配布サーバ101が、不正使用監視サーバ102にユーザ端末103のユーザ登録する処理を行い、その後ユーザ端末103にプログラムを配布するプログラム配布処理を行う(ST804)。
これに対して、不正使用監視サーバ102は、ユーザ端末103のユーザ登録処理を行う(ST805)。
このようにして、ユーザ端末103に対して、プログラムの配布が行われる。次に、プログラムの不正使用を防止するための処理に移行する。
まず、不正使用監視サーバ102が、ユーザ端末103に対して、プログラムの特徴量を抽出する特徴量抽出プログラムの配布を行う特徴量抽出プログラム配布処理を行う(ST806)。そして、これに対して、ユーザ端末103は、配布されてきた特徴量抽出プログラムを用いて特徴量抽出プログラム更新処理を行う(ST807)。
次に、ユーザ端末103は、プログラム配布サーバ101から送られてきたプログラムを起動するプログラム起動処理を行い(ST808)、その後、起動するプログラムに対して配布された特徴量抽出プログラムを用いて用いた特徴量を不正使用監視サーバ102に対して送信する特徴量送信処理を行う(ST809)。
これに対して、不正使用監視サーバ102は、ユーザ端末103から送られてきた特徴量を受信する特徴量受信処理を行う(ST810)。
そして、不正使用監視サーバ102は、配布したプログラムが不正使用されている場合には、ST801において受信した特徴量を用いてユーザ端末103を特定する不正使用検出処理を行う(ST811)。
このように、プログラムの不正使用が発覚した場合は、定期的に更新する特徴量抽出プログラムを用いて抽出したプログラムの特徴量を用いて、ユーザ端末103が実行する色グラムを特定でき、ユーザ端末103が正規のユーザか特定できる。この結果、プログラムの不正使用を防止できる。
なお、上述したST801〜ST811の処理の詳細については、後述する。
次に、プログラム配布サーバ101のプログラム登録要求処理について、図9を用いて説明する。図9は、本実施の形態にかかるプログラム配布サーバ101のプログラム登録要求処理のフロー図である。
まず、プログラム配布サーバ101は、配布するプログラムをプログラム蓄積部201に保存する(ステップ901)。その後、プログラム登録部203が、プログラム蓄積部201のプログラムの登録要求を不正使用監視サーバ102に送信し(ステップ902)、本処理を終了する。
このように、プログラム配布サーバ101のプログラム登録要求処理を行う。
次に、不正使用監視サーバ102のプログラム登録処理について説明する。図10は、不正使用監視サーバ102におけるプログラム登録処理のフロー図である。
まず、不正使用監視サーバ102のプログラム受信部204が、プログラム配布サーバ101から送られてきたプログラムの登録要求を受信する(ステップ1001)。続いて、不正使用監視サーバ102は、プログラム配布サーバ101から登録要求してきたプログラムをプログラム蓄積部217に保存して処理を終了する(ステップ1002)。
このように、不正使用監視サーバ102は、プログラム登録処理を行う。
次に、ユーザ端末103のプログラム取得処理について図11を用いて説明する。図11は、本実施の形態にかかるユーザ端末103のプログラム取得処理のフロー図である。
まず、ユーザ端末103のプログラム取得部216がプログラムの配布要求をプログラム配布サーバ101に送信する(ステップ1101)。続いて、プログラム取得部216が、プログラム配布サーバ101から送られてきたプログラムを取得する(ステップ1102)。その後、プログラム取得部216は、取得したプログラムをプログラム蓄積部229に保存し(ステップ1103)、プログラム取得処理を完了する。
以上のように、ユーザ端末103はプログラム取得処理を行う。
次に、プログラム配布サーバ101のプログラム配布処理を、図12を用いて説明する。図12は、プログラム配布サーバ101のプログラム配布処理のフロー図である。
まず、プログラム配布サーバ101は、プログラム配布部202において、ユーザ端末103から送られてきたプログラム配布要求を受信する(ステップ1201)。続いて、プログラム配布部202は、プログラム配布要求に含まれるユーザ情報および端末情報を抽出し、そのユーザに配布するプログラムの名称とともに不正使用監視サーバ102へ通知する(ステップ1202)。続いて、プログラム配布部202は、ユーザ端末103から要求されたプログラムをユーザ端末103に送信して(ステップ1203)、処理を終了する。
以上のように、プログラム配布サーバ101は、プログラム配布処理を行う。
次に、不正使用監視サーバ102のユーザ登録処理について図13を用いて説明する。図13は、不正使用監視サーバ102のユーザ登録処理のフロー図である。
まず、不正使用監視サーバ102のユーザ登録受信部214が、プログラム配布サーバ101を介してユーザ端末103から送れてきたユーザ登録要求を受信し(ステップ1301)、この要求に基づいて、ユーザ登録情報をユーザ情報保存部215のユーザ情報テーブル400に蓄積して処理を終了する(ステップ1302)。
以上のように、不正使用監視サーバ102は、ユーザ登録処理を行う。このようにして、正規のユーザを登録する。
次に、不正使用監視サーバ102の特徴量抽出プログラム配布処理について図14を用いて説明する。図14は、不正使用監視サーバ102の特徴量抽出プログラム配布処理のフロー図である。
まず、不正使用監視サーバ102は、特徴量抽出プログラム212aをその有効期限212bとともに特徴量抽出プログラム蓄積部212に保存する(ステップ1401)。
続いて、特徴量抽出プログラム送信部213が、ユーザ端末103からの特徴量抽出プログラムの配信要求を受信し(ステップ1402)、その要求に応じて特徴量抽出プログラムの最新バージョンをユーザ端末103に送付する(ステップ1403)。
以上のように、不正使用監視サーバ102は、特徴量抽出プログラム配布処理を行う。このように、最新バージョンの特徴量抽出プログラムを配布する。
次に、ユーザ端末103の特徴量抽出プログラム更新処理について図15を用いて説明する。図15は、ユーザ端末103の特徴量抽出プログラム更新処理のフロー図である。
まず、ユーザ端末103の特徴量抽出プログラム更新部221が、特徴量抽出プログラムの最新バージョンのバージョン番号を不正使用監視サーバ102に確認する(ステップ1501)。
ユーザ端末103がネットワークに接続していないなどの理由により、最新バージョンのバージョン番号が確認できない場合には(ステップ1502)、特徴量抽出プログラム更新部221は、特徴量抽出プログラムの有効期限を確認する(ステップ1507)。
確認の結果、有効期限が切れている場合には(ステップ1508)、特徴量抽出プログラム更新部221は、実行制御部223にすべてのプログラム実行禁止を指示する(ステップ1509)。
この動作により、ユーザ端末103の利用者が、特徴量抽出プログラムの更新を妨害して、プログラムを不正使用することを防ぐ。
一方、特徴量抽出プログラムの最新バージョンのバージョン番号が取得できた場合には(ステップ1502)、特徴量抽出プログラム更新部221は、現在ユーザ端末103にインストールされている特徴量抽出プログラムのバージョン番号と比較する(ステップ1503)。バージョンが一致する場合には、特徴量抽出プログラム更新部221は、最新版がインストールされていると判定してこの処理を終了する。
もし、バージョンが一致せず、より新しいバージョンがあると判定された場合には(ステップ1503)、特徴量抽出プログラム更新部221は、不正使用監視サーバ102から、最新版の特徴量抽出プログラムと、その有効期限を取得する(ステップ1504)。続いて、特徴量抽出プログラム更新部221は、暗号化部225を用いて特徴量抽出プログラムの有効期限を暗号化して有効期限蓄積部222に保存する(ステップ1505)。
このように暗号化することにより、プログラムの有効期限を不正に改変することを防止できる。
そして、特徴量抽出プログラム更新部221は、特徴量抽出部220に最新の特徴量抽出プログラムをインストールして処理を終了する(ステップ1506)。
以上のように、ユーザ端末103は特徴量抽出プログラム更新処理を行う。これにより、特徴量抽出プログラムを最新バージョンに更新できるので、ユーザがプログラムから特徴量を抽出する方法を特定できなくなり、プログラムの特徴量の特定ができなくなる。この結果、ユーザがプログラムの特定量を改変したとしても、その効力が発揮できるのは、特徴量抽出プログラムが最新バージョンに更新される短い期間のみになる。よって、プログラムの不正使用を防ぐことができる。
次に、ユーザ端末103のプログラム起動処理について、図16を用いて説明する。図16は、ユーザ端末103のプログラム起動処理のフロー図である。
この処理は、ユーザ端末103の利用者がプログラムを起動しようとした際に実行される。
まず、ユーザ端末103の実行制御部223は、プログラムの実行が全面的に禁止されていないかどうかを確認する(ステップ1601)。
プログラムの実行が全面的に禁止されている場合、実行制御部223は、プログラムの実行が全面的に禁止されている警告を表示部(不図示)に表示して、処理を終了する(ステップ1607)。
これにより、ユーザが実行しているプログラムが不正であることを認識できる。また、悪意のユーザに対しては、プログラムの不正使用防止機構が動作していることを認識させることができる。
一方、プログラムの実行が全面的に禁止されていない場合には、特徴量抽出部220がプログラム蓄積部229より利用者が起動しようとしたプログラムを読み込み、その特徴量を抽出する(ステップ1602)。
続いて、特徴量抽出部220が、特徴量を実行制御部223に通知する(ステップ1603)。
次に、実行制御部223は、通知された特徴量が禁止リスト224に存在するかどうかを判定する(ステップ1604)。
通知された特徴量が禁止リスト224中に存在した場合には(ステップ1605)、プログラム実行部226は、プログラムが不正使用されていることを示す警告を利用者に対して表示して、プログラムを起動せずに処理を終了する(ステップ1606)。
このように、禁止リスト224を用いることにより、禁止されたプログラムの不正使用を明示的に禁止することが可能となる。
一方、通知された特徴量が禁止リスト中に存在しない場合には、実行制御部223は、プログラム実行部226にプログラムの実行許可を与え、プログラム実行部226はプログラムを読み込んで実行する(ステップ1608)。
以上のように、ユーザ端末103は、プログラム起動処理を行う。
次に、ユーザ端末103の特徴量送信処理について、図17を用いて説明する。図17は、ユーザ端末103の特徴量送信処理のフロー図である。
まず、ユーザ端末103の特徴量抽出部220は、プログラムがユーザ端末103の利用者により起動されたときに、起動されたプログラムの特徴量を抽出して、その特徴量と、その特徴量を抽出するときに用いた特徴量抽出プログラムのバージョンを特徴量送信部227に渡す(ステップ1701)。
これに対して、特徴量送信部227は、これらの情報を受け取り(ステップ1702)、ユーザ情報取得部219からユーザ情報を取得して(ステップ1703)、特徴量登録要求(特徴量と、その特徴量を抽出するときに用いた特徴量抽出プログラムのバージョン、ユーザ情報、端末情報を含む)を、不正使用監視サーバ102に送信する(ステップ1704)。
そして、特徴量送信部227は、特徴量登録要求の送信が成功した場合には(ST1705)、不正使用監視サーバ102に登録ができたとして処理を終了する。
一方、特徴量登録要求の送信が成功しなかった場合には、不正使用監視サーバ102に登録ができなかったとして、特徴量送信部227は、特徴量蓄積部228の特徴量テーブル500を参照し、特徴量の有効期限504を確認する(ステップ1706)。
有効期限を過ぎていなければ、特徴量送信部227は、暗号化部225を用いて、特徴量を暗号化して、特徴量テーブル500に蓄積し(ステップ1707)、一定期間経過するまで待って、ステップ1704の処理に移行し、特徴量登録要求を再送信する(ステップ1708)。
これにより、通信状態などの一時的な不良により、正規のユーザが特徴量を送信できなくなり、プログラムを実行できなくなるという事態を防止できる。
そして、特徴量登録要求の再送信に何度か失敗すると、特徴量送信部227は、特徴量の有効期限が切れるため、実行制御部が、実行制御部223にすべてのプログラムの実行禁止を指示して処理を終了する(ステップ1709)。
以上のように、ユーザ端末103は、特徴量送信処理を行う。この動作により、特徴量の送信をユーザが意図的に妨害して、プログラムの不正使用を行おうとするのを阻止することができる。
次に、不正使用監視サーバ102の特徴量受信処理について、図18を用いて説明する。図18は、不正使用監視サーバ102の特徴量受信処理のフロー図である。
まず、不正使用監視サーバ102の特徴量受信部206が、特徴量登録要求を受信し(ステップ1801)、この要求に含まれる、特徴量、ユーザ情報、端末情報、この特徴量を抽出したときの特徴量抽出プログラムのバージョン情報を特徴量蓄積部207の特徴量テーブル300に保存して、処理を終了する(ステップ1802)。
以上のように、不正使用監視サーバ102は、特徴量受信処理を行う。
次に、不正使用監視サーバ102の不正使用検出処理について、図19を用いて説明する。図19は、不正使用監視サーバ102の不正使用検出処理のフロー図である。
まず、不正使用監視サーバ102の特徴量比較部208が特徴量蓄積部207の特徴量テーブル300から特徴量301、ユーザ情報303、端末情報304、特徴量を抽出するときに用いた特徴量抽出プログラムのバージョン情報302を取りだす(ステップ1901)。
続いて、特徴量比較部208は、バージョン情報302を特徴量抽出プログラム更新部209に通知する(ステップ1902)。
これに対して、特徴量抽出プログラム更新部209は、バージョン情報302に基づき、指定されたバージョンの特徴量抽出プログラムを特徴量抽出部210にインストールする(ステップ1903)。
続いて、特徴量抽出部210は、プログラム蓄積部217から、プログラムをひとつ取り出し(ステップ1904)、プログラムの特徴量を抽出し、プログラムの名称と特徴量を特徴量比較部208へ通知する(ステップ1905)。
これに対して、特徴量比較部208は、特徴量抽出部210から通知された特徴量と、特徴量テーブル300に蓄積された特徴量301とを比較し(ステップ1906)、一致しない場合には(ステップ1907)、2つの特徴量を抽出する元になったプログラムは同一のプログラムではないと判断して、ステップ1911に移る。
また、特徴量比較部208から通知された特徴量と、特徴量テーブル300に蓄積された特徴量301とが一致した場合には、実行禁止判定部211が、ユーザ情報303とプログラムの名称に基づいて、ユーザ登録されているプログラムであるかどうかを確認する(ステップ1908)。
プログラムが登録されている場合は(ステップ1909)、実行禁止判定部211は、ユーザをそのプログラムの正規のユーザであると判断し、ユーザ端末103にプログラムの実行を許可する指示を示す制御信号を送信し(ステップ1910)、ステップ1912に進む。
もし、プログラムが登録されていない場合には、実行禁止判定部211は、そのプログラムをユーザが不正に利用していると判断し、そのユーザ端末103にそのプログラムの実行を禁止する指示を示す制御信号を送信する(ステップ1911)。
なお、本実施の形態では、実行禁止判定部211がユーザ端末103に対して、プログラムの実行許可の指示と実行禁止する指示を切り替える制御信号を送信する形態で説明したが、実行禁止判定部211がユーザ端末103に対して、プログラムの実行許可の指示と実行禁止の指示とを別の信号で送信する形態であっても良い。
また、実行禁止判定部211がユーザ端末103に対して、プログラムの実行許可の指示と実行禁止の指示のどちらか一方を送る形態であっても良い。詳細には、デフォルトでは実行を許可しておき、禁止時のみ、実行禁止判定部211がユーザ端末103に対して、禁止通知の通知を行っても良いし、デフォルトで実行を禁止しておき、正規ユーザのみ実行を許可する許可通知を送信しても良い。
続いて、特徴量比較部208が、特徴量蓄積部207の特徴量テーブル300にまだ特徴量を比較していない他のプログラムがあるかチェックして(ステップ1912)、あった場合はステップ1901に戻り、ない場合には、本処理を終了する。
以上のように、不正使用監視サーバ102は、不正使用検出処理を行う。これにより、ユーザ端末103が正規のユーザの端末か否か判断でき、プログラムの不正使用を防止できる。
以上説明したように、本実施の形態によれば、特徴量抽出プログラムを定期的に更新できるので、プログラムから特徴量を抽出する部分の特定が困難になる。つまり、仮に、同一性を判定するための特徴量を変化させるようにプログラムを改変されたとしても、特徴量抽出プログラムが更新されることにより、改変したプログラムは特徴量を用いた同一性判定を逃れられなくなる。すなわち、プログラムを改変したとしても特徴量を用いた同一性判定を逃れられるのは、一定期間のみとなる。これにより、プログラムの不正使用を防止できる。
また、本実施の形態は、プログラムの特徴量を利用する方式を用いているため、柔軟性、利便性に優れたプログラムの不正使用防止法を提供できる。
本発明のように、特徴量を用いて不正使用方法において、プログラム特徴量抽出方法を定期的に更新することにより、柔軟性、利便性に優れ、かつ、プログラムの改ざんがあった場合でも、プログラムの不正使用を防止することができる。これは、プログラムの著作権保護装置等として有用である。
本発明の一実施の形態にかかるプログラム不正使用防止システムをあらわす概略図 本実施の形態にかかるプログラム配布サーバの構成図 本実施の形態にかかる不正使用監視サーバの構成図 本実施の形態にかかるユーザ端末の構成図 本実施の形態にかかる特徴量蓄積部に蓄積される特徴量テーブルの構成図 本実施の形態にかかるユーザ情報テーブルの構成図 本実施の形態にかかる特徴量蓄積部に格納される特徴量テーブルの構成図 本実施の形態にかかるプログラム不正使用防止システムにおけるプログラムの不正使用防止処理のシーケンス図 本実施の形態にかかるプログラム配布サーバのプログラム登録要求処理のフロー図 本実施の形態にかかる不正使用監視サーバにおけるプログラム登録処理のフロー図 本実施の形態にかかるユーザ端末のプログラム取得処理のフロー図 本実施の形態にかかるプログラム配布サーバのプログラム配布処理のフロー図 本実施の形態にかかる不正使用監視サーバのユーザ登録処理のフロー図 本実施の形態にかかる不正使用監視サーバの特徴量抽出プログラム配布処理のフロー図 本実施の形態にかかるユーザ端末の特徴量抽出プログラム更新処理のフロー図 本実施の形態にかかるユーザ端末のプログラム起動処理のフロー図 本実施の形態にかかるユーザ端末の特徴量送信処理のフロー図 本実施の形態にかかる不正使用監視サーバの特徴量受信処理のフロー図 本実施の形態にかかる不正使用監視サーバの不正使用検出処理のフロー図
符号の説明
100 プログラム不正使用防止システム
101 プログラム配布サーバ
102 不正使用監視サーバ
103 ユーザ端末
201、217、229 プログラム蓄積部
202 プログラム配布部
203 プログラム登録部
204 プログラム受信部
206 特徴量受信部
207 特徴量蓄積部
208 特徴量比較部
209 特徴量抽出プログラム更新部
210 特徴量抽出部
211 実行禁止判定部
212 特徴量抽出プログラム蓄積部
213 特徴量抽出プログラム送信部
214 ユーザ登録受信部
215 ユーザ情報保存部
216 プログラム取得部
218 ユーザ登録送信部
219 ユーザ情報取得部
220 特徴量抽出部
221 特徴量抽出プログラム更新部
222 有効期限蓄積部
223 実行制御部
224 禁止リスト
225 暗号化部
226 プログラム実行部
227 特徴量送信部
228 特徴量蓄積部

Claims (14)

  1. プログラムと前記プログラムの正規ユーザとの組を複数登録したユーザ情報テーブルと、ユーザに対して前記プログラムの特徴量を抽出する特徴量抽出プログラムを送信する特徴量抽出プログラム送信部と、前記特徴量抽出プログラムを用いて抽出した前記ユーザが実行しようとするプログラムの特徴量を受信する特徴量受信部と、受信した前記特徴量と前記特徴量抽出プログラムを用いて抽出した前記ユーザ情報テーブルに登録した前記プログラムの特徴量と比較することで前記実行しようとするプログラムを特定する特徴量比較部と、前記ユーザ情報テーブルを参照し前記ユーザが特定した前記プログラムの正規ユーザであるか検出し、前記ユーザが前記正規ユーザでない場合は前記ユーザに対して前記特定したプログラムの実行を禁止させる制御信号を送信する実行禁止判定部と、を具備し、
    前記特徴量抽出プログラム送信部は、前記ユーザに送信する前記特徴量抽出プログラムを更新することを特徴とすることを特徴とするプログラム不正使用監視装置。
  2. プログラムの特徴量を抽出する特徴量抽出プログラムを更新する特徴量抽出プログラム更新部と、前記特徴量抽出プログラムを用いて実行するプログラムの特徴量を抽出する特徴量抽出部と、抽出した前記特徴量をプログラムの不正使用を監視する不正使用監視サーバへ送信する特徴量送信部と、前記不正使用監視サーバから送られてきた前記実行するプログラムの実行を禁止させる制御信号を受信し、前記制御信号に基づいて前記実行するプログラムの実行を禁止するプログラム実行制御部と、を具備したことを特徴とするユーザ端末。
  3. 前記特徴量抽出プログラムは有効期限もしくは有効回数を有し、前記プログラム実行制御部は前記有効期限もしくは有効回数を超過した場合に前記プログラムの実行を禁止することを特徴とする請求項2記載のユーザ端末。
  4. 前記特徴量抽出プログラムと前記有効期限もしくは有効回数を対応付けて格納するテーブルを具備し、前記特徴量抽出プログラム更新部は、前記有効期限もしくは有効回数を改変不可能な形式にて前記テーブルに保存することを特徴とする請求項3記載のユーザ端末。
  5. 前記特徴量送信部は、前記特徴量の送信を失敗した際に、所定期間後に再度前記特徴量の送信を試みることを特徴とする請求項2から請求項4のいずれかに記載のユーザ端末。
  6. 前記特徴量送信部は、前記特徴量の送信を失敗した際に、前記特徴量を改変不可能な形式に変換して保存することを特徴とする請求項5記載のユーザ端末。
  7. 前記特徴量は有効期限を有し、前記特徴量が前記有効期限を超過した場合には、前記特徴量送信部が前記特徴量の送信をやめることを特徴とする請求項2から請求項5のいずれかに記載のユーザ端末。
  8. 前記特徴量が前記有効期限を超過した場合には、前記プログラム実行制御部が前記プログラムの実行を禁止することを特徴とする請求項7記載のユーザ端末。
  9. 前記プログラム実行制御部は、実行を禁止した前記プログラムのリストを作成し保存することを特徴とする請求項2から請求項8のいずれかに記載のユーザ端末。
  10. 前記プログラム実行制御部は、前記リストを改変できない形式で保存することを特徴とする請求項9記載のユーザ端末。
  11. 前記プログラム実行制御部は、起動したプログラムが前記リストに含まれる場合には、前記起動したプログラムを停止することを特徴とする請求項9または請求項10記載のユーザ端末。
  12. 前記プログラム実行制御部は、前記プログラムが不正使用されていることをあらわす情報を提示することを特徴とする請求項2から請求項11のいずれかに記載のユーザ端末。
  13. 請求項1記載のプログラム不正使用監視装置と、請求項2から請求項12のいずれかに記載のユーザ端末と、を具備したことを特徴とするプログラム不正使用防止システム。
  14. プログラムと前記プログラムの正規ユーザとの組を登録しておき、ユーザが実行しようとするプログラムの特徴量と、登録してあるプログラムの特徴量を比較することにより前記ユーザが実行しようとするプログラムを特定し、前記ユーザが特定したプログラムの正規ユーザであるか検出するプログラム不正使用防止方法であって、
    前記ユーザが実行しようとするプログラムおよび前記登録してあるプログラムの特徴量を抽出する特徴量抽出方法を定期的に更新することを特徴とするプログラム不正使用防止方法。
JP2003397988A 2003-11-27 2003-11-27 プログラムの不正使用監視装置およびその方法 Pending JP2005157904A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003397988A JP2005157904A (ja) 2003-11-27 2003-11-27 プログラムの不正使用監視装置およびその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003397988A JP2005157904A (ja) 2003-11-27 2003-11-27 プログラムの不正使用監視装置およびその方法

Publications (1)

Publication Number Publication Date
JP2005157904A true JP2005157904A (ja) 2005-06-16

Family

ID=34722984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003397988A Pending JP2005157904A (ja) 2003-11-27 2003-11-27 プログラムの不正使用監視装置およびその方法

Country Status (1)

Country Link
JP (1) JP2005157904A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006279935A (ja) * 2005-03-04 2006-10-12 Ricoh Co Ltd 情報処理装置、その制御方法及びコンピュータ読取可能記録媒体
US7913258B2 (en) 2005-11-09 2011-03-22 Hitachi, Ltd. Information processing device and process control method
JP4663688B2 (ja) * 2007-06-26 2011-04-06 株式会社日立製作所 端末
JP2014135048A (ja) * 2013-01-08 2014-07-24 Panasonic Corp プログラムの正当性を確認するための確認方法及び、確認システム
JP2020091814A (ja) * 2018-12-07 2020-06-11 Kddi株式会社 プライバシーポリシー検証装置、コンピュータプログラム及びプライバシーポリシー検証方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006279935A (ja) * 2005-03-04 2006-10-12 Ricoh Co Ltd 情報処理装置、その制御方法及びコンピュータ読取可能記録媒体
JP4704233B2 (ja) * 2005-03-04 2011-06-15 株式会社リコー 情報処理装置及びその制御方法
US7913258B2 (en) 2005-11-09 2011-03-22 Hitachi, Ltd. Information processing device and process control method
JP4663688B2 (ja) * 2007-06-26 2011-04-06 株式会社日立製作所 端末
JP2014135048A (ja) * 2013-01-08 2014-07-24 Panasonic Corp プログラムの正当性を確認するための確認方法及び、確認システム
JP2020091814A (ja) * 2018-12-07 2020-06-11 Kddi株式会社 プライバシーポリシー検証装置、コンピュータプログラム及びプライバシーポリシー検証方法
JP7062581B2 (ja) 2018-12-07 2022-05-06 Kddi株式会社 プライバシーポリシー検証装置、コンピュータプログラム及びプライバシーポリシー検証方法

Similar Documents

Publication Publication Date Title
US7716474B2 (en) Anti-piracy software protection system and method
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
KR100615021B1 (ko) 콘텐츠 배포/수신 방법
US8769296B2 (en) Software signature tracking
EP1672554B1 (en) A method for blocking unauthorized use of a software application
EP1256042B1 (en) Method and system for secure downloading of software
KR101366277B1 (ko) 도메인에서 ro 이동을 위한 멤버쉽 확인 방법 및 장치
US20040117664A1 (en) Apparatus for establishing a connectivity platform for digital rights management
US20040107368A1 (en) Method for digital rights management including self activating/self authentication software
US20040225894A1 (en) Hardware based method for digital rights management including self activating/self authentication software
US20040117644A1 (en) Method for reducing unauthorized use 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
US20040117628A1 (en) Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content
EP1798656A2 (en) Locking of applications for specially marked content
US20070079373A1 (en) Preventing the installation of rootkits using a master computer
US20070118646A1 (en) Preventing the installation of rootkits on a standalone computer
US20040117631A1 (en) Method for digital rights management including user/publisher connectivity interface
JP2008146479A (ja) ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム
JP2007072969A (ja) 動作履歴保護装置及び動作履歴保護プログラム
JP2005157904A (ja) プログラムの不正使用監視装置およびその方法
CN101136048A (zh) 软件认证方法
WO2006101765A2 (en) Method for preventing unauthorized installation of a software product
JP6464544B1 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム
JP2015135703A (ja) デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム
KR101561655B1 (ko) Uci 기반 어플리케이션 불법복제 방지 방법 및 시스템