(57)【要約】【課題】より信頼性の高い時刻をプログラムの起動時刻として提供すること。【解決手段】情報処理装置は、時刻を示す時刻情報を出力する計時手段と、プログラムの起動が指示されると、ファイルの開閉が行なわれた時刻を示す時刻情報を計時手段から取得し、ファイルにタイムスタンプとして付加された時刻情報を、取得された時刻情報に更新するタイムスタンプ更新手段と、ファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得する第１の時刻取得手段と、プログラムの起動が指示されると、計時手段から出力された時刻情報により示される時刻を第２の時刻として取得する第２の時刻取得手段と、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にある場合、第１の時刻と第２の時刻の少なくともいずれか一方に基づいて定められる時刻を、プログラムが起動された起動時刻として取得する起動時刻取得手段とを有する。【選択図】図１
2009146096.tif 000002
【特許請求の範囲】
【請求項１】
時刻を示す時刻情報を出力する計時手段と、
プログラムの起動が指示されると、ファイルの開閉を行い、前記開閉が行なわれた時刻を示す時刻情報を前記計時手段から取得し、前記ファイルにタイムスタンプとして付加された時刻情報を、前記取得された時刻情報に更新するタイムスタンプ更新手段と、
前記タイムスタンプ更新手段により更新されたタイムスタンプが付加されたファイルから、前記ファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得する第１の時刻取得手段と、
前記プログラムの起動が指示されると、前記計時手段から出力された時刻情報により示される時刻を第２の時刻として取得する第２の時刻取得手段と、
前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の少なくともいずれか一方に基づいて定められ、前記第１の時刻と前記第２の時刻の間にある時刻を、前記プログラムが起動された起動時刻として取得する起動時刻取得手段と
を有する情報処理装置。
【請求項２】
複数のファイルを記憶する記憶手段を有し、
前記タイムスタンプ更新手段が、前記複数のファイルからランダムに選択されたファイルの開閉を行なう
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にない場合、前記プログラムの起動を禁止する禁止手段
を有する請求項１に記載の情報処理装置。
【請求項４】
時刻を示す時刻情報を出力する計時手段を有するコンピュータ装置に、
プログラムの起動が指示されると、ファイルの開閉を行い、前記開閉が行なわれた時刻を示す時刻情報を前記計時手段から取得し、前記ファイルにタイムスタンプとして付加された時刻情報を、前記取得された時刻情報に更新するステップと、
前記更新されたタイムスタンプが付加されたファイルから、前記ファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得するステップと、
前記プログラムの起動が指示されると、前記計時手段から出力された時刻情報により示される時刻を第２の時刻として取得するステップと、
前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の少なくともいずれか一方に基づいて定められ、前記第１の時刻と前記第２の時刻の間にある時刻を、前記プログラムが起動された起動時刻として取得するステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置においてプログラムの起動時刻を取得する技術に関する。
【背景技術】
【０００２】
いわゆる試用版または体験版ソフトウェアのように、ある限られた期間のみ起動できるソフトウェアが知られている。あるコンピュータ装置においてこのようなソフトウェアを起動する際、使用期限が経過したかを調べるためには、ソフトウェアの使用期限およびソフトウェアが起動された時刻（以下「起動時刻」という）、すなわちそのコンピュータ装置の現在時刻の２つの情報が必要である。
【０００３】
試用版ソフトウェアは本来、所定の期間に限って使用が許諾されたものであるが、使用期限を経過した後も試用版ソフトウェアを使用し続けることを目的として時刻情報を改ざんする悪意あるユーザは後を絶たない。起動時刻の改ざんによるソフトウェアの不正使用を防ぐ技術として、例えば特許文献１に記載の技術が知られている。特許文献１によれば、ソフトウェアの最終起動時刻は複数箇所に書き込まれる。これにより、複数の時刻情報のうち１つが改ざんされたとしても、改ざんされた情報を無視することができる。
【０００４】
しかし近年、使用期限を経過した後も試用版ソフトウェアを使用し続けることを目的として、試用版ソフトウェアに、改ざんされた時刻を起動時刻として取得させるソフトウェアが知られている。このソフトウェアは、試用版ソフトウェアがコンピュータ装置の内部時計から現在時刻を取得しようとすると割り込み処理を発生させ、改ざんされた時刻を現在時刻として取得させる。これに対し特許文献１には、ネットワーク上のサーバから信頼できる時刻を取得することも記載されている。
【特許文献１】特開２００４−１９９４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ネットワークに接続されていない環境においても、コンピュータ装置の内部時計から直接取得された時刻のみよりもより信頼性の高い時刻をプログラムの起動時刻として提供する。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明は、時刻を示す時刻情報を出力する計時手段と、プログラムの起動が指示されると、ファイルの開閉を行い、前記開閉が行なわれた時刻を示す時刻情報を前記計時手段から取得し、前記ファイルにタイムスタンプとして付加された時刻情報を、前記取得された時刻情報に更新するタイムスタンプ更新手段と、前記タイムスタンプ更新手段により更新されたタイムスタンプが付加されたファイルから、前記ファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得する第１の時刻取得手段と、プログラムの起動が指示されると、前記計時手段から出力された時刻情報により示される時刻を第２の時刻として取得する第２の時刻取得手段と、前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の少なくともいずれか一方に基づいて定められ、前記第１の時刻と前記第２の時刻の間にある時刻を、前記プログラムが起動された起動時刻として取得する起動時刻取得手段とを有する情報処理装置を提供する。
この情報処理装置によれば、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の間にある時刻が起動時刻として取得される。
【０００７】
好ましい態様において、この情報処理装置は、複数のファイルを記憶する記憶手段を有し、前記タイムスタンプ更新手段が、前記複数のファイルからランダムに選択されたファイルの開閉を行なってもよい。
この情報処理装置によれば、複数のファイルからランダムに選択されたファイルの開閉が行なわれた時刻が第１の時刻として用いられる。
【０００８】
好ましい態様において、この情報処理装置は、前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にない場合、前記プログラムの起動を禁止する禁止手段を有してもよい。
この情報処理装置によれば、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にない場合、プログラムの起動が禁止される。
【０００９】
また、本発明は、時刻を示す時刻情報を出力する計時手段を有するコンピュータ装置に、プログラムの起動が指示されると、ファイルの開閉を行い、前記開閉が行なわれた時刻を示す時刻情報を前記計時手段から取得し、前記ファイルにタイムスタンプとして付加された時刻情報を、前記取得された時刻情報に更新するステップと、前記更新されたタイムスタンプが付加されたファイルから、前記ファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得するステップと、プログラムの起動が指示されると、前記計時手段から出力された時刻情報により示される時刻を第２の時刻として取得するステップと、前記第１の時刻と前記第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の少なくともいずれか一方に基づいて定められ、前記第１の時刻と前記第２の時刻の間にある時刻を、前記プログラムが起動された起動時刻として取得するステップとを実行させるプログラムを提供する。
このプログラムによれば、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にある場合、前記第１の時刻と前記第２の時刻の間にある時刻が起動時刻として取得される。
【発明を実施するための最良の形態】
【００１０】
１．構成
図１は、本発明の一実施形態に係る情報処理装置１００の機能構成を示す図である。計時手段１１は、時刻を計測し、計測した時刻を示す時刻情報を出力する。タイムスタンプ更新手段１２は、プログラムの起動が指示されると、ファイルの開閉を行う。ファイルにはタイムスタンプ、すなわち、そのファイルが更新された時刻を示す情報が付加されている。ファイルの開閉の際に計時手段１１から取得された時刻がタイムスタンプとして付加される。このように、タイムスタンプ更新手段１２は、開閉されたファイルのタイムスタンプを更新する。第１の時刻取得手段１３は、タイムスタンプ更新手段１２により更新されたタイムスタンプが付加されたファイルから、そのファイルに付加されたタイムスタンプにより示される時刻を第１の時刻として取得する。第２の時刻取得手段１４は、プログラムの起動が指示されると、計時手段１１から出力された時刻情報により示される時刻を第２の時刻として取得する。起動時刻取得手段１５は、第１の時刻と第２の時刻が同じである場合、第１の時刻と第２の時刻の少なくともいずれか一方に基づいて定められる時刻を、プログラムが起動された起動時刻として取得する。ここで、「第１の時刻と第２の時刻が同じである」とは、第１の時刻と第２の時刻とが実質的に同じであると認められること、例えば、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にあることを意味する。
【００１１】
記憶手段１６は、複数のファイルを記憶する。タイムスタンプ更新手段１２は、これら複数のファイルからランダムに選択されたファイルの開閉を行なう。禁止手段１７は、第１の時刻と第２の時刻の差があらかじめ決められた範囲内にない場合、プログラムの起動を禁止する。
【００１２】
図２は、情報処理装置１００のハードウェア構成を示す図である。情報処理装置１００は、例えば、いわゆるパーソナルコンピュータである。ＣＰＵ１１０は、情報処理装置１００の各要素を制御する制御装置である。ＲＯＭ（Read Only Memory）１２０は、情報処理装置１００の起動に必要なデータおよびソフトウェアを記憶する記憶装置である。ＲＡＭ（Random Access Memory）１３０は、ＣＰＵ１１０がソフトウェアを実行する際の作業領域として機能する記憶装置である。なお「ソフトウェア」とはプログラムおよび関連
するデータを含む概念であり、「ソフトウェアを実行する」とは「プログラムを実行する」と同義である。Ｉ／Ｆ（Interface）１４０は、種々の入出力装置や記憶装置との間でデータおよび制御信号の入出力をするインターフェースである。ＨＤＤ（Hard Disk Drive）１５０は、各種ソフトウェアおよびデータを記憶する記憶装置である。本実施形態に関して、ＨＤＤ１５０は、入出力機能やメモリ管理などの基本的な機能を提供する基本ソフトウェア、いわゆるＯＳ（Operating System）と、使用期間が制限されたいわゆる試用版ソフトウェアとを記憶している。また、ＨＤＤ１５０は、試用版ソフトウェアが処理可能な複数のファイルを記憶している。キーボード・マウス１６０は、ユーザが情報処理装置１００に対して指示入力を行うための入力装置である。ディスプレイ１７０は、データの内容あるいは処理の状況などを表示する出力装置である。バス１９０は、要素間でデータや信号の授受に用いられる伝送路である。ＣＰＵ１１０、ＲＯＭ１２０、ＲＡＭ１３０、およびＩ／Ｆ１４０は、バス１９０を介して接続されている。タイマＴは、時刻を計測する装置である。ＣＰＵ１１０が試用版ソフトウェアを実行することにより、情報処理装置１００は、図１に示される機能構成を備える。
【００１３】
２．動作
図３は、情報処理装置１００の動作を示すフローチャートである。ステップＳ１００において、ユーザは、情報処理装置１００に対して試用版ソフトウェアの起動の指示を入力する。起動指示は、例えば、キーボード・マウス１６０を介して入力される。起動が指示されると、試用版ソフトウェアは、以下で説明するステップＳ１１０およびＳ１２０の処理を行う。試用版ソフトウェアは、それぞれ主たる機能（例えば、音声合成ソフトウェアであれば音声合成を行う機能、また、文書編集ソフトウェアであれば文書を編集する機能）に加えて、不正使用を排除する機能を有する。以下で説明するのは、この不正使用を排除する機能についてである。なお、「ソフトウェア」が「処理を行う」とは、ＣＰＵ１１０がソフトウェアを実行することにより情報処理装置１００のハードウェア要素を制御し、情報処理装置１００がそのソフトウェアに従った処理を行うことをいう。
【００１４】
ステップＳ１１０において、試用版ソフトウェアは、ファイル開閉により最新のタイムスタンプを取得する。詳細には次のとおりである。試用版ソフトウェアは、まず、ＨＤＤ１５０に記憶された複数のファイルの中から、処理の対象とするファイルを選択する。選択はランダムに行われる。試用版ソフトウェアは、選択されたファイルを開く。さらに、試用版ソフトウェアは、開かれたファイルを閉じる。ファイルを閉じる際、そのファイルに付加されるタイムスタンプは更新される。ファイル開閉の際にタイムスタンプを更新する処理は、ＯＳにより提供される。ファイルを閉じた後、試用版ソフトウェアは、そのファイルのタイムスタンプを取得する。試用版ソフトウェアは、取得されたタイムスタンプにより示される時刻を第１の時刻としてＲＡＭ１３０に記憶する。
【００１５】
ステップＳ１２０において、試用版ソフトウェアは、コンピュータ装置の内部時刻を取得する。詳細には次のとおりである。試用版ソフトウェアは、ＯＳに対し情報処理装置１００の現在時刻を要求する命令を出力する。ＯＳは、タイマＴから現在時刻を取得し、取得した現在時刻を試用版ソフトウェアに引き渡す。試用版ソフトウェアは、引き渡された時刻を第２の時刻としてＲＡＭ１３０に記憶する。
【００１６】
ここで、情報処理装置１００のユーザが、背景技術の項で説明したようなソフトウェア（以下、ユーザが悪意を持って使用する場合にこのようなソフトウェアを「不正ソフトウェア」という）を使用していた場合、すなわち、情報処理装置１００に不正ソフトウェアがインストールされていた場合、試用版ソフトウェアからＯＳに対し情報処理装置１００の現在時刻を要求する命令が出力されると、不正ソフトウェアは割り込み処理を行う。この割り込み処理は、試用版ソフトウェアに対し、改ざんされた時刻を引き渡す処理を含む。この不正ソフトウェアによれば、情報処理装置１００の内部時計の時刻は改ざんしなくても、ある特定のソフトウェアに対してのみ、改ざんされた時刻を取得させることができる。単に情報処理装置１００の内部時計の時刻を変更するだけだと、試用版ソフトウェア以外のソフトウェアの動作にも影響してしまうので、このような不正ソフトウェアを使用する悪意あるユーザは少なからず存在する。
【００１７】
もちろん、このような不正ソフトウェアがインストールされていなければ、試用版ソフトウェアは正しい現在時刻を取得する。
【００１８】
ステップＳ１１０およびＳ１２０の処理が終わると、試用版ソフトウェアは、第１の時刻と第２の時刻とが等しいか判断する（ステップＳ１３０）。ここで、「第１の時刻と第２の時刻とが等しい」とは、第１の時刻と第２の時刻とが完全に一致している場合だけでなく、第１の時刻と第２の時刻とが実質的に等しいと認められる場合、例えば、第１の時刻と第２の時刻との差があらかじめ決められた誤差範囲の中にある場合も含む。すなわち不正ソフトウェアがインストールされている場合、第１の時刻と第２の時刻とは異なり、不正ソフトウェアがインストールされていない場合、第１の時刻と第２の時刻とは等しい。第１の時刻と第２の時刻とが等しいと判断された場合（Ｓ１３０：ＹＥＳ）、試用版ソフトウェアは処理をステップＳ１４０に移行する。第１の時刻と第２の時刻とが等しくないと判断された場合（Ｓ１３０：ＮＯ）、試用版ソフトウェアは処理をステップＳ１７０に移行する。
【００１９】
ステップＳ１４０において、試用版ソフトウェアは、タイマＴから取得した時刻（第２の時刻）を、試用版ソフトウェアの起動時刻としてＲＡＭ１３０に記憶する。
【００２０】
ステップＳ１５０において、試用版ソフトウェアは、使用期限を取得する。使用期限は、例えば、試用版ソフトウェアが情報処理装置１００にインストールされたときにＨＤＤ１５０に記憶されている。試用版ソフトウェアは、取得した使用期限をＲＡＭ１３０に記憶する。
【００２１】
ステップＳ１６０において、試用版ソフトウェアは、使用期限を経過したか判断する。すなわち、試用版ソフトウェアは、使用期限と起動時刻とを比較し、起動時刻が使用期限を超えているか判断する。使用期限を経過したと判断された場合（Ｓ１６０：ＹＥＳ）、試用版ソフトウェアは、処理をステップＳ１７０に移行する。使用期限を経過していないと判断された場合（Ｓ１６０：ＮＯ）、試用版ソフトウェアは、処理をステップＳ１８０に移行する。
【００２２】
ステップＳ１７０において、試用版ソフトウェアは、起動を禁止する。すなわち、試用版ソフトウェアを停止する処理を行う。
ステップＳ１８０において、試用版ソフトウェアは、起動を行う。なおここで「起動」とは、ソフトウェアの主たる機能が実現されるように情報処理装置１００の設定を行うことをいう。すなわち起動が完了すると、試用版ソフトウェアの主たる機能（例えば、音声合成ソフトウェアであれば音声合成を行う機能、また、文書編集ソフトウェアであれば文書を編集する機能）が情報処理装置１００上に実現される。起動が完了する前の状態では、試用版ソフトウェアの主たる機能は実現されない。
【００２３】
以上で説明したように、本実施形態によれば、不正ソフトウェアがインストールされている環境でも、本実施形態の構成を有しない場合よりもより信頼性の高い起動時刻が取得される。起動時刻の取得にはネットワークが用いられないので、、ネットワークに接続されていない環境においても、コンピュータ装置の内部時計から直接取得された時刻のみよりもより信頼性の高い時刻が取得される。
【００２４】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、本発明の他の実施形態をいくつか説明する。以下において上記の実施形態と共通する事項についてはその説明を省略する。また、実施形態と共通する要素については共通の参照番号が用いられる。さらに、以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００２５】
上述の実施形態において、タイムスタンプを取得するために開閉されるファイルは複数のファイルの中からランダムに選択された。これは、より高い信頼性を確保するための処理である。しかし、タイムスタンプを取得するために開閉されるファイルはあらかじめ決められていてもよい。あるいは、タイムスタンプを取得するために開閉されるファイルはユーザにより指定されてもよい。
【００２６】
上述の実施形態において、第１の時刻と第２の時刻が同一でない場合には、試用版ソフトウェアの起動が禁止された。しかし、第１の時刻と第２の時刻が同一でないということだけをもって直ぐに試用版ソフトウェアの起動を禁止しなくてもよい。例えば、この場合に、明らかに使用期限を経過していると考えられる時刻（例えば現在時刻の１００年後）が、試用版ソフトウェアの起動時刻として取得されてもよい。
【００２７】
上述の実施形態において、ファイルの開閉が行なわれた時刻としてファイルが閉じられたときの時刻が用いられたが、ファイルの開閉が行なわれた時刻はこれに限定されるものではない。一連のファイルの開閉により定められる時刻であれば、どのような時刻が用いられてもよい。例えば、試用版ソフトウェアが、開いたファイルを更新し、更新したファイルを閉じるという処理を行い、ファイルの更新がされた時刻がタイムスタンプとして付加されてもよい。
【００２８】
上述の実施形態において、試用版ソフトウェアの起動時刻として第２の時刻が採用されたが、試用版ソフトウェアの起動時刻はこれに限定されるものではない。第１の時刻と第２の時刻の少なくともいずれか一方に基づいて定められ、第１の時刻と第２の時刻の間にある時刻であれば、どのような時刻が用いられてもよい。例えば、第１の時刻と第２の時刻の平均値が用いられてもよい。あるいは、第１の時刻と第２の時刻のうち早い方（あるいは遅い方）が用いられてもよい。
【００２９】
上述の実施形態において、図３に示されるフローは試用版ソフトウェアおよびＯＳの２つのソフトウェアにより行われた。しかし、試用版ソフトウェアおよびＯＳの機能の分担は、実施形態で説明したものに限定されない。例えば、試用版ソフトウェアが単独で図３に示されるフローを実行してもよい。あるいは、上記の実施形態で試用版ソフトウェアが行った処理の一部を、ＯＳなど他のソフトウェアが行ってもよい。
【００３０】
情報処理装置１００のハードウェア構成は、図２に示したものに限定されない。必要な機能構成を実現できるものであれば、情報処理装置１００はどのようなハードウェア構成を有していてもよい。
【００３１】
情報処理装置１００が記憶および実行する試用版ソフトウェアは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、フラッシュＲＯＭなどの記録媒体に記録した状態で提供されてもよい。
【図面の簡単な説明】
【００３２】
【図１】一実施形態に係る情報処理装置１００の機能構成を示す図である。
【図２】情報処理装置１００のハードウェア構成を示す図である。
【図３】情報処理装置１００の動作を示すフローチャートである。
【符号の説明】
【００３３】
１１…計時手段、１２…タイムスタンプ更新手段、１３…第１の時刻取得手段、１４…第２の時刻取得手段、１５…起動時刻取得手段、１６…記憶手段、１７…禁止手段、１００…情報処理装置、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…Ｉ／Ｆ、１５０…ＨＤＤ、１６０…キーボード・マウス、１７０…ディスプレイ、１９０…バス、Ｔ…タイマ
【図１】
2009146096.tif 000003
【図２】
2009146096.tif 000004
【図３】
2009146096.tif 000005