(57)【要約】【課題】データ又はプログラムなどの情報資源を保護すること。【解決手段】本発明の一側面によれば、コンピュータを用いて情報資源を保護するシステムであって、第１のコンピュータが復号遂行プログラムを実行することにより実現される復号遂行部と、第２のコンピュータで動作する監視部と、を含み、前記復号遂行部は、暗号化された前記情報資源を復号する復号部と、前記監視部と通信を行う第１の通信部と、前記通信の状態に基づき、又は、前記監視部からの指令に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を行う消去・機能制限部と、を有し、前記監視部は、前記通信を行う第２の通信部と、前記通信の状態に基づき、前記指令を送信する指令部と、を有する、情報資源保護システムが提供される。【選択図】図１
2014137699.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて情報資源を保護するシステムであって、
第１のコンピュータが復号遂行プログラムを実行することにより実現される復号遂行部と、第２のコンピュータで動作する監視部と、を含み、
前記復号遂行部は、
暗号化された前記情報資源を復号する復号部と、
前記監視部と通信を行う第１の通信部と、
前記通信の状態に基づき、又は、前記監視部からの指令に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を行う消去・機能制限部と、
を有し、
前記監視部は、
前記通信を行う第２の通信部と、
前記通信の状態に基づき、前記指令を送信する指令部と、
を有する、情報資源保護システム。
【請求項２】
前記指令部は、前記通信が所定の期間途絶えた場合、又は前記復号遂行部とは異なるエンティティからの通信を受信した場合、前記指令を送信する、
請求項１記載の情報資源保護システム。
【請求項３】
前記消去・機能制限部は、前記通信が所定の期間途絶えた場合、又は前記監視部とは異なるエンティティからの通信を受信した場合、前記消去又は機能制限を行う、
請求項１又は２記載の情報資源保護システム。
【請求項４】
前記復号遂行部と前記監視部は、前記復号遂行プログラムが前記第２のコンピュータに存在するときに、前記通信を確立し、
前記第１のコンピュータと前記第２のコンピュータが、前記通信を維持した状態で、前記復号遂行プログラムを前記第２のコンピュータから第１のコンピュータに移動させる、
請求項１ないし３のうちいずれか１項記載の情報資源保護システム。
【請求項５】
復号遂行プログラムによって、復号できる前記情報資源の総量の制限、及び／又は，前記情報資源へのアクセスのためのアドレスの制限が行われる、
請求項１ないし４のうちいずれか１項記載の情報資源保護システム。
【請求項６】
コンピュータを用いて情報資源を保護する方法であって、
第１のコンピュータが有する第１のプロセッサが、復号遂行プログラムによって、暗号化された前記情報資源を復号する段階と、
前記第１のプロセッサが、前記復号遂行プログラムによって、第２のコンピュータで動作する監視プログラムと通信する段階と、
前記第１のプロセッサが、前記復号遂行プログラムによって、前記通信の状態に基づき、又は、前記監視プログラムからの指令に基づき、前記復号遂行プログラムの少なくとも一部を消去又は機能制限する段階と、
前記第２のコンピュータが有する第２のプロセッサが、前記通信の状態に基づき、前記指令を送信する段階と、
を有する、情報資源保護方法。
【請求項７】
第１のコンピュータで動作する復号遂行プログラムによって復号される情報資源を保護する、第２のコンピュータで動作する監視プログラムであって、
前記復号遂行プログラムと通信を行い、
前記通信の状態に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を、前記復号遂行プログラムに行わせる指令の送信を行う、
処理をコンピュータに実行させる、監視プログラム。
【請求項８】
暗号化された情報資源を復号する第１のコンピュータで動作する復号遂行プログラムであって、
暗号化された前記情報資源を復号し、
第２のコンピュータで動作する監視プログラムと通信を行い、
前記通信の状態に基づき、又は、前記監視プログラムの指令に基づき、前記復号遂行プログラムの少なくとも一部を消去又は機能制限する、
処理をコンピュータに実行させる、
復号遂行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ又はプログラムなどの情報資源の保護に関する。
【背景技術】
【０００２】
近年、データセンタなど、ユーザの管理下にないサーバ装置などにデータを保存し、遠隔地からこのデータを利用するクラウドコンピューティングなどの技術が発展してきている。このような環境においては、データセンタなどに機密情報などの保護すべきデータ又はプログラム等（情報資源）を保存し利用することが行われている。このような場合、情報資源を保護するために、主に暗号化の技術が利用される。暗号化されたデータ、又は暗号化されたプログラムを利用するためには、復号のための鍵を用いた復号プログラムが利用され得る。
【０００３】
暗号鍵は、通常公開鍵と秘密鍵のペアで利用される。暗号鍵のうち、秘密鍵は、悪意のある者が利用できないよう配慮される。したがって、悪意のある者に、秘密鍵を内在した復号プログラムが不正使用されないよう、十分な対策が講じられるようにすることが必要とされている。
【０００４】
従来、プログラムが使用する機能を示す使用機能情報と、実際のプログラムの動作とを比べることにより、その実際のプログラムが改竄されていることを検知し、使用を禁止すべき機能を検出する判断を行う技術が存在する。この判断結果によって、プログラムの実行が不適当であることが判明すれば、実行手段によるプログラムの実行を停止させる（例えば、特許文献１参照）。
【０００５】
また、パーソナルコンピュータに対して携帯電話端末が接続した場合にパーソナルコンピュータに対して応用プログラムを導入し、パーソナルコンピュータが、監視プログラムを実行することによりパーソナルコンピュータの動作状態を監視する。監視プログラムは、記憶部に記憶されている応用プログラムの暗号化ファイルを復号して実行可能にする機能と、動作が終了した応用プログラムおよびそこで使用されたデータを削除する機能を持つ技術が存在する（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−４１１７０号公報
【特許文献２】特開２０１１−１４１８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術では、例えばデータセンタなどの自己の管理下にないコンピュータにおいては、第三者によって、不正に自己のプログラムが実行されてしまう危険性が高くなる。悪意のある者が、データセンタなどの自己の管理下にないコンピュータにおいて、データセンタに保存された暗号化されたデータを復号するプログラムを複製し、不正に動作させる場合が想定される。悪意のある者が、プログラムを不正に動作させることで、暗号化されたデータを復号し、復号されたデータを取得してしまう等のセキュリティ上の脆弱性が存在してしまうことになる。
【０００８】
また、不正に利用されているか否かを、プログラム自らが認識すること、又は不正に利用されている場合に、プログラム自らがこの不正利用に対処することは非常に難しい。或いは、このような不正利用の危険性が高い状況にあることを、プログラム自らが検知し事前に対応策を講じることも非常に難しい。
【０００９】
そこで、このような問題点に鑑み、一側面では、本発明は、暗号化されたデータ又はプログラムなどの情報資源を復号するプログラムの不正利用による脅威から情報資源を保護することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、コンピュータを用いて情報資源を保護するシステムであって、第１のコンピュータが復号遂行プログラムを実行することにより実現される復号遂行部と、第２のコンピュータで動作する監視部と、を含み、前記復号遂行部は、暗号化された前記情報資源を復号する復号部と、前記監視部と通信を行う第１の通信部と、前記通信の状態に基づき、又は、前記監視部からの指令に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を行う消去・機能制限部と、を有し、前記監視部は、前記通信を行う第２の通信部と、前記通信の状態に基づき、前記指令を送信する指令部と、を有する、情報資源保護システムが提供される。
【発明の効果】
【００１１】
実施形態によれば、データ又はプログラムなどの情報資源の保護レベルを高めることができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態のプログラムの配置の例を示す図である。
【図２】一実施形態の方法を示す図である。
【図３】一実施形態の装置を示す図である。
【図４】復号遂行プログラムの不正使用を防止するための監視プログラムのフローチャートの例を示す図である。
【図５】復号遂行プログラムの不正使用を防止するための復号遂行プログラムのフローチャートの例を示す図である。
【図６】復号遂行プログラムをデータセンタの側装置で動作させる例を示す図である。
【図７】暗号データを作成する例を示す図である。
【図８】一実施形態のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
本発明の各種実施形態においては、データセンタなどのユーザの管理下にないサーバ装置などのコンピュータに暗号化されたデータ（プログラム等を含む、以下暗号データという）を置き、ユーザがこの暗号データを利用する場合を想定して、説明を行う。なお、ユーザの管理下にあるサーバ装置を利用したシステムであっても、本発明の実施形態を利用してセキュリティの強化を図ることができることは言うまでもない。
【００１４】
なお、暗号データそのもの、及び暗号データに含まれる種々のコンテンツは、本明細書において、総称として「情報資源」と呼ぶ場合がある。また、図において、同様の構成について同じ参照番号が複数の図に付されている場合がある。
【実施例】
【００１５】
図１は、一実施形態において用いられるプログラムの配置の例を示している。
【００１６】
データセンタに置かれたデータセンタ側装置１１０には、ディスクなどに格納された暗号データ１２０、メモリ１２５、ディスクなどに格納された復号データ１４０、プロセッサ１１８、インタフェイス１１９が置かれ得る。そして、これらはバス１１７で接続されている。暗号データ１２０をデータセンタ側装置１１０が利用し、各種のサービスをユーザ等に提供するために、メモリ１２５に格納された復号遂行プログラム１３０が用いられる場合を想定する。この復号遂行プログラム１３０には、秘密鍵が含まれ得る。復号遂行プログラム１３０は、秘密鍵を利用して、暗号データ１２０を復号し、復号データ１４０を得ることができる。データセンタ側装置１１０は、復号データ１４０を利用して、ユーザ等へのサービスを提供することができる。
【００１７】
なお、データセンタ側装置１１０は、物理的に１つの筐体に含まれる単体のコンピュータである必要はない。すなわち、データセンタ側装置１１０は、複数のサーバ、ストレージ等の集合体であってもよい。また、これらの集合体は、特定の場所に集中して存在してもよく、地理的に分散して存在してもよい。さらに、データセンタ側装置１１０が、ユーザの管理下におかれてもよい。ここで、データセンタ側装置１１０は、第１のコンピュータの一例である。
【００１８】
ユーザ側装置１５０には、メモリ１５２、ディスクなどに格納される平文データ及び暗号データ１７０、プロセッサ１５８、インタフェイス１５９が置かれ得る。そして、これらはバス１７で接続されている。なお、ユーザ側装置１５０は、ユーザの管理下に置かれることが望ましい。ユーザ側装置１５０は、第２のコンピュータの一例である。
【００１９】
この場合、復号遂行プログラム１３０が用いる秘密鍵は、悪意のある者に盗まれないように、ユーザが予め定めたスクランブルを行う等の秘匿処理が行われることが望ましい。秘匿処理を行うことによって、悪意のある者が、復号遂行プログラム１３０から秘密鍵を盗むことが有効に防止できる。
【００２０】
しかしながら、復号遂行プログラム１３０自体を、悪意のある者が複製し、これを利用することも想定される。そして、悪意のある者の管理下において、復号遂行プログラム１３０の複製を起動させた場合には、悪意のある者が、暗号データ１２０を復号し、復号データ１４０を得ることが可能となる場合が想定される。
【００２１】
このため、本実施形態では、この復号遂行プログラム１３０が、悪意のある者に利用されてしまうことを可能な限り防止するための効果的な措置を、この復号遂行プログラム１３０自体にも講じている。この措置の具体的な詳細は後述する。
【００２２】
図１に示す実施形態においては、復号遂行プログラム１３０は、ユーザの管理下に置かれたユーザ側装置１５０で動作する監視プログラム１５５と、ネットワーク１８０を介して相互通信１６０を継続することが望ましい。監視プログラム１５５は、ユーザ側装置１５０のメモリ１５２に格納されることが望ましい。ユーザ側装置１５０は、ユーザの管理下に置かれたいかなる装置であってもよい。例えば、パーソナルコンピュータ、サーバ、モバイル端末、携帯電話などが挙げられるが、これらに限定されるものではない。
【００２３】
復号遂行プログラム１３０には、例えば、復号処理１３２、通信処理１３４、消去・機能制限処理１３６をデータセンタ側装置１１０に実行させるプログラムが含まれてもよい。
【００２４】
ユーザ側装置１５０で動作する監視プログラム１５５には、例えば、通信処理１５４、及び指令制御処理１５６をユーザ側装置１５０に実行させるプログラムが含まれてもよい。
【００２５】
以下に、復号遂行プログラム１３０の動作について説明する。
【００２６】
復号処理１３２は、例えば、暗号データ１２０を復号し、復号データ１４０を出力する。復号においては、上述のように秘密鍵を用いてもよい。秘密鍵は、復号遂行プログラム１３０内に置かれることが望ましい。なお、秘密鍵は、悪意のある者が盗むことが極めて困難となるように、スクランブル処理などを利用して、秘匿する形で復号遂行プログラム１３０の中に置かれることが望ましい。
【００２７】
通信処理１３４は、例えば、ユーザ側装置１５０に存在する監視プログラム１５５に存在する通信処理１５４と相互通信１６０を行う。通信処理１３４からは、例えば、復号遂行プログラム１３０がデータセンタ側装置１１０内に存在していることを示す生存情報を、所定の間隔で監視プログラム１５５に送信してもよい。
【００２８】
また、通信処理１３４は、相互通信１６０が切断されていないことを確認するために、監視プログラム１５５から所定の間隔で、所定の信号を受信してもよい。通信処理１３４は、所定の信号が、所定の時間に一度も受信されない場合、相互通信１６０が切断されたと判断してもよい。或いは、通信プロトコルの下位レイヤ（例えば、ＯＳＩの定義における第２層（データリンク層）など）のコネクション状態をチェックしてもよい。通信処理１３４が、相互通信１６０の切断を認識した場合には、その旨を消去・機能制限処理１３６に伝達してもよい。
【００２９】
なお、相互通信１６０は、バーチャルプライベートネットワーク（ＶＰＮ）などの、セキュアな通信を利用することが望ましい。ＶＰＮを利用することで、相互通信１６０に対する不要な攻撃（ＤＯＳ：Ｄｅｎｉａｌ  Ｏｆ  Ｓｅｒｖｉｃｅ）、相互通信１６０の不正な傍受、なりすまし通信等を飛躍的に低減させることができる。
【００３０】
また、通信処理１３４は、監視プログラム１５５に存在する指令制御処理１５６から、所定の指令を受信してもよい。指令としては、復号遂行プログラム１３０の少なくとも一部を消去する旨の指令、復号遂行プログラム１３０の動作を制限するか又は動作を不能とさせる指令が含まれていてもよい。復号遂行プログラム１３０は、この指令を受信した場合には、消去・機能制限処理１３６に、この指令を伝達してもよい。なお、消去の代わりに、所定のアドレス範囲に対して別のコードを上書きしてもよい。
【００３１】
また、通信処理１３４は、監視プログラム１５５に存在する通信処理１５４からの通信確立要求をチェックしてもよい。本実施形態では、相互通信１６０が維持されていることが前提となっている。このため、監視プログラム１５５から、通信確立の要求が来た場合には、監視プログラム１５５になりすました、異なるエンティティからの通信確立要求である可能性がある。
【００３２】
したがって、このようななりすましを発見するために、監視プログラム１５５からの通信確立要求をチェックし、このチェック結果を消去・機能制限処理１３６に伝達してもよい。なお、本明細書において、「エンティティ」とは、「情報の送受信を行うもの」を総称する言葉として用いる。
【００３３】
また、通信処理１３４は、復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報を、監視プログラム１５５に、所定の間隔で送信してもよい。
【００３４】
例えば、復号遂行プログラム１３０が、悪意のある者によって他の装置に、メモリイメージとしてコピーされ、このコピーが悪意のある者の管理下にある装置上で動作した場合など、本来の復号遂行プログラム１３０とは異なるエンティティとして動作した場合に、これらの諸情報は、複製されたエンティティであることを検知する際に用いられてもよい。
【００３５】
すなわち、悪意のある者に複製された復号遂行プログラム１３０は、正当な復号遂行プログラム１３０とは異なる、プロセスＩＤ、装置ＩＤ、又はシーケンス番号等の諸情報を、監視プログラム１５５に送ることとなる可能性が非常に高い。
【００３６】
したがって、監視プログラム１５５は、これらの諸情報をチェックすることによって、例えば、復号遂行プログラム１３０がメモリイメージごと複製され、なりすましを行っていることを検知することができる。なお、この諸情報を生存情報として用いてもよい。
【００３７】
また、通信処理１３４は、監視プログラム１５５から、監視プログラム１５５のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報を受け取ってもよい。これによって、復号遂行プログラム１３０は、悪意のある者が監視プログラム１５５のなりすましを行っていることを、同様の方法でチェックすることができる。
【００３８】
復号遂行プログラム１３０及び監視プログラム１５５は、上述のように様々な情報を相互に交換することができる。
【００３９】
消去・機能制限処理１３６は、通信処理１３４から、相互通信１６０が切断された旨の連絡を受け取った場合には、復号遂行プログラムの少なくとも一部を消去するか、又は復号遂行プログラムの動作を制限し若しくは不能とする処理を実行してもよい。
【００４０】
相互通信１６０の切断の場合には、監視プログラム１５５の管理が、復号遂行プログラム１３０に及ばなくなっている場合であるため、このような処理を行うことが望ましい。この処理によって、監視プログラム１５５からの監視がなされていない状態において、悪意のある者が復号遂行プログラム１３０を利用してしまう可能性を十分に低下させることができる。
【００４１】
また、監視プログラム１５５の通信処理１５４から通信確立要求が受信されたことが、通信処理１３４を介して伝達された場合、消去・機能制限処理１３６は、同様に、復号遂行プログラムの少なくとも一部を消去するか、又は復号遂行プログラムの動作を制限し若しくは不能とする処理を実行してもよい。
【００４２】
また、監視プログラム１５５の指令制御処理１５６から所定の指令を受け取った場合には、消去・機能制限処理１３６は、その指令を実行してもよい。この指令には、復号遂行プログラム１３０の少なくとも一部を消去する旨の指令、復号遂行プログラム１３０の動作を制限するか又は動作を不能とさせる指令が含まれてもよい。
【００４３】
また、消去・機能制限処理１３６は、監視プログラム１５５のなりすましの（すなわち、監視プログラム１５５とは異なるエンティティからの）通信を受信した旨を、通信処理１３４から受け取った場合には、同様に、復号遂行プログラムの少なくとも一部を消去するか、又は復号遂行プログラムの動作を制限し若しくは不能とする処理を実行してもよい。
【００４４】
監視プログラム１５５における通信処理１５４は、復号遂行プログラム１３０に存在する通信処理１３４との通信を行う。また、通信処理１５４は、例えば、相互通信１６０が切断されていないかをチェックする。このチェックは、復号遂行プログラム１３０から、所定の間隔で送られてくる生存情報が受信されているかをチェックしてもよい。または、通信処理１３４から送られてくる復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報を所定の間隔でチェックしてもよい。或いは、通信プロトコルの下位レイヤのコネクション状態をチェックしてもよい。
【００４５】
通信処理１５４が、相互通信１６０の切断を認識した場合には、指令制御処理１５６は、所定の指令を、通信処理１５４を介して復号遂行プログラム１３０に送信してもよい。上述したように、指令としては、復号遂行プログラム１３０の少なくとも一部を消去する旨の指令、復号遂行プログラム１３０の動作を制限するか又は動作を不能とさせる指令が含まれていてもよい。
【００４６】
また、監視プログラム１５５の通信処理１５４は、復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報をチェックしてもよい。例えば、復号遂行プログラム１３０のプロセスＩＤが変化した場合には、復号遂行プログラム１３０の複製が動作している可能性が高いことが検知できる。
【００４７】
また、復号遂行プログラム１３０が動作している装置の装置ＩＤが変化した場合には、復号遂行プログラム１３０が、他の装置環境（例えば悪意のある者の装置環境）に複製され動作している可能性が高いことが検知できる。また、シーケンス番号が重複する場合、又は予期しないシーケンス番号が送られてきた場合には、復号遂行プログラム１３０の複製が動作している可能性が高いことが検知できる。
【００４８】
このような場合には、通信処理１５４は、指令制御処理１５６の制御の下で、上述の指令を復号遂行プログラム１３０及び／又はこの復号遂行プログラム１３０の複製に送ることが望ましい。
【００４９】
また、監視プログラム１５５の通信処理１５４は、監視プログラム１５５自体のプロセスＩＤ、監視プログラム１５５が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報を、復号遂行プログラム１３０に送ってもよい。監視プログラム１５５から送られたこれらの情報を復号遂行プログラム１３０がチェックすることにより、監視プログラム１５５のなりすましを復号遂行プログラム１３０がチェックすることができる。
【００５０】
また、監視プログラム１５５の通信処理１５４は、復号遂行プログラム１３０からの通信確立要求をチェックしてもよい。本実施形態では、相互通信１６０が維持されていることが前提となっている。したがって、復号遂行プログラム１３０から、通信確立の要求が来た場合には、復号遂行プログラム１３０になりすました、異なるエンティティからの通信確立要求である可能性がある。この場合にも、指令制御処理１５６は、指令制御処理１５６の制御の下で、上記の指令を復号遂行プログラム１３０に送ることが望ましい。
【００５１】
この指令を送ることによって、悪意のある者が復号遂行プログラム１３０を不正に利用する可能性を飛躍的に低減させ、効果的にセキュリティレベルを高めることができる。
【００５２】
図２は、一実施形態の方法を示している。
【００５３】
図２（Ｂ）において、復号遂行プログラム１３０によって、少なくとも、段階２３２、段階２３４、及び段階２３６を含む方法が実行され得る。
【００５４】
また、図２（Ａ）に示すようにユーザ側装置１５０においては、段階２５４及び段階２５６を含む方法が実行され得る。
【００５５】
図２（Ｂ）の段階２３２において、暗号データの復号が実行される。
【００５６】
段階２３４において、ユーザ側装置１５０の監視プログラム１５５との通信が実行される。通信は、所定の間隔でなされることが望ましい。
【００５７】
段階２３６において、通信の状況、又は、監視プログラム１５５からの指令に基づいて、復号遂行プログラム１３０の少なくとも一部の消去又は機能制限の実行が制御される。
【００５８】
これらの処理は、反復的に実行されることが望ましい。なお、暗号データの復号の必要がない場合には、段階２３２は実行されなくてもよい。また、それぞれの段階は、実行順序が異なってもよい。
【００５９】
図２（Ａ）の段階２５４において、復号遂行プログラム１３０との通信が実行される。通信は、所定の間隔でなされることが望ましい。
【００６０】
段階２５６において、復号遂行プログラムへの指令の送信が制御される。指令の内容については、図１に係る説明において詳述したので、重複するため省略する。
【００６１】
図３は、一実施形態の装置を示している。データセンタ側装置１１０は、復号遂行部３３０を有する。この復号遂行部３３０は、更に復号部３３２、通信部３３４、及び消去・機能制限部３３６を有する。
【００６２】
ユーザ側装置１５０は、監視部３５５を有する。そして、監視部３５５は通信部３５４と指令制御部３５６とを有する。
【００６３】
図３における、復号遂行部３３０、復号部３３２、通信部３３４、消去・機能制限部３３６、監視部３５５、通信部３５４、及び指令制御部３５６は、それぞれ図１における、復号遂行プログラム１３０、復号処理１３２、通信処理１３４、消去・機能制限処理１３６、監視プログラム１５５、通信処理１５４、及び指令制御処理１５６に対応する。各部の動作は、図１と同様であるので、重複を避けるために、説明は省略する。
【００６４】
図４は、復号遂行プログラムの不正使用を防止するための、監視プログラム１５５のフローチャートの例を示している。このフローは、ステップ４０２から開始される。例えば、ステップ４０２は、タイマ割込によって開始されてもよい。
【００６５】
ステップ４０４において、監視プログラム１５５は、相互通信１６０が途絶えたか否かをチェックする。相互通信が途絶えたか否かをチェックする手法としては、所定の時間、情報の転送が行われなくなった場合、通信が途絶えた（切断された）と判断してもよい。例えば、復号遂行プログラム１３０から所定の間隔で送られてくることになっている生存情報、復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報などが送られてこない状態が、所定の期間継続した場合に、相互通信１６０が途絶えたと判断してもよい。あるいは、ＰＩＮＧなどのコマンドに応答するか否かを調べてもよい。なお、本発明は、これらの手法に限定されるものではない。この判断が「はい」であれば、ステップ４０８に移る。この判断が「いいえ」であれば、ステップ４０６に移る。
【００６６】
ステップ４０６において、監視プログラム１５５は、復号遂行プログラム１３０とは異なるエンティティからの通信を受信したか否かをチェックする。なお、「異なるエンティティ」とは、上述のように、本来の「復号遂行プログラム１３０」とは異なるプログラム或いはハードウェアを総称する「情報の送受信を行うもの」として用いている。具体的には、復号遂行プログラム１３０の複製、復号遂行プログラムの通信動作を偽装した別のプログラムなどが挙げられる。なお、相互通信１６０は、ＶＰＮなどのセキュアな接続を用いることが望ましい。このような異なるエンティティからの通信は、ＶＰＮの基本的機能で排除され、監視プログラム１５５に届くことは、まれであると考えられる。しかしながら、ＶＰＮのセキュリティ機能を通過した、なりすましの通信をも考慮しておくことが望ましい。復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報をチェックすることによって、なりすましの通信を高い確率で検知することができる。或いは、ＭＡＣアドレスのチェックを併用してもよい。また、固定のＩＰアドレスを用いている場合にはＩＰアドレスのチェックを併用してもよい。なお、装置ＩＤなどのハードウェアに依存する情報をチェック対象にする場合には、復号遂行プログラム１３０が、ライブマイグレーションにより装置間を移動するのを禁止したり、モバイルエージェントとして装置間を移動するのを禁止したりすることが望ましい。なお、本発明は、上述の例示に限定されるものではなく、なりすましの通信を発見するその他の機能を用いてもよいことは言うまでもない。この判断が「はい」の場合には、ステップ４０８に移る。この判断が「いいえ」であれば、ステップ４１０に移り、リターンしてもよい。
【００６７】
ステップ４０８において、監視プログラム１５５は、例えば、復号遂行プログラムの少なくとも一部を消去させるか、又は復号遂行プログラムの動作を制限し若しくは不能とさせてもよい。本発明は、これに限定されるものではない。
【００６８】
図５は、復号遂行プログラムの不正使用を防止するための、復号遂行プログラム１３０のフローチャートの例を示している。このフローは、ステップ５０２から開始される。例えば、ステップ５０２は、タイマ割込によって開始されてもよい。
【００６９】
ステップ５０４において、復号遂行プログラム１３０は、相互通信１６０が途絶えたか否かをチェックする。相互通信が途絶えたか否かをチェックする手法としては、所定の時間、情報の転送が行われなくなった場合、通信が途絶えた（切断された）と判断してもよい。例えば、監視プログラム１５５から所定の間隔で送られてくることになっている生存情報、復号遂行プログラム１３０のプロセスＩＤ、復号遂行プログラム１３０が動作している装置の装置ＩＤ、送信する毎にインクリメントするシーケンス番号などの諸情報が送られてこない状態が、所定の期間継続した場合に、相互通信１６０が途絶えたと判断してもよい。あるいは、ＰＩＮＧなどのコマンドに応答するか否かを調べてもよい。なお、本発明は、これらの手法に限定されるものではない。この判断が「はい」であれば、ステップ５０８に移る。この判断が「いいえ」であれば、ステップ５０６に移る。
【００７０】
ステップ５０６において、監視プログラム１５５は、復号遂行プログラム１３０とは異なるエンティティからの通信を受信したか否かをチェックしてもよい。このステップは、上述のステップ４０６で述べたチェック手法と同様のチェック手法を用いることができる。この判断が「はい」であれば、ステップ５０８に移る。この判断が「いいえ」であれば、ステップ５１０に移り、リターンしてもよい。
【００７１】
ステップ５０８において、復号遂行プログラムは、例えば、復号遂行プログラム自体の少なくとも一部を消去するか、又は復号遂行プログラムの動作を制限し若しくは不能としてもよい。本発明は、これに限定されるものではない。
【００７２】
図６は、復号遂行プログラムをデータセンタ側装置で動作させる例を示している。以下の説明では、仮想マシンにおけるライブマイグレーションを利用した例を説明する。
【００７３】
まず、復号遂行プログラム６３０が、ユーザ側装置１５０において起動される。そして、復号遂行プログラム６３０は、監視プログラム１５５と相互通信６６０を確立し、維持する。監視プログラム１５５及び復号遂行プログラム６３０は、それぞれ異なる仮想マシン上で動作させておくことが望ましい。そして、復号遂行プログラム６３０の動作している仮想マシンを、データセンタ側装置１１０にライブマイグレーションにより移動させる（６７０）。この移動において、相互通信６６０は、維持されたままの状態であることが望ましい。そして、ライブマイグレーション後の復号遂行プログラム１３０と、相互通信１６０が示されている。
【００７４】
なお、ライブマイグレーション直後における相互通信１６０においては、復号遂行プログラム１３０から送られる装置ＩＤなどのハードウェアに依存する情報、又は発信元ＩＰアドレスなどが変化する場合がある。したがって、監視プログラム１５５は、ライブマイグレーションの直後に限って、これらの情報の変化を容認することが望ましい。その後、これらの情報は、なりすましが発生している可能性をチェックするために利用されてもよい。
【００７５】
このように、相互通信６６０をユーザ側装置１５０において確立し、この相互通信６６０を維持したまま、データセンタ側装置１１０に、復号遂行プログラム１３０を移動させることにより、復号遂行プログラム１３０が、ユーザ管理下において起動され、その動作が維持されていることが担保できる。
【００７６】
なお、本発明は、上述のライブマイグレーションに限定されるものではない。通信を維持したまま装置間を移動させることができる他の技術を用いてもよい。例えば、このような技術の他の例としては、モバイルエージェントが挙げられる。モバイルエージェント（Ｍｏｂｉｌｅ  Ａｇｅｎｔ）は、ネットワークを介した分散処理技術の１つである。ネットワークに接続されたコンピュータ間をエージェントと称されるプログラムが移動しながら処理を行うことができる。なお、本発明は、これらの例示に限定されるものではない。
【００７７】
図７を用いて暗号化の例を説明する。図７は、生データ７０２に対して暗号化アルゴリズム７０６を用いて暗号データ１２０を生成する例を示している。生データ７０２の暗号化は、ユーザの管理下に置かれたユーザ側装置１５０において実行されることが望ましい。ユーザの管理下にあるユーザ側装置１５０で、生データ７０２の暗号化を行うことによって、生データ７０２のセキュリティが十分確保される。
【００７８】
暗号化には、暗号鍵を用いてもよい。公開鍵と秘密鍵を有するＲＳＡ暗号鍵７０４が例示されている。生データ７０２の暗号化には、公開鍵｛ｅ，ｎ｝を用いてもよい。生データ７０２のうちのｍを暗号化するには、例えば、
ｃ＝ｍ＾ｅ  ｍｏｄ  ｎ
を計算することによって、ｍの暗号データｃを得ることができる。ここで、「＾」は、累乗を意味し、ｍｏｄはモジュロ計算を意味する。例えば、この暗号化されたデータｃを復号するためには、秘密鍵｛ｄ，ｎ｝を用いて、
ｍ＝ｃ＾ｄ  ｍｏｄ  ｎ
を計算することによって求めることができる。なお、本発明は、この暗号化アルゴリズムに限定されるものではない。
【００７９】
そして、この暗号データ１２０は、データセンタなどの、ユーザの管理下にない装置にも置くことができる。データセンタに置かれた暗号データ１２０を用いて、ユーザ等は必要なサービスを受けることができる。一般に、暗号データ１２０を、悪意のある者が解読し利用することは、極めて困難であり、暗号データ１２０に含まれる種々のコンテンツのセキュリティが担保される。なお、暗号データ１２０は、純粋なデータ以外に、プログラム等が含まれてもよい。
【００８０】
図８は、一実施形態のハードウェアの構成例を示す図である。ハードウェアは、プロセッサ８０２、メモリ８０４、表示制御部８０６、表示装置８０８、入出力装置８１０、通信制御部８１２、ドライブ装置８１４、ハードディスク８１８が含まれてもよい。そして、それぞれの機器は、バス８２０によって接続されている。また、ドライブ装置８１４は、可搬記録媒体８１６を読み書きすることができる。そして通信制御部８１２には、ネットワーク（不図示）が接続され得る。ハードディスク８１８及び／又はメモリ８０４には、プログラムのソース及び、ソースに関連する世代等の管理情報が格納されてもよい。
【００８１】
一実施形態におけるプログラムの一部又は全部は、メモリ８０４、ハードディスク８１８等に格納され、プロセッサ８０２によって動作してもよい。
【００８２】
なお、本実施形態の全部又は一部はプログラムによってインプリメントされ得る。このプログラムは、可搬記録媒体８１６に格納することができる。可搬記録媒体８１６とは、構造（ｓｔｒｕｃｔｕｒｅ）を有する１つ以上の非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）な記憶媒体を言う。例示として、可搬記録媒体８１６としては、磁気記録媒体、光ディスク、光磁気記録媒体、不揮発性メモリなどがある。磁気記録媒体には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。また、光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）などがある。可搬型記録媒体に格納されたプログラムが読み込まれ、プロセッサによって実行されることにより、本発明の実施形態の全部又は一部が実施され得る。
【００８３】
以上、図面を用いて本発明の実施形態を詳細に説明した。なお、上述の実施形態は、発明を理解するためのものであり、本発明の範囲を限定するためのものではない点に留意すべきである。また、上述の複数の実施形態は、相互に排他的なものではない。したがって、矛盾が生じない限り、異なる実施形態の各要素を組み合わせることも意図されていることに留意すべきである。また、請求項に記載された方法、及びプログラムに係る発明は、矛盾のない限り処理の順番を入れ替え、或いはスキップしてもよい。あるいは、複数の処理を同時に実行してもよい。そして、これらの実施形態も、請求項に記載された発明の技術的範囲に包含されることは言うまでもない。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードの指令に基づき、コンピュータ上で稼働しているＯＳ、仮想マシンモニタＶＭＭ、ファームウエア、ＢＩＯＳなどのプログラムが実際の処理の一部または全部を行ない、その処理によって実施形態の機能が実現される場合も、本発明に含まれることは言うまでもない。
【００８５】
また、本発明の各種実施形態のそれぞれの構成要素は、物理的に分離された複数のハードウェアで実現されてもよい。また、本発明の各種実施形態のそれぞれの構成要素は、１つ以上のサーバ上で動作することによって実現されてもよい。また、本発明に係るプログラムを実行するＣＰＵは複数であってもよく、また、各ＣＰＵは複数のコアを含んでいてもよい。
【００８６】
以上の実施形態に関して、以下の付記を開示する。
（付記１）
コンピュータを用いて情報資源を保護するシステムであって、
第１のコンピュータが復号遂行プログラムを実行することにより実現される復号遂行部と、第２のコンピュータで動作する監視部と、を含み、
前記復号遂行部は、
暗号化された前記情報資源を復号する復号部と、
前記監視部と通信を行う第１の通信部と、
前記通信の状態に基づき、又は、前記監視部からの指令に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を行う消去・機能制限部と、
を有し、
前記監視部は、
前記通信を行う第２の通信部と、
前記通信の状態に基づき、前記指令を送信する指令部と、
を有する、情報資源保護システム。
（付記２）
前記指令部は、前記通信が所定の期間途絶えた場合、又は前記復号遂行部とは異なるエンティティからの通信を受信した場合、前記指令を送信する、
付記１記載の情報資源保護システム。
（付記３）
前記消去・機能制限部は、前記通信が所定の期間途絶えた場合、又は前記監視部とは異なるエンティティからの通信を受信した場合、前記消去又は機能制限を行う、
付記１又は２記載の情報資源保護システム。
（付記４）
前記復号遂行部と前記監視部は、前記復号遂行プログラムが前記第２のコンピュータに存在するときに、前記通信を確立し、
前記第１のコンピュータと前記第２のコンピュータが、前記通信を維持した状態で、前記復号遂行プログラムを前記第２のコンピュータから第１のコンピュータに移動させる、
付記１ないし３のうちいずれか１項記載の情報資源保護システム。
（付記５）
復号遂行プログラムによって、復号できる前記情報資源の総量の制限、及び／又は，前記情報資源へのアクセスのためのアドレスの制限が行われる、
付記１ないし４のうちいずれか１項記載の情報資源保護システム。
（付記６）
コンピュータを用いて情報資源を保護する方法であって、
第１のコンピュータが有する第１のプロセッサが、復号遂行プログラムによって、暗号化された前記情報資源を復号する段階と、
前記第１のプロセッサが、前記復号遂行プログラムによって、第２のコンピュータで動作する監視プログラムと通信する段階と、
前記第１のプロセッサが、前記復号遂行プログラムによって、前記通信の状態に基づき、又は、前記監視プログラムからの指令に基づき、前記復号遂行プログラムの少なくとも一部を消去又は機能制限する段階と、
前記第２のコンピュータが有する第２のプロセッサが、前記通信の状態に基づき、前記指令を送信する段階と、
を有する、情報資源保護方法。
（付記７）
前記指令を送信する段階は、前記通信が所定の期間途絶えた場合、又は前記復号遂行プログラムとは異なるエンティティからの通信を受信した場合、前記指令を送信する、
付記６記載の情報資源保護方法。
（付記８）
前記機能制限する段階は、前記通信が所定の期間途絶えた場合、又は前記監視プログラムとは異なるエンティティからの通信を受信した場合、前記消去又は機能制限を行う、
付記６又は７記載の情報資源保護方法。
（付記９）
前記復号遂行プログラムが前記第２のコンピュータに存在するときに、前記第１のプロセッサと前記第２のプロセッサが、前記通信を確立する段階と、
前記第１のプロセッサと前記第２のプロセッサが、前記通信を維持した状態で、前記復号遂行プログラムを前記第２のコンピュータから前記第１のコンピュータに移動させる段階と、
を更に有する、
付記６ないし８のうちいずれか１項記載の情報資源保護方法。
（付記１０）
前記復号遂行プログラムによって、復号できる前記情報資源の総量の制限、及び／又は，前記情報資源へのアクセスのためのアドレスの制限が行われる、
付記６ないし９のうちいずれか１項記載の情報資源保護方法。
（付記１１）
第１のコンピュータで動作する復号遂行プログラムによって復号される情報資源を保護する、第２のコンピュータで動作する監視プログラムであって、
前記復号遂行プログラムと通信を行い、
前記通信の状態に基づき、前記復号遂行プログラムの少なくとも一部の消去又は機能制限を、前記復号遂行プログラムに行わせる指令の送信を行う、
処理をコンピュータに実行させる、監視プログラム。
（付記１２）
前記指令の送信を行う処理は、前記通信が所定の期間途絶えた場合、又は前記復号遂行プログラムとは異なるエンティティからの通信を受信した場合、前記指令を送信する、
付記１１記載の監視プログラム。
（付記１３）
暗号化された情報資源を復号する第１のコンピュータで動作する復号遂行プログラムであって、
暗号化された前記情報資源を復号し、
第２のコンピュータで動作する監視プログラムと通信を行い、
前記通信の状態に基づき、又は、前記監視プログラムの指令に基づき、前記復号遂行プログラムの少なくとも一部を消去又は機能制限する、
処理を前記第１のコンピュータに実行させる、
復号遂行プログラム。
（付記１４）
前記消去又は機能制限する処理は、前記通信が所定の期間途絶えた場合、又は前記監視プログラムとは異なるエンティティからの通信を受信した場合、前記消去又は機能制限を行う、
処理を含む、付記１３記載の復号遂行プログラム。
（付記１５）
前記復号遂行プログラムが前記第１のコンピュータに存在するときに、前記通信を確立する処理を更に前記第１のコンピュータに実行させ、
前記通信を維持した状態で、前記第１のコンピュータから第２のコンピュータに移動する、
付記１３又は１４のうちいずれか１項記載の復号遂行プログラム。
（付記１６）
復号できる前記情報資源の総量の制限、及び／又は，前記情報資源へのアクセスのためのアドレスの制限を行う、
処理を更に前記第１のコンピュータに実行させる付記１３ないし１５のうちいずれか１項記載の復号遂行プログラム。
【符号の説明】
【００８７】
１１０  データセンタ側装置
１２０  暗号データ
１３０  復号遂行プログラム
１３２  復号処理
１３４  通信処理
１３６  消去・機能制限処理
１４０  復号データ
１５０  ユーザ側装置
１５５  監視プログラム
１５６  制御処理
１６０  相互通信
【図１】
2014137699.tif 000003
【図２】
2014137699.tif 000004
【図３】
2014137699.tif 000005
【図４】
2014137699.tif 000006
【図５】
2014137699.tif 000007
【図６】
2014137699.tif 000008
【図７】
2014137699.tif 000009
【図８】
2014137699.tif 000010