JP4194772B2 - ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 - Google Patents
ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 Download PDFInfo
- Publication number
- JP4194772B2 JP4194772B2 JP2001205149A JP2001205149A JP4194772B2 JP 4194772 B2 JP4194772 B2 JP 4194772B2 JP 2001205149 A JP2001205149 A JP 2001205149A JP 2001205149 A JP2001205149 A JP 2001205149A JP 4194772 B2 JP4194772 B2 JP 4194772B2
- Authority
- JP
- Japan
- Prior art keywords
- license
- software
- code
- information
- determined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 93
- OROGSEYTTFOCAN-DNJOTXNNSA-N codeine Chemical compound C([C@H]1[C@H](N(CC[C@@]112)C)C3)=C[C@H](O)[C@@H]1OC1=C2C3=CC=C1OC OROGSEYTTFOCAN-DNJOTXNNSA-N 0.000 description 2
- OROGSEYTTFOCAN-UHFFFAOYSA-N hydrocodone Natural products C1C(N(CCC234)C)C2C=CC(O)C3OC2=C4C1=CC=C2OC OROGSEYTTFOCAN-UHFFFAOYSA-N 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
本発明は、ソフトウェアの使用認証を行う方法、プログラム、およびこのプログラムを記録した記録媒体に関する。本発明は、また、この方法で参照されるライセンスコードとして使用可能なデータおよびこのデータを記録した記録媒体にも関する。
【0002】
【従来の技術】
従来より、ソフトウェア製品を正当な使用権限者(例えば購入者)以外の者が使用する等の不正使用を防止するため、シリアルナンバーを用いた手法によりユーザ認証を行うことが一般的となっている。この手法では、ソフトウェア供給者は、適宜な暗号化アルゴリズムによりシリアルナンバーを生成する。ユーザはソフトウェアのインストールの際にシリアルナンバーの入力を求められる。インストール用プログラムは入力されたシリアル番号を復号して、それが所定のメッセージと一致するかどうかを判定し、一致する場合に限りインストールを実行する。このような手法により、ソフトウェア供給者から正しいシリアルナンバーを通知されていないユーザがソフトウェアのインストールを行うことを防止できる。
【0003】
【発明が解決しようとする課題】
しかし、いったんシリアルナンバーが生成されてユーザに渡されると、そのシリアルナンバーは無期限に有効である。このため、ソフトウェアのインストール台数が1台であるという条件で使用許諾を行った場合にも、ユーザは受取ったシリアル番号を用いて何台でもインストールできることになる。さらに、例えば、ユーザがシリアル番号を他人に教えると、その他人もソフトウェアをインストールして利用することが可能となってしまう。このように、従来のシリアルナンバーを用いた手法では、ユーザが使用許諾を受けた範囲を超えてソフトウェアを使用することを防止することは困難であった。
【0004】
本発明は上記の点に鑑みてなされたものであり、ユーザが使用許諾を受けた範囲を超えてソフトウェアを不正に使用するのを禁止することが可能なソフトウェア使用認証方法、ソフトウェア使用認証プログラム、および、このプログラムを記録した記録媒体を提供することを目的とする。また、本発明は、ソフトウェア使用認証方法で参照されるライセンスコードとして使用可能なデータおよびこのデータを記録した記録媒体を提供することをも目的とする。
【0005】
【課題を解決するための手段】
請求項1に記載された発明は、ソフトウェアの使用認証を行う方法であって、前記ソフトウェアの使用認証の対象であるコンピュータが、
ユーザ認証を行うためのアクセスコードと、該アクセスコードの有効期間を示すアクセスコード寿命情報とを含む複数の情報からなるライセンス情報を所定の規則で暗号化してなるライセンスコードが記録されたライセンスファイルを参照し、当該記録されたライセンスコードから前記ライセンス情報を復号する手順と、
前記復号したライセンス情報が所定の無効値である情報を含むか否かを判定し、前記所定の無効値である情報を含まない場合に前記ソフトウェアが登録済みであると判定し、前記所定の無効値である情報を含む場合に前記ソフトウェアが未登録であると判定する手順と、を実行し、
前記ソフトウェアが未登録であれば、
前記復号したライセンス情報に含まれる前記アクセスコード寿命で示される有効期間で特定される有効期限を現在日時が過ぎていない場合に前記復号したライセンス情報に含まれる前記アクセスコードが有効であると判定し、前記有効期限を現在日時が過ぎている場合に前記アクセスコードが有効でないと判定し、前記アクセスコードが有効と判定され、かつ、前記アクセスコードに基づくユーザ認証が正当に行われたことを条件として、
乱数を発生して、その値をチェックコードとして設定すると共に、前記所定の無効値である情報を、前記所定の無効値ではない情報に設定する手順と、
前記復号したライセンス情報のうち前記所定の無効値でない情報を、前記チェックコードと共に前記所定の規則で暗号化し、この暗号化コードをライセンスコードとして前記ライセンスファイルに記録する手順と、
適宜なファイル名のチェック用ファイルを複数作成して、該複数のチェック用ファイルに、前記チェックコードと、チェック用ファイル間で互いに異なる所定のデータとを暗号化して記録する手順と、を含む登録手順を実行し、
前記ソフトウェアが登録済みであれば、
前記ライセンスファイルに記録されたライセンスコードを復号して得られたチェックコードと、前記複数のチェック用ファイルから復号したチェックコードとが所定の対応関係を有することを条件として、前記ソフトウェアの実行を許可すべきと判定し、許可すべきと判定されれば前記ソフトウェアの実行を許可する使用許可手順を実行することを特徴とする。
【0006】
請求項1記載の発明によれば、アクセスコードの有効期間を示すアクセスコード寿命に基づいてアクセスコードが有効と判定され、かつ、このアクセスコードに基づくユーザ認証が正当に行われたことを条件としてソフトウェアの登録処理が行われる。すなわち、アクセスコードの有効期間の経過後はソフトウェアの登録処理を行えないので、ユーザへ提供されたライセンスコードを用いて無期限にソフトウェアの登録が行われるのを防止できる。
また、ソフトウェアの登録手順では、発生した乱数の値に設定されたチェックコードがライセンス情報と共に暗号化されてライセンスファイルに記録されると共に、このチェックコードと互いに異なるデータとが暗号化されて複数のチェック用ファイルに記録される。そして、ソフトウェアの使用許可判定手順では、ライセンスファイルに記録されたチェックコードと、複数のチェック用ファイルに記録されたチェックコードが所定の対応関係を有することを条件にソフトウェアの実行を許可すべきと判定される。したがって、ライセンスファイルを用いてソフトウェア登録が行われると、その登録が行われたコンピュータでのみソフトウェアの実行が許可されることとなる。すなわち、ライセンスファイルを用いてソフトウェア登録を行った後、このライセンスファイルをソフトウェアと共に他のコンピュータへコピーしても、コピー先のコンピュータにはチェックコードが記録されたチェック用ファイルは存在せず、また、チェック用ファイルを偽造しようとしても、チェックコードは暗号化されているためユーザはその内容を知り得ないので、当該コピー先コンピュータでのソフトウェアの実行を禁止することができる。
【0010】
また、請求項2に記載された発明は、請求項1記載のソフトウェア使用認証方法において、
前記チェック用ファイルを、前記コンピュータの記憶装置内のランダムに指定された場所に格納することを特徴とする。
【0011】
請求項2記載の発明によれば、チェック用ファイルを見つけ難くして、ユーザがチェック用ファイルをコピーするのを困難なものとすることができる。
【0013】
また、請求項3に記載された発明は、請求項1又は2記載のソフトウェア使用認証方法において、
前記ライセンス情報は前記ソフトウェアの使用許可期限を表すライセンス期限情報を含み、
前記使用許可判定手順では、前記ライセンス期限情報に基づいて前記ソフトウェアの使用許可期限内であるか否かを判定し、使用許可期限内であることを条件として前記ソフトウェアの実行を許可すべきと判定することを特徴とする。
【0014】
請求項3記載の発明によれば、ライセンス期限情報に基づいてソフトウェアの使用可能期限を設定できる。
【0015】
また、請求項4に記載された発明は、請求項1乃至3のうち何れか1項記載のソフトウェア使用認証方法において、
前記登録手順では、さらに、前記ソフトウェアの使用認証の対象であるコンピュータに固有のマシンコードを取得し、該取得したマシンコードを記録する手順を実行し、
前記使用許可判定手順では、前記記録されたマシンコードと、前記ソフトウェアの使用認証の対象であるコンピュータから取得したマシンコードとが一致することを条件として、前記ソフトウェアの実行を許可すべきと判定することを特徴とする。
【0016】
また、請求項5に記載された発明は、請求項1乃至4のうち何れか1項記載のソフトウェア使用認証方法において、前記ライセンス情報は、さらに、前記アクセスコードまたは前記ライセンスコードの生成時を示すライセンス生成時情報を含み、
前記登録手順では、前記コンピュータのシステム時計から現在時情報を取得して、前記復号したライセンス情報に含まれるライセンス生成時情報で示される生成時が前記取得した現在時情報で示される現在時よりも将来の日時であり、かつ、その差が所定のスレッシヨルド値を超えている場合に、前記システム時計が正しくないと判定し、そうでない場合に前記システム時計が正しいと判定し、正しいと判定した場合に、前記取得した現在時情報と前記アクセスコード寿命とに基づいて、前記アクセスコードが有効であるか否かを判定することを特徴とする。
【0017】
また、請求項6に記載された発明は、請求項3記載のソフトウェア使用認証方法において、前記ライセンス情報は、さらに、前記アクセスコードまたは前記ライセンスコードの生成時に関するライセンス生成時情報を含み、
前記使用許可判定手順では、前記コンピュータのシステム時計から現在時情報を取得して、該取得した現在時情報を記録する手順と、該現在時情報を記録する手順よりも前に、前記記録された現在時情報と、その時点で前記システム時計から取得した現在時情報との比較に基づいて、前記システム時計が正しいか否かを判定する手順とを実行し、前記システム時計が正しいと判定した場合に、前記システム時計から取得した現在時情報と前記ライセンス期限情報とに基づいて、前記ソフトウェアの使用許可期限内であるか否かを判定することを特徴とする。
【0018】
また、請求項7に記載された発明は、ソフトウェアの使用認証を行う方法であって、前記ソフトウェアの使用認証の対象であるコンピュータが、
ユーザ認証を行うためのアクセスコードを含む複数の情報からなるライセンス情報を所定の規則で暗号化してなるライセンスコードが記録されたライセンスファイルを参照し、当該記録されたライセンスコードから前記ライセンス情報を復号する手順と、
前記復号したライセンス情報が所定の無効値である情報を含むか否かを判定し、前記所定の無効値である情報を含まない場合に前記ソフトウェアが登録済みであると判定し、前記所定の無効値である情報を含む場合に前記ソフトウェアが未登録であると判定する手順と、を実行し、
前記ソフトウェアが未登録であれば、
前記復号したライセンス情報に含まれる前記アクセスコードに基づくユーザ認証が正当に行われたことを条件として、
乱数を発生して、その値をチェックコードとして設定すると共に、前記所定の無効値である情報を、前記所定の無効値ではない情報に設定する手順と、
前記復号したライセンス情報のうち前記所定の無効値でない情報を、前記チェックコードと共に前記所定の規則で暗号化し、この暗号化コードをライセンスコードとして前記ライセンスファイルに記録する手順と、
適宜なファイル名のチェック用ファイルを複数作成して、該複数のチェック用ファイルに、前記チェックコードと、チェック用ファイル間で互いに異なる所定のデータとを暗号化して記録する手順と、を含む登録手順を実行し、
前記ソフトウェアが登録済みであれば、
前記ライセンスファイルに記録されたライセンスコードを復号して得られたチェックコードと、前記複数のチェック用ファイルから復号したチェックコードとが所定の対応関係を有することを条件として、前記ソフトウェアの実行を許可すべきと判定し、許可すべきと判定されれば前記ソフトウェアの実行を許可する使用許可手順を実行することを特徴とする。
【0019】
また、請求項8に記載された発明は、請求項1乃至7のうち何れか1項記載のソフトウェア使用認証方法をコンピュータに実行させるプログラムに係るものであり、請求項9に記載された発明は、請求項8記載のプログラムを記録した記録媒体に係るものである。
【0022】
【発明の実施の形態】
図1は、本発明の一実施形態における処理の概要を示す。図1に示すように、ソフトウェア供給者は、以下に示す情報を含むライセンス情報を所定の暗号キーK1を用いて暗号化することによりライセンスコードを生成する。
(1)アクセスコードAC:ソフトウェアの使用を許諾しようとする各ユーザに対して発行されるコード(例えばユーザネームやシリアル番号等)である。
(2)コード生成日時ACT:アクセスコードの生成日時である。ただし、ライセンスコードの生成日時としてもよい。
(3)アクセスコード寿命ACL:アクセスコードACの有効期間である。すなわち、上記したコード生成日時ACTからアクセスコード寿命ACLが経過するまではアクセスコードACは有効であり、それ以後は無効である。アクセスコード寿命ACLは日時単位で指定してもよいし、日数単位で指定してもよい。また、アクセスコード寿命ACLをアクセスコードACの有効期限日時(または日付)で指定してもよい。以下の説明では、アクセスコード寿命ACLはコード生成日時ACTからの有効期間長を日時単位で指定するものとする。
(4)ライセンス期限LT:アプリケーションソフトの使用可能期限である。アクセスコード寿命の場合と同様に、ライセンス期限LTは、使用期限日時(または日付)で指定してもよいし、あるいは、例えばコード生成日時ACTからの期間長で指定してもよい。
(5)スレッシヨルド値TH:後述するように、ユーザコンピュータのシステム時計が変更されていないことを判定する際に用いられる基準値である。
(6)レジスターファイル名RegName1,RegName2、チェックコードCK、マシンコードMID:後述するようにアプリケーションソフトウェアの登録処理時に設定される項目であり、ライセンスコードの生成時点では、夫々、所定の無効値に設定される。
【0023】
生成されたライセンスコードはファイルに記録され、このファイル(以下、ライセンスファイルという)がユーザへ適宜な手段(例えば、ネットワーク経由で、あるいは、CD−ROM等の記録媒体を介して)提供される。ユーザは、受取ったライセンスファイルを所定のディレクトリ(例えばアプリケーションソフトウェアがインストールされたディレクトリ)に記録し、アプリケーションソフトウェアを起動する。アプリケーションソフトウェアはライセンス認証プログラムとアプリケーション本体プログラムとから構成されており、起動されると、先ずライセンス認証プログラムが実行される。
【0024】
ライセンス認証プログラムの概要を説明すると、先ず、ライセンスコードからライセンス情報が復号されたうえで、ソフトウェアが登録済みであるか否かが判別される。そして、未登録であれば、アクセスコード寿命ACLと現在日時とに基づいてアクセスコードACが有効か否かが判別され、有効であれば、ソフトウェアの登録が行われる。この登録処理では、ランダムに発生されたチェックコードCKがライセンスファイル、第1レジスターファイル、および第2レジスターファイルの3つのファイルに暗号化されて記録され、さらに、ユーザコンピュータに固有のマシンコードMIDがライセンスファイルおよび第2レジスターファイルに暗号化されて記録される。
【0025】
ソフトウェアが登録済みである場合、上記3つのファイルから復号されたチェックコードCKが全て一致し、かつ、第2レジスターファイルから復号されたマシンコードMIDと、プログラム実行中のコンピュータシステムのマシンコードMIDとが一致することを条件に、ソフトウェアの実行が許可される。
【0026】
以下、図2乃至図4を参照して、ライセンス認証プログラムの処理の内容をより詳細に説明する。図2乃至4は、ライセンス認証プログラムの処理の内容を示すフローチャートである。
【0027】
図2に示すように、先ず、ステップ100において上記所定のディレクトリにライセンスファイルが存在するか否かが判別される。その結果、存在しなければ、その旨の表示が行われた後、処理は中止される。一方、ライセンスファイルが存在すれば、次にステップ102の処理が実行される。
【0028】
ステップ102では、ライセンスファイルが読み込まれ、その内容であるライセンスコードから、上記暗号キーK1に対応する復号キーK2(暗号キーK1と同じ値であってもよい)を用いて、アクセスコードAC、コード生成日時ACT、アクセスコード寿命ACL、スレッシヨルド値TH、レジスターファイル名RegName1,RegName2、チェックコードCK、およびマシンコードMIDが復号される。
【0029】
ステップ104では、コード生成日時ACTと、ユーザコンピュータのシステム時計から取得されたシステム日時STとが比較され、コード生成日時ACTがシステム日時STよりも将来の日時であり、かつ、その差がスレッシヨルド値THを超えている(ACT−ST>TH)か否かが判別される。その結果、ACT−ST>THが成立する場合、アクセスコードACがシステム日時STよりも将来に生成されたこととなって不合理である。この場合、システム時計から取得されたシステム日時STは正しくないと判断され、その旨の表示が行われた後、処理は中止される。一方、ステップ104でACT−ST>THが不成立であれば、次にステップ106の処理が実行される。
【0030】
ステップ106では、レジスターファイル名RegName1,RegName2、チェックコードCK、マシンコードMIDの値が夫々無効値であるか否かが判別される。その結果、何れか1つでも無効値であれば、アプリケーションソフトウェアは未登録であると判断され、図3に示すソフトウェア登録処理が実行される。一方、何れも無効値でなければ、アプリケーションソフトウェアは登録済みであると判断され、図4に示すソフトウェア使用許可判定処理が実行される。
【0031】
図3に示す如く、ソフトウェア登録処理では、先ずステップ108において、アクセスコード寿命ACLが、システム日時STとアクセスコード生成日時ACTとの差よりも大きいか否かが判別される。その結果、ACL<ST−ACTが成立する場合には、アクセスコードACの有効期間を経過していることになるから、アクセスコードは無効であると判断されて、その旨の表示が行われた後、処理は中止される。一方、ACL<ST−ACTが不成立であれば、次にステップ110の処理が実行される。
【0032】
ステップ110では、ユーザに対してユーザコードの入力が促され、それに応じて入力されたユーザコードが取得される。そして、ステップ112では、入力されたユーザコードがアクセスコードACと一致するか否かが判別される。その結果、両者が一致しない場合は、入力されたユーザコードは正当なものではないと判断されて、その旨の表示が行われた後、処理は中止される。一方、入力されたユーザコードとアクセスコードACとが一致する場合は、次にステップ114の処理が実行される。
【0033】
ステップ114では、乱数が発生され、その値がチェックコードCKの値として設定される。
【0034】
ステップ116では、ユーザコンピュータに固有のID(例えば、ウインドウズ等のOSのレジストリ情報から取得されるID値、CPU内やBIOS内に記録されているID値、IPアドレス、ネットワークカードのMACアドレス等)が取得され、その値がマシンコードMIDの値として設定される。
【0035】
ステップ118では、システムファイルの名称と見分けが困難なファイル名(例えば、"sys155.dll"、"mem165.acm"等)がランダムに生成され、続くステップ120では、生成したファイル名が実存するシステムファイル名と一致しないかどうか判別される。その結果、実存するシステムファイル名と一致するならば、再びステップ118で再びファイル名が生成される。一方、ステップ120で生成したファイル名が実存するシステムファイル名に一致しなければ、次にステップ122の処理が実行される。
【0036】
ステップ122では、レジスターファイル名RegName1が、上記ステップ118で生成されたファイル名に設定され、このファイル名RegName1の第1レジスターファイルが新規に作成される。
【0037】
ステップ124では、上記ステップ114で値が設定されたチェックコードCK、および、システム日時STが暗号キーK1で暗号化されて第1レジスターファイルに記録される。記録されたシステム日時STは、次回の実行時に、アプリケーションソフトウェアの前回使用日時LTとして使用される。
【0038】
ステップ128〜132では、上記ステップ118〜122と同様にして、システムファイルと見分けが困難で、かつ、実際には存在しないファイル名が生成されてレジスターファイル名RegName2の値として設定されると共に、このファイル名RegName2の第2レジスターファイルが新規に作成される。そして、ステップ134では、作成された第2レジスターファイルに、チェックコードCKおよびマシンコードMIDが暗号キーK1で暗号化されて記録される。
【0039】
ステップ136では、ライセンスコードを復号して得られたアクセスコード、ACL、コード生成日、スレッシヨルド値と、上記のように値が設定されたレジスターファイル名RegName1,RegName2、チェックコードCK、およびマシンコードMIDとが、上記暗号化キーK1を用いて暗号化され、ライセンスコードとしてライセンスファイルに記録される。
以上でアプリケーションソフトウェアの登録処理は完了する。
【0040】
なお、上記ステップ122,132で第1,第2レジスターファイルを作成する際、ランダムに指定した場所(すなわち、ディレクトリやフォルダ等)にこれらレジストリファイルを格納するようにしてもよい。この場合、ステップ118,120およびステップ128,130においてレジスターファイル名RegName1,RegName2をシステムファイルと見分けが困難であるように生成する必要はなく、同じ場所にある既存のファイル名と重複しないように適宜生成すればよい。
【0041】
次に、図4を参照して、ソフトウェア使用判定処理について説明する。図4に示す如く、先ず、ステップ140において、ライセンスコードを復号して得られたファイル名RegName1,RegName2の第1レジスターファイルおよび第2レジスターファイルが共に存在するか否かが判別される。その結果、少なくとも一方のレジスターファイルが存在しない場合には、ソフトウェア登録処理は正常に完了していないと判断され、上記図3に示すソフトウェア登録処理が実行される。一方、両レジスターファイルが存在する場合は、次にステップ142の処理が実行される。
【0042】
ステップ142では、第1レジスターファイルが読み込まれ、復号キーK2を用いて、チェックコードCKおよび前回使用日時LUが復号される。
【0043】
ステップ144では、システム日時STが前回使用日時LUよりも過去であり、かつその差がスレッシヨルド値THより大きい(LU−ST>TH)であるか否か判別される。その結果、LU−ST>THが成立する場合は、前回ソフトウェアを使用したのが現在日時よりも将来であることとなって不合理である。この場合、システム時計が操作されることによりシステム日時STが変更されたと判断されて、その旨の表示が行われた後、処理は中止される。一方、LU−ST>THが不成立であれば、次にステップ146の処理が実行される。
【0044】
ステップ146では、第2レジスターファイルが読み込まれ、その内容から復号キーK2を用いてチェックコードACおよびマシンコードMIDが復号される。
【0045】
ステップ148では、ライセンスファイルから復号されたチェックコードCKと、第1レジスターファイルから復号されたチェックコードCKと、第2レジスターファイルから復号されたチェックコードCKとが全て一致するか否かが判別される。その結果、3つのチェックコードCKのうち1つでも一致しないものがある場合は、当該ユーザコンピュータはソフトウェアの登録処理が正規に行われたシステムではないと判断されて、その旨の表示が行われた後、処理は中止される。一方、上記3つのチェックコードCKが全て一致する場合は、次にステップ150の処理が実行される。
【0046】
ステップ150では、ライセンスファイルから復号されたマシンコードMIDと、第2レジスターファイルから復号されたマシンコードMIDと、当該ユーザコンピュータから取得されたマシンコードMIDとが一致するか否かが判別される。その結果、これらのマシンコードMIDのうち1つでも一致しないものがある場合は、当該ユーザコンピュータは登録処理が正規に行われたシステムではないと判断されて、その旨の表示が行われた後、処理は中止される。一方、全てのマシンコードMIDが一致する場合は、次にステップ152の処理が実行される。
【0047】
ステップ152では、システム日時STが、ライセンスコードから復号されたライセンス期間LT内であるか否かが判別される。その結果、ライセンス期間内でなければ、その旨の表示がなされて処理は中止される。一方、ライセンス期間内であれば、当該ユーザコンピュータのユーザにアプリケーションソフトの使用を許可してもよいと判断され、次にステップ154において、システム日時STがチェックコードCKと共に暗号キーK1で暗号化されて第1レジスターファイルに記録される。登録処理における上記ステップ126の場合と同様に、記録されたシステム日時は、次回の実行時に上記ステップ142においてソフトウェアの前回使用日時LTとして使用される。そして、続くステップ156において、アプリケーションソフトのアプリケーション本体プログラムが起動される。
【0048】
以上説明したように、本実施形態によれば、アクセスコード寿命ACLに基づいてアクセスコードACが有効か否かが判定され(ステップ108)、アクセスコードACが有効である場合に、ユーザにより入力されたユーザコードとアクセスコードACとが一致するか否かが判定されて(ステップ112)、両者が一致する場合に限り、以後のソフトウェア登録処理が実行される。すなわち、アクセスコードの有効期間の経過後はソフトウェアの登録処理は禁止される。したがって、本実施形態によれば、ユーザへ提供されたライセンスファイルを用いて無期限にソフトウェアの登録が行われるのを防止でき、例えば、ライセンスファイルが第三者に渡されてソフトウェア登録が無制限に行われるといったことも効果的に防止することができる。
【0049】
また、ライセンスコードにはライセンス期限LTが含まれており、ライセンス期限LTが経過している場合には、ソフトウェアの実行が禁止される(ステップ152)ので、ライセンス期限LTによりソフトウェアの使用可能期限を設定することもできる。
【0050】
また、ソフトウェア登録処理において、ランダムに発生したチェックコードCKがライセンスファイルに記録される(ステップ136)と共に、このチェックコードが第1レジスターファイルおよび第2レジスターファイルにも記録される(ステップ124,134)。そして、使用許可判定処理では、これら3つのファイルに記録されたチェックコードCKが全て一致する場合に限りソフトウェアの実行が許可される(ステップ148)。したがって、ライセンスファイルを用いてソフトウェア登録を行った後、このライセンスファイルをソフトウェアと共に他のコンピュータへコピーしても、コピー先のコンピュータにはチェックコードが記録された第1レジスターファイルおよび第2レジスターファイルは存在せず、また、これらのレジスターファイルを偽造しようとしても、チェックコードCKは暗号化されているためユーザはその値を知り得ないので、当該コピー先コンピュータでのソフトウェアの実行を禁止することができる。
【0051】
また、上記の説明からわかるように、第1レジスターファイルと第2レジスターファイルとでは、その中に記録されるデータが異なっているので、万一、何れか一方のレジスターファイルが第三者の手に渡ったとしても、そのレジスターファイルをコピーして他方のレジスターファイルを作成することは不可能となっている。
【0052】
また、レジスターファイル名RegName1,RegName2は、システムファイルと区別が困難に設定される(あるいは、レジスターファイルがランダムに指定された場所に格納される)ので、ユーザが各レジスターファイルを探し出して各レジスターファイルを他のコンピュータへコピーすること自体も難しくなっている。
【0053】
さらに、ソフトウェア登録処理では、コンピュータに固有のマシンコードMIDをライセンスファイルおよび第2レジスターファイルに記録し(ステップ134,136)、使用許可判定処理において、これらファイルに記録されたマシンコードMIDと、コンピュータから取得されたマシンコードとが一致しない場合には、ソフトウェアの使用が禁止される(ステップ150)ので、ライセンスファイルおよびソフトウェア自体を他のコンピュータにコピーして当該ソフトウェアが不当に使用されるのをさらに確実に防止することができる。
【0054】
このように、本実施形態では、ファイルコピーによるソフトウェアの使用を不可能とする多重の仕組みを用いているので、ライセンス期間内であっても、使用許諾の範囲を超えたソフトウェアの不正使用を効果的に防止することが可能となっている。
【0055】
なお、上記実施形態では、2つのレジスターファイルを用いて、第1レジスターファイルにはチェックコードCKおよび前記利用日時LUを記録し、第2レジスターファイルにはチェックコードCKおよびマシンコードMIDを記録することとしたが、各レジスターファイルに記録するデータはこれらに限らず、他のデータを記録するようにしてもよい。また、レジスターファイルの個数は2つに限らず、1つであってもよいし、3つ以上であってもよい。ただし、ソフトウェアの不正使用を効果的に防止するうえでは、レジスターファイルの個数は多い方が好ましく、また、それらレジスターファイルに記録するデータの内容を互いに異ならせることが好ましい。なお、このレジスターファイルが特許請求の範囲に記載したチェック用ファイルに相当する。
【0056】
また、上記実施形態では、ランダムに発生したコードをそのままチェックコードCKとして用い、ライセンスファイルおよび各レジスターファイルには同じ値のチェックコードを記録するものとした。しかしながら、これに限らず、ランダムに発生したコードに所定の演算を施して得られたコードをチェックコードCKとして用い、その際、各ファイルに記録するチェックコードCKを互いに異なる演算で求めるようにしてよい。この場合には、3つのファイルには異なる値のチェックコードCKが記録されることとなるが、ステップ148における判定処理では、これら3つのチェックコードCKが、夫々の演算規則に応じた所定の対応関係を有するかどうかを判定すればよい。
【0057】
また、上記実施形態では、第1レジスターファイルおよび第2レジスターファイルに記録するデータをライセンスファイルと同じ暗号キーK1で暗号化することとしたが、ファイル毎に異なる暗号キーで暗号化してもよい。
【0058】
【発明の効果】
以上説明したように、本発明によれば、アクセスコードの有効期間を設定することで、ユーザへ提供されたライセンスコードを用いて無期限にソフトウェアの登録が行われるのを防止することができる。
【0059】
また、ソフトウェア登録手順で記録したチェックコードを、使用許可手順において検証することにより、ライセンスファイルを用いてソフトウェア登録を行った後、このライセンスファイルをソフトウェアと共に他のコンピュータへコピーした場合にも、当該コピー先のコンピュータでのソフトウェアの実行を禁止することができる。
【0060】
また、ライセンスファイルにライセンス期限情報を含めて記録することで、ソフトウェアの使用可能期限を設定することができる。
【0061】
また、登録手順でコンピュータに固有のマシンコードを記録し、使用許可判定手順では、記録されたマシンコードと、コンピュータから取得したマシンコードとを照合することで、ライセンスファイルおよびソフトウェア自体を他のコンピュータにコピーして当該ソフトウェアが不当に使用されるのをさらに確実に防止することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態における処理の概要を示す図である。
【図2】本実施形態においてアプリケーションソフトウェアの起動時に実行される処理の流れを示すフローチャートである。
【図3】本実施形態において、ソフトウェアの登録処理を行うルーチンのフローチャートである。
【図4】本実施形態において、ソフトウェアの使用許可判定処理を行うルーチンのフローチャートである。
【符号の説明】
AC アクセスコード
ACT コード生成日時
ACL アクセスコード寿命
LT ライセンス期限
RegName1,RegName2 レジスターファイル名
CK チェックコード
MID マシンコード
Claims (9)
- ソフトウェアの使用認証を行う方法であって、前記ソフトウェアの使用認証の対象であるコンピュータが、
ユーザ認証を行うためのアクセスコードと、該アクセスコードの有効期間を示すアクセスコード寿命情報とを含む複数の情報からなるライセンス情報を所定の規則で暗号化してなるライセンスコードが記録されたライセンスファイルを参照し、当該記録されたライセンスコードから前記ライセンス情報を復号する手順と、
前記復号したライセンス情報が所定の無効値である情報を含むか否かを判定し、前記所定の無効値である情報を含まない場合に前記ソフトウェアが登録済みであると判定し、前記所定の無効値である情報を含む場合に前記ソフトウェアが未登録であると判定する手順と、を実行し、
前記ソフトウェアが未登録であれば、
前記復号したライセンス情報に含まれる前記アクセスコード寿命で示される有効期間で特定される有効期限を現在日時が過ぎていない場合に前記復号したライセンス情報に含まれる前記アクセスコードが有効であると判定し、前記有効期限を現在日時が過ぎている場合に前記アクセスコードが有効でないと判定し、前記アクセスコードが有効と判定され、かつ、前記アクセスコードに基づくユーザ認証が正当に行われたことを条件として、
乱数を発生して、その値をチェックコードとして設定すると共に、前記所定の無効値である情報を、前記所定の無効値ではない情報に設定する手順と、
前記復号したライセンス情報のうち前記所定の無効値でない情報を、前記チェックコードと共に前記所定の規則で暗号化し、この暗号化コードをライセンスコードとして前記ライセンスファイルに記録する手順と、
適宜なファイル名のチェック用ファイルを複数作成して、該複数のチェック用ファイルに、前記チェックコードと、チェック用ファイル間で互いに異なる所定のデータとを暗号化して記録する手順と、を含む登録手順を実行し、
前記ソフトウェアが登録済みであれば、
前記ライセンスファイルに記録されたライセンスコードを復号して得られたチェックコードと、前記複数のチェック用ファイルから復号したチェックコードとが所定の対応関係を有することを条件として、前記ソフトウェアの実行を許可すべきと判定し、許可すべきと判定されれば前記ソフトウェアの実行を許可する使用許可手順を実行することを特徴とするソフトウェア使用認証方法。 - 請求項1記載のソフトウェア使用認証方法において、前記コンピュータが、
前記チェック用ファイルを、前記コンピュータの記憶装置内のランダムに指定された場所に格納することを特徴とする方法。 - 請求項1又は2記載のソフトウェア使用認証方法において、
前記ライセンス情報は前記ソフトウェアの使用許可期限を表すライセンス期限情報を含み、
前記使用許可判定手順では、前記ライセンス期限情報に基づいて前記ソフトウェアの使用許可期限内であるか否かを判定し、使用許可期限内であることを条件として前記ソフトウェアの実行を許可すべきと判定することを特徴とする方法。 - 請求項1乃至3のうち何れか1項記載のソフトウェア使用認証方法において、
前記登録手順では、さらに、前記コンピュータに固有のマシンコードを取得し、該取得したマシンコードを記録する手順を実行し、
前記使用許可判定手順では、前記記録されたマシンコードと、前記ソフトウェアの使用認証の対象であるコンピュータから取得したマシンコードとが一致することを条件として、前記ソフトウェアの実行を許可すべきと判定することを特徴とする方法。 - 請求項1乃至4のうち何れか1項記載のソフトウェア使用認証方法において、前記ライセンス情報は、さらに、前記アクセスコードまたは前記ライセンスコードの生成時を示すライセンス生成時情報を含み、
前記登録手順では、前記コンピュータのシステム時計から現在時情報を取得して、前記復号したライセンス情報に含まれるライセンス生成時情報で示される生成時が前記取得した現在時情報で示される現在時よりも将来の日時であり、かつ、その差が所定のスレッシヨルド値を超えている場合に、前記システム時計が正しくないと判定し、そうでない場合に前記システム時計が正しいと判定し、正しいと判定した場合に、前記取得した現在時情報と前記アクセスコード寿命とに基づいて、前記アクセスコードが有効であるか否かを判定することを特徴とする方法。 - 請求項3記載のソフトウェア使用認証方法において、前記ライセンス情報は、さらに、前記アクセスコードまたは前記ライセンスコードの生成時に関するライセンス生成時情報を含み、
前記使用許可判定手順では、前記コンピュータのシステム時計から現在時情報を取得して、該取得した現在時情報を記録する手順と、該現在時情報を記録する手順よりも前に、前記記録された現在時情報と、その時点で前記システム時計から取得した現在時情報との比較に基づいて、前記システム時計が正しいか否かを判定する手順とを実行し、前記システム時計が正しいと判定した場合に、前記システム時計から取得した現在時情報と前記ライセンス期限情報とに基づいて、前記ソフトウェアの使用許可期限内であるか否かを判定することを特徴とする方法。 - ソフトウェアの使用認証を行う方法であって、前記ソフトウェアの使用認証の対象であるコンピュータが、
ユーザ認証を行うためのアクセスコードを含む複数の情報からなるライセンス情報を所定の規則で暗号化してなるライセンスコードが記録されたライセンスファイルを参照し、当該記録されたライセンスコードから前記ライセンス情報を復号する手順と、
前記復号したライセンス情報が所定の無効値である情報を含むか否かを判定し、前記所定の無効値である情報を含まない場合に前記ソフトウェアが登録済みであると判定し、前記所定の無効値である情報を含む場合に前記ソフトウェアが未登録であると判定する手順と、を実行し、
前記ソフトウェアが未登録であれば、
前記復号したライセンス情報に含まれる前記アクセスコードに基づくユーザ認証が正当に行われたことを条件として、
乱数を発生して、その値をチェックコードとして設定すると共に、前記所定の無効値である情報を、前記所定の無効値ではない情報に設定する手順と、
前記復号したライセンス情報のうち前記所定の無効値でない情報を、前記チェックコードと共に前記所定の規則で暗号化し、この暗号化コードをライセンスコードとして前記ライセンスファイルに記録する手順と、
適宜なファイル名のチェック用ファイルを複数作成して、該複数のチェック用ファイルに、前記チェックコードと、チェック用ファイル間で互いに異なる所定のデータとを暗号化して記録する手順と、を含む登録手順を実行し、
前記ソフトウェアが登録済みであれば、
前記ライセンスファイルに記録されたライセンスコードを復号して得られたチェックコードと、前記複数のチェック用ファイルから復号したチェックコードとが所定の対応関係を有することを条件として、前記ソフトウェアの実行を許可すべきと判定し、許可すべきと判定されれば前記ソフトウェアの実行を許可する使用許可手順を実行することを特徴とするソフトウェア使用認証方法。 - 請求項1乃至7のうち何れか1項記載のソフトウェア使用認証方法をコンピュータに実行させるプログラム。
- 請求項8記載のプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001205149A JP4194772B2 (ja) | 2001-07-05 | 2001-07-05 | ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001205149A JP4194772B2 (ja) | 2001-07-05 | 2001-07-05 | ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003022140A JP2003022140A (ja) | 2003-01-24 |
JP4194772B2 true JP4194772B2 (ja) | 2008-12-10 |
Family
ID=19041516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001205149A Expired - Fee Related JP4194772B2 (ja) | 2001-07-05 | 2001-07-05 | ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4194772B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8181265B2 (en) | 2003-01-31 | 2012-05-15 | Microsoft Corporation | Secure machine counting |
US7356709B2 (en) * | 2003-01-31 | 2008-04-08 | Microsoft Corporation | Systems and methods for deterring software piracy in a volume license environment |
JP4816012B2 (ja) | 2005-11-09 | 2011-11-16 | ソニー株式会社 | 情報処理装置、ソフトウェアインストール方法、および光ディスク |
JP4887931B2 (ja) * | 2006-06-23 | 2012-02-29 | 富士通株式会社 | ファイル管理プログラム、ファイル管理装置、ファイル管理方法 |
JP5429880B2 (ja) * | 2010-08-10 | 2014-02-26 | Necビッグローブ株式会社 | アプリケーション配布システム、アプリケーション配布方法、端末及びプログラム |
CN110096849A (zh) * | 2019-04-02 | 2019-08-06 | 深圳市中博科创信息技术有限公司 | 一种License授权认证方法、装置、设备及可读存储介质 |
-
2001
- 2001-07-05 JP JP2001205149A patent/JP4194772B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003022140A (ja) | 2003-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6411941B1 (en) | Method of restricting software operation within a license limitation | |
US7475254B2 (en) | Method for authenticating software using protected master key | |
CA1292791C (en) | Hardware assist for protecting pc software | |
KR100896625B1 (ko) | 숨겨진 중간 키들을 사용하여 소프트웨어를 인증하기 위한시스템 및 방법 | |
JP3363379B2 (ja) | 安全な記憶領域内のアプリケーション・データを保護する方法及び装置 | |
US6857067B2 (en) | System and method for preventing unauthorized access to electronic data | |
JP5636371B2 (ja) | 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム | |
US20100235644A1 (en) | Method and System for a Recursive Security Protocol for Digital Copyright Control | |
EP2264640B1 (en) | Feature specific keys for executable code | |
JP2003500722A (ja) | 情報保護方法および装置 | |
JP2005525662A (ja) | 認証のためのシステムおよび方法 | |
US20090063867A1 (en) | Method, System and Computer Program Product for Preventing Execution of Software Without a Dynamically Generated Key | |
US20020091930A1 (en) | System and method to securely store information in a recoverable manner on an untrusted system | |
JP4194772B2 (ja) | ソフトウェア使用認証方法、ソフトウェア使用認証プログラム、ソフトウェア使用認証プログラムを記録した記録媒体、ソフトウェア使用認証方法で用いられるデータ、このデータを記録した記録媒体 | |
JPH07325712A (ja) | プログラム不正コピー防止装置 | |
JP2010520703A (ja) | デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム | |
EP2341458A2 (en) | Method and device for detecting if a computer file has been copied | |
JP3840399B2 (ja) | ソフトウエアの不正利用防止方法及びプログラム並びに記憶媒体 | |
JP4842836B2 (ja) | 認証コードを復旧する方法 | |
WO2006101765A2 (en) | Method for preventing unauthorized installation of a software product | |
JP2015135703A (ja) | デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム | |
JP2013084294A (ja) | デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム | |
JP3289656B2 (ja) | プログラムの実行制御方式 | |
JP2014017871A (ja) | デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040928 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080522 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080522 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080715 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080909 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080924 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |