(57)【要約】【課題】ソフトウェアの構成情報をあらかじめ外部の記憶媒体等に記録しておくことができない環境において、ソフトウェア自身が実行可否をチェックすることができる技術を提供する。【解決手段】本発明に係る実行可否自己チェックプログラムは、実行環境を特定する環境情報を取得し、これを用いて認証装置に実行可否を問い合わせる。環境情報とは、プログラムの実行環境上においてプログラムと関連付けられている情報である。【選択図】図１
2014109828.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション動作を実装したプログラムを実行することを許可するか否かのチェックを前記プログラム自身の内部に記述された命令によって実施する処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
前記プログラムの実行環境を特定する環境情報を取得する環境情報取得ステップ、
前記環境情報を用いて、前記プログラムを前記実行環境上で実行することを許可するか否かを認証装置に問い合わせる認証ステップ、
前記認証装置より実行を許可する旨の応答を得た場合は、前記環境情報取得ステップと前記認証ステップを除く前記アプリケーション動作を開始するステップ、
を実行させ、
前記環境情報取得ステップにおいては、前記コンピュータに、
前記プログラム自身は保持していないが前記プログラムから参照することができる情報であって、前記実行環境上で前記プログラムと関連付けられている情報を、前記環境情報として取得させる
ことを特徴とする実行可否自己チェックプログラム。
【請求項２】
前記環境情報取得ステップにおいては、前記コンピュータに、
前記プログラムの実行環境であるＯＳ上で前記プログラムと関連付けられているサブストリーム情報を、前記環境情報として取得させる
ことを特徴とする請求項１記載の実行可否自己チェックプログラム。
【請求項３】
前記環境情報取得ステップにおいては、前記コンピュータに、
前記プログラムがインストールされているデバイスに固有の識別情報を、前記環境情報として取得させる
ことを特徴とする請求項１または２記載の実行可否自己チェックプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの実行可否を制御する技術に関するものである。
【背景技術】
【０００２】
ソフトウェアの改ざんを検知して実行可否を制御する技術として、ソフトウェアのファイルのハッシュ情報をあらかじめ保存しておき、そのハッシュ情報をファイルの改ざん検知時に利用する方法がある。
【０００３】
下記特許文献１は、ソフトウェアの改ざん検知に関し、ソフトウェアのインストール時に、インストール機器の外部にソフトウェアの構成情報を暗号化して保存しておき、ソフトウェア実行時に、暗号しておいた情報を復号してチェックすることによる、改ざんを検知する方法を提案している。改ざんが検知された場合は、そのソフトウェアを実行することは禁止される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１９３５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載されている技術は、ソフトウェアの構成情報を記憶する外部の記憶媒体を用意できない環境においては、実装することができない。この場合は、外部記憶装置が保持している構成情報に依拠することなく、ソフトウェア自身が実行可否をチェックする必要がある。
【０００６】
本発明は、上記のような課題に鑑みてなされたものであり、ソフトウェアの構成情報をあらかじめ外部の記憶媒体等に記録しておくことができない環境において、ソフトウェア自身が実行可否をチェックすることができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る実行可否自己チェックプログラムは、実行環境を特定する環境情報を取得し、これを用いて認証装置に実行可否を問い合わせる。環境情報とは、プログラムの実行環境上においてプログラムと関連付けられている情報である。
【発明の効果】
【０００８】
本発明に係る実行可否自己チェックプログラムによれば、実行可否をプログラム自身がチェックすることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る実行可否自己チェックプログラム１０３の実行環境であるコンピュータシステムの構成図である。
【図２】デバイスインスタンスＩＤ１０５の１例を示す図である。
【図３】サブストリーム情報１０６の１例を示す図である。
【図４】図１のステップ（１）−１に関する詳細フローを示す図である。
【図５】図１のステップ（１）−２に関する詳細フローを示す図である。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
図１は、本発明に係る実行可否自己チェックプログラム１０３の実行環境であるコンピュータシステムの構成図である。本コンピュータシステムは、クライアントＰＣ１０１、認証サーバ１０７、ポリシーＤＢ１０８を有する。
【００１１】
クライアントＰＣ１０１は、実行可否自己チェックプログラム１０３を実行するコンピュータである。ハードディスク１０２には、実行可否自己チェックプログラム１０３がインストールされている。実行可否自己チェックプログラム１０３は、１以上の構成ファイル（プログラム本体、設定ファイルなど）１０４によって構成されている。以下では記載の便宜上、実行可否自己チェックプログラム１０３を動作主体として説明する場合があるが、実際に実行可否自己チェックプログラム１０３を実行するのはコンピュータ１０１が備えるＣＰＵなどの演算装置である。
【００１２】
認証サーバ１０７は、実行可否自己チェックプログラム１０３から実行可否についての問い合わせを受け取ると、ポリシーＤＢ１０８が格納している実行可否ポリシーを照会して実行可否を判断し、その結果を応答する。
【００１３】
ポリシーＤＢ１０８は、実行可否自己チェックプログラム１０３を実行することを許可するハードディスク１０２のデバイスインスタンスＩＤ、または実行することを許可する実行可否自己チェックプログラム１０３のサブストリーム情報を格納している。これらの具体例については後述する。
【００１４】
実行可否自己チェックプログラム１０３は、起動されるとまず初めに、以下の２つの環境情報のうち少なくともいずれかを抽出する。１つ目は、実行可否自己チェックプログラム１０３がインストールされているハードディスク１０２固有のデバイスインスタンスＩＤ１０５である（図１：（１）−１）。２つ目は、実行可否自己チェックプログラム１０３を構成するファイル１０４のサブストリーム情報１０６である（図１：（１）−２）。これらの情報は、双方とも用いてもよいしいずれか一方のみを用いてもよい。
【００１５】
デバイスインスタンスＩＤ１０５は、個々のハードディスク１０２を固有に識別する情報であり、例えば製造シリアル番号などがこれに相当する。デバイスインスタンスＩＤ１０５をチェックするのは、特定のハードディスク１０２上にインストールされた実行可否自己チェックプログラム１０３のみ実行を許可する意義がある。
【００１６】
サブストリーム情報とは、クライアントＰＣ１０１のＯＳ（オペレーティングシステム）上においてファイルと関連付けて保存されている内部的情報であり、通常動作においては使用されずファイルサイズ上にも現れない。ただしＯＳが管理している情報であるため、所定のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）などを用いて実行可否自己チェックプログラム１０３が取得することができる。サブストリーム情報１０６をチェックするのは、正規に開発された実行可否自己チェックプログラム１０３のみ実行を許可する意義がある。
【００１７】
実行可否自己チェックプログラム１０３は、デバイスインスタンスＩＤ１０５またはサブストリーム情報１０６を用いて、実行可否を認証サーバ１０７へ問い合わせる（図１：（２））。
【００１８】
認証サーバ１０７は、実行可否自己チェックプログラム１０３より実行可否の問い合わせを受け取ると、ポリシーＤＢ１０８を参照して、受け取ったデバイスインスタンスＩＤ１０５またはサブストリーム情報１０６が登録されているか否かをチェックする（図１：（３））。
【００１９】
登録されていた場合は、実行許可する旨を実行可否自己チェックプログラム１０３に返答する。登録されていなかった場合は、実行拒否する旨を実行可否自己チェックプログラム１０３に返答する（図１：（４））。実行可否自己チェックプログラム１０３は、実行許可する旨の返答を受け取った場合に限り、以後の処理を開始する。ここでいう以後の処理とは、実行可否自己チェックプログラム１０３が本来意図しているアプリケーション動作のことである。
【００２０】
図２は、デバイスインスタンスＩＤ１０５の１例を示す図である。デバイスインスタンスＩＤ１０５の例として、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓＯＳ上でデバイスを認識するために使用されるものを使用することができる。ＷｉｎｄｏｗｓＯＳにおけるデバイスインスタンスＩＤは、デバイスベンダ毎に固有の値が割り振られており、原則として１つのデバイスに対して１つのデバイスインスタンスＩＤが対応している。ＷｉｎｄｏｗｓＯＳにおけるデバイスインスタンスＩＤは、英数字と￥で構成されており、最初の￥までが接続種別を表し、次の￥までがベンダＩＤとプロダクトＩＤを表し、最後がインスタンスＩＤを表す。デバイス自身の内部にＩＤが記録されているので、エンドユーザによる書き換えは不可能である。
【００２１】
図３は、サブストリーム情報１０６の１例を示す図である。サブストリーム情報は、ファイルのメタデータを表す情報であり、ファイルの実データ（これをメインストリームと呼ぶ）とは別にＯＳ上で管理される情報である。ここでいうメタデータとは、ファイルのパラメータ、属性などを表す。図３に示す例では、サブストリーム情報のパラメータ名として、作成者、カテゴリ、キーワードを例示したが、これに限られるものではない。サブストリーム情報は、ＷｉｎｄｏｗｓＯＳのＮＴＦＳファイルシステムにおいて実装されているが、その他のＯＳにおいて同様の情報を管理している場合は、これを用いることもできる。
【００２２】
サブストリーム情報のなかには、エンドユーザが容易に書き換えることができるものも含まれるが、本発明において実行可否自己チェックプログラム１０３が使用するサブストリーム情報１０６としては、少なくともエンドユーザが容易に偽造することができない情報を用いる。例えば正規品である実行可否自己チェックプログラム１０３固有の認証コードなどがこれに相当する。
【００２３】
図４は、図１のステップ（１）−１に関する詳細フローを示す図である。実行可否自己チェックプログラム１０３は、実行要求があると、実行可否自己チェックプログラム１０３がインストールされているハードディスク１０２から、そのデバイスのデバイスインスタンスＩＤ１０５を抽出し（Ｓ４０１）、そのデバイスインスタンスＩＤ１０５を認証サーバ１０７へ送信する（Ｓ４０２）。認証サーバ１０７は、ポリシーＤＢ１０８に対して、該当するデバイスインスタンスＩＤが登録されているか否かを問い合わせる（Ｓ４０３）。該当するデバイスインスタンスＩＤが登録されていた場合、認証サーバ１０７は実行を許可する旨を応答する（Ｓ４０５）。登録されていなかった場合、認証サーバ１０７は実行を許可しない旨を応答する（Ｓ４０６）。
【００２４】
図５は、図１のステップ（１）−２に関する詳細フローを示す図である。実行可否自己チェックプログラム１０３は、実行要求があると、実行可否自己チェックプログラム１０３を構成するファイル１０４（複数のファイル１０４がある場合はいずれか１以上）のサブストリーム情報１０６を抽出し（Ｓ５０１）、そのサブストリーム情報１０６を認証サーバ１０７へ送信する（Ｓ５０２）。認証サーバ１０７は、ポリシーＤＢ１０８に対して、該当するサブストリーム情報が登録されているか否かを問い合わせる（Ｓ５０３）。該当するサブストリーム情報が登録されていた場合、認証サーバ１０７は実行を許可する旨を応答する（Ｓ５０５）。登録されていなかった場合、認証サーバ１０７は実行を許可しない旨を応答する（Ｓ５０６）。
【００２５】
実行可否自己チェックプログラム１０３は、デバイスインスタンスＩＤ１０５またはサブストリーム情報１０６のいずれか一方のみを用いて実行可否を問い合わせる場合は、図４または図５の一方を実行すればよい。双方とも用いる場合は、図４と図５双方において実行許可を得た場合に限り、実行が許可されたものとする。
【００２６】
＜実施の形態１：まとめ＞
以上のように、本発明に係る実行可否自己チェックプログラム１０３は、インストールされているハードディスク１０２のデバイスインスタンスＩＤ１０５または実行可否自己チェックプログラム１０３に対応付けられたサブストリーム情報１０６を用いて、実行可否を認証サーバ１０７へ問い合わせる。これにより、実行可否自己チェックプログラム１０３がインストールされている実行環境から得られる情報のみを用いて、実行可否自己チェックプログラム１０３単体で実行可否をチェックすることができる。
【００２７】
また、本発明に係る実行可否自己チェックプログラム１０３において、サブストリーム情報１０６を用いて実行可否をチェックすることにより、実行可否自己チェックプログラム１０３を構成するファイル１０４の構成が変更された（すなわちファイル構成が改ざんされた）ことを検知することができる。これにより、ソフトウェアの配布の条件となっている「構成を変更しない」を厳格にチェックすることができる。
【００２８】
また、本発明に係る実行可否自己チェックプログラム１０３において、デバイスインスタンスＩＤ１０５を用いて実行可否をチェックすることにより、不正なハードディスク１０２上に実行可否自己チェックプログラム１０３がインストールされたことを検知することができる。これにより、実行可否自己チェックプログラム１０３の不正コピーを防止することができる。
【００２９】
＜実施の形態２＞
実施形態１においては、デバイスインスタンスＩＤ１０５とサブストリーム情報１０６を用いて実行可否を問い合わせることを説明したが、その他の環境情報を用いて実行可否を問い合わせることもできる。少なくとも、実行可否自己チェックプログラム１０３自身は保持していないが実行可否自己チェックプログラム１０３が実行環境から取得することができ、かつ実行環境と関連付けられている情報であれば、実行可否を問い合わせるための環境情報として用いることができる。ただし容易に改ざんすることを防止するため、エンドユーザが容易に偽造することができない情報を用いることが望ましい。
【符号の説明】
【００３０】
１０１：クライアントＰＣ、１０２：ハードディスク、１０３：実行可否自己チェックプログラム、１０４：ファイル、１０５：デバイスインスタンスＩＤ、１０６：サブストリーム情報、１０７：認証サーバ、１０８：ポリシーＤＢ。
【図１】
2014109828.tif 000003
【図２】
2014109828.tif 000004
【図３】
2014109828.tif 000005
【図４】
2014109828.tif 000006
【図５】
2014109828.tif 000007