説明

ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム

【課題】管理者が提供するソフトウェア部品単独でその不正利用を防止することができるソフトウェア部品を提供する。
【解決手段】本発明に係るソフトウェア部品は、所定の機能を実行するソフトウェア部品において、ソフトウェア部品が実行されるときに、ソフトウェア部品の利用が不正な利用であるか否かを検査し、不正な利用の場合にはソフトウェア部品の利用を制限する不正検査モジュールを備えたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア管理方システムに係り、特に、各種のアプリケーションソフトウェアに「部品」として利用されるソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア管理システムに関する。
【背景技術】
【0002】
今日、ソフトウェアの開発形態として、適宜の単位で分割されたソフトウェアを部品として取り扱い(以下、この分割されたソフトウェアをソフトウェア部品という)、開発済みのソフトウェア部品を複数組み合わせることによって、新たなソフトウェアを効率良く開発する形態が多く用いられている。
【0003】
一方、ソフトウェアの大規模化に伴い、ソフトウェアの開発形態が垂直統合型から水平分業型に移行し、一つのソフトウェアを分担して複数の企業が開発することが多くなってきている。また、開発効率の改善のため、ソフトウェア部品の再利用が一般的に行われるようになった。このような状況の下、自社が開発したソフトウェア部品を他社に利用させる場合も多く、このような場合、ソフトウェア部品の「管理者」は、ソフトウェア部品の「利用者」の不正利用を防ぐため、通常は利用に関して一定の制限をつける必要がある。
【0004】
ここで、ソフトウェア部品の「管理者」とは、ソフトウェア部品の払い出し、利用状況の把握、バージョン管理、不具合や拡張についての情報収集とその通知、適用支援といった管理作業を行う作業者のことをいう。
【0005】
他方、ソフトウェア部品の「利用者」とは、ソフトウェア部品を利用してアプリケーションソフトウェアを開発する作業者のことをいう。アプリケーションソフトウェアを利用する立場のエンドユーザも、アプリケーションソフトウェアを利用することで間接的にソフトウェア部品を利用することになるが、ここではエンドユーザはソフトウェア部品の「利用者」には含まれないものとする。
【0006】
また、ソフトウェア部品の不正利用とは、例えば、想定外の顧客向けシステムへの転用、想定外の第3者への流出、契約期間すなわち予め定められた評価のための試用期間や運用期間を超えてのソフトウェア部品利用等を指す。
【0007】
ソフトウェア部品の利用に当たっては、「管理者」と「利用者」との間で契約を取り交わすことが一般的に行われる。この契約の中には、ソフトウェア部品の不正利用を禁止す内容が通常盛り込まれている。
【0008】
しかしながら、「利用者」が不注意で不正利用をしてしまう場合、例えば、契約期間をうっかり忘れて継続的にソフトウェア部品を利用し続けてしまう場合等、があり、このような人間系による誤りを完全に排除することは不可能である。また、悪意のある利用者が意図的にソフトウェア部品の不正利用を行った場合には、このような不正利用を直ちに停止させることは困難である。
【0009】
ソフトウェアの不正利用を防止する技術としては、例えば、特許文献1や特許文献2等に開示がある。
【0010】
特許文献1が開示する技術は、ネットワークに接続されたユーザ端末に対して、利用権承認サーバからネットワークを介して定期的にソフトウェアの利用権を付与または更新することでソフトウェアの不正利用を防止するというものである。ソフトウェアの利用を許可するための認証ファイルを付与又は定期的に更新することにより、利用権を付与または更新を行っている。
【0011】
また、特許文献2が開示する技術は、公開鍵データ、及び公開鍵に対応する秘密鍵で暗号化された機器識別データを用いてソフトウェアの実行の禁止或いは許可を制御する技術である。ソフトウェアの提供者は、ソフトウェアの提供時にその利用を許可する機器の機器識別データを秘密鍵で暗号化したデータを公開鍵と共に適宜の記録媒体の形態で利用者に提供する。利用者がソフトウェアを実行する際には、提供された公開鍵を用いて提供された機器識別データを復号し、復号した機器識別データとソフトウェアを実行させようとする機器固有の識別データとが照合され、これらの機器識別データが不一致の場合にはそのソフトウェアの実行を禁止するというものである。
【特許文献1】特開2004−213057号公報
【特許文献2】特開2000−105696号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
特許文献1が開示する技術では、利用権の付与・更新はネットワークを介して行われる。このため、ソフトウェアを利用する機器がネットワークに接続されていないとその機器での不正利用を防止できない。また、利用権の付与は、利用するソフトウェアとは別に認証ファイルの形態で提供されるため、ソフトウェアと認証ファイルとを対応付ける手段が別途必要となり非効率である。また、ソフトウェアと認証ファイルとが別々に提供されるため、整合のとれていないソフトウェアと認証ファイルとが誤って提供される可能性もあり、取り扱い上も不便である。
【0013】
また、特許文献2が開示する技術においても、暗号化された機器識別データと公開鍵とが記録された記録媒体と、利用しようとするソフトウェアとは別媒体で提供されるため、対応付けに人間系の作業が介在し、両者の対応付けに誤りが混入する可能性がある。
【0014】
また、特許文献1及び特許文献2が開示する技術は、不正利用を禁止するソフトウェアの単位はアプリケーションソフトウェアの単位である。このため、アプリケーションソフトウェアに組み込まれた下位レベルの単位、即ち、ソフトウェア部品のレベルまではその不正利用を排除できない。
【0015】
本発明は、上記事情に鑑みてなされたものであり、管理者が提供するソフトウェア部品単独でその不正利用を防止することができるソフトウェア部品、ソフトウェア部品管理システム、及びソフトウェア管理方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
上記課題を解決するため、本発明に係るソフトウェア部品は、請求項1に記載したように、所定の機能を実行するソフトウェア部品において、前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査し、不正な利用の場合には前記ソフトウェア部品の利用を制限する不正検査モジュールを備えたことを特徴とする。
【0017】
また、上記課題を解決するため、本発明に係るソフトウェア部品管理方法は、請求項6に記載したように、所定の機能を実行するソフトウェアの部品管理方法において、前記ソフトウェア部品は、前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査するステップと、不正な利用の場合には前記ソフトウェア部品の利用を制限するステップと、を実行することを特徴とする。
【0018】
また、上記課題を解決するため、本発明に係るソフトウェア部品管理システムは、請求項11に記載したように、所定の機能を実行するソフトウェア部品と、前記ソフトウェア部品がインストールされる部品利用端末と、前記部品利用端末と電気通信回線を介して接続される部品管理サーバと、を具備し、前記ソフトウェア部品は、前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査し、不正な利用の場合には前記ソフトウェア部品の利用を制限する不正検査モジュールを備えたことを特徴とする。
【発明の効果】
【0019】
本発明に係るソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア管理システムによれば、管理者が提供するソフトウェア部品単独でその不正利用を防止することができる。
【発明を実施するための最良の形態】
【0020】
本発明に係るソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア管理システムの実施形態について添付図面を参照して説明する。
【0021】
図1は、本実施形態に係るソフトウェア部品30の利用形態の一例を示す図である。
【0022】
ソフトウェア部品30は、管理者によって管理されており、ソフトウェア部品30の利用者は、管理者からソフトウェア部品30の提供を受け、これを利用する。
【0023】
ソフトウェア部品30の提供に際しては、一般に管理者と利用者との間でソフトウェア部品30の利用に関する契約が行われる。契約内容としては、例えば、ソフトウェア部品30をインストールして利用する機器(部品利用端末)を特定し、ソフトウェア部品30の利用期間を定める。この契約の履行を確実に行い、契約違反(ソフトウェア部品30の不正利用)を防止することが本実施形態の狙いである。
【0024】
ソフトウェア部品30の利用の形態としては、種々の形態が考えられるが、以下の説明では、パーソナルコンピュータ等の部品利用端末1が具備するアプリケーションソフトウェア10に組み込まれて利用される形態を例として説明する。
【0025】
部品利用端末1には、アプリケーションソフトウェア10の他、OS(オペレーティングシステム)20もインストールされている。
【0026】
ソフトウェア部品30は、所定の機能単位で分割されたプログラムであり、一般に汎用性を有するプログラムの機能単位のことをいう。装置における部品のように、ソフトウェア部品30を組合せることによって、或いはソフトウェア部品30の組合せにさらに新たなソフトウェアを付加することによって、特定の機能を有する大きなソフトウェア(アプリケーションソフトウェア10)を構築することができる。
【0027】
ソフトウェア部品30は、汎用性を有し部品として利用できる限りにおいては、種類や規模、数を限定するものではない。例えば、所定のデータ構造を有するデータベースへのアクセスプログラムや、フーリエ解析プログラム等の汎用性を有するプログラムはソフトウェア部品30となりうる。
【0028】
アプリケーションソフトウェア10は、ソフトウェア部品30を呼び出すために記述されたプログラムとして部品利用コード11を有しており、ソフトウェア部品30はこの部品利用コード11を介してアプリケーションソフトウェア10から適宜呼び出され、実行される。
【0029】
ソフトウェア部品30は、内部に不正検査モジュール40を具備しており、不正検出モジュール40でソフトウェア部品30の不正利用が検出された場合には、ソフトウェア部品30、或いはアプリケーションソフトウェア10の実行停止も含めた利用制限処理を行う。
【0030】
不正検査モジュール40の組み込みは管理者によって行われ、不正検査モジュール40が予め組み込まれたソフトウェア部品30が利用者に払いだされる。
【0031】
利用者が不正検査モジュール40を改竄しないように、ソフトウェア部品30はブラックボックス部品として提供する形態が好ましい。ブラックボックス部品の実現方法としては、例えば、ソフトウェア部品30をバイナリデータ形式とし、これを利用者に払いだす形態とすればよい。
【0032】
(2)ソフトウェア部品の構成及び動作
図2は、ソフトウェア部品30の構成例を示す図である。ソフトウェア部品30は、外部(部品利用コード11)からの呼び出しを受けるためのモジュール呼出しインタフェース301と、モジュール呼出しインタフェース301が呼ばれた際に起動されるソフトウェアモジュール31と、ソフトウェアモジュール31が起動する際に不正検査モジュール40を起動させるフックポイント302とを1以上備えて構成される。
【0033】
ソフトウェアモジュール31は、ソフトウェア部品30が本来実現すべき機能が記述されているソフトウェアモジュールである。サブルーチン、或いは関数と呼ばれることもあり、Java(登録商標)やC++等のオブジェクト指向言語ではメソッドと呼ばれることが多い。
【0034】
ソフトウェア部品30は一般的には複数のソフトウェアモジュール31から構成されるが、1つのソフトウェアモジュール31からなるソフトウェア部品30を排除するものではない。
【0035】
また、ソフトウェア部品30が複数のソフトウェアモジュール31を有する場合、いずれか1つのソフトウェアモジュール31を選択し、このソフトウェアモジュール31にモジュール呼出しインタフェース301、及びフックポイント302を具備させる形態としても良い。この場合、選択するソフトウェアモジュール31としては、ソフトウェア部品30の実行中に必ず呼び出されるモジュールが好ましい。必ず呼び出されるモジュールの例としては、ソフトウェア部品30の初期化や終了時の後処理のためのモジュールがある。例えば、Java、C++、C#等の言語では、コンストラクタ、デコンストラクタと呼ばれるモジュール(メソッド)がこれらに該当する。
【0036】
モジュール呼出しインタフェース301は、外部の部品利用ソフトウェア20から呼出しを受ける際に利用されるインタフェースである。Java、C++、C#等といった言語の“インタフェース”の個々のメソッド定義によって実現されるものである。
【0037】
フックポイント302は、ソフトウェアモジュール31が起動する際に、一旦ソフトウェアモジュール31の実行を一時中断し、不正検査モジュール40を起動させるフック手段の仕組みである。一般にフックとは、入力やメッセージを横取りして独自処理を行うことをいう。本実施形態では、ソフトウェアモジュール31の処理主導権を不正検査モジュール40が一旦横取りして奪い、不正検査モジュール40の処理が終了した時点でソフトウェアモジュール31の実行を再開する処理形態のものである。
【0038】
不正検査モジュール40は、利用状況取得モジュール401、判定モジュール402、利用制限モジュール403、及び不正判定データ404を備えている。
【0039】
上記のように構成されたソフトウェア部品30の動作(ソフトウェア部品管理方法)について図3および図4を用いて説明する。
【0040】
図3は、ソフトウェア部品30の処理の流れを示すフローチャートである。また、図4はソフトウェア部品30の構成図上に処理の流れを矢印で示した図である。なお、図4の矢印に付した丸で囲んだ数字は、図3のフローチャートにおけるステップ番号に対応している。
【0041】
ソフトウェア部品30が実行されるときには、アプリケーションソフトウェア10が有する部品利用コード11から呼び出しを受け、ソフトウェア部品30内のソフトウェアモジュール31が起動する。具体的には、モジュール呼出しインタフェース301を介してソフトウェアモジュール31が起動される(図3のステップST1)。
【0042】
次に、ソフトウェアモジュール31のフック手段(フックポイント302)により、処理が不正検査モジュール40に移行する。即ち、ソフトウェアモジュール31の実行が中断され、不正検査モジュール40が起動する(ステップST2)
不正検査モジュール40が起動すると、まず利用状況取得モジュール401が、ソフトウェア部品30の利用状況に関する情報を取得する(ステップST3)。ここで取得する利用状況とは、不正判定データ404として規定されている利用条件に対応するものである。
【0043】
前述したように、不正判定データ404としては、ソフトウェア部品30の利用が許可された機器(部品利用端末)の機器識別情報、利用が許可された期間等である。これらの情報は不正検査モジュール40の内部に不正判定データ404として記述或いは設定されている。なお、不正判定データ404の記述或いは設定は、管理者によって行われるものである。
【0044】
利用状況取得モジュール401は、これらの不正判定データ404に対応するデータとして、ソフトウェア部品30が実際にインストールされている機器(部品利用端末1)の機器識別情報や現在時刻情報をOS20から取得する。機器識別情報は、例えば、部品利用端末1のIPアドレスやMACアドレス等である。
【0045】
次に、判定モジュール402は、取得した機器識別情報や現在時刻情報が、不正判定データ404として規定されている利用条件に適合しているか否かを判定する(ステップST4)。
【0046】
取得した機器識別情報が許可されている機器識別情報と一致し、また、取得した現在日時情報が許可されている利用期間内であれば、ソフトウェア部品30の不正利用は無いと判定し、ソフトウェアモジュール31の実行を再開する(ステップST5’)。
【0047】
一方、取得した機器識別情報が許可されている機器識別情報と一致しない場合や、取得した現在日時情報が許可されている利用期間外の場合には、ソフトウェア部品30が不正利用されていると判定し、ステップST5へ進む。
【0048】
ステップST5では、利用制限モジュール403が、a)警告表示、b)不正利用の記録(ログ)、c)ソフトウェアモジュール31の実行停止、及びd)アプリケーションソフトウェア10の動作停止のうち少なくとも1つの処置を行い、ソフトウェア部品30の不正利用に対して制限(不正利用の抑止或いは不正利用の排除)を行う。
【0049】
ここで、警告表示とは、例えば、アプリケーションソフトウェア10の表示機能を利用して不正利用に対する警告表示を行うことである。この警告表示によって、例えば単なる不注意に起因するような不正利用の停止を促すことができる。
【0050】
また、不正利用の記録(ログ)とは、不正利用があった旨、その内容、その時刻等をログファイルとして適宜の記憶媒体に記録することである。不正利用の記録を自動的に行うことで、不正利用に対する抑止効果がある。また、警告表示とログとを併用することで、悪意の利用者に対する抑止効果はさらに高まる。
【0051】
ソフトウェアモジュール31の実行停止とは、ソフトウェアモジュール31の実行を再開させず、スキップしてソフトウェアモジュール31の呼び出し側に処理を戻すことである。アプリケーションソフトウェア10の動作は継続させる一方、ソフトウェア部品30が持つ本来の機能を利用させないようにすることができる。この処置によりソフトウェア部品30の機能を阻害し、ソフトウェア部品30の不正利用の停止を促すことができる。
【0052】
アプリケーションソフトウェア10の動作停止とは、ソフトウェア部品30を利用しているアプリケーションソフトウェア10の動作まで停止させることである。例えば、OSのシステムコールやプログラム言語が提供するライブラリの機能を利用したプロセスやスレッドの停止、或いは無限ループといった方法によりアプリケーションソフトウェア10の動作を停止させることができる。
【0053】
上記のように、本実施形態に係るソフトウェア部品30は、ソフトウェア部品30の不正利用を判定するための情報(不正判定データ404)と、不正を検出する手段(利用状況取得モジュール404、判定モジュール402)と、不正が検出された場合にとる処理の実行手段(利用制限モジュール403)とを備えており、人間系の管理では徹底できなかったソフトウェア部品30の不正利用を抑制し、ソフトウェア部品30を提供する管理者の利益を守ることができる。
【0054】
また、本実施形態に係るソフトウェア部品30は、ソフトウェア部品30自体に不正利用を判定するためのデータ(不正判定データ404)が埋め込まれている。このため、ソフトウェア部品30のファイルと不正判定データ用のファイルとがそれぞれ別ファイルとして供給される形態に比べると、不正判定データの改竄は困難となる。
【0055】
また、ソフトウェア部品30のファイルと不正判定データ用のファイルとが別ファイルで供給される場合には、両者の対応付け手段が必要となるが、本実施形態では不正判定データ404がソフトウェア部品30に組み込まれて利用者に供給されるため、対応付け手段が不要となる。また、人間系による対応付け作業も不要であるため、人的要因による誤りも発生しない。
【0056】
さらに、本実施形態に係るソフトウェア部品30では、ソフトウェア部品30が本来の機能を実行しようとする際に不正検査モジュール40が常に同時に起動されるため、ソフトウェア部品30のインストール時にだけ不正検出を行う方法に比べると、確実性の高い不正検出を実現できる。
【0057】
また、不正検査モジュール40は、ソフトウェア部品30が具備するソフトウェアモジュール31にフックポイント302を介して結合されているため、ソフトウェアモジュール31本来の動作に対して影響を与えることが無い。このため、不正検査モジュール40が不要となった場合には、ソフトウェアモジュール31に影響を与えることなく容易に削除できる。
【0058】
(2)ソフトウェア部品管理システム
上述したように、ソフトウェア部品30は、不正利用を検出するための不正判定データ404が予め組み込まれた状態で利用者に供給される。この不正判定データ404は、管理者と利用者との間の利用契約に基づくものであるが、利用契約は変更されうる。
【0059】
そこで、以下に述べるソフトウェア部品管理システム100の実施形態では、利用契約が変更された場合であっても、部品利用端末1の外部から電気通信回線を介してソフトウェア部品の内部の不正判定データ404を更新することができるように構成している。
【0060】
図5は、本実施形態に係るソフトウェア部品管理システム100のシステム構成例を示す図である。
【0061】
ソフトウェア部品管理システム100は、部品利用端末1と部品管理サーバ50とを備えて構成され、部品利用端末1と部品管理サーバ50とは相互に電気通信回線101を介して接続されている。
【0062】
部品管理サーバ50は管理者側に配置されるサーバであり、部品利用端末1は利用者側に配置される端末装置である。
【0063】
部品管理サーバ50は、ユーザインタフェース部51、更新処理部52、通信処理部53、秘密鍵54、及び部品情報管理部55を備えて構成されている。
【0064】
ユーザインタフェース部51は、管理者からの指示を入力すると共に各種情報を表示する手段であり、例えば、キーボード、ポインティングデバイス、ディスプレイ装置(何れも図示せず)等から構成されている。
【0065】
更新処理部52では、ユーザインタフェース部51から入力された指示に基づいて、ソフトウェア部品30の不正判定データ404を更新するための更新用不正判定データを作成する。また、作成した更新用不正判定データからハッシュ値(メッセージダイジェストと呼ばれることもある)を作成し、このハッシュ値を暗号化する。
【0066】
部品情報管理部55は、ソフトウェア部品30の管理情報が保存されているデータベースであり、更新用不正判定データを作成するときに利用される。
【0067】
秘密鍵54は、管理者側に保管される暗号鍵であり、更新処理部52では秘密鍵54を用いて更新用不正判定データのハッシュ値を暗号化する。
【0068】
通信処理部53は、更新用不正判定データと暗号化されたハッシュ値とを、電気通信回線101を介して、部品利用端末1に送信する。
【0069】
ソフトウェア部品管理システム100は、不正判定データ404を外部から更新可能とするものであり、このために管理者から利用者に提供されるソフトウェア部品30の不正検査モジュール40には、更新用の機能が付加されている。以下、更新機能付きのソフトウェア部品30、及び不正検査モジュール40を夫々ソフトウェア部品30a、及び不正検査モジュール40aと呼ぶことにする。
【0070】
図6は、本実施形態に係るソフトウェア部品管理システム100の構成例を示す図であり、特に図5に対してソフトウェア部品30aの内部構成をより詳しく示している。
【0071】
本実施形態に係るソフトウェア部品30aには、前述したソフトウェア部品30に対してデータ更新インタフェース405が付加されている。また、不正検査モジュール40aには、前述した不正検査モジュール40に対して、認証モジュール406、及び不正判定データ更新モジュール407が付加されている。
【0072】
データ更新インタフェース405は、ソフトウェア部品30aの外部、例えば、アプリケーションソフトウェア10に設けられるネットワークアダプタ21から呼び出しを受けるときに利用されるインタフェースである。部品管理サーバ50から送られてくるデータを不正検査モジュール40a内の認証モジュール406、及び不正判定データ更新モジュール407に引き渡す。
【0073】
認証モジュール406は、部品管理サーバ50から送られてくるデータに対して、公開鍵408を用いた認証を行う機能モジュールである。公開鍵408は、部品管理サーバ50が具備する秘密鍵54と対になるものである。
【0074】
不正判定データ更新モジュール407は、認証が成功した場合に、更新用不正判定データを用いて不正判定データ404を更新する機能モジュールである。
【0075】
上記のように構成されたソフトウェア部品管理システム100の動作、特に、不正判定データ404の更新方法について図7および図8を用いて説明する。
【0076】
図7は、不正判定データ404の更新方法の一例を示すフローチャートである。また、図8は、ソフトウェア部品管理システム100の構成図上に、丸で囲んだ数字を追記したものであり、数字は図7のフローチャートにおけるステップ番号に対応している。
【0077】
まず、ステップST1にて、ユーザインタフェース部51を介して、更新すべきソフトウェア部品30aが管理者から指定される。
【0078】
次に、指定されたソフトウェア部品30aの不正判定データ404(更新前)がユーザインタフェース部51に表示される(ステップST2)。表示される不正判定データ404は、前述したように利用を許可した機器の機器識別情報や利用を許可した期間等である。
【0079】
管理者は、適宜不正判定データ404を修正して更新用不正判定データを作成した後、部品利用端末1に送信するように指示する(ステップST3)。
【0080】
更新処理部52は、更新用不正判定データのハッシュ値を求め、さらにハッシュ値を、秘密鍵54を用いて暗号化する(ステップST4)。
【0081】
また、更新処理部52は、部品情報管理部55からソフトウェア部品30aを特定するID(識別情報)、及びソフトウェア部品30aがインストールされている部品利用端末1の通信アドレスを取得した後、通信処理部53に対して送信を指示する(ステップST5)。
【0082】
その後、通信処理部53は、更新用不正判定データ、ソフトウェア部品30aのID、及び暗号化されたハッシュ値を、通信アドレスを参照して部品利用端末1に送信する(ステップST6)。以上のステップST1からステップST6までの処理は、部品管理サーバ50で行われる処理である。
【0083】
送信されたデータは、部品利用端末1のOS20を介してアプリケーションソフトウェア10に伝達される。アプリケーションソフトウェア10に設けられているネットワークアダプタ21は、ソフトウェア部品30aのIDを参照し、該当するソフトウェア部品30aを特定し、データ更新インタフェース405を介して、ソフトウェア部品30aの不正検査モジュール40aに更新用不正判定データ、及び暗号化されたハッシュ値を引き渡す(ステップST7)。
【0084】
不正検査モジュール40aの認証モジュール406では、更新用不正判定データからハッシュ値を求める一方、暗号化されたハッシュ値を公開鍵408を用いて復号化する(ステップST8)。
【0085】
その後、2つのハッシュ値が一致するか否かを判定する(ステップST9)。2つのハッシュ値が一致した場合が認証成功であり、不一致の場合は認証失敗である。
【0086】
認証成功の場合は、不正判定データ更新モジュール407は、部品管理サーバ50から送信されてきた更新用不正判定データを用いて、以前の不正判定データ404を更新し、新たな不正判定データ404とする(ステップST10)。
【0087】
一方、認証失敗の場合は、不正判定データ404の更新は行わない(ステップST11)。
【0088】
本実施形態に係るソフトウェア部品管理システム100によれば、契約変更等によって不正判定データ404の内容を変更する必要性が発生した場合であっても、電気通信回線101を介して、容易に不正判定データ404の内容を更新することができる。
【0089】
また、更新用不正判定データはそのハッシュ値と共に送信され、さらにそのハッシュ値は公開鍵暗号化方式で暗号化されているため、更新用不正判定データの改竄を防止できる。
【0090】
なお、本実施形態に係るソフトウェア部品管理システム100においても、ソフトウェア部品30aは単独でその不正利用を検出し、不正が検出された場合にはソフトウェア部品30aの実行停止やアプリケーションソフトウェア10の動作停止を含めた利用制限処理が行われる。このため、通常は部品利用端末1をスタンドアローンで動作させ、不正判定データ404を更新するときにだけ電気通信回線101を介して部品管理サーバ50に接続する形態でも良い。
【0091】
以上説明してきたように、本実施形態に係るソフトウェア部品30、及びソフトウェア部品管理方法によれば、管理者が提供するソフトウェア部品単独でその不正利用を防止することができる。
【0092】
また、本実施形態に係るソフトウェア部品管理システム100によれば、電気通信回線101を介して、ソフトウェア部品30aの内部に記録されている不正判定データ404を更新できるため、利用契約に変更が有った場合でもその変更を容易に、かつ迅速に反映することができる。
【0093】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【0094】
【図1】本実施形態に係るソフトウェア部品がインストールされる部品利用端末の構成例を示す図。
【図2】本実施形態に係るソフトウェア部品の構成例を示す図。
【図3】本実施形態に係るソフトウェア部品の動作例を示すフローチャート。
【図4】本実施形態に係るソフトウェア部品の処理の流れを構成図中に示す図。
【図5】本実施形態に係るソフトウェア部品管理システムの構成例を示す図。
【図6】本実施形態に係るソフトウェア部品管理システムの構成例を示す図であり、特に、そこで用いられるソフトウェア部品の構成例を詳細に示す図。
【図7】本実施形態に係るソフトウェア部品管理システムの動作例を示すフローチャート。
【図8】本実施形態に係るソフトウェア部品管理システムの処理の流れを構成図中に示す図。
【符号の説明】
【0095】
1 部品利用端末
10 アプリケーションソフトウェア
11 部品利用コード
20 オペレーションシステム(OS)
21 ネットワークアダプタ
30、30a ソフトウェア部品
31 ソフトウェアモジュール
301 モジュール呼出しインタフェース
302 フックポイント
40、40a 不正検査モジュール
401 利用状況取得モジュール
402 判定モジュール
403 利用制限モジュール
404 不正判定データ
405 データ更新インタフェース
406 認証モジュール
407 不正判定データ更新モジュール
408 公開鍵
50 部品管理サーバ
51 ユーザインタフェース部
52 更新処理部
53 通信処理部
54 秘密鍵
55 部品情報管理部
100 ソフトウェア部品管理システム

