(57)【要約】【課題】供給ソフトウェアの起動処理と、コンピュータの個別情報を記憶したハードウェアキーの連携で、供給ソフトウェアが動作するコンピュータを特定し不正使用を防止する。ハードウェアキーの設定を変更することで、従来のハードウェアキーのように、装着すればどのコンピュータでも動作可能にした不正使用を防止も実現する。【解決手段】不正使用防止ハードウェアキーは、不揮発性記憶を備えてコンピュータの個別情報を記憶する。コンピュータ▲１▼８のコンピュータ個別情報▲１▼９は、コンピュータが持つユニークな情報であり、例えば、ＣＰＵのシリアル番号などを使う。ソフトウェアＡ１０が起動されると、初回起動時の処理１７を実行し初回起動であれば、コンピュータ個別情報▲１▼５を更新する。次に、ハードウェアキーＡ１内のコンピュータ個別情報▲１▼５と、コンピュータ▲１▼８内のコンピュータ個別情報▲１▼９を照合し、一致していればソフトウェアＡを起動する。一致していなければ、起動エラーを表示し、ソフトウェアＡ１０の起動を中止する。【選択図】    図２
2004280581.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアがインストールされたコンピュータに装着する当該ソフトウェアの正規ユーザだけが有しているハードウェアキーとして、着脱可能な不揮発性記憶装置を用い、当該ソフトウェアの中でハードウェアキーに書き込まれたコンピュータの個別情報と、コンピュータ内の個別情報との照合を行い、一致していたら当該ソフトウェアを動作させることを特徴とするソフトウェアの不正使用防止方法。
【請求項２】
請求項１において、前記ハードウェアキーのコンピュータ個別情報を、ソフトウェア供給者が出荷時に書き込んでおき、再書込みを禁止してコンピュータとセットで出荷することで、ソフトウェアが動作できるコンピュータを、ソフトウェア出荷前に供給者側で特定することを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【請求項３】
請求項１において、前記ハードウェアキーのコンピュータ個別情報の書込みを、供給ソフトウェア初回起動時に限定することで、ソフトウェアが動作できるコンピュータを、ソフトウェア出荷後にユーザ側で特定することを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【請求項４】
前記ハードウェアキーは一台のコンピュータに複数接続できるインターフェース回路を持つ構造とすることを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【請求項５】
前記ハードウェアキーに供給ソフトウェア個別情報を書き込んでおき、供給ソフトウェアとハードウェアキーを関連付けることを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【請求項６】
前記ハードウェアキーは複製できない構造とすることを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【請求項７】
請求項３において、前記ハードウェアキーのコンピュータ個別情報の書込みを、供給ソフトウェア起動の度に実行できるようにすることで、ハードウェアキーが装着されているコンピュータであれば、ソフトウェアが動作することを特徴とする請求項１記載のソフトウェアの不正使用防止方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェア供給者が販売したソフトウェアが複数のコンピュータで不正使用されることを防ぐ方法に関するものである。
【０００２】
【従来の技術】
従来のハードウェアキー（いわゆる、ドングル）は、供給ソフトウェアと同じ個別情報を記憶して出荷され、供給ソフトウェア起動時、ハードウェアキーの個別情報と比較を行いソフトウェアの動作を制限していた。
【０００３】
又、ハードウェアキーに起動回数を記憶させ、コンピュータが記憶する起動回数と一致しないコンピュータでは起動を中止して、ソフトウェアが動作するコンピュータを特定していた。
【０００４】
【特許文献１】
特開平７−３１９６８８号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、ハードウェアキーさえ装着すれば、どのコンピュータでも供給ソフトウェアを動作させることができてしまい、ソフトウェアを起動後、ハードウェアキーを取り外し、別のコンピュータに装着して起動することで、複数のコンピュータでソフトウェアを不正に使用されていた。
【０００６】
又、ハードウェアキーに起動回数を記憶させる方法であっても、ハードウェアキーを利用する複数のソフトウェアを、同時に起動できないというの課題があった。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、ハードウェアキーを利用する複数のソフトウェアを同時に起動することを可能にすると共に、供給ソフトウェアが動作するコンピュータを特定することで、不正使用を防止できるようにすることを目的とする。
【０００８】
又、ハードウェアキーのコンピュータ個別情報の書込みを、供給ソフトウェア起動の度に実行できるようにすることで、従来と同じようにハードウェアキーさえ装着すれば、どのコンピュータでも動作可能することも実現する。
【０００９】
【課題を解決するための手段】
上記目的を達成する為に、本発明は、
（１）インストールされたソフトウェアの中で、ハードウェアキーに書き込まれたコンピュータの個別情報の取得と、コンピュータが保持する個別情報の取得と、それぞれの照合を行う手段を有することを特徴とする。
【００１０】
上記構成では、当該ソフトウェアが動作するコンピュータを特定することができる。
（２）ハードウェアキーは更新可能な不揮発性記憶部を持ち、インストールされたソフトウェア及び、専用書込みソフトウェアから読み書き手段を有することを特徴とする。
【００１１】
上記構成では、当該ソフトウェアが動作するコンピュータ特定の設定を、ユーザ側、供給者側どちらでも行うことができる。
（３）インストールされたソフトウェアの中で、インストール後の初回起動かどうか判断し、初回であればコンピュータ個別情報をハードウェアキーに書き込む手段を有することを特徴とする。
【００１２】
上記構成では、当該ソフトウェアが動作するコンピュータをユーザ側で特定することができる。
（４）ハードウェアキーはソフトウェア供給者識別情報の記憶領域を持ち、インストールされたソフトウェア中で取得する手段を有することを特徴とする。
【００１３】
上記構成では、ハードウェアキーが正規のものか判断することができる。
（５）ハードウェアキーは簡単に複製できない構造を有することを特徴とする。
【００１４】
上記構成では、ソフトウェアの正規ユーザだけが有することができる。
（６）ハードウェアキーはソフトウェア個別情報の記憶領域を持ち、インストールされたソフトウェアと、ハードウェアキーが対となっているソフトウェアだけが動作する手段を有することを特徴とする。
【００１５】
上記構成では、ハードウェアキーを利用する複数のソフトウェアを制御することができる。
（７）ハードウェアキーはコンピュータが所有する標準的な外付けインターフェース回路（例えばＵＳＢ等）に接続する手段を有することを特徴とする。
【００１６】
上記構成では、ハードウェアキーを利用するソフトウェア用に複数接続することができる。
【００１７】
【発明の実施の形態】
以下、貼付図面に従って、本発明に係る実施の形態について説明する。
【００１８】
図１は、本発明に係るハードウェアキーを参照するソフトウェア２種類を２台のコンピュータにインストールし、ハードウェアキーを装着したコンピュータ▲１▼８と未装着のコンピュータ▲２▼１２を示す図である。
【００１９】
ハードウェアキーＡ１はソフトウェアＡ１０に、ハードウェアキーＢ２はソフトウェアＢ１１にそれぞれ１個ずつ添付されているものである。
【００２０】
ハードウェアキーの装着は、ハードウェアキー接続ケーブル６で、コンピュータの外部に容易に着脱可能な形態となっている。
【００２１】
ハードウェアキーＢ２のように、複数のポートを有する接続拡張器（ＨＵＢ）７を介して接続することで、複数のハードウェアキーを接続することができる。
【００２２】
コンピュータ▲１▼８のコンピュータ個別情報▲１▼９は、コンピュータが持つユニークな情報であり、例えば、ＣＰＵのシリアル番号などを使う。ユニークな情報が存在しなければ、ソフトウェアが生成したユニークな情報を保持した形態でもよい。
【００２３】
図２は、図１で示したコンピュータ▲１▼８にハードウェアキーＡ１だけを装着した状態で、ソフトウェアＡ１０の起動時の処理を説明するフローチャートである。
【００２４】
ソフトウェアＡ１０が起動されると、初回起動時の処理１７を実行し、ソフトウェアＡインストール後の初回起動であれば、初回起動時の処理１７に従い、ハードウェアキーＡ１内のコンピュータ個別情報▲１▼５を更新する。
【００２５】
次に、ハードウェアキーＡ１内のコンピュータ個別情報▲１▼５と、コンピュータ▲１▼８内のコンピュータ個別情報▲１▼９を照合し、一致していれば次の照合２へ進み、一致していなければ、起動エラー表示１５を行いソフトウェアＡ１０の起動を中止する。
【００２６】
照合２では、ハードウェアキーＡ１内のソフトウェア個別情報Ａ３と、ソフトウェアＡ１０のプログラムコードに組み込まれているソフトウェア個別情報とを照合し、一致していればソフトウェアＡを起動する。一致していなければ、起動エラーを表示し、ソフトウェアＡ１０の起動を中止する。
【００２７】
ハードウェアキーＢ２を装着せず、ソフトウェアＢ１１を起動しようとした場合は、照合２でソフトウェア個別情報が一致しないので起動できない。
【００２８】
コンピュータ▲２▼１２にハードウェアキーＡ１を装着して、ソフトウェアＡを起動しようとしても、照合１でコンピュータ個別情報が一致しないので起動できない。しかし、初回起動時であれば、コンピュータ▲２▼の個別情報で更新し、起動可能に移行されてしまうので、更新する前に今まで使用していたコンピュータで使用できなくなるというメッセージを表示して、ユーザに警告する。
【００２９】
従来のハードウェアキーのようにハードェアキーさえ装着すれば、どのコンピュータでも動作するようにしたい場合は、起動エラー表示１５で、初回起動フラッグを立てて、初回起動時の処理１７を実行させる。
【００３０】
図３は、図２で登場した初回起動時の処理１７を説明するフローチャートである。ソフトウェアＡ１０が起動されると、インストール後の初回起動かをチェックし、初回起動であれば、ハードウェアキーＡ１内のソフトウェア供給者識別情報１６を読み込み、ソフトウェアＡ１０のプログラムコードに組み込まれているソフトウェア供給者識別情報とを照合し、一致していればコンピュータ▲１▼８内のコンピュータ個別情報▲１▼９をハードウェアキーＡ１に書き込む。一致していなければ、無効ハードウェアキー表示を行いソフトウェアＡ１０の起動を中止する。
【００３１】
ソフトウェア供給者が供給するコンピュータのみでソフトウェアを動作させたい時は、ハードウェアキーＡ１のコンピュータ個別情報▲１▼５の書込み後、再書込みを禁止して、ハードウェアキーとコンピュータをセットにして出荷し、ソフトウェアが動作できるコンピュータを特定する。
【００３２】
図４は、従来のハードウェアキー技術例を示す図である。ソフトウェア２０を起動すると、ハードウェアキー１８のソフトウェア個別情報１９を読み込み、ソフトウェア２０のプログラムコードに組み込まれたソフトウェア個別情報２１と照合して、一致していればソフトウェア２０を起動する。一致していなければエラー表示して起動を中止する。
【００３３】
【発明の効果】
以上説明したように、本発明における不正使用防止ハードウェアキーは、不揮発性記憶を備えてコンピュータの個別情報を記憶することにより、ソフトウェアを動作させるコンピュータを特定することができるようになる。
【００３４】
また、本発明では、ハードウェアキーのコンピュータの個別情報の書き換えを禁止するか許可するかで、ソフトウェアが動作するコンピュータ特定権を、供給者側かユーザ側かどちらにでも設定することができる。
【００３５】
また、従来のハードウェアキーのようにハードェアキーさえ装着すれば、どのコンピュータでも動作する形態を取ることも可能である。
【００３６】
また、本発明のハードウェアキーでは、コンピュータが所有する標準的な外付けインターフェース回路（例えばＵＳＢ等）に接続する形態とすることで、ハードウェアキーを利用するソフトウェア用に複数接続することができる。
【００３７】
そして、本発明で示したハードウェアキーは、簡単かつ安価に作成することができるので、広い分野のソフトウェア供給者で採用しやすくなり、ソフトウェア供給者に利益をもたらす。
【図面の簡単な説明】
【図１】本発明に係るハードウェアキーを参照するソフトウェア２種類を２台のコンピュータにインストールし、ハードウェアキーを装着したコンピュータ▲１▼８と未装着のコンピュータ▲２▼１２を示す図である。
【図２】本発明に係るソフトウェア起動時の処理を説明するフローチャートである。
【図３】本発明に係るソフトウェア初回起動時の処理を説明するフローチャートである。
【図４】従来の技術例を示す図である。
【符号の説明】
１    ハードウェアキーＡ
２    ハードウェアキーＢ
３    ソフトウェア個別情報Ａ
４    ソフトウェア個別情報Ｂ
５    コンピュータ個別情報▲１▼
６    ハードウェアキー接続ケーブル
７    ハードウェアキー接続拡張器（ＨＵＢ）
８    コンピュータ▲１▼
９    コンピュータ個別情報▲１▼
１０    ソフトウェアＡ
１１    ソフトウェアＢ
１２    コンピュータ▲２▼
１３    コンピュータ個別情報▲２▼
１４    ソフトウェアＡ起動時の処理スタート
１５    起動エラー表示
１６    ソフトウェア供給者識別情報
１７    初回起動時の処理
１８    ハードウェアキー
１９    ソフトウェア個別情報
２０    ソフトウェア
２１    ソフトウェア個別情報
２２    照合
【図１】
2004280581.tif 000003
【図２】
2004280581.tif 000004
【図３】
2004280581.tif 000005
【図４】
2004280581.tif 000006