(57)【要約】【課題】プロテクトされたＣＤ等によるプロテクトで常時ＣＤ等をドライブに挿入しておかなければならないという不都合をなくし、またアクティべーションによるプロテクトでは手軽でないという不都合をなくし、適正に使用している限りは手軽にインストールおよび実行ができ、その一方で違法なインストールやコピーは排除することができる技術を提供することを目的とする。【解決手段】プロテクトされたメディアを使用したインストール時に、レジストリや所定のファイル等に機器固有のキー情報を記録し、プログラムの起動時に該キーを確認することにより、プログラムの実行をプロテクトする。何らかの理由でキー情報が失われた場合には、インストールに使用したメディア（プロテクトされている）を確認してキーを再発行することができるようにする。【選択図】  図３
2004295388.tif 000002
【特許請求の範囲】
【請求項１】
プロテクトされたメディアに記憶されたインストールプログラムを実行することにより、コンピュータにソフトウェアをインストールする方法であって、
前記コンピュータのハードウェアの少なくとも一部に基づいて、コンピュータ毎に異なる固有情報を生成するステップと、
インストールに先立って、前記インストールプログラムを記憶するプロテクトされたメディアの存在を確認するステップと、
前記メディアの存在が確認できた場合には、前記ソフトウェアのインストールを実行するとともに、前記固有情報に基づくキー情報を生成して、前記コンピュータの所定の不揮発性記憶手段に記憶するステップと、
前記メディアの存在が確認できなかった場合には、前記ソフトウェアのインストールを実行しないように制御するステップと
を備えることを特徴とするソフトウェアのインストール方法。
【請求項２】
コンピュータにインストールされたソフトウェアの実行をプロテクトする方法であって、
前記コンピュータのハードウェアの少なくとも一部に基づいて、コンピュータ毎に異なる固有情報を生成するステップと、
前記インストールされたソフトウェアの起動指示に応じて、前記コンピュータの所定の不揮発性記憶手段に、前記固有情報に対応したキー情報が保存されているか否かを判断するステップと、
保存されていると判断された場合は、前記ソフトウェアを起動するステップと、
保存されていないと判断された場合は、ユーザに対し前記ソフトウェアのインストールに使用したプロテクトされたメディアを要求し、該メディアの存在を確認するステップと、
該メディアが確認できた場合は、前記固有情報に基づく新たなキー情報を生成して、前記コンピュータの所定の不揮発性記憶手段に記憶するステップと
を備えたことを特徴とするソフトウェアのプロテクト方法。
【請求項３】
コンピュータにインストールされたソフトウェアの実行をプロテクトする方法であって、
前記コンピュータのハードウェアの少なくとも一部に基づいて、コンピュータ毎に異なる固有情報を生成するステップと、
前記インストールされたソフトウェアの最初の起動を検出するステップと、
最初の起動のときには、所定のサーバに接続し、該サーバにユーザの個人情報および前記固有情報を送信し、それらの情報からサーバにて判断された前記ソフトウェアの使用に係る許可情報または拒否情報を受信するステップと、
許可情報を受信した場合は、前記固有情報に基づくキー情報を生成して、前記コンピュータの所定の不揮発性記憶手段に記憶するステップと、
最初の起動でないときには、前記コンピュータの所定の不揮発性記憶手段に、前記固有情報に対応したキー情報が保存されているか否かを判断するステップと、
保存されていると判断された場合は、前記ソフトウェアを起動するステップと、
保存されていないと判断された場合は、ユーザに対し前記ソフトウェアのインストールに使用したプロテクトされたメディアを要求し、該メディアの存在を確認するステップと、
該メディアが確認できた場合は、前記固有情報に基づく新たなキー情報を生成して、前記コンピュータの所定の不揮発性記憶手段に記憶するステップと
を備えたことを特徴とするソフトウェアのプロテクト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、適正な権限を持つユーザにのみソフトウェアのインストールや使用が可能となるようにソフトウェアをプロテクトする技術に関する。
【０００２】
【従来の技術】
従来より、ソフトウェアのプロテクト技術としては以下のようなものが知られている。
【０００３】
まず、所定のシリアル番号を入力することにより、正規の機能が使用可能となるソフトウェアが知られている。例えば、インストールする際にシリアル番号を入力させ、適正なシリアル番号でないときにはインストールできないようにするものがある。このようなものでは、シリアル番号さえ入手すれば、何台のコンピュータでも正規の機能を使用できてしまうので、さらに強力なプロテクトを行なうためドングルを使用したプロテクトが考えられている。ドングルとは、ソフトウェアの違法コピーを防止する目的で使用されるハードウェアキーのことである。パラレルポートやＵＳＢポート等にドングルが接続されているか否かチェックし、適正なドングルが接続されている場合のみソフトウェアが正常に動作するようにしたものが知られている。
【０００４】
また、違法なコピーや使用ができないようにプロテクトされた記憶メディアが知られている。例えば、ＣＤのプロテクト方法としてＣＤ−ＲＯＭの記録面に視覚的に確認できる独自のリングをプレス工程時に組み込み、そのリングとプロテクトチェックルーチンによりプロテクトを実現する技術がある。さらに、ＤＶＤには最初からプロテクトの機構が備えられている。
【０００５】
ここで上記プロテクトされたＣＤは、次のようにして使用される。まず通常のＣＤ−Ｒ書込ソフトおよびＣＤ−Ｒドライブを用いてはＣＤの複製ができない。記録面に特殊なリングが組み込まれているからである。また、記録されているプログラムやデータ自体は自由にコピー可能だが、オリジナルのＣＤを確認するためのサブルーチンが供給されており、これによりプロテクトをかけることができる。
【０００６】
例えばインストール時にプロテクトをかけるためには、ＣＤに記憶されたインストーラが起動されたときに、上記プロテクトチェックルーチンを用いてオリジナルのＣＤであるか否かを確認し、オリジナルのＣＤでなければインストールを実行しないようにする。また例えばプログラムの実行時にプロテクトをかけるときは、ハードディスクにインストールされたプログラムの起動指示時に、上記プロテクトチェックルーチンを用いてＣＤドライブにオリジナルのＣＤが挿入されているか否かを検出し、挿入されていなかったら当該プログラムを起動しないようにする。
【０００７】
さらに、最近ではネットワークを介してのアクティベーションによるプロテクトが行なわれている。これは、例えばソフトウェアのインストール後の最初の起動時に、ネットワークを介してサーバに接続し、そのサーバからキーを受け取ることによりソフトウェアが動作可能となるものである。アクティベーションには複数種類がある。１つは、サーバが、インストールされたマシンに依存しない所定のキーを送信するものである。この場合、インストールしたマシンのソフトウェアをそのキーとともに他のマシンにコピーすれば、他のマシンでも実行可能となる。一方、サーバは、インストールされたマシンから該マシンに固有の情報を受け取り、該情報に対応したキーを送信し、そのキーとともに他のマシンにコピーしても、他のマシンでは実行不能になるようにしたものがある。
【０００８】
【発明が解決しようとする課題】
上述したように、プロテクトされたＣＤでは、該ＣＤをドングルの代わりに使用してプログラムの実行をプロテクトすることができる。しかし、そのために常時ＣＤをドライブに挿入しておくのは不都合が多い。
【０００９】
上述のアクティベーションは手軽ではないが、ソフトウェアのプロテクトの面から見ると一番優れている。しかし、サーバからキーを受け取るためにネットワークに接続しなければならない。ネットワークに接続できても、設定が不適切だったりネットワークの通信環境が悪かったりして、キーの受け取りに失敗する場合もある。
【００１０】
さらに、ユーザ登録という面もあるので最初のアクティベーションは省略できないが、操作ミス、ハードの故障、あるいはバグによる暴走等の理由により、キーが失われてしまった場合に、ユーザに再びアクティベーションを要求するのは避けたい。
【００１１】
この発明は、上述の従来技術における問題点に鑑み、プロテクトされたＣＤ等によるプロテクトで常時ＣＤ等をドライブに挿入しておかなければならないという不都合をなくし、またアクティべーションによるプロテクトでは手軽でないという不都合をなくし、適正に使用している限りは手軽にインストールおよび実行ができ、その一方で違法なインストールやコピーは排除することができる技術を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この目的を達成するため、この発明は、プロテクトされたメディアを使用したインストール時に、レジストリや所定のファイル等に機器固有のキー情報を記録し、プログラムの起動時に該キーを確認することにより、プログラムの実行をプロテクトすることを特徴とする。
【００１３】
また何らかの理由でキー情報が失われた場合には、インストールに使用したメディア（プロテクトされている）を確認してキーを再発行することができるようにする。なお、同メディアで、最初のキーを発行できるようにしてもよいし、発行できないようにしてもよい。
【００１４】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【００１５】
図１は、この発明のプロテクト方法を適用したコンピュータシステムの概略構成を示す。ソフトウェアをインストールし実行するパーソナルコンピュータ１００および所定のサーバー１３０がネットワーク１２０に接続されている。パーソナルコンピュータ１００は、中央処理装置（ＣＰＵ）１０１、リードオンリメモリ（ＲＯＭ）１０２、ランダムアクセスメモリ（ＲＡＭ）１０３、ハードディスク１０４、ドライブ装置１０５、タイマ１０７、ネットワークインターフェース１０８、ＭＩＤＩインターフェース１０９、表示器１１０、キーボード＆マウス１１１、および波形インターフェース１１２等を備える。これら各部は所定のバスラインで相互に接続されている。ドライブ装置１０５にはリムーバブルディスク１０６（ＣＤ−ＲＯＭ、ＤＶＤ等）が挿入される。
【００１６】
パーソナルコンピュータ１００は、基本ソフトとして所定のオペレーティングシステムがインストールされ、さらに各種のソフトウェアをインストールすることにより、該オペレーティングシステム上でインストールしたソフトウェアを実行することができる汎用のパソコン等である。ソフトウェアのインストールは、ソフトウェアを記録したリムーバブルディスク１０６をドライブ装置１０５に挿入し、所定のインストールプログラム（例えば当該リムーバブルディスク１０６に記録されているもの）を実行することにより行なう。インストールされたプログラムはハードディスク１０４に格納され、所定の操作により当該プログラムを起動して実行することができる。インストールに使用するリムーバブルディスク１０６は、ここではコピープロテクトされたＣＤとして説明するが、コピープロテクトされた他のメディアでもよい。該ＣＤないし該メディアに対しては、所定のチェックルーチンを用いてそれが正規のＣＤであるか否かをチェックできるものとする。
【００１７】
図２は、ソフトウェアをインストールする際のセットアップルーチンの手順を示す。ステップ２０１で初期設定を行ない、ステップ２０２で正規のＣＤであるか否かを判定する。ステップ２０３で正規のＣＤでないときは、ステップ２０４で表示器１１０に正規のＣＤでない旨をメッセージ表示し、処理を終了する。正規のＣＤであるときは、ステップ２０５でインストールに関する各種設定をユーザに確認させ、ステップ２０６で該ＣＤから読み出したプログラム等をハードディスク１０４にインストールする。具体的には、プログラムを構成する実行ファイル、サブルーチンファイル、設定ファイル等の各種ファイルを、それぞれインストール先として指定されたフォルダ、オペレーティングシステムの所定のサブルーチンフォルダ等にコピーするとともに、必要に応じて、オペレーティングシステムのレジストリ（管理データベース）への登録、ショートカットの作成、各種の初期設定等を実行する。さらにステップ２０７で、当該ＰＣ１００のハードウェアに基づく固有情報を取得し、該固有情報からキー情報を生成（例えば所定の演算式等を用いる）する。ステップ２０８で、該キー情報を含む各種情報をオペレーティングシステムのレジストリの所定領域に設定し、処理を終了する。なお、キー情報を記憶する記憶領域は、該レジストリの所定領域ではなく、前記インストール先のフォルダ外の他の記憶領域（前記サブルーチンフォルダに記憶された当該プログラムのサブルーチンファイルや設定ファイル等の中の一部領域）としてもよい。
【００１８】
図３は、以上のようにしてインストールしたソフトウェアの起動指示がなされたときの手順を示す。なお、図中に点線で記載した部分は次に説明する第２の実施の形態に適用する部分であり、ここでは該点線部分がないものとして説明する。
【００１９】
ステップ３０１で初期設定を行ない、ステップ３０２でキー情報（レジストリに設定されているもの）とハードウェアの固有情報とを取得する。次にステップ３０４で、固有情報とキー情報とが対応するものであるか否か判定する。この判定は、取得した固有情報から生成したキー情報が、上記レジストリに設定されているキー情報に一致するか否かをチェックすることで行なう。固有情報とキー情報とが対応するものであれば、適正にインストールされたマシンでの起動指示であったと見なし、ステップ３０５で当該ソフトウェアの本体を起動する。これにより、正規のＣＤでインストールした場合は、該ＣＤが挿入されていなくても正常に起動できることになる。
【００２０】
ステップ３０４で固有情報とキー情報とが対応しないときは、ステップ３１１で正規のＣＤが挿入されているか否か確認し、ステップ３１２で挿入されていれば、ステップ３１５で前記固有情報からキー情報を生成し、ステップ３１６でＯＳのレジストリに該キー情報を設定して、ステップ３０５に進む。正規のＣＤが挿入されていない場合は、ステップ３１２からステップ３１３に進み、処理を中止するかどうかを確認させた後、ステップ３１４で正規のＣＤを要求し、ステップ３１１に戻る。
【００２１】
以上の処理により、マシンの固有情報とキー情報とを適正かどうか確認することにより違法なコピーがなされたマシンでの実行が排除できる。インストールしたソフトウェアを別のマシンにコピーすると、マシンの固有情報が異なるので、固有情報とキー情報とが対応しなくなるからである。
【００２２】
次に第２の実施の形態について説明する。第２の実施の形態では、上述した第１の実施の形態の図３の処理において、ステップ３０３，３２１〜３２４を追加する。また、図２でステップ２０７，２０８の処理は行なわないものとする。その他は上記第１の実施の形態と同じである。
【００２３】
追加した処理では、まずステップ３０３で最初の起動か否か判定する。最初の起動であるときは、ステップ３２１でユーザにシリアル番号を含む個人情報の入力を要求し、ステップ３２２で前記固有情報とユーザにより入力された個人情報をサーバ１３０に送信する。サーバ１３０は該固有情報と個人情報に基づいてこの起動が適正なものか否かを判定し、適正なものであればサーバ内のデータベースに個人情報と固有情報の登録（ユーザ登録）を行なうとともに許可情報を送信し、適正なものでなければ拒否情報を送信する。この場合の判断は、従来のアクティべーションと同様であり、該シリアル番号での最初の登録か否か、機器情報は適切か否か等の判断である。ステップ３２３では、このようにして送信された許可情報ないし拒否情報を受信する。ステップ３２４で許可情報であるときはステップ３１５に進む。許可情報でないときは、再びステップ３２１に戻る。
【００２４】
以上の処理により、最初に起動された場合のみステップ３２１〜３２４でアクティベーションによるチェックを行ない、２回目以降の起動ではステップ３０３から３０４に進み、適正にインストールされておりアクティベーションで許可済みであれば、正規のＣＤが挿入されていなくても正常に起動できる。また、操作ミス、ハードの故障、あるいはバグによる暴走等の理由によりキー情報が壊れたり失われてしまった場合、最初の起動ではないのでステップ３０３から３０４に進み、正規のＣＤさえあればサーバ１３０に接続することなく、該正規のＣＤからキー情報を生成して正常に起動できる。
【００２５】
また、アクティベーションが済み正常にキー情報が生成されたソフトウェアを他のマシンにコピーした場合は、そのコピー先のマシンで起動されたとき、最初の起動ではないのでステップ３０３から３０４に進み、マシンの固有情報とキー情報が対応しないのでステップ３０４から３１１に進み、正規のＣＤがなければソフトウェアの本体は起動できないことになる。さらに、アクティベーションを行なう前の１回も起動していない状態のソフトウェアを他のマシンにコピーした場合は、そのコピー先のマシンで起動されたとき、最初の起動なのでステップ３２１〜３２４のアクティベーションのチェックが実行される。一方、コピー元のマシンでも最初の起動時にはアクティベーションのチェックが実行されるので、該ソフトウェアのシリアル番号などのチェックを行なうようにすれば（すなわち、ステップ３２１で該ソフトウェアを特定できる情報を入力させサーバ側で管理する）、先にアクティベーションのチェックを実行したマシンにのみ許可を出すようにできる。
【００２６】
なお、最初の起動か否かの判定は、例えば、前記ステップ３０５を実行するときに、前記インストール先フォルダ内の所定の記憶領域（例えば、当該プログラムの実行ファイル、サブルーチンファイル、設定ファイルなどのファイル中の一部領域）に実行したことを示す起動済み情報を記憶しておき、実行したことがあるか否かをその起動済み情報に基づいて判断すればよい。或いは、前記ステップ３２４で「許可情報である」と判断された場合に、該起動済み情報を記憶するようにしてもよい。
【００２７】
この場合、１回起動された後の状態で別のコンピュータシステムにコピーされると、そのコピーされたプログラムには当該起動済み情報が残っているので、そのコピーされたプログラムを起動されたときには、ステップ３０３で最初の起動でないと判断される。しかしながら、続くステップ３０４において、該別のコンピュータシステムのレジストリにはキー情報が記憶されていないのでキー情報が対応しないと判断され、正規のＣＤが要求される。すなわち、他のコンピュータシステムにコピーされたプログラムは、正規のＣＤを所持しているユーザのみが実行可能となる。
【００２８】
なお、本発明のプロテクトをアプリケーションではなく、アプリケーションから利用されるプラグインや、ゲームや描画用のサブルーチン、デバイスを制御するドライバなどのソフトウェアに対して適用するようにしてもよい。特にプラグインのソフトウェアは、アプリケーションの用意する所定のフォルダに配置すべき１つ乃至数個のファイルだけで実現されている場合が多く、他のＰＣへのコピーが極めて容易であるので、本発明はプラグインソフトウェアのプロテクトに非常に有用である。
【００２９】
また、第２の実施の形態では、最初の起動時にアクティベーションを行なうようになっていたが、その代わりに、最初の起動時に当該コンピュータ内で最初のキー情報を発生するようにしてもよい。すなわち、ステップ３２１の個人情報の入力を要求した後、入力された個人情報中のシリアル番号が適正であるか否か判断して、適正であればステップ３１１以降の処理を実行し、適正でなければ処理を即時に中止するようにしてもよい。
【００３０】
【発明の効果】
以上説明したように、この発明によれば、正規のメディアの場合のみ、インストール先のコンピュータに固有のキー情報を発行することができる。この際、アクティベーションのために外部のサーバに接続しなくてもよい。また、インストールされたプログラムを他のコンピュータにコピーして実行しようとした場合、インストールに使用したメディアを要求することにより、該プログラムのネットワーク上での配布等を防止することができる。
【００３１】
また、最初の起動時にアクティベーションを行ない、該アクティベーションで得たキー情報が失われた場合でも、インストール時に使用したメディアによりキーが再発行できるので、いちいちサーバに接続する必要が無い。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るコンピュータシステムの概略構成図
【図２】セットアップルーチンの手順を示すフローチャート図
【図３】プログラム起動ルーチンの手順を示すフローチャート図
【符号の説明】
１００…パーソナルコンピュータ、１２０…ネットワーク、１３０…サーバー、１０１…中央処理装置（ＣＰＵ）、１０２…リードオンリメモリ（ＲＯＭ）、１０３…ランダムアクセスメモリ（ＲＡＭ）、１０４…ハードディスク、１０５…ドライブ装置、１０７…タイマ、１０８…ネットワークインターフェース、１０９…ＭＩＤＩインターフェース、１１０…表示器、１１１…キーボード＆マウス、１１２…波形インターフェース。
【図１】
2004295388.tif 000003
【図２】
2004295388.tif 000004
【図３】
2004295388.tif 000005