(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続され、クライアントにて実行されるソフトウェアの実行ライセンスコードの発行要求データの送信を行うクライアントと、該実行ライセンス発行要求データを受けて前記クライアントに前記実行ライセンスコードの通知を行うライセンス管理サーバとを備えるソフトウェアのライセンス認証装置において、
前記クライアントは、ネットワーク通信アドレスデータを含む前記実行ライセンス発行要求データを生成し前記ライセンス管理サーバに送信する送信手段を備え、前記クライアントは、前記ソフトウェアとの対応を示した照合キーが更に設けられており、前記実行ライセンスコードの発行要求データに前記照合キーのデータを含み、
前記ライセンス管理サーバは、
前記実行ライセンス発行要求データから前記ネットワーク通信アドレスデータを抽出する抽出手段と、
前記実行ライセンスコードの発行先を予め記憶したデータベースから前記ネットワーク通信アドレスデータと一致するデータを検索する検索手段と、
前記検索手段による検索の結果、前記ネットワーク通信アドレスデータと一致するデータが無い場合に、前記実行ライセンスコードを前記クライアントに通知するライセンス発行手段と、
を備え、
前記抽出手段は、前記照合キーのデータを更に抽出し、
前記検索手段は、前記照合キーのデータを更に記憶した前記データベースから前記実行ライセンス発行要求データに含まれる照合キーを更に検索し、
該検索の結果、前記照合キーのデータに一致する照合キーのデータがない場合に、前記実行ライセンスコードを前記クライアントに通知するライセンス発行手段を備えることを特徴とするライセンス認証装置。
【請求項２】
請求項１に記載のライセンス認証装置において、
前記クライアントは、前記実行ライセンスコードを取得した後、該実行ライセンスコードの解除を前記ライセンス認証サーバに要求する実行ライセンス解除要求手段を更に備え、
前記ライセンス管理サーバは、前記実行ライセンス解除要求手段による前記実行ライセンスコードの解除要求データを受け、前記データベースに記憶したライセンスデータ、ネットワーク通信アドレスデータ及び照合キーのいずれかを削除する実行ライセンス情報削除手段を更に備えることを特徴とするライセンス認証装置。
【請求項３】
請求項２記載のライセンス認証装置において、
前記クライアントは、前記実行ライセンス解除要求手段が前記ライセンス管理サーバに前記実行ライセンスコードの解除要求をする際、前記クライアントの照合キーを異なる照合キーに書き換えることを特徴とするライセンス認証装置。
【請求項４】
請求項２又は３に記載のライセンス認証装置において、
前記クライアントがシステムのバックアップを行う際、前記実行ライセンスがある場合に前記実行ライセンスの取得済みであることを記憶する実行ライセンス取得状況確認手段と、
前記クライアントが前記ソフトウェアの起動を行う度に前記実行ライセンス取得状況手段を参照し、前記実行ライセンスが取得済みである場合、前記実行ライセンスコードを削除する実行ライセンス削除手段とを更に備えることを特徴とするライセンス認証装置。
【請求項５】
請求項４記載のライセンス認証装置において、
前記実行ライセンス削除手段が実行ライセンスコードを削除した後、前記実行ライセンスの再発行要求をソフトウェアの使用者に示唆する警告手段を更に備えることを特徴とするライセンス認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク網を用いたライセンス認証装置に関する。
【背景技術】
【０００２】
ソフトウェアプログラム（以下、「ソフトウェア」という。）等の電子情報は、内容の同一性や品質を担保しつつ理論上何度もコピーが可能であるという特性がある。このためソフトウェアプログラムの流通では、ソフトウェアに使用制限プログラムを施して使用権限の無いユーザの無断使用を防止している。開発者が正当な対価を獲得する機会を確保するためである。
一方、店頭でＣＤ（Compact Disc）等の記憶媒体を購入したり、ネットワークによるダウンロードサービスを受けてソフトウェアを正当に取得したユーザは、開発者が用意したＷｅｂサイトにアクセスしてソフトウェアの使用許諾を受けることで使用制限を解除することができる。以下に、図１１のフロー図を用いて従来のライセンス認証システムの概要を説明する。なお、図１１において、クライアントとライセンス管理サーバはインターネットを通じて電子情報の送受信を可能とする。
【０００３】
ユーザがパーソナルコンピュータにインストールされたソフトウェアの起動を行うと（ステップＳ１０１）、クライアントはオペレーティングシステム内部の共通参照領域にソフトウェア使用許諾データ（以下、「ライセンスデータ」という。）が有るかを判断する（ステップＳ１０２）。ライセンスデータがない場合（ステップＳ１０３）、ソフトウェアパッケージに同梱された商品特定情報（例えば、品番等）やユーザの氏名、住所等の入力を要求するとともに上述した共通参照領域からソフトウェアが起動されているパーソナルコンピュータのハードウェア特定情報（例えば、製造シリアル番号）を読み込み（ステップＳ１０３）、これらの情報から問い合わせコードを作成してライセンス管理サーバに送信する（ステップＳ１０４）。
ライセンス管理サーバは、供給された問い合わせコードの解析を行い（ステップＳ２０１）、ユーザ情報、商品特定情報、ハードウェア特定情報及び発行するライセンスコード等の登録を行った後クライアントにライセンスコードを送信する（ステップＳ２０２）。
ユーザにより、送信されたライセンスコードが入力されると（ステップＳ２０５）、クライアントは所定の演算処理を行い、演算結果が予めソフトウェアに記憶されたコードと一致するかを判別し（ステップＳ２０６）、一致する場合に（ステップＳ２０６：ＹＥＳ）ソフトウェアの使用制限を解除してソフトウェアプログラム本体の読み込みを行う（ステップＳ２０７）。
【０００４】
ライセンス管理サーバには、ライセンスの発行先（即ち特定のユーザやパーソナルコンピュータ）が残るため、事後正当権限を有するユーザからソフトウェアを譲りうけた者が同じソフトウェアを使用する場合は、再度ライセンスの取得を要求してライセンス管理サーバに記憶された内容と比較する。この比較により正当な使用権限を有するか否かを判別し、ライセンスコード発行の可否を制御するようになっている。
【０００５】
このようなソフトウェアの不正コピーを防止する試みは一般化されており、現代では改良を施した種々の技術が開発されている。例えば、クライアントから送信するライセンス認証要求を暗号化してライセンス管理サーバで暗号を平分に変換し、この平分のライセンス情報に基づいてライセンスコードを発行するか否かを判別する技術が開発されている（特許文献１）。即ち、ライセンス管理サーバは、クライアントからライセンス認証要求がなされると、従前の登録処理で記憶したライセンス情報に基づいてライセンスコードの発行を判断する。このためライセンス管理サーバに記憶されたライセンス情報が改ざんされると、もはやクライアントに対しライセンスコード発行の可否を判別することができなくなる。このような問題を解決すべく、特許文献１に記載の発明はライセンス管理サーバに格納されたライセンス情報を暗号として格納するものである。
【特許文献１】特開平９−３１９５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、一度ライセンスコードを発行すると、そのライセンスコードをもってソフトウェアの正当な使用権限を有する者以外の者でも使用制限を解除することができてしまうという問題がある。例えば、１つのソフトウェアを購入してライセンスコードを入手した後、他のクライアントにこのソフトウェアをインストールしライセンスコードを入力することで、正当な使用権限を有さない者もソフトウェアを使用することができる。開発者は最初の一回の対価しか得ることができない。
【０００７】
一方、ライセンスコードは解除することができず永続的に残るという問題もある。例えば、ソフトウェアの販売代理店が販売促進のために店頭でソフトウェアを実際に起動してデモンストレーションを行う場合がある。使用されるソフトウェアパッケージは、販売する商品そのものを使用するのが一般的である。販売代理店は販売促進用といえども開発者に対価を支払う必要がある。そのため、使用制限を解除するためライセンス管理サーバからライセンスコードを入手するが、一度ライセンス登録を行うと永続的にユーザを特定するため、ライセンス管理データが管理サーバ上に残り、ライセンスコードを解除あるいは返却して再販売することができない。特にデモンストレーションを行うソフトウェアが高額なものである場合はコスト負担が多く、販売促進を著しく阻害するという問題がある。
【０００８】
本発明の課題は、ライセンスコードの解除及び再登録を行うことで、ソフトウェア流通を正当且つ円滑に行うとともに、ライセンスの解除及び再登録に伴うライセンスの重複登録や転用等の弊害を防止することにある。
【課題を解決するための手段】
【０００９】
請求項１記載の発明は、ネットワークを介して接続され、クライアントにて実行されるソフトウェアの実行ライセンスコードの発行要求データの送信を行うクライアントと、該実行ライセンス発行要求データを受けて前記クライアントに前記実行ライセンスコードの通知を行うライセンス管理サーバとを備える、ソフトウェアのライセンス認証装置において、
前記クライアントは、ネットワーク通信アドレスデータから前記実行ライセンス発行要求データを生成し前記ライセンス管理サーバに送信する送信手段を備え、前記クライアントは、前記ソフトウェアとの対応を示した照合キーが更に設けられており、前記実行ライセンスコードの発行要求データに前記照合キーのデータを含み、
前記ライセンス管理サーバは、
前記実行ライセンス発行要求データから前記ネットワーク通信アドレスデータを抽出する抽出手段と、
前記実行ライセンスコードの発行先を予め記憶したデータベースから前記ネットワーク通信アドレスデータと一致するデータを検索する検索手段と、
前記検索手段による検索の結果、前記ネットワーク通信アドレスデータと一致するデータが無い場合に、前記実行ライセンスコードを前記クライアントに通知するライセンス発行手段とを備え、
前記抽出手段は、前記照合キーのデータを更に抽出し、
前記検索手段は、前記照合キーのデータを更に記憶した前記データベースから前記実行ライセンス発行要求データに含まれる照合キーを更に検索し、
該検索の結果、前記照合キーのデータに一致する照合キーのデータがない場合に、前記実行ライセンスコードを前記クライアントに通知するライセンス発行手段を備えることを特徴とする。
【００１１】
請求項２記載の発明は、請求項１に記載のライセンス認証装置において、
前記クライアントは、前記実行ライセンスコードを取得した後、該実行ライセンスコードの解除を前記ライセンス認証サーバに要求する実行ライセンス解除要求手段を更に備え、
前記ライセンス管理サーバは、前記実行ライセンス解除要求手段による前記実行ライセンスコードの解除要求データを受け、前記データベースに記憶したライセンスデータ、ネットワーク通信アドレスデータ及び照合キーのいずれかを削除する実行ライセンス情報削除手段を更に備えることを特徴とする。
【００１２】
請求項３記載の発明は、請求項２記載のライセンス認証装置において、
前記クライアントは、前記実行ライセンス解除要求手段が前記ライセンス管理サーバに前記実行ライセンスコードの解除要求をする際、前記クライアントの照合キーを異なる照合キーに書き換えることを特徴とする。
【００１４】
請求項４記載の発明は、請求項２又は３に記載のライセンス認証装置において、
前記クライアントがシステムのバックアップを行う際、前記実行ライセンスがある場合に前記実行ライセンスの取得済みであることを記憶する実行ライセンス取得状況確認手段と、
前記クライアントが前記ソフトウェアの起動を行う度に前記実行ライセンス取得状況手段を参照し、前記実行ライセンスが取得済みである場合、前記実行ライセンスコードを削除する実行ライセンス削除手段とを更に備えることを特徴とする。
【００１５】
請求項５記載の発明は、請求項４記載のライセンス認証装置において、
前記実行ライセンス削除手段が実行ライセンスコードを削除した後、前記実行ライセンスの再発行要求をソフトウェアの使用者に示唆する警告手段を更に備えることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、クライアントがライセンス管理サーバに送信するソフトウェアの実行ライセンス発行要求データにクライアントが有するネットワーク通信アドレスデータ（例えば、ＭＡＣアドレス）を含ませ、ライセンス管理サーバにてこのデータに基づいて、過去のアドレス発行先を記憶したデータベースからクライアントの検索を行うことで、実行ライセンスコードの重複発行を防止することができる。特に、ネットワーク通信アドレスデータ（例えば、ＭＡＣアドレス）は、同一規格内のネットワーク環境内で同一のものが原則として存在しないユニークなコードであるため、クライアントの特定を確実に行うことができる。
また、クライアント毎にユニークな照合キーを付与し、この照合キーを実行ライセンス発行要求データに含ませ、過去のアドレス発行先を記憶したデータベースからクライアントの検索を行う際に、更に確実な特定を行うことができる。
また、実行ライセンスの解除を行うことができる構成とすることで、従来一度実行ライセンスを発行したら永続的にクライアントを拘束していたライセンス認証装置と異なり、実行ライセンスの取得、解除及び再登録を行うことができる。これにより、ソフトウェアの流通の妨げとなっていたソフトウェアの実行ライセンスによる拘束を解消することができる。
更には、実行ライセンスの取得、解除及び再登録を可能とする構成としたことで生ずるソフトウェアの実行ライセンスフリー（不当解除）という問題に対し、実行ライセンスの解除時にクライアントあるいはライセンス管理サーバのデータベース内の照合キーを他の照合キーに書き換えを行う等の処理を行い、クライアントでのソフトウェアの際起動時又はライセンス管理サーバでの実行ライセンス発行要求データの受信時に照合キーを比較し、不当なライセンス情報を有する場合にソフトウェアの使用制限又は実行ライセンスコードの発行禁止を行うことができる。この結果、ネットワークを利用したソフトウェアの実行ライセンスの管理において、信頼性が著しく向上し、開発者のソフトウェア開発に対する正当な対価の獲得機会を確保するとともに、ソフトウェア流通における流通業者の販売促進コストの低減を実現することができる。
【発明を実施するための最良の形態】
【００２４】
〔第１の実施形態〕
次に、図を用いて本発明を実施するための最良の形態について説明する。第１の実施の形態では、ソフトウェアの使用ライセンス要求を行うクライアントとこの要求を受けてソフトウェアの使用ライセンスの発行を行うサーバマシンとから構成されるライセンス認証システムにおいて、クライアントから送信するライセンス要求にユニークな情報を付加し、サーバマシンにて同一のクライアントに対し重複したライセンスの発行を防止するものである。
【００２５】
図１に、本発明を適用したソフトウェアのライセンス認証システム１の全体構成の概要を示す。
ライセンス認証システム１は、クライアント２とライセンス管理サーバ３とが網５を介して接続され、双方向に通信可能に構成されている。少なくとも１つのクライアントを備えて構成され、網５やライセンス管理サーバ３の種々の規約や処理能力に応じて複数設置することができる。
クライアント２は、ＰＣ、ワークステーション、携帯電話機、ＰＨＳ（Personal Handyphone System）、ＰＤＡ（Personal Digital Assistant）及びゲーム機等が適用できる。
ライセンス管理サーバ３は、大型サーバを始めワークステーションやＰＣを適用する構成としても良い。クライアント２同様に、網５やクライアント２との規約や処理能力に応じて適宜変更することができる。本実施の形態では大型のサーバマシンを適用する。また、ライセンス管理サーバ３は、過去に各クライアントに発行したソフトウェアライセンス情報、各クライアントの情報、新規にライセンス認証を要求するクライアント及びそのライセンス情報を記憶するデータベース４を備える。
網５は、ＬＡＮ（Local Area Network）、ＭＡＮ（Metropolitan Area Network）、ＷＡＮ（Wide Area Network）及びインターネット等の通信網(通信ネットワーク)から構成される。本発明ではインターネットを適用して説明する。
【００２６】
図２に、クライアント２の概要構成を示す。
クライアント２は、ＣＰＵ６、ＲＡＭ７、記憶部８、表示部９、入力部１０、通信部１１から構成される。ＣＰＵ６は、オペレーションプログラム及び種々のアプリケーションプログラムをワークエリアとしてのＲＡＭ７に展開しクライアント２の全体制御を行う。後述するライセンスの要求信号の生成、この要求信号の送信及びライセンス管理サーバ３からのライセンス信号の受信等を行う。
記憶部８は、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）やハードディスク等の不揮発性メモリから構成される。クライアント２で使用されるオペレーションプログラムやアプリケーションプログラムを始め、これらソフトウェアとの協働により生成された各種のデータを記憶するものであり、使用ライセンス要求の対象となるアプリケーションソフトウェアが記憶される。
【００２７】
表示部９は、ＣＲＴ（Cathode Ray Tube）やＴＦＴ（Thin Film Transistor）液晶表示素子及び有機ＥＬ素子を用いたＦＤＰ（Flat Display Panel）から構成され、クライアント２での各種処理を表示するものである。入力部１０は、キーボード、テンキー、マウス又はこれらの組合せから構成され、ユーザの操作により各種指示を入力するものである。表示部９にタッチパネルを設ける構成として表示部９と入力部１０とを兼用する構成としても良い。
【００２８】
通信部１１は、外部機器との通信を行う。ＮＩＣ（Network Interface Card）等の通信装置から構成され、予め定められた規約（プロトコル）に則りインターネット等を介した通信を行うものである。クライアントには、インターネット上でのアドレス（以下、「ＭＡＣアドレス」という）が付与されている。
【００２９】
次に、クライアント２がライセンス管理サーバ３に送信するライセンス要求信号を生成する際に使用する各種データについて説明する。図３（ａ）にライセンス要求信号生成の各種データを格納したライセンス要求ファイル１５の構成例を示す。
ライセンス要求ファイル１５は、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２、照合キー２３及びライセンスコード２４から構成される。
ラインナップコード２０は、ソフトウェアに付された商品コードである。予め独自規格のコードを設ける構成としてもよいし、既存の規格化されたコード（例えば、ＪＡＮ（Japanese Article Number）コード）等を利用する構成としても良い。ラインナップコード２０はソフトウェアの種類やバージョン毎に異なる番号を付与するのが好ましい。ユニーク性を担保するためである。例えば、流通段階では複数のソフトウェアをパッケージングしたセット販売を行うことがあるが、ユーザは同梱された一部のソフトウェアのみの使用を所望する場合がある。このような場合に、使用を所望する一部のソフトウェアを個別に特定することができるようになる。
ＣＤキー２１は、ソフトウェアに付されたシリアル番号である。原則として、同一ソフトウェアにおいて同一のシリアル番号はなくユニーク性が担保できる。
ＭＡＣ（Media Access Control）アドレスデータ２２は、網５の通信規約に基づいて通信部１１に付与されたアドレスである。本実施の形態ではインターネットプロトコルに基づき、クライアント２に付与されたインターネットアドレスに相当する。同一規約下の通信環境では、同一のＭＡＣアドレスは存在せずユニーク性が担保できる。
照合キー２３は、アプリケーションソフトウェアがクライアント２の各種設定を管理する管理データベース（例えば、レジストリ等）に記憶させた特定のコードである。ユーザによりアプリケーションソフトウェアが記憶された記録ディスク等が挿入されると、この管理データベースに照合キーとして特定のコードの書込みが行われる。照合キーは、数字、記号、文字コード又はこれらの組合せとしてなんでも良いが、同一のものが存在しないように夫々異なるコードとすることが好ましい。ユニーク性を担保し、以後のソフトウェアのライセンス処理に関し、ライセンス管理サーバ３でクライアントを特定する要素の一つとなるためである。
ライセンスコード２４は、ソフトウェアの使用ライセンスを取得したときに、使用制限の解除を行うライセンスコードが記憶される領域である。従前に使用ライセンスを入手している場合は、その後ソフトウェアの使用時にこのライセンスコードを入力することによりソフトウェアの使用制限を解除することができる。
【００３０】
次に、ライセンス管理サーバ３にて行われるライセンス発行処理で、ライセンス管理サーバ３が参照するデータを格納したライセンス発行ファイル１６について説明する。図３（ｂ）に、ライセンス発行ファイル１６のファイル構成を模式的に示す。
ライセンス発行ファイル１６は、商品マスターテーブル２６、ライセンス発行テーブル２５、顧客データテーブル２７を格納する。
商品マスターテーブル２６は、ライセンス対象とするソフトウェア毎のラインナップコードＮ１ａ、Ｎ１ｂ、Ｎ１ｎ等のラインナップコード群３２、各ラインナップコードと対応付けて記憶されているＣＤキーＮ１ａ、Ｎ１ｂ及びＮ１ｎ等のＣＤキー群３３から構成される。即ち、ソフトウェア商品の出荷時に、個々のソフトウェア商品毎のラインナップコード及びＣＤキーがデータベース４に記憶されたものである。
ライセンス発行テーブル２５は、ライセンス発行を行う際に、ＭＡＣアドレスＮ１ａ、Ｎ１ｂ及びＮ１ｎ等のＭＡＣアドレス群３０及び照合キーＮ１ａ、Ｎ１ｂ及びＮ１ｎ等の照合キー群３１を記憶したものである。ＭＡＣアドレスデータＮ１ａ、Ｎ１ｂ及びＮ１ｎ及び照合キーＮ１ａ、Ｎ１ｂ及びＮ１ｎは、商品マスターテーブル２６内に記憶されたラインナップコードＮ１ａ、Ｎ１ｂ及びＮ１ｎと夫々対応付けがなされている。
【００３１】
顧客データテーブル２７は、ライセンス発行の際に登録したソフトウェアの所有者等に関するデータを記憶したものである。ライセンス要求の際、ライセンス管理サーバ３が適宜参照するデータである。
【００３２】
以上の構成を有するライセンス認証システム１の動作について図４及び図５を用いて説明する。なお、以下の説明で、ライセンス要求の対象となるソフトウェアはＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光ディスクに記録されているものとし、ユーザはソフトウェアをこの光ディスクに記録された状態で購入し、起動可能な状態にインストールが完了しているものとする。
また、ライセンス要求の対象となるソフトウェアは、網５等の通信網(通信ネットワーク)を経由して外部装置からダウンロードされ、起動可能な状態にインストールが完了しているものでもよい。
【００３３】
図４において、ユーザがソフトウェアの起動を指示し、ソフトウェアの読み込みが開始されると（ステップＳ３０１）、ＣＰＵ６は、記録媒体よりソフトウェアのラインナップコード２０及びＣＤキー２１の読み込みを行う（ステップＳ３０２）。
【００３４】
次いで、クライアントの各種設定データを格納する設定管理データベースからＭＡＣアドレスを読み込み取得する（ステップＳ３０３）。更に、設定管理データベースに照合キー２３があるかを検索する（ステップＳ３０４）。照合キー２３が既に記憶されている場合には（ステップＳ３０５：ＹＥＳ）、その照合キー２３を取得する。逆に、照合キー２３がない場合には（ステップＳ３０５：ＮＯ）、記録媒体に記憶された照合キー２３を設定管理データベースに書き込み又同時に読み込みを行う（ステップＳ３０６）。
【００３５】
次いで、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２及び照合キー２３からライセンス要求データを生成する（ステップＳ３０７）。このとき、ライセンス要求データを周知の技術により暗号化する処理を行う。その後、通信部１１を介してライセンス管理サーバ３にライセンス要求データを送信する（ステップＳ３０８）。
【００３６】
次に、ライセンス要求データを受信したライセンス管理サーバ３の処理を図５に示すフロー図を用いて説明する。
ライセンス管理サーバ３は、暗号化されたライセンス要求データの復号化処理を行い、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２及び照合キー２３を取得する（ステップＳ４０１）。その後、ラインナップコード２０を検索キーとしてラインナップコード群３２から対応するラインナップコードＮ００ａを検索し、更にこのラインナップコードＮ１ａと対応するＣＤキー群３３の検索を行い取得する、（ステップＳ４０２）。即ち、特定の種類やバージョンのソフトウェア商品の各々に付されたシリアル番号群を取得する。
【００３７】
次いで、ライセンス要求データから取得したＣＤキー２１がＣＤキー群３３の中に存在するかを判別する（ステップＳ４０３）。正規の過程で流通したソフトウェア商品に付されたＣＤキーは、原則として必ず商品マスターテーブル２６に記憶される。このためライセンス要求データから取得したＣＤキー２１がＣＤキー群３３に存在しない場合は（ステップＳ４０３：ＮＯ）、不正流通商品のライセンス要求又はデータのエラーとして処理する（ステップＳ４０９）。一方、ステップＳ４０３の判断で対応するＣＤキーが存在する場合には（ステップＳ４０３：ＹＥＳ）、ステップＳ４０４の処理に進む。
【００３８】
ステップＳ４０４では、ステップＳ４０２で取得したラインナップコード２０とＣＤキー２１とを検索キーとして、ライセンス発行テーブルから対応するＭＡＣアドレスデータＮ１ａと照合キーＮ１ａの検索を行い取得する。なお、ライセンス発行テーブル２５は、過去に同一のソフトウェア商品にライセンスを発行したことがある場合に、データベース４に発行履歴として保存したデータである。したがって、新規にライセンス要求を行う場合は、当然にＭＡＣアドレスデータ２２と照合キー２３に対応するデータはライセンス発行テーブル２５に存在しない。
【００３９】
ステップＳ４０５にて、ライセンス発行テーブル２５から取得したＭＡＣアドレスデータＮ１ａとライセンス要求データから取得したＭＡＣアドレスデータ２２が一致するか又はライセンス発行テーブル２５にＭＡＣアドレスデータＮ１ａが存在するかのいずれかの場合と、ＭＡＣアドレスデータＮ１ａとＭＡＣアドレスデータ２２が不一致となるかを判別する。
ＭＡＣアドレスデータ２２とＭＡＣアドレスデータＮ１ａとが一致するか又はライセンス発行テーブル２５にＭＡＣアドレスデータＮ１ａが存在しない場合は（ステップＳ４０５：ＹＥＳ）、ステップＳ４０６に進む。逆に、ＭＡＣアドレスデータＮ１ａとＭＡＣアドレスデータ２２が不一致となる場合には（ステップＳ４０５：ＮＯ）、ライセンスの重複取得と判断し、実行ライセンス不正取得手続としてステップＳ４０９の処理を行う。
【００４０】
次いで、ステップＳ４０６にて、ステップＳ４０４で取得した照合キーＮ１ａとライセンス要求データから取得した照合キー２３とが一致するか否かを判断する。なお、新規にライセンス要求を行う場合は、上述したステップＳ４０５で述べたように、照合キーＮ１はライセンス発行テーブル２５上に存在しない。この場合は、両照合キーが一致する場合と同様に扱う。
【００４１】
照合キー２３と照合キーＮ１ａとが一致する場合は（ステップＳ４０６：ＹＥＳ）、ステップＳ４０７の処理に進む。逆に、不一致である場合は（ステップＳ４０６：ＮＯ）、ライセンスの転用と判断し、不正取得行為としてステップＳ４０９の処理を行う。
【００４２】
ステップＳ４０７では、ステップＳ４０２からステップＳ４０６までの処理結果に基づいてライセンス要求が正当なものであるとして、ソフトウェアの使用制限を解除するライセンスコードの生成を行う。ライセンスコードは、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２及び照合キー２３から生成される。その後、クライアント２にライセンスコードを送信する（ステップＳ４０８）。
【００４３】
ところで、ステップＳ４０３、Ｓ４０４及びＳ４０６の判断にてライセンスの不正取得又はデータエラーと判断された場合は（ステップＳ４０３、Ｓ４０４及びＳ４０６のいずれかがＮＯ）、ライセンスの発行ができない旨のメッセージを示すライセンス不発行データを生成し（ステップＳ４０８）、クライアント２に送信する。
【００４４】
図４に戻り、ライセンス管理サーバ３からライセンスコードの発行を受けたクライアント２は（ステップＳ３０９）、ライセンスコードをクライアント２の記憶部８に記憶する（ステップＳ３１０）。その後、ライセンスコードを読出し、使用制限管理ツールに入力し、ソフトウェア本体の使用制限を解除して起動を開始する（ステップＳ３１１）。
【００４５】
以上のように、第１の実施形態におけるライセンス認証システムによれば、クライアント２からのライセンス要求データにソフトウェア商品毎に付された個別のユニークコードに加えて、クライアント２が有するＭＡＣアドレスというハードウェア情報も含ませるため、ライセンス発行の際、クライアント２の特定を一層確実に行うことができる。更に、クライアント２に固有の照合キー２３を記憶させ、ライセンス要求データにこの照合キー２３の情報も含ませるため、ライセンス管理サーバ３にてクライアント２の特定が著しく確実になる。ソフトウェアの正当な使用権限を有するクライアントからの確実性の高いライセンス要求データとデータベース４に記憶されたライセンス発行ファイルの情報とを参照することで、ソフトウェアのライセンス管理が確実となる。この結果、ライセンスの解除及び再登録を行っても不正ライセンス取得を確実に防止することができる。
【００４６】
〔第２の実施形態〕
次に、本発明を実施するための第２の実施形態について説明する。第１の実施形態では、各種のユニークコードを含ませてライセンス要求データを生成し、このライセンス要求データとデータベース４に登録された各種のデータを照合してクライアント２を確実に特定することで重複ライセンス等の不正ライセンス取得を防止するものであった。
これに対し第２の実施形態では、一度取得したライセンスコードを解除する処理を行うものである。ライセンスコードの解除を行うことで、ソフトウェア毎のライセンスが特定のクライアントに拘束されることが無くなり、又ライセンスコードの再取得を容易にするため、開発者のソフトウェア開発の対価を担保しつつソフトウェア流通を円滑に行うことが可能となる。
しかしながら、単にライセンスコードを解除する処理構成とすると、単一のクライアントで複数のライセンスコードを取得することができる等のライセンス不正取得という問題が生ずる。
そこで、第２の実施形態のライセンス認証システム１では、一度ライセンスコードの解除要求を行うと、従前のライセンスコードによるソフトウェアの使用制限を解除できない機能をクライアントに設けるものである。
【００４７】
第２の実施形態のライセンス認証システム１は、第１の実施形態のライセンス認証システムと基本構成は共通する。
なお、以下の説明で第１の実施形態と同一の機能を有するものは同一符号をもって示し詳細な説明を省略する。
【００４８】
図６に、第２の実施形態におけるライセンス認証システム１の処理を表したフロー図を示す。
ユーザの操作により、ライセンスの解除アプリケーションが起動すると（ステップＳ５０１）、ＣＰＵ６は設定管理データベースにアクセスし、照合キー２３及びＭＡＣアドレスを読み込み取得する（ステップＳ５０２）。その後、ライセンスコード２４、ラインナップコード２０、ＣＤキー２１及び照合キー２３からライセンス解除要求コードを生成して所定の方法により暗号化を行う（ステップＳ５０３）。
【００４９】
次いで、ＣＰＵ６は設定管理データベースに記憶されている照合キー２３を照合キー２３Ｂに書き換える（ステップＳ５０４）。この書き換えは、仮に従前までの照合キー２３が「１」で有ったとすると、「２」に変更するものである。これによりクライアント２は、ライセンス解除要求を行うソフトウェアとの関係において、以後ライセンス管理サーバ３で異なる照合キーを有するものとなる。ステップＳ５０４にて、照合キー２３の書き換えが終了すると、ライセンス解除要求データをライセンス管理サーバ３に送信する（ステップＳ５０５）。
【００５０】
ライセンスの解除要求を受信したライセンス管理サーバ３は、ライセンス解除要求を復号してライセンスコード２４、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２及び照合キー２３を取得する（ステップＳ６０１）。その後、データベース４にアクセスし、ライセンス発行ファイル１６から各データを削除（無効）とする処理を行う（ステップＳ６０２）。
【００５１】
以上の様に、第２の実施形態では、クライアント２のライセンス解除要求データの送信により、クライアント２内の照合キー２３が異なるコード（照合キー２３Ｂ）に変更されるため、ライセンス解除後に再びソフトウェアを起動しても、クライアント２でのソフトウェア使用制限管理ツールによりソフトウェア本体の起動が制限される。具体的に、図７に示すフロー図を用いて説明する。
ライセンスの解除を行った後、ソフトウェアプログラムを起動すると（ステップＳ７０１）、ＣＰＵ６はプログラムに従いソフトウェア使用制限管理ツールを展開し、クライアント２のソフトウェア使用ライセンスの確認を開始する（ステップＳ７０２）。
【００５２】
記憶部８等に記憶された、ライセンスコード２４を読出し（ステップＳ７０３）、このライセンスコード２４に含まれるラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２及び照合キー２３と、ソフトウェアのラインナップコード２０やＣＤキー２１及び設定管理データベースに記憶されたＭＡＣアドレスデータ２２と照合キー２３が一致するかを判別する（ステップＳ７０４）。
ステップＳ７０４の判別にて、不一致となるコード等がある場合は（ステップＳ７０４：ＮＯ）、ライセンスコードがエラーであると認識し（ステップＳ７０５）、ソフトウェアの起動を禁止する警告表示を行う（ステップＳ７０６）。つまり、仮に照合キー２３が照合キー２３Ｂであったとすると、ソフトウェアのライセンスコードがエラーであると認識する。
ステップＳ７０４の判断でライセンスコード２４を構成する各要素データが一致する場合は、ライセンスコードが正当なものであると認識し（ステップＳ７０７）、使用制限を解除してソフトウェア本体の起動を開始する。
【００５３】
以上のように、第２の実施形態のライセンス認証システム１によれば、クライアント２がライセンスの解除要求を行う際に設定管理データベース上の照合キーを書き換えるため、ソフトウェアの再起動時のソフトウェア実行許可処理において従前のライセンスコードを入力してもソフトウェア本体が起動することなく確実に使用制限を実行することができる。
【００５４】
〔第３の実施形態〕
次に、本発明を実施するための第３の実施形態について説明する。
第３の実施形態では、クライアント２がソフトウェアのライセンス要求を行った後、一度ライセンスの解除要求を行い、再びライセンスの要求を行ってソフトウェアの使用を行っている状況を前提とする。このときのソフトウェアの使用は正当なライセンスに基づくものであり正当なものである。
しかしながら、一度ライセンス解除を行ったのち再びライセンスの要求を行った状態において、前回ライセンスの解除要求を行った際に、クライアント２からライセンス管理サーバ３に送信したライセンス解除要求データ（以下、「ライセンス解除要求データＡ」という。）を使用して、ライセンス解除要求を行った場合に生ずる問題がある。即ち、クライアント２のライセンス解除要求時にライセンス管理サーバ３に送信されるライセンス解除要求データは、何度ライセンスの取得及び解除を行っても同一内容である。
したがって、上述したように一度ライセンスコードの要求を行い、ライセンスコードの発行を受けた後ライセンスの解除要求を生成しライセンス解除要求データをライセンス管理サーバ３に送信する。このときライセンス解除要求データをバックアップしておく（つまり、ライセンス解除要求データＡをバックアップする）。その後、再びライセンス発行要求を行い、ライセンスコードを取得する。そして、バックアップしておいたライセンス解除要求データＡを使用してライセンスの解除要求を行う。このとき、ライセンス管理サーバ３では、クライアント２のライセンスコードを解除するが、クライアント２は、実際には２回目に取得したライセンスコードに基づいて使用制限管理ツールを展開しているため従来と変わりなくソフトウェアを使用することができてしまう。
そこで、第３の実施形態では、ライセンス管理サーバ３に送信されたライセンス解除要求データが正当なライセンス解除データであるかを判別し、不当なライセンス解除要求データである場合は、解除要求を受け付けないようにすることを特徴とする。
【００５５】
図８に示すフロー図を用いて、第３の実施形態におけるライセンス認証システム１について説明する。なお、以下の説明において第１の実施形態及び第２の実施形態と共通する処理は詳細な説明を省略する。
【００５６】
クライアント２からライセンス解除要求データが送信され（ステップＳ８０１）、ライセンス管理サーバ３が受信すると（ステップＳ９０１）、ライセンス解除要求データに含まれるライセンスコード２４、ラインナップコード２０、ＣＤキー２１、ＭＡＣアドレスデータ２２、照合キー２３を取得する（ステップＳ９０２）。
【００５７】
これらのコードのうちライセンスコード２４及びＭＡＣアドレスデータ２２をキーとして、データベース４に格納されるライセンス発行ファイルの検索を行い、同一のデータを検出する（ステップＳ９０３）。
同一のデータがある場合には（ステップＳ９０３：ＹＥＳ）、照合キーＮ１のうち最新の照合キーＮ１ｂを取得する（ステップＳ９０４）。即ち、第３の実施形態では、クライアント２は２回目のライセンス発行要求を行い、ライセンス発行テーブル２５には、書き換えられた照合キー２３Ｂが格納されている。
【００５８】
その後、ライセンス解除要求データに含まれる照合キー２３と照合キーＮ１が一致するかを比較する（ステップＳ９０５）。一致する場合は（ステップＳ９０６：ＹＥＳ）、ライセンス解除要求データが正当なものであると認識し、ライセンスコードの解除を行う（ステップＳ９０７）。逆に、一致しない場合は（ステップＳ９０６：ＮＯ）、不当なライセンス解除要求データであるとして、ライセンス解除を禁止する警告データを生成する（ステップＳ９０８）。その後、ライセンス解除終了データ又は解除禁止警告データをクライアント２に送信する（ステップＳ９０９）。
【００５９】
以上、第３の実施形態におけるライセンス認証システム１によれば、ライセンス解除要求コード自体の正当性を判断するため、過去のライセンス解除要求で使用したライセンス解除要求コードを使用してソフトウェアのライセンスを解除することを防止することができる。
【００６０】
〔第４の実施形態〕
次に、本発明を実施するための第４の実施形態について説明する。
第４の実施形態では、クライアントが一度ライセンス発行要求データを送信してソフトウェアの使用ライセンスを取得した後、クライアントをリストアした状態を前提とする。
リストアとは、クライアントのコンピュータシステムを一旦デフォルト状態にし、その後デフォルト状態にする前等にバックアップしたデータからクライアントのシステムを再構築することである。クライアントをデフォルト状態にすることにより設定管理データベースに記憶されたライセンスコード等のライセンス情報もデフォルト（つまり削除）される。このため、一旦ソフトウェアのライセンスコードを取得してライセンスコードが記憶された状態でシステムのバックアップを光ディスク等に行う。その後、ライセンス管理サーバにライセンス解除要求データを送信し、サーバ上でのライセンスを解除した状態にする。ライセンスの解除要求を行った後、クライアントを一旦デフォルトする。このときライセンスデータもデフォルト（削除）される。その後、バックアップを採った光ディスクでクライアントのシステムをリストアする。リストア後は、デフォルト前のシステム状態即ちライセンス管理サーバにソフトウェアの解除要求を出す前の状態となる。クライアントでは、ライセンス管理サーバ上ではライセンスが解除されているのにも関わらず、ソフトウェアの起動を行うことができるという問題が生ずる。
そこで、第４の実施形態では、クライアントのリストアを行った場合にソフトウェアの使用制限を行うことを特徴とする。
【００６１】
図９に、第４の実施形態におけるライセンス認証システム１のクライアント４０の概要構成を示す。基本構成は第１から第３のクライアント２と共通する。特に異なる構成としてＮＶＲＡＭ（Non-Voltage RAM）４１を備える。ＮＶＲＡＭ４１は不揮発性のメモリであり、コンピュータシステムがデフォルトされても記憶内容が削除されない。コンピュータ等の起動時に、ＣＰＵ６にオペレーションソフトウェアの読み込みを指示するプログラム等（例えば、ＢＩＯＳ）を格納するものである。
【００６２】
図１０に示すフロー図を用いて、ライセンス認証システム１のクライアント４０での処理について説明する。なお、以下の説明で第１、第２及び第３の実施形態と同様の処理は詳細な説明を省略する。
【００６３】
ユーザの操作により、クライアント４０のシステムをバックアップする指示を受けると（ステップＳ１００１）、ＣＰＵ６は、バックアップを行う前にＮＶＲＡＭ４１に設けられたフラグをＯＮにする（ステップＳ１００２）。次いで、システムのバックアップを行い（ステップＳ１００３）、クライアント４０のシステムをデフォルトする（ステップＳ１００４）。
【００６４】
その後、ユーザがバックアップからクライアント４０のシステムを復元し（Ｓ１００５）ソフトウェアの起動を行うと（ステップＳ１００６）、ＣＰＵ６はソフトウェアの使用制限管理ツールを展開し、ＮＶＲＡＭ４１にアクセスしてフラグの状態を確認する（ステップＳ１００７）。フラグがＯＮである場合（ステップＳ１００８：ＹＥＳ）、クライアント２のコンピュータシステムがバックアップされたと判断し（ステップＳ１００９）、ソフトウェアのライセンスコード２４を削除する（ステップＳ１０１０）。その後、フラグをＯＦＦにし（ステップＳ１０１２）、再度ライセンスコードの取得を示唆する案内を表示部９に表示する（ステップＳ１０１２）。
【００６５】
ステップＳ１００８の判断にて、フラグがＯＦＦである場合は（ステップＳ１００８：ＮＯ）、クライアント４０のコンピュータシステムがバックアップされていないと判断し（即ち、正当にライセンスが運用されている）、ソフトウェア本体の起動を開始する（ステップＳ１０１３）。
【００６６】
以上、第４の実施形態におけるクライアント４０によれば、バックアップを行う際に、ＮＶＲＡＭ４１に設けられたフラグをＯＮにすることで、後にクライアントがデフォルトされた後でもシステムのバックアップが行われたことを判別することができる。クライアント２を再起動するときに、システムのバックアップが行われたことを判別した場合に、ライセンス情報を削除しライセンスの発行手続を再度行う手順とすることで、ライセンスの不正解除を防止することができる。
【００６７】
以上、本発明を実施するための最良の形態について説明したが、本発明は上記種々の例に限定されるものではない。
【図面の簡単な説明】
【００６８】
【図１】本発明を適用したライセンス認証システムの構成を示した概要図である。
【図２】本発明を適用したライセンス認証システムにおけるクライアントの概要構成を示したブロック図である。
【図３】図３（ａ）は、本発明を適用したライセンス認証システムにおけるクライアントのライセンス要求ファイルの構造を示した模式図である。図３（ｂ）は、本発明を適用したライセンス認証システムにおけるライセンス管理サーバのライセンス発行ファイルの構造を示した模式図である。
【図４】本発明の第１の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図５】本発明の第１の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図６】本発明の第２の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図７】本発明の第２の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図８】本発明の第３の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図９】本発明の第４の実施の形態におけるライセンス認証システムのクライアントの構成を示したブロック図である。
【図１０】本発明の第４の実施の形態におけるライセンス認証システムの動作を示したフロー図である。
【図１１】従来からのライセンス認証システムの動作を示したフロー図である。
【符号の説明】
【００６９】
１  ライセンス認証システム
２、４０  クライアント
３  ライセンス管理サーバ
４  データベース
５  網
６  ＣＰＵ
７  ＲＡＭ
８  記憶部
９  表示部
１０  入力部
１１  通信部
１５  ライセンス要求ファイル
１６  ライセンス発行ファイル
２０  ラインナップコード
２１  ＣＤキー
２２  ＭＡＣアドレス
２３  照合キー
２４  ライセンスコード
２５  ライセンス発行テーブル
２６  商品マスターテーブル
２７  顧客データテーブル
４１  ＮＶＲＡＭ
【図１】
0004765459.tif 000002
【図２】
0004765459.tif 000003
【図３】
0004765459.tif 000004
【図４】
0004765459.tif 000005
【図５】
0004765459.tif 000006
【図６】
0004765459.tif 000007
【図７】
0004765459.tif 000008
【図８】
0004765459.tif 000009
【図９】
0004765459.tif 000010
【図１０】
0004765459.tif 000011
【図１１】
0004765459.tif 000012