(57)【要約】【課題】オンライン登録の必要がなく、特殊な専用のハードウェア，またはユニークなＩＤを有するハードウェアを必要とせず、ソフトウェアの不正なインストール及び使用を防止するソフトウェア不正使用防止システムを提供する。【解決手段】本発明のソフトウェア不正使用防止システムは、所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を記憶するスマートカード７と、所定の他論理演算式を記憶し、ソフトウェアのインストールを行うインストール制御部１とを有し、前記スマートカード７及びインストール制御部１が、各々が発生する乱数と前記論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカード７がソフトウェアのインストールが完了する毎に、前記ライセンス数を減少させることを特徴とする。【選択図】　　　図１
2004086588.tif 000002
【特許請求の範囲】
【請求項１】
所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を記憶するスマートカードと、
所定の他の論理演算式を記憶し、ソフトウェアのインストールを行うインストール制御部と
を有し、
前記スマートカード及びインストール制御部が、各々が発生する乱数と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールが完了する毎に、前記ライセンス数を減少させることを特徴とするソフトウェア不正使用防止システム。
【請求項２】
前記スマートカードが、インストール時に作成し、前記インストール制御部に書き込んだインストール識別番号と、前記インストール制御部から読み出したインストール識別番号とを比較し、一致しているこを検出すると、前記ソフトウェアのアンインストールを行い、アンインストールが完了すると、前記ライセンス数を増加させることを特徴とする請求項１記載のソフトウェア不正使用防止システム。
【請求項３】
インストールするソフトウェアのデータが分割されており、前記スマートカードが分割された一部のデータを記憶していることを特徴とする請求項１または請求項２に記載のソフトウェア不正使用防止システム。
【請求項４】
前記スマートカードが複数のソフトウェアのインストール情報を有していることを特徴とする請求項１から請求項３のいずれかに記載のソフトウェア不正使用防止システム。
【請求項５】
ソフトウェアをインストールしたコンピュータが障害を起こし、ソフトウェアの使用が行えなくなった場合、スマートカードの生成する、リカバリ有無情報，アンインストール回数情報，スマートカードを識別するカード識別番号を有するリカバリ情報に基づき、このスマートカードのライセンス数の復旧の可否を判定するライセンス復旧サーバを有することを特徴とする請求項１から請求項４のいずれかに記載のソフトウェア不正使用防止システム。
【請求項６】
所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を、スマートカードに記憶する記憶過程と、
所定の他の論理演算式をインストール制御部に記憶し、ソフトウェアのインストールを行うインストール過程と、
前記スマートカード及びインストール制御部において、各々が発生する乱数と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールを完了する毎に、前記ライセンス数を減少させるライセンス数制御過程と
を有することを特徴とするソフトウェア不正使用防止方法。
【請求項７】
前記スマートカードから、インストールするソフトウェアの分割された一部のデータを読み出す分割ソフトウェア読み出し過程を有していることを特徴とする請求項６記載のソフトウェア不正使用防止方法。
【請求項８】
所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を、スマートカードに記憶する記憶処理と、
所定の他の論理演算式をインストール制御部に記憶し、ソフトウェアのインストールを行うインストール処理と、
前記スマートカード及びインストール制御部において、各々が発生する乱数と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールを完了する毎に、前記ライセンス数を減少させるライセンス数制御処理と
を有することを特徴とするコンピュータにより実行可能なソフトウェア不正使用防止プログラム。
【請求項９】
請求項８に記載のソフトウェア不正使用防止プログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェアの不正使用、特に、ライセンス（使用許可）を有さない不正インストールを防止するソフトウェア不正使用防止システムである。
【０００２】
【従来の技術】
近年、パーソナルコンピュータが急速に普及し、これに伴い、多くのアプリケーションソフトウェアが記録媒体（コンパクトディスクなど）に記録され、またはネットワークを介して流通するようになっている。
しかしながら、プリケーションソフトウェアがデジタルデータであることで、容易にデータをコピーすることができ、ソフトウェアメーカの著作権が侵害される場合が多くなってきている。
【０００３】
このため、従来の不正使用の防止においては、ＣＤ（コード）キー（例えば、ライセンスキー，シリアルキーなど）を頒布ファイルに添付し、インストール時に利用者に入力させ、このＣＤキーをチェック、すなわち、記録媒体に記録されたＣＤキーとインストール時に入力されるＣＤキーとが一致しているか否かの比較を行うことで、記録媒体をコピーすることで行われる不正なインストールを防止する方法が用いられている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した防止方法では、ＣＤキーを記録媒体をコピーしたと同時に、ＣＤキーを何らかの方法で入手することにより、１つのライセンス（正当なＣＤキー）において、複数の違法記録媒体を用いて、容易に複数のコンピュータにインストールされてしまうこととなり、十分な防止効果を得ることが困難である。
【０００５】
このため、防止方法として、▲１▼インストール後の継続使用にオンラインでのサーバへの登録を必須とすることで、ライセンス単位の登録しか行えなくし、不正な使用者（不正インストールを行った利用者）の継続的な使用を制限する、▲２▼コンピュータに不正使用防止の特殊なハードウェアを接続する構成とし、このハードウェアとインストールしたソフトウェアとの間で識別番号などの認証処理を行い、識別番号が一致するなどしてソフトウェア使用の権限を有する（正当性を有する）ことが確認されたときのみソフトウェアの使用を許可する、▲３▼ユニークなＩＤを有しているハードウェア（例えば、ＬＡＮ（ローカルエリアネットワーク）カード）が接続されているコンピュータにインストールし、ソフトウェアが起動するとき、記憶しているＩＤと一致するハードウェアが接続されているか否かを判定することで、ハードディスクを丸ごとコピーして、他のコンピュータで使用することを防止する、等の防止方法が用いられている。
【０００６】
ところが、▲１▼の防止方法には、全ての利用者を管理するサーバやオペレータ及びコールセンタを用意する必要があり、ベンダにおける運営のコストが高くなるという問題があり、かつ、全てのユーザに対してオンライン登録を要求するが、ネットワークに接続されていないコンピュータに接続することができないという欠点がある。
【０００７】
また、▲２▼の防止方法には、対象となるソフトウェアを使用するコンピュータに対して、上述した専用のハードウェアを接続する構成とするため、ソフトウェアに必ずライセンス確認のハードウェアを添付する必要があり、ソフトウェアのパッケージの価格が高くなるという問題がある。
さらに、▲３▼の防止方法には、ユニークなＩＤを有している装置がコンピュータに接続されている必要があるが、いずれのコンピュータに必ずしもＬＡＮカードなどのユニークなＩＤを有するハードウェアが接続されているとは限らないため、ソフトウェアを使用できないコンピュータが存在するという問題がある。
【０００８】
本発明はこのような背景の下になされたもので、オンライン登録する必要がなく、また、特殊な専用のハードウェアを接続することなく、かつ、ユニークなＩＤを有するハードウェアを接続することなく、ソフトウェアの不正なインストール及び使用を防止することが可能なソフトウェア不正使用防止システムを提供する事にある。
【０００９】
【課題を解決するための手段】
本発明のソフトウェア不正使用防止システムは、所定の論理演算式（所定の第２の論理演算式）とインストール可能な回数を示すライセンス数とを有するインストール情報を記憶するスマートカードと、所定の他の論理演算式（所定の第１の論理演算式）を記憶し、ソフトウェアのインストールを行うインストール制御部とを有し、前記スマートカード及びインストール制御部が、各々が発生する乱数（第１の乱数及び材２の乱数）と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールが完了する毎に、前記ライセンス数を減少させることを特徴とする。
【００１０】
本発明のソフトウェア不正使用防止システムは、前記スマートカードが、インストール時に作成し、前記インストール制御部に書き込んだインストール識別番号と、前記インストール制御部から読み出したインストール識別番号とを比較し、一致しているこを検出すると、前記ソフトウェアのアンインストールを行い、アンインストールが完了すると、前記ライセンス数を増加させることを特徴とする。
【００１１】
本発明のソフトウェア不正使用防止システムは、インストールするソフトウェアのデータが分割されており、前記スマートカードが分割された一部のデータを記憶していることを特徴とする。
本発明のソフトウェア不正使用防止システムは、前記スマートカードが複数のソフトウェアのインストール情報を有していることを特徴とする。
【００１２】
本発明のソフトウェア不正使用防止システムは、ソフトウェアをインストールしたコンピュータが障害を起こし、ソフトウェアの使用が行えなくなった場合、スマートカードの生成する、リカバリ有無情報，アンインストール回数情報，スマートカードを識別するカード識別番号を有するリカバリ情報に基づき、このスマートカードのライセンス数の復旧の可否を判定するライセンス復旧サーバを有することを特徴とする。
【００１３】
本発明のソフトウェア不正使用防止方法は、所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を、スマートカードに記憶する記憶過程と、所定の他の論理演算式をインストール制御部に記憶し、ソフトウェアのインストールを行うインストール過程と、前記スマートカード及びインストール制御部において、各々が発生する乱数と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールを完了する毎に、前記ライセンス数を減少させるライセンス数制御過程とを有することを特徴とする。
本発明のソフトウェア不正使用防止方法は、前記スマートカードから、インストールするソフトウェアの分割された一部のデータを読み出す分割ソフトウェア読み出し過程を有していることを特徴とする。
【００１４】
本発明のソフトウェア不正使用防止プログラムは、所定の論理演算式とインストール可能な回数を示すライセンス数とを有するインストール情報を、スマートカードに記憶する記憶処理と、所定の他の論理演算式をインストール制御部に記憶し、ソフトウェアのインストールを行うインストール処理と、前記スマートカード及びインストール制御部において、各々が発生する乱数と前記各論理演算式とを用いたチャレンジレスポンス方式による認証処理を行い、インストールの可否を判定し、スマートカードがソフトウェアのインストールを完了する毎に、前記ライセンス数を減少させるライセンス数制御処理とを有することを特徴とするコンピュータにより実行可能なプログラムである。
本発明のソフトウェア不正使用防止プログラムが記録された媒体は、上記ソフトウェア不正使用防止プログラムが記録されたコンピュータが読み取り可能な記録媒体であることを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の一実施形態によるソフトウェア不正使用防止システムの構成を示すブロック図である。
この図において、インストール制御部１は、コンピュータＰＣにおいて、記憶部３に記憶されたインストーラにより、図示しないＣＰＵ（中央処理装置）が動作することで実現する機能部であるが、ハードウェアで構成されていてももかまわない。
【００１６】
記憶部３は、ソフトウェアがインストールされることにより、実行可能な状態で保存される。
また、記憶部３には、インストール時において、インストール制御部１の機能を実現するためのプログラムが展開される。
インターフェース４は、インストーラや，インストールするソフトウェアのデータを、ネットワークを介して入力する場合に用いられる。
ここでネットワークとは、情報通信網であり、インターネット，公衆及び専用の情報通信網（回線網）等から構成される。
そして、インストール制御部１は、インターフェース４を介して入力される各データ（インストールするソフトウェアのデータなど）を、記憶部３の所定の領域に格納する。
【００１７】
ここで、インストーラとは、ソフトウェアのインストール及びアンインストールの処理を行う機能を有するプログラムであり、インストールするソフトウェアに含まれており、インストール及びアンインストールするとき起動される。
また、インストーラには、スマートカード７の記憶部７ｂに記憶されているソフトウェアの識別番号に対応して、同様な識別番号が記憶されている。
すなわち、スマートカード７とインストールされるソフトウェアとは、このソフトウェアの識別番号で一対一対応するように構成されている。
【００１８】
記憶媒体読取器５は、記録媒体（コンパストディスク，ＤＶＤ（デジタル・ビデオ・ディスク）等）を介して、インストーラや，インストールするソフトウェアのデータを入力する場合に用いられ、読みとられた各データをインストール制御部１の制御により記憶部３に格納する。
カードインターフェース６は、スマートカード（またはＩＣ（集積回路）カード）７と、インストール制御部１との間で、信号の電圧レベルの変換等を行い、データの送受信（さらに、スマートカードの種類によって、データの書き込み，書き換え及び消去の処理を行うスマートカードリーダ／ライタの場合もある）を行うためのインターフェースであり、インストール／アンインストール／リカバリ処理を行う場合に各パーソナルコンピュータＰＣに接続して用いられる（必要のないときには取り外しておく）。
【００１９】
スマートカード７は、制御部７ａ及び記憶部７ｂから構成されており、制御部７ａがカードインターフェース６からの制御信号に従い、記憶部７ｂに対して、各データの書き込み，読み出し及び書き換えの処理を行う。
記憶部７ｂには、ソフトウェア毎に付けられた、ソフトウェアを識別する識別番号と、ソフトウェアのインストール回数を規定するライセンス数とからなるインストール情報が、工場からの出荷時に、予め記憶されている。
【００２０】
ここで、上記インストール回数は、１台のコンピュータにインストールした場合、ライセンス数を「１」使用したとして計算された数値であり、ライセンスを供与するパーソナルコンピュータの数、すなわちスマートカード７（実際は記憶部７ｂ）に記憶されている識別番号のソフトウェアをインストールできるコンピュータの数を示している。
インストール制御部１は、所定の演算により第２の乱数を発生し、この第２の乱数をスマートカード７へ送信し、スマートカード７においてこの第２の乱数に基づき、所定の第２の論理演算式により演算された第２の数値を入力し、この第２の数値と、自身で発生したこの第２の乱数に基づき所定の論理で演算した数値とを比較することにより、上記スマートカード７の認証を行い、双方の数値が一致していることを検出すると制御部７ａへ一致信号ＳＭを出力する。
【００２１】
また、スマートカード７の制御部７ａは、所定の演算により第１の乱数を発生し、この第１の乱数をインストール制御部１へ送信し、インストール制御部１においてこの第１の乱数に基づき、所定の第１の論理演算式により演算された第１の数値を入力し、この第１の数値と、自身で発生したこの第１の乱数に基づき所定の論理で演算した数値とを比較することにより、上記インストール制御部１の認証を行い、双方の数値が一致していることを検出すると制御部７ａへ一致信号ＳＮを出力する。
上述したインストール制御部１及びスマートカード７において、各々の論理演算式により相互を認証する方式を、チャレンジレスポンス方式とする。
インストール制御部１は、制御部７ａから一致信号ＳＮが入力され、かつ制御部７ａへ一致信号ＳＭを出力した場合、双方ともに認証されたことを検出して、ソフトウェアのインストール処理を開始する。
【００２２】
また、制御部７ａは、インストール制御部１から一致信号ＳＭが入力され、かつインストール制御部１へ一致信号ＳＮを出力した場合、双方において認証されたことを検出して、ライセンス数から「１」を減ずる（ライセンス数を削減する）処理を行う。
さらに、制御部７ａは、双方において識別番号が一致したことを検出すると、ユニーク（他と区別できる独自な）かつ不可逆なインストールＩＤを生成し、記憶部７ｂに保存するとともに、このインストールＩＤをインストール制御部１へ出力する。
ここで不可逆とは、生成された複数のインストールＩＤを解析しても、これらを生成した演算式を推定できない意味で使用している（例えば、ユニークな値を利用したハッシュ値生成、及び暗号化等を組み合わせた不可逆演算による生成方法）。
【００２３】
また、記憶部７ｂに分割されたインストールされるソフトウェアデータの分割された一部が記憶されており、制御部７ａはインストール処理が開始されると、カードインターフェース６を介してインストール制御部１に対して、このソフトウェアデータの一部を出力する。
すなわち、ソフトウェアのデータは、インストールに必要な全てが、ネットワーク及び記録媒体により供給されてもよく、または分割して流通させても良い。
そして、ソフトウェアのデータを分割した場合、この分割した一部のソフトウェアデータは、工場出荷時にスマートカード７の記憶部７ｂに記憶させて出荷されることになる。
また、記憶部７ｂには、工場出荷時に、スマートカード７を識別するカードＩＤが記憶されている。
【００２４】
スマートカード７の制御部７ａは、アンインストールが行われる場合、インストール時に作成し、インストール制御部１に送信したインストールＩＤ（記憶部３に、インストール制御部１及びカードインターフェース６を介して書き込んだインストールＩＤ）と、記憶部７ｂから読み出したインストールＩＤとを比較し、一致していることを検出すると、記憶部７ｂにおけるインストール情報のライセンス数に「１」加算する。
そして、制御部７ａは、インストールＩＤの比較が一致したことを検出すると、インストール制御部１に対してソフトウェアのアンインストールを要求する。
これにより、インストール制御部１は、ソフトウェアのアンインストールの処理を行う。
【００２５】
次に、図１、図２，図３及び図４を参照し、一実施形態の動作例を説明する。図２はインストールの動作例を示すフローチャートであり、図３はアンインストールの動作例を示すフリーチャートであり、図４は障害時のリカバリの動作例を示すフローチャートである。
＜インストール動作＞
前提として、インストール制御部１は、記録媒体読取器５またはネットワークから、インストールに必要なソフトウェアのデータを読み込み、このソフトウェアのデータを記憶部３に記憶している状態とする。
【００２６】
そして、利用者は、カードインターフェース６に、スマートカード７を挿入し、インストール作業を開始したとする。
図２に示すステップＳ１において、利用者がインストール作業の処理を要求する要求信号をパーソナルコンピュータＰＣへ入力することにより、インストール制御部１及び制御部７ａは、インストール処理を開始する。
そして、スマートカード７の制御部７ａは、所定の演算により第１の乱数を発生し、カードインターフェース６を介して、この発生した乱数をインストール制御部１へ送信する。
これにより、インストール制御部１は、内部において入力される第１の乱数を所定の第１の論理演算式に基づき演算して、新たな第１の数値を発生し、カードインターフェース６を介して、この新たな数値を制御部７ａへ送信する。
そして、制御部７ａは、内部においてこの第１の乱数に基づき所定の論理で演算した数値と、入力された新たな第１の数値とを比較することにより、インストール制御部１の認証を行い、演算した数値と入力された新たな第１の数値双方が一致していることを検出した場合、制御部７ａへ一致信号ＳＮを出力し、一致しないことを検出した場合、一致信号ＳＮを出力しない。
【００２７】
次に、ステップＳ２において、インストール制御部１は、所定の演算により第２の乱数を発生し、カードインターフェース６を介して、この乱数をスマートカード７へ送信する。
これにより、スマートカード７の制御部７ａは、この第２の乱数を所定の第２の論理演算式に基づき演算して、新たな第２の数値を発生し、カードインターフェース６を介して、この新たな第２の数値をインストール制御部１へ送信する。
そして、インストール制御部１は、内部においてこの乱数に基づき所定の論理で演算した数値と、入力された新たな第２の数値とを比較することにより、上記スマートカード７の認証を行い、双方の数値が一致していることを検出した場合、制御部７ａへ一致信号ＳＭを出力し、一致しないことを検出した場合、一致信号ＳＭを出力しない。
そして、ステップＳ３において、インストール制御部１は、制御部７ａから一致信号ＳＮが入力され、かつ制御部７ａへ一致信号ＳＭを出力すると、双方においてチャレンジレスポンス方式による認証が成功したことを検出する。
【００２８】
また、同様に、制御部７ａは、インストール制御部１から一致信号ＳＭが入力され、かつインストール制御部１へ一致信号ＳＮを出力すると、双方においてチャレンジレスポンス方式による認証が成功したことを検出する。
インストール制御部１及び制御部７ａ双方が認証したことを検出すると、インストール処理を行うため、処理はステップＳ４へ進む。
このとき、インストール制御部１及び制御部７ａ双方またはいずれか一方において、識別信号の一致が検出されないとき、以降の処理に必要な各データ及び信号が生成されないため、インストールの処理は終了する。
【００２９】
次に、ステップＳ４において、制御部７ａは、インストール制御部１とにおける相互の認証の成功を検出したため、記憶部７ｂのライセンス数を「１」減らして、ライセンスの提供が１つ終了したことを記憶部７ｂの所定の領域へ記録する。
これにより、スマートカード７を用いて、ソフトウェアのインストールが行える回数が１つ減少したこととなる。
そして、ステップＳ５において、制御部７ａは、ユニークかつ不可逆なインストールＩＤを生成し、記憶部７ｂの所定の領域に記憶するとともに、このインストールＩＤをインストール制御部１へ出力する。
【００３０】
次に、ステップＳ６において、インストール制御部１は、上記インストールＩＤを入力することにより、ソフトウェアのインストール処理を開始する。
このとき、インストール制御部１は、スマートカード７の制御部７ａに対して、記憶部７ｂに記憶されているインストールするソフトウェアの分割されたデータの送信を要求する要求信号を出力する。
そして、インストール制御部１は、分割されたデータが入力されたことを検出すると、この分割されたデータと、記録媒体読取器５から読み込んだソフトウェアのデータとを、記憶部３において結合し、インストールに必要なソフトウェアの完全なソフトウェアデータを生成し、このソフトウェアデータを用いてインストール処理を行う。
【００３１】
＜アンインストール動作＞
使用するコンピュータを変更するため、パーソナルコンピュータＰＣからソフトウェアをアンインストールすることとして説明を行う。
利用者は、カードインターフェース６にスマートカード７を挿入し、ソフトウェアのアンインストール作業を開始する。
【００３２】
図３に示すステップＳ１１において、利用者がアンインストール作業の処理を要求する要求信号をパーソナルコンピュータＰＣへ入力することにより、インストール制御部１及び制御部７ａは、アンインストール処理を開始する。
そして、スマートカード７の制御部７ａは、所定の演算により第１の乱数を発生し、カードインターフェース６を介して、この発生した乱数をインストール制御部１へ送信する。
これにより、インストール制御部１は、内部において入力される第１の乱数を所定の第１の論理演算式に基づき演算して、新たな第１の数値を発生し、カードインターフェース６を介して、この新たな数値を制御部７ａへ送信する。
そして、制御部７ａは、内部においてこの第１の乱数に基づき所定の論理で演算した数値と、入力された新たな第１の数値とを比較することにより、インストール制御部１の認証を行い、演算した数値と入力された新たな第１の数値双方が一致していることを検出した場合、制御部７ａへ一致信号ＳＮを出力し、一致しないことを検出した場合、一致信号ＳＮを出力しない。
【００３３】
次に、ステップＳ１２において、インストール制御部１は、所定の演算により第２の乱数を発生し、カードインターフェース６を介して、この乱数をスマートカード７へ送信する。
これにより、スマートカード７の制御部７ａは、この第２の乱数を所定の第２の論理演算式に基づき演算して、新たな第２の数値を発生し、カードインターフェース６を介して、この新たな第２の数値をインストール制御部１へ送信する。
そして、インストール制御部１は、内部においてこの乱数に基づき所定の論理で演算した数値と、入力された新たな第２の数値とを比較することにより、上記スマートカード７の認証を行い、双方の数値が一致していることを検出した場合、制御部７ａへ一致信号ＳＭを出力し、一致しないことを検出した場合、一致信号ＳＭを出力しない。
そして、ステップＳ１３において、インストール制御部１は、制御部７ａから一致信号ＳＮが入力され、かつ制御部７ａへ一致信号ＳＭを出力すると、双方においてチャレンジレスポンス方式による認証が成功したことを検出する。
【００３４】
また、同様に、制御部７ａは、インストール制御部１から一致信号ＳＭが入力され、かつインストール制御部１へ一致信号ＳＮを出力すると、双方において認証が成功したことを検出する。
インストール制御部１及び制御部７ａ双方が認証の成功を検出すると、アンインストール処理を行うため、処理はステップＳ１４へ進む。
このとき、インストール制御部１及び制御部７ａ双方またはいずれか一方において、認証が成功しないとき、以降の処理に必要な各データ及び信号が生成されないため、アンインストールの処理は終了する。
【００３５】
次に、ステップＳ１４において、インストール制御部１は、識別番号の一致を検出したため、記憶部３に記憶されているインストールＩＤを読み出し、このインストールＩＤを、カードインターフェース６を介してスマートカード７の制御部７ａへ出力する。
そして、制御部７ａは、インストール制御部１から入力されるインストールＩＤと、記憶部７ｂから読み出すインストールＩＤとを比較し、一致していることを確認すると処理をステップＳ１５へ進める。
【００３６】
次に、ステップＳ１５において、制御部７ａは、インストールＩＤの一致を検出したため、記憶部７ｂのライセンス数を「１」増加させて、ライセンスの提供が１つ増えたことを記憶部７ｂの所定の領域へ記録する。
これにより、スマートカード７を用いて、ソフトウェアのインストールが行える回数が１つ増加したこととなる。
このとき、制御部７ａは、記憶部７ｂのインストールＩＤを削除する。
そして、ステップＳ１６において、インストール制御部１は、記憶部３に展開されているソフトウェアを消去し、また記憶部３からインストールＩＤを削除し、アンインストール処理を終了する。
【００３７】
＜ライセンス復旧時のリカバリ動作＞
パーソナルコンピュータＰＣのＯＳに異常（障害）が発生し、ハードディスクの交換を行う必要があるため、パーソナルコンピュータＰＣを廃棄し、新たなパーソナルコンピュータＰＰＣによりスマートカード７内のライセンス数を復旧する処理（このパーソナルコンピュータＰＣにライセンス供与した数をスマートカード７の記憶部７ｂのライセンス数を１つ増加させる、すなわちパーソナルコンピュータＰＣにライセンスを供与する前の状態にライセンス数を戻す）を前提として、以下のリカバリ動作の説明を行う。
【００３８】
図４に示すステップＳ２１において、利用者は、パーソナルコンピュータＰＰＣに、スマートカード７のライセンス数をリカバリ（復旧）するため、ネットワークを介して、ライセンス復旧サーバ８からライセンス復旧用ソフトウェアをダウンロードし、このパーソナルコンピュータＰＰＣ内部の記憶部に記憶させる。
また、ソフトウェア配布媒体（インストールするソフトウェアが記録された記録媒体）に同梱されていた場合には、パーソナルコンピュータＰＰＣに接続された記録媒体読取器（図示しない）から読み出し、このパーソナルコンピュータＰＰＣの内部の記憶部に記憶させる。
パーソナルコンピュータＰＰＣには、スマートカード７との間において、データの送受信を行うためのインターフェースとして、パーソナルコンピュータＰＣで使用されたカードインターフェース６が接続されている。
そして、利用者は、上記ライセンス復旧用ソフトウェアを起動し、ライセンス復旧処理を開始する。
【００３９】
次に、ステップＳ２２において、利用者は、カードインターフェース６にスマートカード７を挿入し、パーソナルコンピュータＰＰＣに対して、復旧処理の開始信号を入力する。
そして、パーソナルコンピュータＰＰＣは、画像表示により、利用者に対して、インストールＩＤの入力を促すとともに、カードインターフェース６を介して、制御部７ａに対して記憶部７ｂからインストールＩＤを読み出し、インストールＩＤの確認を要求する要求信号を、スマートカード７に対して出力する。
【００４０】
これにより、利用者はキーボード等から、いずれかに記録していたインストールＩＤを、パーソナルコンピュータＰＰＣに入力する。
次に、パーソナルコンピュータＰＰＣは、利用者の入力したインストールＩＤをスマートカード７へ出力する。
そして、制御部７ａは、入力された上記インストールＩＤと、記憶部７ｂから読み出したインストールＩＤとが一致するか否かの判定を行う。
【００４１】
次に、ステップＳ２３において、制御部７ａは、パーソナルコンピュータＰＰＣから入力されたインストールＩＤと、記憶部７ｂから読み出したインストールＩＤとが一致した場合、処理をステップＳ２４へ進め、一方、一致しない場合処理を終了する。
そして、ステップＳ２４において、制御部７ａは、カードを識別するカードＩＤ，アンインストールした回数であるアンインストール回数よりなるリカバリ要求情報を生成し、暗号化処理を行い、かつ改竄防止の署名処理をする。
【００４２】
次に、制御部７ａは、この暗号化したリカバリ情報をライセンス復旧サーバ８への送信を要求する要求信号とともに、パーソナルコンピュータＰＰＣに出力する。
これにより、パーソナルコンピュータＰＰＣは、上記要求信号に基づき、入力される暗号化されたリカバリ情報をライセンス復旧サーバ８へ送信する。
【００４３】
次に、ステップＳ２５において、ライセンス復旧サーバ８は、入力される暗号化されたリカバリ要求情報の復号化及び署名の認証を行う。
そして、ライセンス復旧サーバ８は、入力されたリカバリ情報に基づき、リカバリ処理の実行の可否を判定する。
すなわち、ライセンス復旧サーバ８は、リカバリ要求の回数（すなわちアンインストール回数）が所定のアンインストール回数を超えているか否かを検出（同一のスマートカードまたは同一のユーザからのアンインストール回数が平均的な頻度を超えているか否かを検出）するインストール回数累計検査，カードＩＤに基づき図示しないデータベースにおいて、不正が行われたことがあるか，紛失または盗難の届けの出ているスマートカードとしてデータが登録されているか否かの検出を行うブラックリスト検査等の検査を行う。
【００４４】
そして、ステップＳ２６において、ライセンス復旧サーバ８は、▲１▼インストール回数累計検査で所定の設定値の範囲のアンインストール回数であること（アンインストール回数が平均的なアンインストール回数を超えていない状態であること）が検出され、また、▲２▼ブラックリスト検査で不正が行われたことがなく（不正使用フラグが不正の行われていない状態となっている），紛失届けがでていない（紛失届けフラグが紛失届けの出ていない状態となっている），盗難の届けの出ていない（盗難の届けフラグが盗難届の出されていない状態となっている）の３つの検出項目の登録状態が全て検出されると、すなわち上記▲１▼，▲２▼の状態が検出された場合、復旧処理を行うことが可能であることを検出して、処理をステップＳ２７へ進める。
また、復旧要求頻度検査において、平均的な頻度を超えるリカバリ要求回数が認められたユーザに対しては、システムによる自動的なリカバリ処理ではなく、サポート担当者によるリカバリ処理で対応する。
【００４５】
一方、ステップＳ２６において、ライセンス復旧サーバ８は、▲３▼インストール回数累計検査で所定の設定値の範囲のアンインストール回数を超えていることが検出されるか、または▲４▼ブラックリスト検査で不正が行われたことがある（不正使用フラグが不正の行われた状態となっている），紛失届けが出ている（紛失届けフラグが紛失届けの出ている状態となっている），盗難の届けが出ている（盗難の届けフラグが盗難届の出された状態となっている）かの▲３▼，▲４▼の２つの検出項目の、いずれかの状態が検出されると、復旧処理を行えない状態であることを検出して、リカバリの処理を終了する。
したがって、ライセンス復旧サーバ８は、復旧要求頻度検査，ブラックリスト検査，及びインストール回数累計検査を各種検査を行い、この検査の検出結果に基づき、リカバリを行うか否かの判定を行う。
【００４６】
次に、ステップＳ２７において、ライセンス復旧サーバ８は、リカバリ許可信号を生成して暗号化し、この暗号化したリカバリ許可信号を、スマートカード７への送信を要求する要求信号とともに、パーソナルコンピュータＰＰＣに対して送信する。
そして、ステップＳ２８において、パーソナルコンピュータＰＰＣは、入力される上記要求信号に基づき、カードインターフェース６を介して、暗号化されたリカバリ許可信号をスマートカード７へ送信する。
【００４７】
そして、スマートカード７の制御部７ａは、入力される暗号化されたリカバリ許可信号を復号化し、この復号化したリカバリ許可信号に基づき、ライセンス数の復旧処理を行う。
すなわち、制御部７ａは、上記リカバリ許可信号が入力されたことを検知すると、記憶部７ｂに記憶されているライセンス数を「１」増加させるとともに、記憶部７ｂに記憶されているリカバリフラグをリカバリが行われていない状態（「０」）から、リカバリが行われたことを示す状態（「１」）へ書き換え、ライセンス数の復旧処理を終了する。
【００４８】
以上、本発明の一実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
上述の一実施形態の説明においては、スマートカード７を用いたインストール処理として、インストールするソフトウェアを１種類の場合で説明した。
しかしながら、スマートカード７を、複数のソフトウェアのインストール処理に対応させて作成することも可能である。
【００４９】
すなわち、スマートカード７の記憶部７ｂに、インストールするソフトウェアの種類毎に対応させて、インストーラとの相互認証を行うための識別番号をソフトウェア毎に設定し、この識別番号毎に対応させてテーブルを作成して、この識別番号毎に、第２の論理演算式，ライセンス数，インストールＩＤ，リカバリフラグ，アンインストール回数、インストールするソフトウェアの分割したデータ等の必要なデータを記憶させるようにしてもよい。
【００５０】
このとき、ネットワークまたは記録媒体読取器５からインストールするソフトウェアを読み込むが、このソフトウェアに含まれるインストーラは、上記識別番号毎に対応して、第１の論理演算式が設定されているため、スマートカード７がこの識別番号に対応して記憶部７ｂのテーブルに対して各データ（第１の論理演算式など）の書き込み及び読み出しを行うこと以外、ソフトウェアのインストール処理は、一実施形態の動作と同様に、図２，図３，図４のフローチャートに従い行われる。
さらに、インストールするソフトウェアのデータを分割するとき、スマートカード毎にランダムに分割する場所及びデータ量を変更するようにしてもよい。
これにより、本発明のソフトウェア不正使用防止システムは、スマートカード７の偽造がさらに困難となる効果がある。
【００５１】
上述したように、本発明のソフトウェア不正使用防止システムは、インストーラ（インストール制御部１）を認証する第２の論理演算式などのライセンス情報が記憶部７ｂに記憶され、インストーラに第１の論理演算式が記憶されているため、インストール制御部１と制御部７ａとで発生した乱数をそれぞれ他方へ出力し、他方で各々の論理演算式で演算した新たな数値を入力し、この新たな数値と、自身で発生した乱数を処理の論理で演算した数値との比較を行い、一致した場合のみに、相互の認証が成功したとして、インストール作業を行うようにしているため、認証番号及びライセンス数を書きかえる等のライセンス情報の偽造が困難であり、ソフトウェアの不正なインストールを防止することができる。
【００５２】
また、本発明のソフトウェア不正使用防止システムは、記録媒体読取器５からインストールするソフトウェアを読み込む場合、インストールに必要とする識別手段として、スマートカード７のみが有れば良く、オンライン登録を行う必要がなく、ソフトウェアのインストールの認証に通信環境が不要であり、インストール／アンインストール時にスマートカード７を使用するだけで済み、利用者を管理するサーバやオペレータ及びコールセンタの設置等の通信環境の設備の必要がソフトウェアの配給元に無く、かつ、利用者のこの通信環境に対する費用負担及び運用負担が低減する効果があり、かつ、ソフトウェアの配給元にインストール／アンインストールにおけるライセンス管理が厳重に行われることが無くなるため、利用者の使いやすさの程度が向上する効果がある。
【００５３】
さらに、本発明のソフトウェア不正使用防止システムは、一枚のスマートカード７を、複数のインストールプログラムのライセンス管理に対応させることができるため、複数のソフトウェア毎にインストール／アンインストール時の認証用の手段が必要なくなるため、ソフトウェアの配給元及び利用者のライセンス管理が容易となり、かつ認証用のスマートカード７が複数の種類のソフトウェアのライセンス供与に対して１枚で済みために費用を削減することができる。
【００５４】
加えて、本発明のソフトウェア不正使用防止システムは、インストール及びアンインストール時のみ、スマートカード７をカードインターフェース６に挿入して、ソフトウェアとスマートカード７との認証処理（チャレンジレスポンス方式による認証）及びインストールＩＤの認証を行えば良いため、ライセンス供与をうける複数のパーソナルコンピュータに対して、スマートカード７及びカードインターフェース６（例えば、スマートカードリーダ／ライタ）が１組あればよく、特別なライセンス確認のハードウェアを用いる必要がないため、利用者の費用負担が低減され、かつ、インストール及びアンインストールが完了するとカードインターフェース６を取り外すため、コンピュータ運用環境を従来と同様にできる効果がある。
【００５５】
さらに、また、本発明のソフトウェア不正使用防止システムは、インストール及びアンインストール時に、スマートカード７及びカードインターフェース６を使用するのみなので、従来のように、ソフトウェアの利用者がパーソナルコンピュータ毎にユニークなＩＤを有する装置が接続されているか等の装置環境を考慮する必要がないので、多くのパーソナルコンピュータに対して、一斉に、ソフトウェアのインストール及びアンインストールの処理の効率を向上させる効果がある。
【００５６】
また、さらに、本発明のソフトウェア不正使用防止システムは、ライセンス復旧サーバ８を設けることにより、ライセンス供与を受けたソフトウェアがインストールされているパーソナルコンピュータに障害が発生した場合、オンラインでスマートカード７におけるライセンス数の復旧処理が行われるため、ソフトウェア配給元のオペレータによる処理などが必要なく人件費が抑制でき、また利用者もカードインターフェース６にスマートカード７を挿入するのみで済むため、リカバリ操作に必要な時間を低減することにより処理効率が向上するため、ソフトウェア配給元及び利用者双方の費用負担が低減される効果がある。
【００５７】
次に、本発明の実施の形態によるコンピュータが実行するためのプログラムについて説明する。
図１におけるソフトウェア不正使用防止システムにおける、パーソナルコンピュータＰＣ及びスマートカード７の各コンピュータシステムのＣＰＵが実行するためのプログラムは、本発明によるプログラムを構成する。
このプログラムを格納するための記録媒体としては、光磁気ディスク、光ディスク、半導体メモリ、磁気記録媒体等を用いることができ、これらをＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、フレキシブルディスク、メモリカード等に構成して用いてよい。
【００５８】
また上記記録媒体は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部のＲＡＭ等の揮発性メモリのように、一定時間プログラムを保持するものも含まれる。
また上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータシステムに伝送されるものであってもよい。上記伝送媒体とは、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体をいうものとする。
【００５９】
また、上記プログラムは、前述した機能の一部を実現するためであってもよい。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００６０】
従って、このプログラムを図１のシステム又は装置とは異なるシステム又は装置において用い、そのシステム又は装置のコンピュータがこのプログラムを実行することによっても、上記実施の形態で説明した機能及び効果と同等の機能及び効果を得ることができ、本発明の目的を達成することができる。
【００６１】
以上、本発明の一実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【００６２】
【発明の効果】
上述してきたように、本発明のソフトウェア不正使用防止システムによれば、インストーラ（インストール制御部）を認証する所定の論理演算式などのライセンス情報が記憶部に記憶され、インストーラに他の論理演算式が記憶されているため、インストール制御部とスマートカードとで発生した乱数をそれぞれ他方へ出力し、他方で各々の論理演算式で演算した新たな数値を入力し、この新たな数値と、自身で発生した乱数を処理の論理で演算した数値との比較を行い、一致した場合のみに、相互の認証が成功したとして、インストール作業を行うようにしているため、認証番号及びライセンス数を書きかえる等のライセンス情報の偽造が困難であり、ソフトウェアの不正なインストールを防止することができる
【００６３】
また、本発明のソフトウェア不正使用防止システムによれば、記憶媒体からインストールするソフトウェアを読み込む場合、インストールに必要とする識別手段として、スマートカードのみが有れば良く、ソフトウェアのインストールの認証に通信環境が不要であり、インストール／アンインストール時にスマートカード７を使用するだけで済み、利用者を管理するサーバやオペレータ及びコールセンタの設置等の通信環境の設備の必要がソフトウェアの配給元に無く、かつ、利用者のこの通信環境に対する費用負担及び運用負担が低減する効果があり、かつ、ソフトウェアの配給元にインストール／アンインストールにおけるライセンス管理が厳重に行われることが無くなるため、利用者の使いやすさの程度が向上する効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態によるソフトウェア不正使用防止システムの構成例を示すブロック図である。
【図２】図１のソフトウェア不正使用防止システムにおけるインストールの動作例を示すフローチャートである。
【図３】図１のソフトウェア不正使用防止システムにおけるアンインストールの動作例を示すフローチャートである。
【図４】図１のソフトウェア不正使用防止システムにおけるリカバリの動作例を示すフローチャートである。
【符号の説明】
１　インストール制御部
３，７ｂ　記憶部
４　インターフェース
５　記録媒体読取器
６　カードインターフェース
７　スマートカード
７ａ　制御部
８　ライセンス復旧サーバ
ＰＣ，ＰＰＣ　パーソナルコンピュータ
【図１】
2004086588.tif 000003
【図２】
2004086588.tif 000004
【図３】
2004086588.tif 000005
【図４】
2004086588.tif 000006