(57)【要約】【課題】プロテクションの強化と実行パフォーマンスとを高いレベルで両立させることを実現する情報処理装置を提供する。【解決手段】不正利用検出モジュール１０１２は、重要データを扱うソフトウェアを構成するプログラムが不正利用されていないかを監視し、不正利用が検出されたら、不正利用回数記録モジュール１０１３が、ＨＤＤ１５の不正利用回数記録領域１０２に当該ソフトウェアの不正利用回数を記録する。そして、プロテクション強度制御モジュール１０１１は、当該ソフトウェアの実行が開始された際、ＨＤＤ１５の不正利用回数記録領域１０２に記録された当該ソフトウェアの不正利用回数を読み込み、その値がしきい値を越えていたら、当該ソフトウェアを構成するプログラムのプロテクションを強化する。【選択図】      図２
2008287441.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの不正利用を検出する不正利用検出手段と、
前記不正利用検出手段が検出した不正利用の回数を記録する不正利用回数記録手段と、
前記不正利用回数記録手段が記録した不正利用回数に基づき、前記プログラムの保護強度を制御する保護強度制御手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
前記保護強度制御手段は、前記プログラム中のオブジェクトコードを保護強度が異なる複数のオブジェクトコード間で置き替える手段を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記複数のオブジェクトコードを記憶するための記憶手段を具備し、
前記保護強度制御手段は、置き換え対象の新オブジェクトコードを前記記憶手段からロードする手段を含む、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記複数のオブジェクトコードをネットワークを介して他の情報処理装置から取得するための通信手段を具備し、
前記保護強度制御手段は、置き換え対象の新オブジェクトコードを前記記憶手段からダウンロードする手段を含む、
ことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記不正利用検出手段は、デバッガによる攻撃検出、不正改ざん検査またはバイパス攻撃検出を行うことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記不正利用回数記録手段は、不正利用回数をプログラム毎に記録し、
前記保護強度制御手段は、前記不正利用回数記録手段が記録した不正利用回数がしきい値を越えたプログラムの保護強度を強化する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記保護強度制御手段は、前記不正利用回数記録手段が記録した不正利用回数の総数がしきい値を越えた場合、予め指定されたプログラムすべての保護強度を強化する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項８】
プログラムの不正利用を検出し、
前記検出した不正利用の回数を記録し、
前記記録した不正利用回数に基づき、前記プログラムの保護強度を制御する、
することを特徴とするプログラムの不正利用抑止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば著作権保護されたコンテンツ等の重要データを扱うプログラムが動作するパーソナルコンピュータ等の情報処理装置に適用して好適なプログラムの不正利用抑止技術に関する。
【背景技術】
【０００２】
近年、例えば著作権保護されたコンテンツを再生可能なソフトウェアを搭載するパーソナルコンピュータが広く普及している。この著作権保護されたコンテンツ等の重要データを扱うソフトウェアでは、重要データの盗用防止の観点から、重要データをどのように扱っているのかを不正者に見破られることは許されない。そのため、これまでも、ソフトウェアを不正利用から如何に保護するかといった提案が種々なされている（例えば特許文献１等参照）。
【０００３】
ソフトウェア保護のための方策としては、ソフトウェアをＴＲＳ（Tamper-Resistant Software）化することがもはや一般的となってきている。しかしながら、いわゆるクラッキングのレベルも日々進歩しているため、これに追従して、プログラムの難読化を目的とするＴＲＳの強度も日々上げざるを得ないというのが実情である。
【特許文献１】特開平１１−３２８０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＴＲＳ化には、種々のアプローチが既に存在するが、全般的には、プロテクションを強化させると、一方で、当該ＴＲＳ化に伴うオーバヘッドの増加を招くという、いわゆるトレードオフの関係が成り立つと言える。よって、もし、ごく一部の不正者による不正利用に追従して、ＴＲＳの強度を一律に上げたならば、その他の大多数の正規者に不要な負担を強いることになってしまう。
【０００５】
この発明は、このような事情を考慮してなされたものであり、プロテクションの強化と実行パフォーマンスとを高いレベルで両立させることを実現する情報処理装置およびプログラムの不正利用抑止方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するために、本発明の情報処理装置は、プログラムの不正利用を検出する不正利用検出手段と、前記不正利用検出手段が検出した不正利用の回数を記録する不正利用回数記録手段と、前記不正利用回数記録手段が記録した不正利用回数に基づき、前記プログラムの保護強度を制御する保護強度制御手段と、を具備することを特徴とする。
【０００７】
また、本発明のプログラムの不正利用抑止方法は、プログラムの不正利用を検出し、前記検出した不正利用の回数を記録し、前記記録した不正利用回数に基づき、前記プログラムの保護強度を制御する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プロテクションの強化と実行パフォーマンスとを高いレベルで両立させることを実現する情報処理装置およびプログラムの不正利用抑止方法を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、この発明の一実施形態を説明する。図１に、本実施形態に係る情報処理装置（コンピュータ）１の概略構成例を示す。本コンピュータ１は、例えばノートブックタイプまたはデスクトップタイプ等のパーソナルコンピュータとして実現されている。
【００１０】
図１に示すように、このコンピュータ１は、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、サウスブリッジ１４、磁気ディスク駆動装置（ＨＤＤ）１５、ネットワークコントローラ１６等を備えている。ＣＰＵ１１と主メモリ１３とは、ノースブリッジ１２を経由して接続され、また、ＨＤＤ１５およびネットワークコントローラ１６は、サウスブリッジ１４に接続されている。
【００１１】
例えば著作権保護化されたコンテンツ等の重要データを扱う、不正利用の抑止が求められるソフトウェアを構成するプログラム群１０１は、ＨＤＤ１５に格納されており、オペレーティングシステム（ＯＳ）によって主メモリ１３にロードされる。そして、あるプログラムの実行が開始されると、主メモリ１３から当該プログラムの各命令が逐次ＣＰＵ１１にフェッチされる。
【００１２】
ここでは、プログラム（Ａ）およびプログラム（Ｂ）の２つのプログラムで重要データを扱うソフトウェアが構成されているものと想定する。両者は、プログラム（Ａ）からプログラム（Ｂ）が呼び出される関係にある。即ち、当該ソフトウェアの起動時、プログラム（Ａ）およびプログラム（Ｂ）がロードされた後、まず、プログラム（Ａ）の実行が開始され、このプログラム（Ａ）によってプログラム（Ｂ）の実行が開始される。また、重要データに対する秘匿されるべき手続きは、プログラム（Ｂ）側にて実行されるものとする。そして、このプログラム（Ｂ）のプロテクションを強化したプログラム（Ｂ´）もＨＤＤ１５に別途用意されている。なお、プログラム（Ｂ），（Ｂ´）は、共にＴＲＳ化により暗号化されており、その復号キーはプログラム（Ａ）が保持し、各々の実行時にプログラム（Ａ）によって適宜に復号される。
【００１３】
図２は、プログラム（Ａ）１０１の機能ブロックを示す図である。図示のように、プログラム（Ａ）１０１は、プロテクション強度制御モジュール１０１１、不正利用検出モジュール１０１２および不正利用回数記録モジュール１０１３を有している。
【００１４】
ＨＤＤ１５には、不正利用回数記録領域１０２が確保されており、ここには、当該ソフトウェアの過去の実行時に、不正利用検出モジュール１０１２が検出して不正利用回数記録モジュール１０１３が記録した不正利用回数が記録されている。
【００１５】
不正利用検出モジュール１０１２は、（１）デバッガによる攻撃を検出、（２）プログラムに不正パッチ（改ざん）が無いかを検査、（３）本来実行されるべきコードが実行されていない等のバイパス攻撃を検出、等を行うことにより、プログラムが不正利用されていないかどうかをチェックする。ここでは、その手法は問わない。
【００１６】
もし、この不正利用検出モジュール１０１２によってプログラムの不正利用が検出されたら、不正利用回数記録モジュール１０１３が、不正利用回数を更新し、ＨＤＤ１５の不正利用回数記録領域１０２に暗号化して記録する。
【００１７】
そして、プログラム（Ａ）１０１は、起動されると、プロテクション強度制御モジュール１０１１が、この不正利用回数をＨＤＤ１５の不正利用回数記録領域１０２から読み出し、その不正利用回数がしきい値を越えていないかを調べる。もし、越えていたら、プロテクション強度制御モジュール１０１１は、プログラム（Ｂ）をアンロードし、プログラム（Ｂ´）をロードする。即ち、図３に示すように、本コンピュータ１では、不正利用回数に基づき、プログラム（Ｂ）からプロテクションを強化したプログラム（Ｂ´）にプログラムを置き換えることが自動実行される。
【００１８】
つまり、本コンピュータ１では、パフォーマンスに影響のないレベルのプロテクションが施されたプログラムを実行することを基本とし、不正利用を試みようとしたケースに対してのみ、より強固のプロテクションに切り替えることで、プロテクションの強化と実行パフォーマンスとを高いレベルで両立させることを実現する。
【００１９】
なお、ここでは、説明を分かり易くするために、プログラム（Ｂ）からプロテクションを強化したプログラム（Ｂ´）というプログラム単位の置き換えを行う例を示したが、プログラム内の動作シーケンスやモジュール等、プログラム中のオブジェクトコードの一部を置き換えることも、ここで説明するプログラムの不正利用抑止手法の範疇である。
【００２０】
また、前述したように、重要データに対する秘匿されるべき手続きを実行するプログラム（Ｂ），（Ｂ）´は当然にＴＲＳ化されるが、不正利用のチェックや、このチェック結果に基づき、プログラム（Ｂ），（Ｂ´）のいずれを使用すべきかの判定ロジック等を有するプログラム（Ａ）もＴＲＳ化を施すことが好ましい。
【００２１】
図４及び図５は、本コンピュータ１が実行するプログラムの不正利用抑止制御の基本原理を示すフローチャートである。
【００２２】
重要データを扱うソフトウェアを動作させる場合、当該ソフトウェアを構成するプログラム（Ａ），（Ｂ）をＨＤＤ１５から主メモリ１３にロードし（図４ステップＡ１）、プログラム（Ａ）を実行する（図４ステップＡ２）。
【００２３】
実行が開始されたプログラム（Ａ）では、まず、プロテクション強度制御モジュール１０１１が、ＨＤＤ１５の不正利用回数記録領域１０２に記録された当該ソフトウェアの不正利用回数を読み込む（図５ステップＢ１）。プロテクション強度制御モジュール１０１１は、この読み込んだ不正利用回数がしきい値（Ｎ）を越えているかどうかを調べ（図５ステップＢ２）、越えていなければ（図５ステップＢ２のＮＯ）、主メモリ１３にロードされているプログラム（Ｂ）をそのまま実行する（図５ステップＢ３）。
【００２４】
一方、読み込んだ不正利用回数がしきい値（Ｎ）を越えていたら（図５ステップＢ２のＹＥＳ）、プロテクション強度制御モジュール１０１１は、主メモリ１３にロードされているプログラム（Ｂ）をアンロードし（図５ステップＢ４）、代わって、プロテクションを強化したプログラム（Ｂ´）を主メモリ１３にロードする（図５ステップＢ５）。そして、プロテクション強度制御モジュール１０１１は、この主メモリ１３にロードしたプログラム（Ｂ´）を実行する（図５ステップＢ６）。
【００２５】
不正利用検出モジュール１０１２は、プログラム（Ｂ）またはプログラム（Ｂ´）の不正利用が行われていないかを監視し（図５ステップＢ７）、不正利用が検出されると（図５ステップＢ８のＹＥＳ）、不正利用回数記録モジュール１０１３が、ＨＤＤ１５の不正利用回数記録領域１０２に記録された当該ソフトウェアの不正利用回数を更新する（図５ステップＢ９）。
【００２６】
以上のように、本コンピュータ１によれば、プロテクションの強化と実行パフォーマンスとを高いレベルで両立させることが実現される。
【００２７】
なお、ここでは、重要データを扱うソフトウェアとして、プログラム（Ａ）およびプログラム（Ｂ）の２つのプログラムで構成される唯一のソフトウェアのみを例示したが、重要データを扱うソフトウェアが複数存在する場合、ＨＤＤ１５の不正利用回数記録領域１０２に記録する不正利用回数は、各ソフトウェア毎で個別に管理しても良いし、複数のソフトウェア間で共用して管理しても良い。例えばある特定のソフトウェアが不正者からの攻撃を集中的に受けた場合、前者の場合は、そのソフトウェアのプロテクションのみが強化され、後者の場合、（本コンピュータ１は不正行為に供されているとして）すべてのソフトウェアのプロテクションが強化されることになる。
【００２８】
また、ここでは、重要データを扱うソフトウェア自身に、プログラムの不正利用を抑止するための機能（プロテクション強度制御モジュール１０１１、不正利用検出モジュール１０１２および不正利用回数記録モジュール１０１３）を搭載する例を説明したが、重要データを扱う複数のソフトウェアの不正利用有無を監視する例えばユーティリティプログラム等を別途用意し、このユーティリティプログラムに当該機能を搭載して一元的にプログラムの不正利用抑止のための制御を行わせるようにしても良い。
【００２９】
更に、ここでは、プログラム（Ｂ）のプロテクションを強化したプログラム（Ｂ´）が予めＨＤＤ１５上に格納されている場合を例に説明したが、置き換えを実施する際、ネットワークコントローラ１６を用いてネットワーク経由で他の情報処理装置（サーバ等）からダウンロードするようにしても良い。また、プログラム（Ａ），（Ｂ），（Ｂ´）等の各プログラムは、ＤＬＬ（Dynamic Link Library）に格納するようにしても良い。
【００３０】
このように、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３１】
【図１】この発明の一実施形態に係る情報処理装置（コンピュータ）の概略構成を示す図
【図２】同実施形態のコンピュータ上で動作する、重要データを扱うソフトウェアを構成する一プログラムの機能ブロックを示す図
【図３】同実施形態のコンピュータが実施するプログラムの置き換えを説明するための概念図
【図４】同実施形態のコンピュータが実行するプログラムの不正利用抑止制御の基本原理を示す第１のフローチャート
【図５】同実施形態のコンピュータが実行するプログラムの不正利用抑止制御の基本原理を示す第２のフローチャート
【符号の説明】
【００３２】
１１…ＣＰＵ、１２…ノースブリッジ、１３…主メモリ、１４…サウスブリッジ、１５…ＨＤＤ、１６…ネットワークコントローラ、１０１…プログラム群、１０２…不正利用回数記録領域、１０１１…プロテクション強度制御モジュール、１０１２…不正利用検出モジュール１０１２、１０１３…不正利用回数記録モジュール。
【図１】
2008287441.tif 000003
【図２】
2008287441.tif 000004
【図３】
2008287441.tif 000005
【図４】
2008287441.tif 000006
【図５】
2008287441.tif 000007