(57)【要約】【課題】本発明は、ドングルを用いてサーバ上のソフトウェアの不正利用を防止するライセンス制御を課題とする。【解決手段】サーバが異常停止した際に、ユーザ企業が予備のドングルを用いて速やかに前記ソフトウェアを再インストール可能であり、ベンダー企業がユーザ企業による不正を検出可能であり、不正が検出された場合は、ベンダー企業がネットワーク接続を介することなく前記ソフトウェアを停止できる方法を有すること、を特徴とするサーバライセンス制御方法。【選択図】図１
2018081513.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア提供者がインストールパッケージをソフトウェア使用者へ提供し、前記インストールパッケージは、インストーラーと、正規ドングルと、正規ライセンス情報と、予備ドングルと、予備ライセンス情報と、を有し、インストーラーは、ソフトウェア識別子と、ソフトウェアを格納するソフトウェアアーカイブと、を有し、正規ドングルは、正規ドングル識別子と、ドングルストレージと、を有し、正規ライセンス情報は、前記ソフトウェア識別子の複製と、前記正規ドングル識別子の複製と、を有し、予備ドングルは、予備ドングル識別子と、ドングルストレージと、を有し、予備ライセンス情報は、前記ソフトウェア識別子の複製と、前記予備ドングル識別子の複製と、不正確認期間と、を有し、前記ソフトウェア使用者は前記インストーラーと前記正規ドングルと前記正規ライセンス情報を用いて前記ソフトウェアをサーバへインストール可能であり、前記サーバにはドングルを接続可能であり、前記ドングルは前記正規ドングルもしくは前記予備ドングルのいずれかであり、前記ソフトウェアは、サービスモジュールと、不正監視モジュールと、ドングル識別子と、を有し、ドングル識別子は前記正規ドングル識別子もしくは前記予備ドングル識別子のいずれかと同一であり、前記ソフトウェアの実行中は前記サーバに接続された前記ドングルの有するドングル識別子と前記ソフトウェアの有するドングル識別子が一致していることを必要とし、前記不正監視モジュールは前記サーバと前記ドングルとの接続状態と前記ドングル識別子の一致状態を定期的に確認し、前記不正監視モジュールは前記ソフトウェア使用者による不正利用を検出した場合に、前記ソフトウェアを使用不能にすると同時に不正利用の検出されたことを前記ドングルの有する前記ドングルストレージに記録し、前記ソフトウェア使用者が前記ソフトウェアの再インストールを実施する場合は、前記正規ドングルを前記ソフトウェア提供者へ返還する必要があり、前記再インストールは前記インストーラーと前記予備ライセンス情報と前記予備ドングルを用いて実施可能であり、前記再インストールによる前記ソフトウェアが実行可能な期間は前記不正確認期間内に限定され、前記ソフトウェア提供者は前記ソフトウェア使用者から返還された前記正規ドングルの有する前記ドングルストレージの記録を読み取ることにより前記不正利用の有無を確認可能であり、前記不正利用が無と確認された場合のみ前記不正確認期間が終わるまでに正規アップグレード情報を前記ソフトウェア使用者へ提供し、前記ソフトウェア使用者が前記正規アップグレード情報を前記インストーラーから入力することにより前記再インストールされた前記ソフトウェアの実行可能な期間は前記不正確認期間内に限定されなくなり、前記入力により前記予備ドングルは新たな正規ドングルへ、前記予備ライセンス情報は新たな正規ライセンス情報へ更新され、前記ソフトウェア提供側は新たな予備ドングルと新たな予備ライセンス情報とを前記ソフトウェア使用者へ提供すること、を特徴とするサーバライセンス制御方法。
【請求項２】
前記ドングルの有するデータの読み書きは、前記ソフトウェア提供者のみが知るドングル鍵を用いた認証を必要とし、前記インストーラーと前記ソフトウェアが前記ドングル鍵を有することによって前記ドングルの有するデータの読み書きが可能であること、を特徴とする請求項１記載のサーバライセンス制御方法。
【請求項３】
前記ソフトウェアアーカイブは、前記ソフトウェア提供者のみが知るアーカイブ復号鍵によってのみ復号化可能な暗号化が施され、前記インストーラーが前記アーカイブ復号鍵を有することによって前記ソフトウェアアーカイブを復号化できること、を特徴とする請求項１又は２記載のサーバライセンス制御方法。
【請求項４】
前記正規ライセンス情報と前記予備ライセンス情報は、前記ソフトウェア提供者のみが知るライセンス復号鍵によってのみ復号化可能な暗号化が施され、前記インストーラーがライセンス復号鍵を有することによって前記正規ライセンス情報と前記予備ライセンス情報を復号化できること、を特徴とする請求項１乃至３のいずれか一項に記載のサーバライセンス制御方法。
【請求項５】
前記正規ライセンス情報と前記予備ライセンス情報は、同一のサービス内容情報を有し、前記インストールおよび前記再インストールの際に、前記サービス内容情報を用いて前記ソフトウェアをカスタマイズできること、を特徴とする請求項１乃至４のいずれか一項に記載のサーバライセンス制御方法。
【請求項６】
前記サーバのストレージ領域は、前記ソフトウェア使用者が読み書きすることの許される通常領域を有し、前記不正監視モジュールは前記接続状態と前記一致状態を確認した結果の履歴を、前記通常領域に記録すること、を特徴とする請求項１乃至５のいずれか一項に記載のサーバライセンス制御方法。
【請求項７】
前記サーバのストレージ領域は、前記ソフトウェア使用者が読み書きすることは前記不正利用とみなされる保護領域を有し、前記保護領域には、前記ソフトウェアが記録され、前記不正利用のあった際に前記ソフトウェアを使用不能にする方法が前記保護領域の全データ削除であること、を特徴とする請求項１乃至６のいずれか一項に記載のサーバライセンス制御方法。
【請求項８】
前記ソフトウェア使用者が前記ソフトウェアの使用を終える場合には、前記インストーラーに含まれるアンインストール機能を実行することにより前記ソフトウェアを前記サーバよりアンインストールし、前記インストーラーは前記アンインストールが完了したことを前記正規ドングルの有する前記ドングルストレージへ記録し、前記ソフトウェア提供者は前記ソフトウェア使用者から返還された前記正規ドングルの有する前記ドングルストレージの記録を読み取ることにより前記アンインストール完了の有無を確認可能であること、を特徴とする、請求項１乃至７のいずれか一項に記載のサーバライセンス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバにおけるソフトウェアの不正利用を防止し、適正な使用者のみ使用可能にするライセンス制御方法に関する。
【背景技術】
【０００２】
サーバとは、他のコンピュータに対しサービスを提供するコンピュータを指す。
【０００３】
サーバにおける前記サービスを実現するためのソフトウェアは、不正利用を防止するためのライセンス制御の行われることが望ましい。
【０００４】
前記不正利用とは、例えばライセンスに反する方法によるソフトウェアのコピー、実行、解析、変更のことである。
【０００５】
不正利用を防止するためのライセンス制御の方法としては、例えば、コンピュータに接続するドングルとよばれる小さなハードウェアキーを用いてパスワード照合を行うことによって不正検出する方法がある（特許文献１参照）。
【０００６】
ドングルにはコピーの困難なハードウェアが用いられるため、特定ソフトウェアが特定ドングルの接続されたコンピュータでのみ動作する仕組みを用いることによって、ソフトウェアの不正なコピーを防止することができる。
【０００７】
不正利用の防止方法としては、ドングルを用いる方法の他に、ネットワーク監視方式がある。ネットワーク監視方式では、ベンダー企業（ソフトウェア提供元）がユーザ企業（ソフトウェア利用者）のコンピュータを、ネットワークを介して監視することにより、不正利用を防止することができる。
【０００８】
しかし、サーバ上のソフトウェア特有の事情として、オンプレミス型のソフトウェア提供方法では、ユーザ企業自身が運用するサーバに対して、別のベンダー企業の提供するソフトウェアが導入されるため、その際、ユーザ企業は、セキュリティ管理を理由として、外部ベンダー企業が自社サーバをネットワークを介して監視することを認めない場合が多い。
【０００９】
よって、オンプレミス型でのライセンス制御方式としては、ドングルを用いる方式が主となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−１７５４６８
【発明の概要】
【発明が解決しようとする課題】
【００１１】
サーバにおいては、サービスを継続的に提供することが重要である。よって、サーバ上のソフトウェアに対するドングルを用いたライセンス制御は、サービスの継続的な提供を妨げない方式で行う必要がある。
【００１２】
一方で、サーバ上のソフトウェアのライセンスを制御するためには、不正行為の際にはソフトウェアを強制停止する必要がある。例えばそれは、ユーザ企業サーバのストレージ領域内にある、ベンダー企業の保護領域を守らなくてはならない場合である。
【００１３】
前記保護領域とは、ベンダー企業のソフトウェアやソフトウェアの動作のために必要な設定ファイルおよびデータの置かれたディレクトリのことである。また、保護領域を守るとは、ユーザ企業がライセンスに違反する形で保護領域内を閲覧したり変更を加えようとした際に、それを不正として検出することにより、ソフトウェアを強制停止したり、ベンダー企業の知財保護のために保護領域内の情報を消去したりすることである。
【００１４】
また、サーバが異常停止し、ソフトウェアの再インストールが必要となった場合、ユーザ企業は業務上なるべく早く再インストールを行う必要がある。一方、ベンダー企業としては、ユーザ企業の不正行為を原因とするサーバの異常停止であれば、ライセンス上、再インストールを認めないという手続きも取れなくてはならないし、それ以外の原因によるサーバの異常停止であれば、速やかに再インストールできる方法を提供できる必要がある。
【００１５】
ここで、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できない場合、ユーザ企業のサーバが異常停止した際に、ベンダー企業はそれがユーザ企業の不正行為によるソフトウェア強制停止が原因であるのか、それ以外のサーバ障害が原因であるのかをすぐに知ることはできない問題がある。
【００１６】
以上のように、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングルを用いてサーバ上のソフトウェアのライセンス制御を行う場合の課題は、サーバが異常停止した際に、ユーザ企業が速やかにソフトウェアの再インストールを実施できる方法を提供すると同時に、ベンダー企業はネットワークを介さない方法によってなるべく早く不正検出を行い、ユーザ企業による不正が検出された場合は、ベンダー企業がユーザ企業によって再インストールされたソフトウェアをネットワークを介さずに強制的に止められる方法を実現することであると言える。
【００１７】
また、同様の課題として、ベンダー企業の知財保護のためには、ベンダー企業とユーザ企業間のソフトウェアライセンス契約終了時に、ユーザ企業がソフトウェアのアンインストールを完了したかどうかを、ベンダー企業がネットワークを介さずに確認できる必要もある。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明に係るサーバライセンス制御方法は、ソフトウェア提供者が、インストールパッケージを、ソフトウェア使用者へ提供し、前記インストールパッケージは、インストーラーと、正規ドングルと、正規ライセンス情報と、予備ドングルと、予備ライセンス情報と、を有し、インストーラーは、ドングル鍵と、ライセンス復号鍵と、ソフトウェア識別子と、ソフトウェアアーカイブと、アーカイブ復号鍵と、を有し、正規ドングルは、正規ドングル識別子と、ドングルストレージと、を有し、正規ライセンス情報は、前記ソフトウェア識別子の複製と、前記正規ドングル識別子の複製と、サービス内容情報と、を有し、予備ドングルは、予備ドングル識別子と、ドングルストレージと、を有し、予備ライセンス情報は、前記ソフトウェア識別子の複製と、前記予備ドングル識別子の複製と、前記サービス内容情報の複製と、不正確認期間と、を有し、前記ソフトウェア使用者は前記インストーラーと前記正規ドングルと前記正規ライセンス情報を用いてソフトウェアをサーバへインストール可能であり、前記サーバにはドングルを接続可能であり、前記ドングルは前記正規ドングルもしくは前記予備ドングルのいずれかと同一であり、前記サーバはハードディスクを有し、前記ハードディスク内の領域は、通常領域と、保護領域と、のいずれかに分類することができ、前記通常領域はドングル接続履歴を有し、前記保護領域は、ソフトウェアを有し、前記ソフトウェアは、サービスモジュールと、不正監視モジュールと、ドングル識別子と、前記ドングル鍵と、前記サービス内容情報と、を有し、ドングル識別子は前記正規ドングル識別子もしくは前記予備ドングル識別子のいずれかと同一であり、前記ソフトウェアの実行中は前記サーバに接続された前記ドングルの有するドングル識別子と前記ソフトウェアの有するドングル識別子が一致していることを必要とし、前記不正監視モジュールは前記サーバと前記ドングルとの接続状態と前記ドングル識別子の一致状態を常時確認し、前記不正監視モジュールは前記接続状態と一致状態の確認結果を前記ドングル接続履歴へ記録し、前記不正監視モジュールは前記ソフトウェア使用者による不正利用を検出した場合に、前記ソフトウェアを使用不能にすると同時に不正利用の検出されたことを前記ドングルの有するドングルストレージに記録し、前記ソフトウェア使用者が前記ソフトウェアの再インストールを実施する場合は、前記正規ドングルを前記ソフトウェア提供者へ返還する必要があり、前記再インストールは前記インストーラーと前記予備ライセンス情報と前記予備ドングルを用いて実施可能であり、前記再インストールによる前記ソフトウェアが実行可能な期間は前記不正確認期間内に限定され、前記ソフトウェア提供者は前記ソフトウェア使用者から返還された前記正規ドングルの有するドングルストレージの記録を読み取ることにより前記不正利用の有無を確認可能であり、前記不正利用が無と確認された場合のみ前記不正確認期間が終わるまでに正規アップグレード情報を前記ソフトウェア使用者へ提供し、前記ソフトウェア使用者が前記正規アップグレード情報を前記インストーラーから入力することにより前記再インストールされたソフトウェアの実行可能な期間は前記不正確認期間内に限定されなくなり、前記入力により前記予備ドングルは新たな正規ドングルへ、前記予備ライセンス情報は新たな正規ライセンス情報へ更新され、前記ソフトウェア提供側は新たな予備ドングルと新たな予備ライセンス情報とを前記ソフトウェア使用者へ提供し、前記ソフトウェア使用者が前記ソフトウェアの使用を終える場合には、前記インストーラーに含まれるアンインストール機能を実行することにより前記ソフトウェアを前記サーバよりアンインストールし、前記インストーラーは前記アンインストールが完了したことを前記正規ドングルの有するドングルストレージへ記録し、前記ソフトウェア提供者は前記ソフトウェア使用者から返還された前記正規ドングルの有するドングルストレージの記録を読み取ることにより前記アンインストール完了の有無を確認可能であること、を特徴とする。
【発明の効果】
【００１９】
本発明によって、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングルを用いてサーバ上のソフトウェアのライセンス制御を行う場合であっても、ベンダー企業が一時的に利用可能な予備ドングルと予備ライセンス情報をユーザ企業へあらかじめ提供しておくことによって、サーバが異常停止した際にユーザ企業が速やかにソフトウェアの再インストールを実施できる。また、それと同時に、ベンダー企業はユーザ企業から返還される正規ドングル内の記録を解析することによって、ネットワークを介さずに不正検出を行うことができる。ここでは、予備ライセンス情報によって再インストールされたソフトウェアに短い利用期限を設け、利用期限の解除にはベンダー企業から提供される正規アップグレード情報を必要とすることにより、もしもユーザ企業が不正を隠すために正規ドングルを返還しなかった場合や、正規ドングル内の記録を解析した結果、ユーザ企業による不正が発見された場合には、正規アップグレード情報を提供しないことにより、ソフトウェアの使用を利用期限の終了を以って強制的に停止させることができる。
【００２０】
また、ライセンス契約終了時に、ユーザ企業がソフトウェアのアンインストールを完了したかどうかも、ベンダー企業がユーザ企業から返還される正規ドングル内の記録を解析することによって、ネットワーク接続なしに検出することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態であるサーバライセンス制御方法における、インストールパッケージの概略図である。
【図２】本発明の一実施形態であるサーバライセンス制御方法における、サーバのストレージ構成の概略図を示す。
【図３】本発明の一実施形態であるサーバライセンス制御方法における、ユーザ企業によるソフトウェアの不正コピーを防止する動作フローチャートの一例を示す図である。
【図４】本発明の一実施形態であるサーバライセンス制御方法における、ドングルストレージ内のデータを管理するテーブルの一例を示す図である。
【図５】本発明の一実施形態であるサーバライセンス制御方法における、ユーザ企業によるソフトウェアの不正実行を防止する動作フローチャートの一例を示す図である。
【図６】本発明の一実施形態であるサーバライセンス制御方法における、ドングル接続履歴を記録するテーブルの一例を示す図である。
【図７】本発明の一実施形態であるサーバライセンス制御方法における、ユーザ企業による保護領域の読み取り禁止が遵守されているかどうかを確認する動作フローチャートの一例を示す図である。
【図８】本発明の一実施形態であるサーバライセンス制御方法における、ソフトウェア異常停止時の、ユーザ企業による速やかな復旧と、ベンダー企業による不正アクセスの検出を両立させる動作フローチャートの一例を示す図である。
【図９】本発明の一実施形態であるサーバライセンス制御方法における、ソフトウェアアンインストール結果を確認する動作フローチャートの一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施形態を添付の図面を参照しながら説明する。
【００２３】
本実施形態においては、ベンダー企業が、ソフトウェアをユーザ企業へ提供し、ユーザ企業がそのソフトウェアをサーバ上にインストールして使用する際に、ユーザ企業によるソフトウェアの不正なコピー、実行、解析、変更を防ぐための実際の手順を解説することにより、本発明を説明する。
【００２４】
本実施形態においては、ユーザ企業がソフトウェアをインストールする際にインストールパッケージを用いることと、インストール先のサーバにおけるストレージ構成とを特徴とする。よって、以下ではまず図１と図２を用いてインストールパッケージとそのインストール先のサーバのストレージ構成について説明した後に、図３以降を用いてサーバライセンス制御方法の手順を説明する。
【００２５】
図１に、インストールパッケージ１００の概略図を示す。インストールパッケージ１００は、インストーラー１０１と、正規ドングル１０２と、正規ライセンス情報１０３と、予備ドングル１０４と、予備ライセンス情報１０５と、を有し、インストーラー１０１は、ドングル鍵１０６と、ライセンス復号鍵１０７と、ソフトウェア識別子１０８と、ソフトウェアアーカイブ１０９と、アーカイブ復号鍵１１０と、を有し、正規ドングル１０２は、正規ドングル識別子１１１と、ドングルストレージ１１２と、を有し、正規ライセンス情報１０３は、ソフトウェア識別子１０８の複製と、正規ドングル識別子１１１の複製と、サービス内容情報１１３と、を有し、予備ドングル１０４は、予備ドングル識別子１１４と、ドングルストレージ１１２と、を有し、予備ライセンス情報１０５は、ソフトウェア識別子１０８の複製と、予備ドングル識別子１１４の複製と、サービス内容情報１１３の複製と、不正確認期間１１５と、を有すること、を特徴とする。
【００２６】
図２に、サーバ２００のストレージ構成の概略図を示す。サーバ２００は、光学ドライブ２０１と、ドングル２０２と、ハードディスク２０３と、を有し、ドングル２０２は、正規ドングル１０２または予備ドングル１０４のいずれかであり、ドングル２０２は、ドングル識別子２０９と、ドングルストレージ１１２と、を有し、ドングル識別子２０９は、正規ドングル１０２の場合は正規ドングル識別子１１１と等しく、予備ドングル１０４の場合は予備ドングル識別子１１４と等しく、ハードディスク２０３内の領域は、通常領域２０４と、保護領域２０５と、のいずれかに分類することができ、通常領域２０４はドングル接続履歴２１０を有し、保護領域２０５は、ソフトウェア２０６を有し、ソフトウェア２０６は、サービスモジュール２０７と、不正監視モジュール２０８と、ドングル識別子２０９と、ドングル鍵１０６と、サービス内容情報１１３と、を有し、ドングル識別子２０９は正規ドングル識別子１１１または予備ドングル識別子１１４のいずれかであること、を特徴とする。
【００２７】
図２において、ソフトウェア２０６は、予備ドングル１０４を用いてインストールされた場合のみ、不正確認期間１１５を有することを特徴とする。
【００２８】
ここで、図１のインストールパッケージ１００を用いてサーバ２００へインストールされるソフトウェアが、図２のソフトウェア２０６である。
【００２９】
インストーラー１０１は、光学ディスク上に記録されており、ユーザ企業がソフトウェア２０６をインストールする際には、インストーラー１０１を、光学ドライブ２０１を用いて読み取り、インストーラー１０１を起動する。
【００３０】
インストーラー１０１は、サーバ２００上で動作するプログラムであり、実行の結果、ソフトウェア２０６をサーバ２００へインストールすること、およびサーバ２００からアンインストールすることが可能であるほか、別途ユーザ企業より提供されるアップグレード情報をソフトウェア２０６へ適用することもできる。
【００３１】
ソフトウェア２０６の有する不正監視モジュール２０８は、ユーザ企業による不正監視を担当し、その他の実際のサービスを提供する機能はサービスモジュール２０７が担当する。
【００３２】
ソフトウェアアーカイブ１０９は、サービスモジュール２０７と不正監視モジュール２０８をアーカイブしたデータであり、ベンダー企業のみが知るアーカイブ復号鍵１１０を用いてのみ復号可能な暗号化が施されている。
【００３３】
前記ソフトウェアアーカイブ１０９に関する前記暗号化方法としては、AESを用いる。
【００３４】
正規ドングル１０２は、正規ドングル識別子１１１と、ドングルストレージ１１２と、を有するＵＳＢメモリであり、サーバ２００のＵＳＢポートに接続して用いる。
【００３５】
正規ドングル識別子１１１は、書き換え不可能かつドングル毎に固有の値であり、外部から値を読み取るためには、ベンダー企業のみが知るドングル鍵１０６を用いた認証を必要とする。
【００３６】
正規ドングル１０２は、正規ドングル識別子１１１が書き換え不可能かつ固有であり、また、正規ドングル識別子１１１を読み取ることができるのはベンダー企業のみであるため、ユーザ企業が同一のドングルを複製することは不可能である。
【００３７】
ドングルストレージ１１２は記憶領域であり、読み書きを行うためには、ドングル鍵１０６を用いた認証を必要とする。
【００３８】
正規ライセンス情報１０３は、前記インストールの際に、正当性の認証と、サービス内容の決定のために用いられる記号列である。
【００３９】
正規ライセンス情報１０３は、ベンダー企業のみが知るライセンス復号鍵１０７を用いて復号可能な暗号化データであり、ユーザ企業は正規ライセンス情報１０３からソフトウェア識別子１０８と正規ドングル識別子１１１とサービス内容情報１１３とを個別に取り出して内容を読み取ることはできない。
【００４０】
前記正規ライセンス情報１０３に関する暗号化方法としては、AESを用いる。
【００４１】
ソフトウェア識別子１０８は、前記インストールの際にインストーラー１０１と正規ライセンス情報１０３の組が正当であるかどうかを照合するために、それぞれの有するソフトウェア識別子１０８の一致を確認する手順において用いられる。
【００４２】
正規ドングル識別子１１１は、前記インストールの際に正規ドングル１０２と正規ライセンス情報１０３の組が正当であるかどうかを照合するために、それぞれの有する正規ドングル識別子１１１の一致を確認する手順において用いられる。
【００４３】
サービス内容情報１１３は、サービスのコースや個数、ネットワーク設定情報などサービス提供のために必要な情報をコード化したデータであり、ベンダー企業はサービス内情報１１３を変更することにより、ソフトウェア２０６によってユーザ企業毎に提供するサービスをカスタマイズすることができる。
【００４４】
予備ドングル１０４と予備ライセンス情報１０５は、ソフトウェア異常停止によりユーザ企業がサーバ２００へソフトウェアの再インストールを実施する必要がある場合に用いられる。
【００４５】
予備ドングル１０４は、予備ドングル識別子１１４と、ドングルストレージ１１２と、を有するＵＳＢメモリであり、サーバ２００のＵＳＢポートに接続して用いる。
【００４６】
予備ドングル識別子１１４は、書き換え不可能かつドングル毎に固有の値であり、外部から値を読み取るためには、ベンダー企業のみが知るドングル鍵１０６を用いた認証を必要とする。
【００４７】
正規ドングル１０２と予備ドングル１０４は、初期状態においてはそれぞれ正規ドングル識別子１１１と予備ドングル識別子１１４のみが異なる同一のハードウェアである。
【００４８】
正規ドングル識別子１１１と予備ドングル識別子１１４が同一であることはなく、必ず固有の値となる。
【００４９】
予備ドングル識別子１１４は、前記再インストールの際に予備ドングル１０４と予備ライセンス情報１０５の組が正当であるかどうかを照合するために、それぞれの有する予備ドングル識別子１１４の一致を確認する手順において用いられる。
【００５０】
予備ライセンス情報１０５は、前記ライセンス復号鍵１０７を用いて復号可能な暗号化データであり、ユーザ企業は予備ライセンス情報１０５からソフトウェア識別子１０８と予備ドングル識別子１１４とサービス内容情報１１３と不正確認期間１１５を個別に取り出して内容を読み取ることはできない。
【００５１】
ソフトウェア識別子１０８は、前記再インストールの際にインストーラー１０１と予備ライセンス情報１０５の組が正当であるかどうかを照合するために、それぞれの有するソフトウェア識別子１０８の一致を確認する手順において用いられる。
【００５２】
予備ドングル識別子１１４は、前記再インストールの際に予備ドングル１０４と予備ライセンス情報１０５の組が正当であるかどうかを照合するために、それぞれの有する予備ドングル識別子１１４の一致を確認する手順において用いられる。
【００５３】
不正確認期間１１５は、再インストールしたソフトウェア２０６が実行可能な期間を定めるデータである。
【００５４】
図３は、ユーザ企業によるソフトウェアの不正なコピーを、インストールパッケージ１００とサーバ２００を用いて防止する動作フローチャートを示す図の一例である。以下、図３を用いて、ユーザ企業がソフトウェア２０６をサーバ２００へインストールする操作における、不正コピー防止動作について説明する。
【００５５】
ステップＳ３−１において、ユーザ企業は、ベンダー企業より提供された正規ドングル１０２をサーバ２００のＵＳＢポートへ接続し、ステップＳ３―２へ進む。
【００５６】
ステップＳ３−２において、ユーザ企業は、ベンダー企業より提供されたインストーラー１０１を含む光学ディスクをサーバ２００の光学ドライブ２０１にセットし、インストーラー１０１を起動し、ステップＳ３−３へ進む。
【００５７】
ステップＳ３−３において、インストーラー１０１は正規ドングル１０２がサーバ２００へ接続されているかどうかを確認する処理を行い、接続中であればステップＳ３−４へ、切断されていればステップＳ３−１４へ進む。
【００５８】
ステップＳ３−４において、インストーラー１０１はドングル鍵１０６を用いて正規ドングル１０２よりドングルストレージ１１２内に記録されたインストール済みフラグを読み出して、フラグの有無を判定し、フラグ無であればステップＳ３−５へ進み、フラグ有であればステップＳ３−１４へ進む。
【００５９】
図４は、ドングルストレージ１１２内のデータを管理するテーブルを示す。ドングルストレージ内データ管理テーブル４００において、データはＫｅｙと、Ｋｅｙに対応するＶａｌｕｅの組で管理される。
【００６０】
前記インストール済みフラグの有無は、インストール済みフラグ４０１をＫｅｙとする組におけるＶａｌｕｅ４０２が1であればフラグ有、０であればフラグ無と判定できる。なお、初期状態の正規ドングル１０２では、インストール済みフラグは無である。
【００６１】
ステップＳ３−５において、インストーラー１０１は、ユーザ企業に対して正規ライセンス情報１０３を入力するよう求め、ユーザ企業が正規ライセンス情報１０３を入力すると、ステップＳ３−６へ進む。
【００６２】
ステップＳ３−６において、インストーラー１０１は、ライセンス復号鍵１０７を用いて正規ライセンス情報を復号化し、その結果としてソフトウェア識別子１０８と正規ドングル識別子１１１とサービス内容情報１１３を取り出して、ステップＳ３−７へ進む。
【００６３】
ステップＳ３−７において、インストーラー１０１は、ステップＳ３−６において取り出したソフトウェア識別子１０８と、インストーラーの有するソフトウェア識別子１０８が一致しているかどうかを照合し、一致していればステップＳ３−８へ進み、不一致であればステップＳ３−１４へ進む。
【００６４】
ステップＳ３−８において、インストーラー１０１は、ドングル鍵１０６を用いて正規ドングル１０２より正規ドングル識別子１１１を読み出し、これとステップＳ３−６において取り出した正規ドングル識別子１１１とが一致しているかどうかを照合し、一致していればステップＳ３−９へ進み、不一致であればステップＳ３−１４へ進む。
【００６５】
ステップＳ３−９において、インストーラー１０１はインストール処理を開始し、ステップＳ３−１０へ進む。
【００６６】
ステップＳ３−１０において、インストーラー１０１は、ドングル鍵１０６と、ステップＳ３−６において取り出した正規ドングル識別子１１１と、サービス内容情報１１３と、をサーバ２００の保護領域２０５内へコピーし、また、ソフトウェアアーカイブ１０９をアーカイブ復号鍵１１０を用いて復号化して取り出したサービスモジュール２０７と不正監視モジュール２０８をサーバ２００の保護領域２０５内へコピーすることによってインストール処理を進め、ステップＳ３−１１へ進む。
【００６７】
ステップＳ３−１１において、インストーラー１０１は、ステップＳ３−１０におけるインストール処理が完了したかどうかを判断し、完了していればＳ３−１２へ進み、完了していなければＳ３−１０へ進む。
【００６８】
ステップＳ３−１２において、インストーラー１０１は、ドングル鍵１０６を用いて正規ドングル１０２の有するドングルストレージ１１２のインストール済みフラグ４０１のＶａｌｕｅ値４０２に対して、インストール済みフラグ有を示す値（１）を書き込み、ステップＳ３−１３へ進む。
【００６９】
ステップＳ３−１３において、インストーラーは通常終了する。
【００７０】
ステップＳ３−１４において、インストーラーは強制的に終了する。
【００７１】
以上、図３の動作フローチャートを用いて説明した方法により、ユーザ企業がソフトウェア２０６をサーバ２００へインストールするためには、サーバ２００に対する正規ドングル１０２の接続と、正規ライセンス情報１０３の入力を必要とし、また、正規ドングル１０２の有するドングルストレージ１１２のインストール済みフラグ４０１が無と記録されていることを必要とし、インストール完了時にはインストーラー１０１が前記インストール済みフラグ４０１を有と記録することによって、同一のインストーラー１０１と正規ドングル１０２と正規ライセンス情報１０３の組では、二度目以降のインストールを実行できないようにすることにより、ユーザ企業によるソフトウェアの不正コピーは防止される。
【００７２】
図５は、ユーザ企業がソフトウェア２０６のインストールされたサーバ２００のハードディスク２０３を複製し、前記複製されたハードディスクを別のサーバへ搭載することによって不正コピーしたソフトウェアを実行しようとした場合に、ソフトウェアの不正な実行が行われることを、インストールパッケージ１００とサーバ２００を用いて防止する動作フローチャートを示す図の一例である。以下、図５を用いて、ユーザ企業によるソフトウェア２０６の不正実行を防止する動作について説明する。
【００７３】
ステップＳ５−１において、ユーザ企業がソフトウェア２０６を起動すると、サービスモジュール２０７と不正監視モジュール２０８が処理を開始し、ステップＳ５−２へ進む。
【００７４】
ステップＳ５−２において、不正監視モジュール２０８はＴＤ秒間待機した後に、Ｓ５−３へ進む。
【００７５】
前記ＴＤ秒間は、例えば１０秒間とする。
【００７６】
ステップＳ５−３では、不正監視モジュール２０８は、ドングル２０２がサーバ２００へ接続されているかどうかを確認する処理を行い、切断されていればステップＳ５−４へ、接続中であればステップＳ５−５へ進む。
【００７７】
ステップＳ５−４では、不正監視モジュール２０８は、ステップＳ５−３における接続確認結果「切断」を、ドングル接続履歴２１０へ確認時刻とともに書き出して、ステップＳ５−８へ進む。
【００７８】
ステップＳ５−５では、不正監視モジュール２０８は、ドングル鍵１０６を用いてドングル２０２よりドングル識別子２０９を読み出し、これとソフトウェア２０６の有するドングル識別子２０９とが一致しているかどうかを照合し、一致していればステップＳ５−６へ進み、不一致であればステップＳ５−７へ進む。
【００７９】
ステップＳ５−６では、不正監視モジュール２０８は、ステップＳ５−５における照合結果「一致」を、ドングル接続履歴２１０へ照合時刻とともに書き出して、ステップＳ５−２へ進む。
【００８０】
ステップＳ５−７では、不正監視モジュール２０８は、ステップＳ５−５における照合結果「不一致」を、ドングル接続履歴２１０へ照合時刻とともに書き出して、ステップＳ５−８へ進む。
【００８１】
ステップＳ５−８では、不正監視モジュール２０８は、サービスモジュール２０７を終了することにより、ソフトウェア２０６を強制終了する。
【００８２】
図６は、ドングル接続履歴２１０を記録するテーブルを示す。ドングル接続履歴テーブル６００は時刻列６０１と結果列６０２を有し、１つの結果データは結果とその時刻の組として、時系列順に１行ずつ書き込まれる。時刻は年月日時分秒から成るＵＴＣ時刻で、結果は「切断」「一致」「不一致」の３通りである。本テーブルは、ユーザ企業が閲覧することができる。
【００８３】
以上、図５の動作フローチャートを用いて説明した方法により、サーバ２００上でソフトウェア２０６を実行するためには、インストール時に用いたドングル２０２がサーバ２００へ物理的に接続されていることを不正監視モジュール２０８が定期的に確認し、接続されていない場合はソフトウェア２０６を実行できないように処理することによって、ソフトウェア２０６が正しいドングル２０２の接続されていない他のサーバでは同時に動作することはなく、ユーザ企業によるソフトウェアの不正実行は防止される。
【００８４】
ユーザ企業は、ソフトウェア２０６が停止した場合、ドングル接続履歴２１０を閲覧することによって、不正実行を原因とする停止であるのか、他の故障による停止であるのかを判断することができる。
【００８５】
本実施形態においては、ベンダー企業のソフトウェア２０６をユーザ企業が不正に解析することを防ぐため、ベンダー企業はユーザ企業に対してソフトウェア２０６のインストールされたサーバ２００のハードディスク２０３の保護領域２０５内の読み取りを禁止することをソフトウェア２０６の提供条件として含めるものとする。図７は、前記条件がユーザ企業によって遵守されているかどうかを確認する動作フローチャートを示す図の一例である。以下、図７を用いて、ユーザ企業によるソフトウェア２０６の不正解析を防止する動作について説明する。
【００８６】
ステップＳ７−１では、ユーザ企業がソフトウェア２０６を起動すると、サービスモジュール２０７と不正監視モジュール２０８が処理を開始し、ステップＳ７−２へ進む。
【００８７】
ステップＳ７−２において、不正監視モジュール２０８はＴＡ秒間待機した後に、Ｓ７−３へ進む。
【００８８】
ステップＳ７−３において、不正監視モジュール２０８はユーザ企業が保護領域２０５内を読み取る不正アクセスがあったかどうかを確認し、不正ありの場合はステップＳ７−４へ進み、不正なしの場合はステップＳ７−２へ進む。
【００８９】
前記確認方法はサーバ２００のＯＳによって異なる。例えばUnixの場合、ｉｎｏｔｉｆｙプログラムを用いることにより容易に実現できる。
【００９０】
ステップＳ７−４において、不正監視モジュール２０８は、ドングル鍵１０６を用いてドングル２０２の有するドングルストレージ１１２の不正アクセスフラグ４０３のＶａｌｕｅ値４０４に対して、不正アクセス有を示す値（１）を書き込み、ステップＳ７−５へ進む。なお、初期状態のドングル２０２では、不正アクセスフラグ４０３は無を示す値（０）である。
【００９１】
ステップＳ７−５では、不正監視モジュール２０８は、保護領域内のデータを全て削除して、ステップＳ７−６へ進む。
【００９２】
ステップＳ７−６では、不正監視モジュール２０８は、サービスモジュール２０７を強制終了することによりソフトウェアを異常停止させて終了する。
【００９３】
以上、図７の動作フローチャートを用いて説明した方法により、ユーザ企業がソフトウェア２０６のインストールされたサーバ２００のハードディスク２０３の保護領域２０５内を読み取ろうとした場合は、不正監視モジュール２０８が保護領域２０５内を削除することにより、ベンダー企業の知財を守り、また、不正アクセスのあった証拠をドングル２０２内に記録することができる。
【００９４】
図７の動作フローチャートを用いて説明した方法により、不正アクセスのあった場合ソフトウェア２０６は異常停止するが、これはハードディスク２０３の故障など通常のサーバ障害を原因とする異常停止とは区別する必要がある。それは、不正アクセスを原因とする異常停止はソフトウェア２０６の提供条件に違反するため復旧できなくても構わないが、通常のサーバ障害を原因とする異常停止は速やかに復旧できる必要があるためである。ベンダー企業はソフトウェア２０６の異常停止後のドングル２０２内の不正アクセスフラグ４０３の値を確認することにより、不正アクセスがあったかどうかを確認できるが、サーバとベンダー企業のコンピュータがネットワーク接続されていない場合、確認には人の移動やドングルの受け渡しを介するため時間を要し、確認結果を待っていては復旧が遅れる問題がある。前記、復旧が遅れる問題を解決する方法を、次に、図８を用いて説明する。
【００９５】
図８は、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングル２０２を用いてサーバ２００上のソフトウェア２０６のライセンス制御を行う場合に、ベンダー企業がソフトウェア２０６をユーザ企業へ提供し、ソフトウェア２０６が異常停止して再インストールが必要な場合には、ユーザ企業は速やかにソフトウェア２０６を再インストール可能であり、ベンダー企業はネットワークを介さない方法によってなるべく早く不正アクセスの検出を行い、かつユーザ企業による不正アクセスが検出された場合はベンダー企業がユーザ企業のサーバ２００の復旧をネットワークを介さない方法によって強制的に止められる方法を実現する動作フローチャートを示す図の一例である。以下、図８を用いて、インストールパッケージ１００を用いたサーバライセンス制御方法と、不正アクセス時のソフトウェア異常停止およびサーバ復旧動作について説明する。
【００９６】
ステップＳ８−１において、ベンダー企業は、ユーザ企業へ提供するサービス内容を確定し、前記サービス内容を提供するために必要なソフトウェア２０６のインストールに必要なインストールパッケージ１００を作成し、ステップＳ８−２へ進む。
【００９７】
ステップＳ８−２において、ベンダー企業はユーザ企業へインストールパッケージ１００を提供し、ステップＳ８−３へ進む。なお、インストールパッケージ１００に含まれるインストーラー１０１は光学ディスク上にデータとして記録され、また、正規ドングル１０２と予備ドングル１０４はＵＳＢメモリであるため、これらは手渡しか郵送によって提供する。正規ライセンス情報と予備ライセンス情報とは紙面か電子メールによって提供する。
【００９８】
ステップＳ８−３において、ユーザ企業はインストーラー１０１と正規ドングル１０２と正規ライセンス情報１０３を用いて、ソフトウェア２０６をサーバ２００へインストールし、ステップＳ８−４へ進む。前記インストールの手順はこれまでに図３を用いて詳細に説明した。
【００９９】
ステップＳ８−４において、ユーザ企業がインストールしたソフトウェア２０６を起動すると、サービスモジュール２０７と不正監視モジュール２０８が処理を開始し、ステップＳ８−５へ進む。
【０１００】
ステップＳ８−５において、通常のサーバ障害が発生していればステップＳ８―７へ進み、そうでなければステップＳ８−６へ進む。なお、前記通常のサーバ障害とは、ハードディスク２０３の故障などソフトウェア２０６の異常停止を必ず伴い、かつ復旧にはソフトウェア２０６の再インストールを必要とする障害を指す。そうでない障害の場合、サーバ２００の再起動やソフトウェア２０６の再起動など他の方法によって復旧される。
【０１０１】
ステップＳ８−６において、不正監視モジュール２０８が不正アクセスの有無を定期的に確認し、不正ありの場合は、不正アクセスフラグにありを記録、保護領域を削除し、ステップＳ８−７へ進み、不正なしの場合はステップＳ８−５へ進む。前記不正アクセスの有無の定期的な確認方法はこれまでに図７を用いて詳細に説明した。
【０１０２】
ステップＳ８−７において、ソフトウェアは異常停止し、ステップＳ８−８へ進む。
【０１０３】
ステップＳ８−８において、ユーザ企業は異常停止したソフトウェアを復旧するための手続きとして、まず、サーバ２００に接続された正規ドングル１０２をサーバ２００から切断し、正規ドングル１０２をベンダー企業へ返還し、ステップＳ８−９とステップＳ−１６へ進む。ここで、以降Ｓ８−９からＳ８―１５まではユーザ企業側での動作、Ｓ８−１６からＳ８−１８まではベンダー企業側での動作として、平行して進む。
【０１０４】
ステップＳ８−９において、ユーザ企業は、インストーラー１０１と予備ドングル１０４と予備ライセンス情報１０５を用いて、ソフトウェア２０６をサーバ２００へ再インストールし、ステップＳ８−１０へ進む。
【０１０５】
前記再インストール作業は、サーバ２００が障害により故障している場合は別のサーバと交換、あるいはハードディスク２０３が故障している場合は別のハードディスクと交換した後に進められる。
【０１０６】
前記再インストール作業は、これまでに図３を用いて詳細に説明したインストール動作のうち、正規ドングル１０２を予備ドングル１０４に、正規ライセンス情報１０３を予備ライセンス情報１０５に、正規ドングル識別子１１１を予備ドングル識別子１１４に、置き換えた動作に加え、ステップＳ３−１０において、インストーラー１０１は、ステップＳ３−６において復号化され取り出すことのできる不正確認期間１１５もサーバ２００の保護領域２０６内へコピーすることによってインストール処理を進めるものとする。
【０１０７】
ステップＳ８−１０において、ユーザ企業が再インストールしたソフトウェア２０６を起動すると、サービスモジュール２０７と不正監視モジュール２０８が処理を開始し、ステップＳ８−１１へ進む。
【０１０８】
ステップＳ８−１１において、不正監視モジュール２０８はソフトウェア２０６起動直後より不正開始期間１１５の時間ＴＣが経過するまでの時間を計測し始めることによって、不正確認処理を開始し、ステップＳ８−１２へ進む。
【０１０９】
前記時間ＴＣは、例えば２週間である。
【０１１０】
ステップＳ８−１２において、再インストールされたソフトウェア２０６の起動直後よりまだ前記時間ＴＣが経過していない場合に限り、ユーザ企業は、もしもベンダー企業より提供された正規アップグレード情報があるならば、それをインストーラー１０１を用いてソフトウェア２０６に対して適用可能であり、正規アップグレード情報が適用されたことは不正監視モジュール２０８によって確認され、Ｓ８−１５へ進み、ベンダー企業より正規アップグレード情報が提供されていない場合はＳ８−１３へ進む。
【０１１１】
ステップＳ８−１３において、不正監視モジュール２０８は、再インストールされたソフトウェア２０６起動直後より前記時間ＴＣが経過したかどうかを確認し、経過していなければＳ８−１２へ進み、経過していればＳ８−１４へ進む。
【０１１２】
ステップＳ８−１４において、不正監視モジュール２０８は、保護領域２０５内の全データを削除し、ソフトウェア２０６を強制停止し、終了する。
【０１１３】
ステップＳ８−１５において、不正監視モジュール２０８は、不正確認処理を終了し、ユーザ企業はこれまで予備ドングルだったものを正規ドングルとして、これまで予備ライセンス情報だったものを正規ライセンス情報として取り扱うものとし、ベンダー企業より改めて提供される新しい予備ライセンスと新しい予備ドングルを予備として取り扱うものとし、ステップＳ８−５へ進む。
【０１１４】
ステップＳ８−１６において、ベンダー企業はユーザ企業より返還された正規ドングル１０２の有するドングルストレージ１１２の不正アクセスフラグ４０３のＶａｌｕｅ値４０４を読み出し、不正アクセスの有無を確認し、Ｖａｌｕｅが１の場合は不正アクセスありとしてステップＳ８−１８へ進み、Ｖａｌｕｅが０の場合は不正アクセスなしとしてステップＳ８−１７へ進む。
【０１１５】
ステップＳ８−１７において、ベンダー企業は正規アップグレード情報と、新しい予備ライセンス情報と、新しい予備ドングルをユーザ企業へ提供し、動作はユーザ企業側のステップＳ８−１２へ進む。
【０１１６】
ステップＳ８−１８において、ベンダー企業はユーザ企業に対してライセンス違反措置を実施し、終了する。
【０１１７】
以上、図８の動作フローチャートを用いて説明した方法により、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングル２０２を用いてサーバ２００上のソフトウェア２０６のライセンス制御を行う場合であっても、ソフトウェア２０６が異常停止した際に、ユーザ企業は予備ドングル１０４と予備ライセンス情報１０５を用いて速やかにソフトウェア２０６の再インストールが可能であり、同時に、ベンダー企業は前記不正確認期間１１５内に不正アクセスの検出を行うことができ、かつユーザ企業による不正アクセスが検出された場合は、ベンダー企業がユーザ企業に対して正規アップグレード情報を提供しないことによって、不正確認期間１１５が経過した後にプログラム２０６を強制的に止める方法を実現することができる。
【０１１８】
なお、図８のステップＳ８−８において、ユーザ企業が正規ドングル１０２をベンダー企業へ返還しなかった場合も、ライセンス違反としてベンダー企業は正規ドングルアップグレード情報をユーザ企業へ提供しない。
【０１１９】
図９は、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングル２０２を用いてサーバ２００上のソフトウェア２０６のライセンス制御を行う場合に、ライセンス契約終了時に、ユーザ企業がソフトウェア２０６のアンインストールを完了したかどうかを、ネットワーク接続なしに検出する動作フローチャートを示す図の一例である。以下、図９を用いて、前記アンインストール完了の確認動作について説明する。
【０１２０】
ステップＳ９−１において、ユーザ企業はサーバ２００上でインストーラー１０１を実行して、ソフトウェア２０６のアンインストールを開始し、ステップＳ９−２へ進む。
【０１２１】
ステップＳ９−２において、インストーラー１０１は前記アンインストールが正しく完了したかどうかを確認し、完了していなければステップＳ９−１へ進み、完了していればステップＳ９−３へ進む。
【０１２２】
ステップＳ９−３において、インストーラー１０１はアンインストールが完了したことを正規ドングル１０２のドングルストレージ１１２のアンインストール済みフラグ４０５のＶａｌｕｅ値４０６に対して、アンインストール済みフラグ有を示す値（１）を書き込み、ステップＳ９−４へ進む。
【０１２３】
前記アンインストール済みフラグの有無は、アンインストール済みフラグ４０５をＫｅｙとする組におけるＶａｌｕｅ４０６が1であればフラグ有、０であればフラグ無と判定できる。なお、初期状態の正規ドングル１０２では、アンインストール済みフラグは無である。
【０１２４】
ステップＳ９−４において、ユーザ企業は正規ドングル１０２をベンダー企業へ返還し、ステップＳ９−５へ進む。
【０１２５】
ステップＳ９−５において、ベンダー企業は正規ドングル１０２のドングルストレージ１１２のアンインストール済みフラグ４０５のＶａｌｕｅ値４０６を読み出して、アンインストール済みフラグの有無を判定し、フラグがあればステップＳ９−６へ進み、フラグがなければステップＳ９−７へ進む。
【０１２６】
ステップＳ９−６において、ライセンス契約は正しく終了する。
【０１２７】
ステップＳ９−７において、ベンダー企業はユーザ企業に対してライセンス違反措置を実施して、終了する。
[本実施形態の効果]
【０１２８】
以上のように、本実施形態では、インストールパッケージ１００は、インストーラー１０１と、正規ドングル１０２と、正規ライセンス情報１０３と、予備ドングル１０４と、予備ライセンス情報１０５と、を有し、サーバ２００のハードディスク２０３内の領域は、通常領域２０４と、保護領域２０５と、のいずれかに分類することができ、通常領域２０４はドングル接続履歴２１０を有し、保護領域２０５は、ソフトウェア２０６を有し、ソフトウェア２０６は、サービスモジュール２０７と、不正監視モジュール２０８を有するようにした。
【０１２９】
本実施形態によれば、ユーザ企業がソフトウェア２０６をサーバ２００へインストールするためには、サーバ２００に対する正規ドングル１０２の接続と、正規ライセンス情報１０３の入力を必要とし、また、正規ドングル１０２の有するドングルストレージ１１２のインストール済みフラグ４０１が無と記録されていることを必要とし、インストール完了時にはインストーラー１０１が前記インストール済みフラグを有と記録することによって、同一のインストーラー１０１と正規ドングル１０２と正規ライセンス情報１０３の組では、二度目以降のインストールを実行できないようにすることにより、ユーザ企業によるソフトウェアの不正コピーを防止することができる。
【０１３０】
また、本実施形態によれば、サーバ２００上でソフトウェア２０６を実行するためには、インストール時に用いたドングル２０２がサーバ２００へ物理的に接続されていることを不正監視モジュール２０８が常時確認し、接続されていない場合はソフトウェア２０６を実行できないように処理することによって、ソフトウェア２０６が正しいドングル２０２の接続されていない他のサーバでは同時に動作することはなく、ユーザ企業によるソフトウェアの不正実行を防止することができる。
【０１３１】
また、本実施形態によれば、ユーザ企業は、ソフトウェア２０６が停止した場合、ドングル接続履歴２１０を閲覧することによって、不正実行を原因とする停止であるのか、他の故障による停止であるのかを判断することができる。
【０１３２】
また、本実施形態によれば、ユーザ企業がソフトウェア２０６のインストールされたサーバ２００のハードディスク２０３の保護領域２０５内を読み取ろうとした場合は、不正監視モジュール２０８が保護領域２０５内を削除することにより、ベンダー企業の知財を守り、また、不正アクセスのあった証拠をドングル２０２内に記録することができる。
【０１３３】
また、本実施形態によれば、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングル２０２を用いてサーバ２００上のソフトウェア２０６のライセンス制御を行う場合であっても、ソフトウェア２０６が異常停止した際に、ユーザ企業は予備ドングル１０４と予備ライセンス情報１０５を用いて速やかにソフトウェア２０６の再インストールが可能であり、同時に、ベンダー企業は前記不正確認期間１１５内に不正アクセスの検出を行うことができ、かつユーザ企業による不正アクセスが検出された場合は、ベンダー企業がユーザ企業に対して正規アップグレード情報を提供しないことによって、不正確認期間１１５が経過した後にプログラム２０６を強制的に止める方法を実現することができる。
【０１３４】
また、本実施形態によれば、ベンダー企業がユーザ企業のサーバをネットワークを介して監視できず、ドングル２０２を用いてサーバ２００上のソフトウェア２０６のライセンス制御を行う場合に、ライセンス契約終了時に、ベンダー企業は正規ドングル１０２のドングルストレージ１１２の内容を確認することにより、ユーザ企業がソフトウェアのアンインストールを実行したかどうかを、ネットワーク接続なしに検出することができる。
【符号の説明】
【０１３５】
１００  インストールパッケージ
１０１  インストーラー
１０２  正規ドングル
１０３  正規ライセンス情報
１０４  予備ドングル
１０５  予備ライセンス情報
１０６  ドングル鍵
１０７  ライセンス復号鍵
１０８  ソフトウェア識別子
１０９  ソフトウェアアーカイブ
１１０  アーカイブ復号鍵
１１１  正規ドングル識別子
１１２  ドングルストレージ
１１３  サービス内容情報
１１４  予備ドングル識別子
１１５  不正確認期間
２００  サーバ
２０１  光学ドライブ
２０２  ドングル
２０３  ハードディスク
２０４  通常領域
２０５  保護領域
２０６  ソフトウェア
２０７  サービスモジュール
２０８  不正監視モジュール
２０９  ドングル識別子
２１０  ドングル接続履歴
４００  ドングルストレージ内データ管理テーブル
４０１  インストール済みフラグＫｅｙ
４０２  インストール済みフラグＶａｌｕｅ
４０３  不正アクセスフラグＫｅｙ
４０４  不正アクセスフラグＶａｌｕｅ
４０５  アンインストール済フラグＫｅｙ
４０６  アンインストール済みフラグＶａｌｕｅ
６００  ドングル接続履歴テーブル
６０１  時刻列
６０２  結果列
【図１】
2018081513.tif 000003
【図２】
2018081513.tif 000004
【図３】
2018081513.tif 000005
【図４】
2018081513.tif 000006
【図５】
2018081513.tif 000007
【図６】
2018081513.tif 000008
【図７】
2018081513.tif 000009
【図８】
2018081513.tif 000010
【図９】
2018081513.tif 000011