【特許請求の範囲】
【請求項1】
所定の機能を実行するソフトウェア部品において、
前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査し、不正な利用の場合には前記ソフトウェア部品の利用を制限する不正検査モジュールを備えたことを特徴とするソフトウェア部品。
【請求項2】
前記不正検査モジュールは、
前記ソフトウェア部品の利用条件が予め規定された不正判定データと、
前記ソフトウェア部品が実際に利用されている利用状況に関するデータを取得し、取得した利用状況が前記不正判定データにて規定された利用条件に適合するか否かを判断し、適合しない場合は、前記ソフトウェア部品の利用が不正な利用であると判定する判定モジュールと、
を備えたことを特徴とする請求項1に記載のソフトウェア部品。
【請求項3】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品のインストールが許可された機器の機器識別情報を含み、
前記判定モジュールは、前記ソフトウェア部品が実際にインストールされた機器の機器識別情報を、オペレーティングシステムを介して取得する、
ことを特徴とする請求項2に記載のソフトウェア部品。
【請求項4】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品の利用が許可された期間に関する情報を含み、
前記判定モジュールは、前記ソフトウェア部品が実際に利用される日時情報を、オペレーティングシステムを介して取得する、
ことを特徴とする請求項2に記載のソフトウェア部品。
【請求項5】
前記不正検査モジュールは、前記ソフトウェア部品の利用が不正な利用である場合には、前記ソフトウェア部品がインストールされた機器に、
前記ソフトウェア部品の利用が不正な利用である旨を表示させる手順、
前記ソフトウェア部品の不正な利用の内容を記録させる手順、
前記ソフトウェア部品の実行を停止させる手順、および
前記ソフトウェア部品が組み込まれているアプリケーションソフトウェアの動作を停止させる手順、
のうち少なくとも1つの手順を実行させることにより、前記ソフトウェア部品の利用を制限する、
ことを特徴とする請求項1に記載のソフトウェア部品。
【請求項6】
所定の機能を実行するソフトウェア部品の管理方法において、
前記ソフトウェア部品は、
前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査するステップと、
不正な利用の場合には前記ソフトウェア部品の利用を制限するステップと、
を実行することを特徴とするソフトウェア部品管理方法。
【請求項7】
前記ソフトウェア部品はその利用条件が予め規定された不正判定データを具備し、
前記検査するステップでは、
前記ソフトウェア部品が実際に利用されている利用状況に関するデータを取得するステップと、
取得した利用状況が前記不正判定データにて規定された利用条件に適合するか否かを判断するステップと、
適合しない場合は、前記ソフトウェア部品の利用が不正な利用であると判定するステップと、
を実行することを特徴とする請求項6に記載のソフトウェア部品管理方法。
【請求項8】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品のインストールが許可された機器の機器識別情報を含み、
前記取得するステップでは、前記ソフトウェア部品が実際にインストールされた機器の機器識別情報を、前記機器のオペレーティングシステムを介して取得する、
ことを特徴とする請求項7に記載のソフトウェア部品管理方法。
【請求項9】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品の利用が許可された期間に関する情報を含み、
前記取得するステップでは、前記ソフトウェア部品が実際に利用される日時情報を、前記機器のオペレーティングシステムを介して取得する、
ことを特徴とする請求項7に記載のソフトウェア部品管理方法。
【請求項10】
前記制限するステップでは、前記ソフトウェア部品の利用が不正な利用である場合には、
前記ソフトウェア部品の利用が不正な利用である旨を表示させる手順、
前記ソフトウェア部品の不正な利用の内容を記録させる手順、
前記ソフトウェア部品の実行を停止させる手順、および
前記ソフトウェア部品が組み込まれているアプリケーションソフトウェアの動作を停止させる手順、
のうち少なくとも1つの手順を実行することにより、前記ソフトウェア部品の利用を制限する、
ことを特徴とする請求項6に記載のソフトウェア部品管理方法。
【請求項11】
所定の機能を実行するソフトウェア部品と、
前記ソフトウェア部品がインストールされる部品利用端末と、
前記部品利用端末と電気通信回線を介して接続される部品管理サーバと、
を具備し、
前記ソフトウェア部品は、
前記ソフトウェア部品が実行されるときに、前記ソフトウェア部品の利用が不正な利用であるか否かを検査し、不正な利用の場合には前記ソフトウェア部品の利用を制限する不正検査モジュールを備えたことを特徴とするソフトウェア部品管理システム。
【請求項12】
前記不正検査モジュールは、
前記ソフトウェア部品の利用条件が予め規定された不正判定データと、
前記ソフトウェア部品が実際に利用されている利用状況に関するデータを取得し、取得した利用状況が前記不正判定データにて規定された利用条件に適合するか否かを判断し、適合しない場合は、前記ソフトウェア部品の利用が不正な利用であると判定する判定モジュールと、
を備えたことを特徴とする請求項11に記載のソフトウェア部品管理システム。
【請求項13】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品のインストールが許可された部品利用端末の機器識別情報を含み、
前記判定モジュールは、前記ソフトウェア部品が実際にインストールされた前記部品利用端末の機器識別情報を、オペレーティングシステムを介して取得する、
ことを特徴とする請求項12に記載のソフトウェア部品管理システム。
【請求項14】
前記不正判定データに規定された利用条件は、前記ソフトウェア部品の利用が許可された期間に関する情報を含み、
前記判定モジュールは、前記ソフトウェア部品が実際に利用される日時情報を、オペレーティングシステムを介して取得する、
ことを特徴とする請求項12に記載のソフトウェア部品管理システム。
【請求項15】
前記不正検査モジュールは、前記ソフトウェア部品の利用が不正な利用である場合には、前記ソフトウェア部品がインストールされた前記部品利用端末に、
前記ソフトウェア部品の利用が不正な利用である旨を表示させる手順、
前記ソフトウェア部品の不正な利用の内容を記録させる手順、
前記ソフトウェア部品の実行を停止させる手順、および
前記ソフトウェア部品が組み込まれているアプリケーションソフトウェアの動作を停止させる手順、
のうち少なくとも1つの手順を実行させることにより、前記ソフトウェア部品の利用を制限する、
ことを特徴とする請求項11に記載のソフトウェア部品管理システム。
【請求項16】
前記部品管理サーバは、
前記不正判定データを更新するための更新用不正判定データを、前記電気通信回線を介して前記部品利用端末に送信し、
前記部品利用端末の不正検査モジュールは、
前記不正判定データを、前記部品管理サーバから送信された前記更新用不正判定データ
によって更新する、
ことを特徴とする請求項12に記載のソフトウェア部品管理システム。
【請求項17】
前記部品管理サーバは、
前記更新用不正判定データのハッシュ値を算出し、算出されたハッシュ値を秘密鍵で暗号化した後、暗号化されたハッシュ値を前記更新用不正判定データと共に前記部品利用端末に送信し、
前記部品利用端末の不正検査モジュールは、
送信された前記更新用不正判定データからハッシュ値を求め、
求めた前記ハッシュ値と、前記部品管理サーバから送信された暗号化されたハッシュ値を前記秘密鍵に対応する公開鍵で復号化することで得られるハッシュ値と、が一致するか否かを判定し、
両ハッシュ値が一致した場合に、前記不正判定データを更新する、
ことを特徴とする請求項16に記載のソフトウェア部品管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate