(57)【要約】【課題】通常版用及び試用版用ソフトウェアを統合的に管理することのできるプログラムを提案する。【解決手段】有効期限管理部を有するプログラム本体と、設定ファイルとから構成されるプログラムであって、管理部は、設定ファイル内にパスＩＤが記録された安全ピンファイルが存在するか、有効期限設定ファイルが存在するかを判別させる機能と、安全ピンファイルが存在するときは、安全ピンファイルに記録されたパスＩＤを片方向ハッシュ関数にてハッシュ値を算出させる機能と、算出したハッシュ値とプログラム本体内にそのプログラム毎に設定されたハッシュ値とが一致した場合にそのプログラム本体を有効期限無しモードで起動させ、設定ファイル内に有効期限設定ファイルが存在すると判別されると、プログラム本体を有効期限モードで動作させる機能とをコンピュータに実現させる。【選択図】          図３
2004178130.tif 000002
【特許請求の範囲】
【請求項１】
有効期限管理部を有するプログラム本体と、設定ファイルとから構成されるプログラムであって、
前記有効期限管理部は、
前記設定ファイル内にプログラム固有のパスＩＤが記録された安全ピンファイルが存在するか、有効期限設定ファイルが存在するかを判別させる機能と、
前記設定ファイル内に安全ピンファイルが存在すると判別されると、該安全ピンファイルに記録されたパスＩＤを片方向ハッシュ関数にてハッシュ値を算出させる機能と、
前記算出したハッシュ値と前記プログラム本体内に該プログラム毎に設定されたハッシュ値とが一致した場合に該プログラム本体を有効期限無しモードで起動させ、不一致の場合に起動を禁止させる機能と、
前記設定ファイル内に有効期限設定ファイルが存在すると判別されると、前記プログラム本体を有効期限モードで動作させ、所定の有効期限を超過すると、前記プログラム本体の起動を禁止させる機能と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項２】
通常版用のプログラムであって、前記設定ファイルに安全ピンファイルが記録されていることを特徴とする請求項１に記載のプログラム。
【請求項３】
試用版用のプログラムであって、前記設定ファイルに有効期限設定ファイルが記録されていることを特徴とする請求項１に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムに係り、特に、有効期限無設定及び有効期限設定を考慮した通常版用及び試用版用のプログラムに適用して好適なプログラムに関する。
【０００２】
【従来の技術】
特許文献１には、共通のネットワークライセンスサーバを介して、ソフトウェアにライセンスを与えることが記載されている。
【０００３】
特許文献２には、プログラムの前回の起動時を記憶しておき、プログラムの今回の起動時が、前回の起動時からの所定使用可能期間内であるかないかを判別し、その判別結果に応じて、プログラムの起動の可否を決定するようにしたプログラムの不正使用防止装置が記載されている。
【０００４】
ところで、通常版ソフトウェアに対する試用版用ソフトウェアを、広告・宣伝のために、ＣＤ−ＲＯＭ（光ディスク）等の記録媒体に記録して、又は、インターネットを通じて配付することが頻繁に行われている。
【０００５】
又、試用版用ソフトウェアでは、有効期限を設定し、その有効期間が過ぎると、そのプログラムの起動ができないようにすることが、一般的に良く行われている。
【０００６】
その場合に、通常版用ソフトウェアをコンパイルして、試用版用ソフトウェアを作成することが、従来から行われている。
【０００７】
【特許文献１】
特許第３２７０１０２号公報
【０００８】
【特許文献２】
特開２００１−３４４０９７
【０００９】
【発明が解決しようとする課題】
しかしながら、通常版用ソフトウェアのプログラムをコンパイルして、試用版用ソフトウェアのプログラムを作成すると、互いに異なるバージョンとなってしまうため、管理が煩雑になるという欠点があった。
【００１０】
即ち、通常版用及び試用版用ソフトウェア共、同一バージョンの実行ファイルとし、設定ファイルの入れ換えのみで、試用版の有効期限を設定することも考えられるが、設定ファイルの入れ換えを行った場合、どのファイルを解読すれば、有効期限の設定を破れるかが、分かってしまうため、有効期限に関するセキュリティが脆弱になってしまう。
【００１１】
かかる点に鑑み、本発明は、通常版用及び試用版用ソフトウェアを統合的に管理することができ、ライセンスサーバを必要とせず、試用版用ソフトウェアにおいて、前回の起動日時を記録する必要のないプログラムを提案しようとするものである。
【００１２】
【課題を解決するための手段】
本発明は、有効期限管理部を有するプログラム本体と、設定ファイルとから構成されるプログラムであって、有効期限管理部は、設定ファイル内にプログラム固有のパスＩＤが記録された安全ピンファイルが存在するか、有効期限設定ファイルが存在するかを判別させる機能と、設定ファイル内に安全ピンファイルが存在すると判別されると、その安全ピンファイルに記録されたパスＩＤを片方向ハッシュ関数にてハッシュ値を算出させる機能と、算出したハッシュ値とプログラム本体内にそのプログラム毎に設定されたハッシュ値とが一致した場合にそのプログラム本体を有効期限無しモードで起動させ、不一致の場合に起動を禁止させる機能と、設定ファイル内に有効期限設定ファイルが存在すると判別されると、プログラム本体を有効期限モードで動作させ、所定の有効期限を超過すると、プログラム本体の起動を禁止させる機能とをコンピュータに実現させるようにしたプログラムである。
【００１３】
かかる本発明のプログラムによれば、このプログラムは、有効期限管理部を有するプログラム本体と、設定ファイルとから構成される。有効期限管理部は、第１乃至第４の機能をコンピュータに実現させる。即ち、第１の機能では、設定ファイル内にプログラム固有のパスＩＤが記録された安全ピンファイルが存在するか、有効期限設定ファイルが存在するかを判別する。第２の機能では、第１の機能によって、設定ファイル内に安全ピンファイルが存在すると判別されると、その安全ピンファイルに記録されたパスＩＤを片方向ハッシュ関数にてハッシュ値を算出させる。第３の機能では、算出したハッシュ値とプログラム本体内にそのプログラム毎に設定されたハッシュ値とが一致した場合にそのプログラム本体を有効期限無しモードで起動させ、不一致の場合に起動を禁止させる。第４の機能では、第１の機能で、設定ファイル内に有効期限設定ファイルが存在すると判別されると、プログラム本体を有効期限モードで動作させ、所定の有効期限を超過すると、プログラム本体の起動を禁止させる。
【００１４】
又、かかる本発明のプログラムとしては、設定ファイルに安全ピンファイルが記録されている通常版用のプログラムが可能である。
【００１５】
更に、かかる本発明のプログラムとしては、設定ファイルに有効期限設定ファイルが記録されている試用版用のプログラムが可能である。
【００１６】
【発明の実施の形態】
以下に、図面を参照して、本発明の実施の形態のプログラムの例を詳細に説明する。本発明のプログラムは、有効期限管理部を有するプログラム本体と、設定ファイルとから構成される。
【００１７】
図１は、有効期限管理部（有効期限管理システム）を有するプログラム本体の構成を示す。１０は、プログラム本体（メインシステム）を示し、これは有効期限管理部（有効期限管理システム）１２を有する。この有効期限管理システム１２は、ＭＤ５ハッシュ演算部１４、パスＩＤハッシュ結果データ１８、有効期限設定ファイル名データ”ｔｉｍｅｒ．ｄａｔ”  ２０及び安全ピンファイル名データ“ＳａｆｔｙＰｉｎ．ｄａｔ”  ２２を有している。
【００１８】
安全ピンファイルにはパスＩＤを記載しておき、そのパスＩＤを片方向ハッシュ関数を使用したＭＤ５ハッシュ演算部プログラム１４によってハッシュ演算し、その演算結果をパスＩＤハッシュ結果データと比較し、両者が一致しているか否かにより、ファイルの正当性を確認するようにしている。これによって、安全ピンファイルのファイル名が漏洩した場合のセキュリティを保持することができる。
【００１９】
ハッシュ関数は片方向関数であるので、ハッシュ値ｈが与えられているときに、ハッシュ関数Ｈ（ｘ）＝ｈとなるような入力ｘを見付けるのは、計算上不可能である。ハッシュアルゴリズムには、ＭＤ２、ＭＤ４、ＭＤ５、ＳＨＡ−１等の種類がある。このうち、ＭＤ５は、広く用いられているハッシュ関数で、任意長メッセージから、１２８ｂｉｔ  のハッシュ値を生成する。
【００２０】
通常版用ソフトウェアから試用版用ソフトウェアを得るには、有効期限設定ファイルを準備し、安全ピンファイルを消去してリリースすれば良い。試用版用ソフトウェアでは、安全ピンファイルのファイル名が不明であるので、有効期限設定ファイルのセキュリティを破っただけでは、有効期限を変更することはできない。
【００２１】
次に、図２Ａ及びＢを参照して、通常版用及び試用版用ソフトウェアのプログラムのディレクトリ構成を説明する。
【００２２】
先ず、図２Ａの通常版用ソフトウェアのプログラムのディレクトリを説明する。通常版用ソフトウェアのプログラム（ｐｒｏｇｒａｍ）の“ｂｉｎ”というディレクトリには、プログラム本体（メインシステム）１０が格納され、“ｃｏｎｆ”というディレクトリには、有効期限無設定ファイルとしての安全ピンファイル（そのファイル名データは“ＳａｆｅｔｙＰｉｎ．ｄａｔ”である）が格納されている。
【００２３】
次に、図２Ｂの試用版用ソフトウェアのプログラムのディレクトリを説明する。試用版用ソフトウェアのプログラム（ｐｒｏｇｒａｍ）の“ｂｉｎ”というディレクトリには、プログラム本体（メインシステム）１０が格納され、“ｃｏｎｆ”というディレクトリに、有効期限設定ファイル（そのファイル名データは“ｔｉｍｅｒ．ｄａｔ”である）が格納されている。
【００２４】
図４に、コンピュータシステムの概要を示す。３０はＣＰＵを示し、このＣＰＵ３０にはＲＡＭ３２が接続されている。３４は、キーボード、マウス等の入力装置を示し、その入力装置３４からの各種入力信号は、ＣＰＵ３０に供給される。３６はハードディスク駆動装置を示す。例えば、ＣＤ−ＲＯＭに記録されているプログラム（ソフトウェア）が、ハードディスク駆動装置３６のハードディスクに転送され、そのハードディスクに記録されているプログラム（ソフトウェア）が読み出されて、ＣＰＵ３０を通じて、ＲＡＭ３２に格納される。ＣＰＵ３０は、このＲＡＭ３２に記憶されているプログラム（ソフトウェア）に基づいて動作する。
【００２５】
次に、図３のフローチャートを参照して、設定ファイルに基づいて、コンピュータ（図４のコンピュータシステム）を動作させたときの機能を説明する。先ず、ステップＳ１０で、ＣＰＵ３０によって、設定ファイル内の安全ピンファイル名データ“ＳａｆｔｙＰｉｎ．ｄａｔ”  ２２の場所に、プログラム固有のパスＩＤが記録された安全ピンファイル（有効期限無設定ファイル）が有るか否かを判別する。そのステップＳ１０の判別結果がＹＥＳのとき、即ち、プログラム固有のパスＩＤが記録された安全ピンファイルが有るときは、ステップＳ１２に移行して、ＣＰＵ３０によって、安全ピンファイル中のパスＩＤを片方向ハッシュ関数にてハッシュ演算してハッシュ値を算出させる。尚、ステップＳ１０の判別結果がＮＯのときは、ステップＳ２０に移行するが、これについては後述する。
【００２６】
ステップＳ１２の次は、ステップＳ１４に移行して、ＣＰＵ３０によって、ステップＳ１２で算出したハッシュ値と、プログラム本体内にプログラム毎に設定されたハッシュ値とが一致するか否かを判別する。ステップＳ１４の判別結果がＹＥＳ、即ち、ステップＳ１２で算出したハッシュ値と、プログラム本体内にプログラム毎に設定されたハッシュ値とが一致するときは、ステップＳ１６に移行して、プログラム本体を有効期限無しモード、即ち、通常モードで起動させる。
【００２７】
ステップＳ１４の判別結果がＮＯ、即ち、ステップＳ１２で算出したハッシュ値と、プログラム本体内にプログラム毎に設定されたハッシュ値とが一致しないときは、ステップＳ１８に移行して、プログラム本体の起動を禁止させる（拒絶する）。この場合は、安全ピンファイルが偽造されたものと判断する。
【００２８】
ステップＳ１０の判別結果がＮＯ、即ち、設定ファイル内にプログラム固有のパスＩＤが記録された安全ピンファイル（有効期限無設定ファイル）が無いときは、ステップＳ２０に移行して、ＣＰＵ３０によって、設定ファイル内の有効期限設定ファイル名データ”ｔｉｍｅｒ．ｄａｔ”  ２０の場所に、有効期限設定ファイルが有るか否かを判別する。ステップＳ２０の判別結果がＮＯ、即ち、有効期限設定ファイルが無いときは、ステップＳ２２に移行して、プログラム本体の起動を禁止させる（拒絶する）。ステップＳ２０の判別結果がＹＥＳ、即ち、有効期限設定ファイルがあるときは、ステップＳ２４に移行して、ＣＰＵ３０によって、設定ファイル内の有効期限設定ファイルを暗号解読して、有効期限を取り出す。
【００２９】
ステップＳ２４の次は、ステップＳ２６に移行して、ＣＰＵ３０によって、現在の日時を取得する。現在の日時を取得する方法には、コンピュータのシステム（ＢＩＯＳ）から取得する方法、ネットワーク上のサーバから取得する方法等がある。
【００３０】
ステップＳ２６の次は、ステップＳ２８に移行して、ＣＰＵ３０によって、ステップＳ２６で取得された現在の日時が、暗号解読された有効期限を超過していないか否かを判別する。ステップＳ２８の判別結果がＹＥＳ、即ち、現在の日時が有効期限を超過していないときは、プログラム本体を有効期限モードで起動させる。ステップＳ２８の判別結果がＮＯのとき、即ち、現在の日時が有効期限を超過しているときは、ステップＳ３２に移行して、プログラム本体の起動を禁止させる（拒絶する）。
【００３１】
【発明の効果】
本発明によれば、有効期限管理部を有するプログラム本体と、設定ファイルとから構成されるプログラムであって、有効期限管理部は、設定ファイル内にプログラム固有のパスＩＤが記録された安全ピンファイルが存在するか、有効期限設定ファイルが存在するかを判別させる機能と、設定ファイル内に安全ピンファイルが存在すると判別されると、その安全ピンファイルに記録されたパスＩＤを片方向ハッシュ関数にてハッシュ値を算出させる機能と、算出したハッシュ値とプログラム本体内にそのプログラム毎に設定されたハッシュ値とが一致した場合にそのプログラム本体を有効期限無しモードで起動させ、不一致の場合に起動を禁止させる機能と、設定ファイル内に有効期限設定ファイルが存在すると判別されると、プログラム本体を有効期限モードで動作させ、所定の有効期限を超過すると、プログラム本体の起動を禁止させる機能とをコンピュータに実現させるようにしたので、通常版用及び試用版用ソフトウェアを統合的に管理することができ、ライセンスサーバを必要とせず、試用版用ソフトウェアにおいて、前回の起動日時を記録する必要のないプログラムを得ることができる。又、試用版用ソフトウェアに、安全ピンファイルを追加するだけで、通常版用ソフトウェアを得ることができるので、試用版用ソフトウェアから通常版用ソフトウェアへの変換が容易となる。
【図面の簡単な説明】
【図１】有効期限管理部を有するプログラム本体と、設定ファイルとから構成される本発明のプログラムにおけるそのプログラム本体の構成を示す図である。
【図２】Ａ  通常版用ソフトウェアのプログラムのディレクトリ構成を示す図である。Ｂ  試用版用ソフトウェアのプログラムのディレクトリ構成を示す図である。
【図３】有効期限管理部（有効期限管理システム）を有するプログラム本体（メインシステム）と、設定ファイルとから構成される本発明のプログラムにおけるその設定ファイルに基づいて、コンピュータを動作させたときのその動作を示すフローチャートである。
【図４】コンピュータシステムを示すプロック図である。
【符号の説明】
１０…メインシステム（プログラム本体）、１２…有効期限管理システム、１４…ＭＤ５ハッシュ演算部、１６…設定ファイル暗号解読部、１８…パスＩＤハッシュ結果データ、２０…有効期限設定ファイル名データ、２２…安全ピンファイル名データ、３０…ＣＰＵ、３２…ＲＡＭ、３４…入力装置、３６…ハードディスク駆動装置
【図１】
2004178130.tif 000003
【図２】
2004178130.tif 000004
【図３】
2004178130.tif 000005
【図４】
2004178130.tif 000006