説明

ライセンス情報の更新方法

【課題】 ソフトウェアの使用許可を得たコンピュータのパーツを交換した場合であっても、そのソフトウェアの使用を可能とするライセンス情報の更新方法を提供する。
【解決手段】 ソフトウェアの使用が特定のコンピュータにおいてのみ許可されており、そのライセンス情報が認証サーバで管理されている場合において、ソフトウェアの最初の起動時に、交換対象パーツを全て含んだ全体固有値と、交換対象パーツを1以上除いた部分固有値を複数算出し、これらの組み合わせを認証サーバに登録する。パーツ交換後、最初のコンピュータ起動時に、交換したパーツを認識し、それを記録しておく。パーツ交換後、最初のソフトウェア起動時に、全体固有値、部分固有値を算出して認証サーバに送信し、認証サーバでは、交換パーツ以外のパーツを除外した部分固有値および全体固有値を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータにおいて、ソフトウェアの使用権限を有するか否かを認証するための技術に関する。
【背景技術】
【0002】
従来より、ソフトウェアの不正コピーや不正使用を防ぐための様々な技法が用いられている。その中の一つに、ハードウェア固有情報を利用したものがある。ハードウェア固有情報を利用して、ソフトウェアの不正使用を防止する技法においては、ソフトウェアをコンピュータで最初に使用する際に、使用しようとするコンピュータのハードウェアの固有な情報(MACアドレス、CPUID、HDDシリアル番号など、またはこれらを組み合わせたもの)から固有値を算出すると共に、使用しようとするソフトウェアに記録されているライセンスNoを読み取り、これらをサーバへ通知して、ライセンスNoと固有値の組み合わせをライセンス情報としてサーバに登録する。
【0003】
そして、そのソフトウェアの次回以降の実行時には、再度使用しようとするコンピュータ側において固有値を算出すると共にライセンスNoを読み取ってライセンス情報をサーバに送信し、サーバに登録されているライセンス情報と比較して一致していれば、実行許可を与えるというものである。このようにすることにより、特定のソフトウェアを他のコンピュータで使用しようとした場合には、ライセンスNoと固有値の組み合わせが登録したものと異なることになるため、サーバから使用許可が出ず、コンピュータはそのソフトウェアを実行することができなくなる。したがって、あるソフトウェアは、最初に実行した1台のコンピュータでしか使用することができず、不正コピーの問題を解決している。(例えば、特許文献1参照)。
【特許文献1】特開2001−109624号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の手法では、ソフトウェアの使用許可を得たコンピュータにおいて、固有値の算出の基礎とされたパーツを交換した場合、新たに算出した固有値は、保存されている固有値と異なるため、サーバは実行許可を出さないこととなり、正当に取得したソフトウェアを、正当に使用許可を得たコンピュータにおいても使用することができなくなる。
【0005】
そこで、本発明は、ソフトウェアの使用許可を得たコンピュータのパーツを交換した場合であっても、そのソフトウェアの使用を可能とするライセンス情報の更新方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明では、ソフトウェアが特定の機器でのみ使用許可のライセンスが与えられる場合に、そのライセンスの認証を認証サーバで行うシステムにおいて、前記使用許可された機器のパーツ交換に従って、ライセンス情報を更新する方法であって、前記ソフトウェアの初期起動時に、全体固有値算出の基礎とされるパーツである算出基礎パーツ全てに基づき算出した全体固有値と、算出基礎パーツのうち1以上のパーツを除外した他の算出基礎パーツに基づき算出した部分固有値を算出する段階と、算出した全体固有値と複数の部分固有値を、認証サーバに送信する段階と、前記認証サーバが、受信した全体固有値、部分固有値の組み合わせを登録する段階を有し、前記パーツ交換後最初の対象機器起動時に、交換したパーツを認識する段階と、認識した交換パーツについて、交換済みである旨を記録する段階を有し、パーツの交換後最初のソフトウェア起動時に、全体固有値および部分固有値を算出する段階と、前記交換済みである旨が記録されたパーツを除外して算出された部分固有値に、当該部分固有値が不変である旨を付加する段階と、当該全体固有値と複数の部分固有値を、前記認証サーバに送信する段階と、前記認証サーバが、受信した全体固有値と不変である旨が付加された部分固有値の組み合わせに基づいて、対応するライセンス情報を検出し、当該ライセンス情報を受信した全体固有値、部分固有値で更新する段階を有するライセンス情報の更新方法を提供する。
【発明の効果】
【0007】
本発明によれば、ソフトウェアの初期起動時に、全てのパーツに基づく全体固有値と、1以上のパーツを除外した部分固有値を算出して登録し、パーツ交換後最初の対象機器起動時に、どのパーツが交換されたかを記録し、パーツ交換後最初のソフトウェア起動時に、全体固有値と部分固有値を算出すると共に、交換されたパーツを除いて算出された部分固有値が不変である旨を記録し、算出された全体固有値と部分固有値に基づいて、登録されたライセンス情報を更新するようにしたので、一度ライセンスされたコンピュータにおいては、パーツを交換した場合であっても、ソフトウェアの使用が可能となる。
【発明を実施するための最良の形態】
【0008】
(システム環境)
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。図1は、本発明に係るライセンス情報の更新方法が実行されるライセンス認証の環境を示す図である。図1において、10a〜10cは対象機器、20はネットワーク、30は認証サーバである。対象機器10は、ソフトウェアを使用する対象となる機器であり、インターネット等のネットワークアクセス機能を有している。本実施形態では、対象機器10として、パソコン等のコンピュータ端末を想定して説明する。また、対象機器10には、ライセンスの対象となるソフトウェアとは別に、本発明のライセンス情報の更新方法を対象機器10に実行させるための専用のプログラムがインストールされている。なお、図1の例では、対象機器10として、10a〜10cの3台のみを示しているが、現実には多数の対象機器10がネットワーク20に接続されている。ネットワーク20は、一般の利用者が利用可能な汎用の通信ネットワークであり、インターネット等を利用することができる。認証サーバ30は、対象機器10からライセンスNoおよび固有値が送信されてきた場合に、ライセンスNoが新規なものであれば、それを登録し、既に登録されているライセンスNoである場合には、固有値との組み合わせが既に登録されているものと同一であるかどうかの判断を行い、ライセンスを得ている端末での使用であるかどうかを認証する機能を有している。認証サーバ30におけるこのような機能は、専用のプログラムを実行することにより実現される。
【0009】
対象機器10には、内蔵された記憶装置等に、自身の各パーツのパーツ情報が記録されている。例えば、対象機器10が汎用的なパソコンである場合、内蔵のハードディスクや各ハードウェア部品の所定の記憶領域内に記憶されているのが普通である。ここで、対象機器10内に記憶されたパーツ情報の一例を図2に示す。図2に示すように、パーツ情報には、複数のパーツについての、パーツIDが記録されている。図2の例では、CPU、LANボード、マザーボード、サウンドボード、OS、HDDについて記録されている。また、各パーツについて、そのパーツが交換されたものであるかどうかを記録することが可能となっている。図2(a)の例では、“交換フラグ”の欄が空白になっており、対象とするソフトウェアの前回の起動後は、パーツが交換されていないことを示している。図1に示すシステム環境では、これらの情報は対象機器10内のデバイスドライバにより抽出され、対象機器10内の所定の記憶領域に記憶されている。
【0010】
(ライセンス情報の登録)
上記のようなシステム環境で、あるソフトウェアを初めて対象機器10で使用する場合、ソフトウェアを起動させると、対象機器10は、ソフトウェア固有のライセンスNoを読み取る。ライセンスNoとは、個々の製品に付された番号であり、同一のソフトウェアであっても、製品ごとに異なるものである。また、対象機器10は、自身の所定の記憶領域に記憶されている複数のパーツIDを用いて所定のルールで固有値を算出する。ここでは、図2に示した6個のパーツIDから固有値を算出することになる。全体固有値算出の基礎とされるこれらのパーツを算出基礎パーツと呼ぶことにする。固有値としては、あらかじめ設定された全ての算出基礎パーツを基に算出される「全体固有値」と、算出基礎パーツからいずれか1個のパーツを除いた他の5個の算出基礎パーツを基に算出される「部分固有値」の2種類を算出する。例えば、算出基礎パーツが6個存在する場合、各算出基礎パーツを除いた部分固有値を算出するため、6個の部分固有値を算出することになる。本実施形態では、具体的な算出手法として、ハッシュ関数を用いて固有値の算出を行う。なお、複数のパーツIDから固有値を算出する手法としては、ハッシュ関数を用いる手法以外の公知の手法を用いることも可能である。
【0011】
ここで、対象機器10が読み取ったライセンスNo、算出した全体固有値、複数の部分固有値の一例を図3(a)に示す。図3(a)において、部分固有値1〜6は、CPUを除いた5つの算出基礎パーツに基づいた部分固有値、LANボードを除いた5つの算出基礎パーツに基づいた部分固有値、マザーボードを除いた5つの算出基礎パーツに基づいた部分固有値、サウンドボードを除いた5つの算出基礎パーツに基づいた部分固有値、OSを除いた5つの算出基礎パーツに基づいた部分固有値、HDDを除いた5つの算出基礎パーツに基づいた部分固有値にそれぞれ対応している。なお、本実施形態では、説明の便宜上、固有値を4桁で表現しているが、実際には、固有値は数十桁で表現されることが普通である。
【0012】
続いて、対象機器10は、ライセンスNoと算出した全体固有値、部分固有値の組み合わせを、ネットワーク20を介して認証サーバ30に送信する。例えば、図3(a)に示したような、ライセンスNo、全体固有値、部分固有値の組み合わせが認証サーバ30に送信されることになる。
【0013】
認証サーバ30では、受信したライセンスNoが既に登録されているものであるかどうかを確認し、未登録のものである場合には、受信したライセンスNo、全体固有値、部分固有値の組み合わせをそのまま登録する。この場合の認証サーバ30内のライセンス情報の一例を図3(b)に示す。この場合、そのライセンスNoは初めて使用されたことになるので、認証サーバ30は、使用を許可する旨の信号(以下、使用許可信号という)を対象機器10に送信する。対象機器10では、使用許可信号を受信すると、そのソフトウェアに使用許可を与え、ソフトウェアの起動が可能となる。次回以降にそのソフトウェアを対象機器10で使用する場合には、全体固有値を算出した後、ライセンスNoと全体固有値の組み合わせを認証サーバ30に送信する。この場合、認証サーバ30は、受信したライセンスNoと全体固有値の組み合わせが既に登録されているものと一致することになるので、認証サーバ30は、使用許可信号を対象機器10に送信する。
【0014】
(パーツ交換後、最初の対象機器起動時)
次に、一度ソフトウェアの使用許可を得た対象機器10において、全体固有値の算出の基礎となっている算出基礎パーツを交換した場合について説明する。算出基礎パーツを交換した場合、算出基礎パーツに固有の情報であるパーツIDも当然異なることになる。したがって、算出される全体固有値も異なることになるため、ライセンスNoと算出した全体固有値の組み合わせを認証サーバ30に送信しても、登録されている組み合わせではないとして、使用を許可しない旨の信号が対象機器10に送信されることになり、対象機器10ではそのソフトウェアを使用することができない。
【0015】
そこで、本発明に係る方法では、以下のような処理を行うことになる。使用者が対象機器10の算出基礎パーツを交換後、最初に対象機器10を起動すると、対象機器10は、デバイスドライバによりどの算出基礎パーツが交換されたかを認識し、パーツ情報中の対応パーツに、交換された旨を記録する。このときのパーツ情報の様子を図2(b)に示す。図2(b)に示すように、対象機器10は、実際に交換されたパーツを、「交換パーツ」として記録する。すなわち、交換フラグを立てることになる。図2(b)に示す例は、CPUに対応するデバイスドライバが、CPUが交換されたことを対象機器10に伝え、対象機器10がその旨をパーツ情報に記録した場合を示している。なお、上記“交換された旨”の情報は、システムやアプリケーションソフトの設定データが記録されているデータベースであるレジストリに記録しておくことによっても実現できる。
【0016】
(パーツ交換後、最初のソフトウェア起動時)
使用者が、パーツ交換を実際に行った後に、ソフトウェアを起動させたとする。すると、対象機器10は、ソフトウェア固有のライセンスNoを読み取る。また、対象機器10は、自身の所定の記憶領域に「交換パーツ」が記録されているかどうかを確認し、「交換パーツ」が記録されている場合には、各部分固有値を算出すると共に、交換後の算出基礎パーツを含めた対象とする全ての算出基礎パーツに基づいて全体固有値を算出する。さらに、「交換パーツ」として記録されている算出基礎パーツを除外して算出される部分固有値は、交換の前後において不変であるため、不変である旨を、その部分固有値に付加して記録する。この場合のライセンス情報を図3(c)に示す。そして、ライセンスNo、全体固有値、部分固有値の組み合わせを認証サーバ30に送信する。ここでは、図3(c)に示すようなライセンスNo、全体固有値、部分固有値の組み合わせが算出され、送信されることになる。
【0017】
認証サーバ30では、ライセンスNo、全体固有値、部分固有値の組み合わせを受信すると、その中で不変である旨が付加された部分固有値を認識し、その部分固有値と、受信したライセンスNoの組み合わせが登録されているかどうかを確認する。この組み合わせが登録されている場合には、受信した全体固有値、および他の5つの部分固有値により、元の全体固有値および部分固有値を更新する。ここでは、受信したライセンスNoが“2345678”、不変である旨が付加された部分固有値が“QWER”であり、図3(b)に示したように、ライセンスNo“2345678”、部分固有値“QWER”が認証サーバ30内に登録されているので、受信した全体固有値、不変である旨が付加されていない部分固有値で、認証サーバ30内の全体固有値、部分固有値を更新する。この場合の認証サーバ30内のライセンス情報の一例を図3(d)に示す。
【0018】
上記のようにして、パーツ交換後、最初の対象機器10の起動時に、交換したパーツを認識、記録しておき、パーツ交換後、最初のソフトウェア起動時に、全体固有値、部分固有値を算出し、これらをライセンスNoと共に認証サーバ30に送信して、認証サーバ30内の全体固有値および部分固有値の更新を行うので、次回以降にそのソフトウェアを対象機器10で使用する場合には、受信したライセンスNoと全体固有値の組み合わせが既に登録されているものと一致することになり、認証サーバ30は、使用許可信号を対象機器10に送信する。使用許可信号を受信した対象機器10では、ソフトウェアの使用が可能となる。
【0019】
なお、上記処理において、対象機器10が、ソフトウェア固有のライセンスNoを読み取った後、自身の所定の記憶領域に「交換パーツ」が記録されているかどうかを確認し、「交換パーツ」が記録されていない場合には、パーツが交換されていないことになるため、全体固有値のみを算出し、読み取ったライセンスNoと共に認証サーバ30に送信する。この場合は、受信したライセンスNoと全体固有値の組み合わせが、登録されているライセンスNoと全体固有値の組み合わせと同一になるので、認証サーバ30は、使用許可信号を対象機器10に送信することになる。
【0020】
(変形例)
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されず、様々な変形が可能である。例えば、上記実施形態では、部分固有値として、1つの算出基礎パーツを除外した残りの算出基礎パーツについて算出するようにしたが、2つ以上の算出基礎パーツを除外した残りの算出基礎パーツについて算出するようにしても良い。このようにすることにより、2以上の算出基礎パーツを同時に交換した場合であっても、最初に使用許可が得られた対象機器によりソフトウェアの実行が可能となる。
【図面の簡単な説明】
【0021】
【図1】本発明に係るライセンス情報の更新方法が実行されるシステム環境を示す図である。
【図2】対象機器10内に記憶されたパーツ情報の一例を示す図である。
【図3】対象機器10、認証サーバ30内のライセンス情報の一例を示す図である。
【符号の説明】
【0022】
10・・・対象機器
20・・・ネットワーク
30・・・認証サーバ


【特許請求の範囲】
【請求項1】
ソフトウェアが特定の機器でのみ使用許可のライセンスが与えられる場合に、そのライセンスの認証を認証サーバで行うシステムにおいて、前記使用許可された機器のパーツ交換に従って、ライセンス情報を更新する方法であって、
前記ソフトウェアの初期起動時に、全体固有値算出の基礎とされるパーツである算出基礎パーツ全てに基づき算出した全体固有値と、算出基礎パーツのうち1以上のパーツを除外した他の算出基礎パーツに基づき算出した部分固有値を算出する段階と、算出した全体固有値と複数の部分固有値を、認証サーバに送信する段階と、前記認証サーバが、受信した全体固有値、部分固有値の組み合わせを登録する段階を有し、
前記パーツ交換後最初の対象機器起動時に、交換したパーツを認識する段階と、認識した交換パーツについて、交換済みである旨を記録する段階を有し、
パーツの交換後最初のソフトウェア起動時に、全体固有値および部分固有値を算出する段階と、前記交換済みである旨が記録されたパーツを除外して算出された部分固有値に、当該部分固有値が不変である旨を付加する段階と、当該全体固有値と複数の部分固有値を、前記認証サーバに送信する段階と、前記認証サーバが、受信した全体固有値と不変である旨が付加された部分固有値の組み合わせに基づいて、対応するライセンス情報を検出し、当該ライセンス情報を受信した全体固有値、部分固有値で更新する段階と、
を有することを特徴とするライセンス情報の更新方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate