(57)【要約】【課題】  プログラムの改ざんや不正な解析を防止する。【解決手段】  情報処理装置は、暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求する復号要求手段と、前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求する消去要求手段と、前記復号要求手段からの復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込む復号手段と、前記消去要求手段からの消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去する消去手段とを有する。【選択図】      図１
2010039891.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたターゲットプログラムの実行開始時に、暗号化された当該ターゲットプログラムの復号を要求する復号要求手段と、
前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求する消去要求手段と、
前記復号要求手段からの復号の要求を受けて前記ターゲットプログラムを復号し、復号しされた当該ターゲットプログラムをメモリに書き込む復号手段と、
前記消去要求手段からの消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去する消去手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置はプロセッサおよびファームウエア領域を有し、
前記復号手段および前記消去手段の一方または両方は前記ファームウエア領域に格納されたプログラムであって、前記情報処理装置のを前記プロセッサ上で動作するものである実行することにより実現される
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ターゲットプログラムを復号するための秘密鍵を記憶する秘密鍵記憶部と、
前記暗号化された前記ターゲットプログラム含む実行形式ファイルを記憶する記憶部と、
前記実行形式ファイルを展開するメモリと、
を有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記ターゲットプログラムの復号完了時点から消去開始時点までを当該ターゲットプログラムの被検証実行時間として計測し、予め与えられた当該ターゲットプログラムの期待値実行時間と比較して異常の有無を判定する計測手段
を有することを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理装置はプロセッサおよびファームウエア領域を有し、
前記計測手段は前記ファームウエア領域に格納されたプログラムであって、前記情報処理装置のを前記プロセッサ上で動作するものである実行することにより実現される
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記計測手段が前記異常の有無を記録する履歴記録部と、
前記履歴記録部の内容を参照する参照手段と、
を有することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
暗号化されたターゲットプログラムの実行開始時に、暗号化された当該ターゲットプログラムの復号を要求するステップと、
前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求するステップと、
前記当該復号の要求を受けて前記ターゲットプログラムを復号し、復号しされた当該ターゲットプログラムをメモリに書き込むステップと、
前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、
前記当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップと、
を有することを特徴とするプログラム実行方法。
【請求項８】
前記ターゲットプログラムの復号完了時点から消去開始時点までを当該ターゲットプログラムの被検証実行時間として計測するステップと、
前記被検証実行時間と予め与えられた当該ターゲットプログラムの期待値実行時間とを比較して異常の有無を判定するステップと、
を有することを特徴とする請求項７記載のプログラム実行方法。
【請求項９】
暗号化されたターゲットプログラムの実行開始時に、暗号化された当該ターゲットプログラムの復号を要求するステップと、
前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求するステップと、
前記当該復号の要求を受けて前記ターゲットプログラムを復号し、復号しされた当該ターゲットプログラムをメモリに書き込むステップと、
前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、
前記当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１０】
前記ターゲットプログラムの復号完了時点から消去開始時点までを当該ターゲットプログラムの被検証実行時間として計測するステップと、
前記被検証実行時間と予め与えられた当該ターゲットプログラムの期待値実行時間とを比較して異常の有無を判定するステップと、
をコンピュータに実行させることを特徴とする請求項９記載のプログラム。
【請求項１１】
ネットワークで接続された第１の情報処理装置と、第２の情報処理装置を含み、
前記第１の情報処理装置はネットワークへの接続手段を有する請求項１乃至６のいずれかに記載の情報処理装置であって、
前記第２の情報処理装置は暗号化された前記ターゲットプログラムを記憶する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、プログラム実行方法、プログラムおよび情報処理システムに関し、特に、プログラムのセキュリティを保障する情報処理装置、プログラム実行方法、プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
データの改ざんや解析の防止に関連するセキュリティ技術がとして「セキュア・メモリ」を有するプロセッサとしてが特許文献１に開示されている。特許文献１のプロセッサでは、カーネル・モードで実行している場合のみ参照が可能であるように構成された「セキュア・メモリ」をが、プロセッサ・チップ内部に有して設けられている。この特殊なプロセッサにより、特許文献１のセキュリティ技術は、「セキュア・メモリ」上にロードされたデータを配置しすることで、これにより改竄防止や秘匿性の確保を行なうことを可能にしている。
【０００３】
さらに、プログラムの改ざんの防止に関連するセキュリティ技術が「プログラム実行後の自己消去」として特許文献２に開示されている。特許文献２の技術は、Ｗｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）などの、プログラムの実行が終了するまで削除されない仕様を利用して、プログラムのファイル削除命令を繰り返し実行することでプログラム終了直後にプログラムのファイルを削除することを可能にしている。
【０００４】
また、プログラムの実行が正常であることを検証する技術がとして、性能評価装置としてが特許文献３に開示されている。特許文献３の性能評価装置は、テストプログラムの実行時間を測定し、標準実行時間と比較することで正常性の検証を可能にしている。
【０００５】
【特許文献１】特開２００４−２７２５９４号公報
【特許文献２】特開２０００−１８７６４６号公報
【特許文献３】特開平０７−１２１４０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１のセキュリティ技術には、内部にセキュアなメモリをもつが必要なことや、外部メモリを暗号化の施された通信路を介して解析困難なプロトコルで接続する必要があるという非常に特殊なプロセッサでなければ実現できないという課題問題があった。
【０００７】
さらに、上述した特許文献２のセキュリティ技術には、メモリ上に展開されている状態のプログラムが改ざんされることに対しては防備が不十分であるという課題問題があった。
【０００８】
また、上述した特許文献２３のプログラムの実行が正常であることを検証する技術には、実行時間の測定結果を不正に操作することに対しては防備が不十分であるという課題問題があった。
【０００９】
本発明の目的は、上述した課題を解決する情報処理装置、プログラム実行方法、プログラムおよび情報処理システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求する復号要求手段と、前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求する消去要求手段と、前記復号要求手段からの復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込む復号手段と、前記消去要求手段からの消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去する消去手段とを有する。
【００１１】
本発明のプログラム実行方法は、暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求するステップと、当該復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込むステップと、前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップとを有することを特徴とする。
【００１２】
本発明のプログラムは、暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求するステップと、当該復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込むステップと、前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップとをコンピュータに実行させる。
【発明の効果】
【００１３】
本発明によれば、特殊なプロセッサを用いることなく、メモリ上に展開されたプログラムに対する不正な解析や改ざんを防止することが可能になる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施の形態について説明する。尚、以下の説明において用いられる用語、「被保障プログラム」や「復号被保障プログラム」は一般的に「ターゲットプログラム」と、「ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）」は一般的に「プロセッサ」と、「ファームウエア記憶部」は一般的に「ファームウエア領域」とそれぞれ一般的に呼ぶことができる。また、以下の説明において同様に、「復号異常」や「実行異常」は一般的に「異常」と呼ぶことができる。また、以下の説明において、「情報処理装置」は一般的に「第１の情報処理装置」と、「サーバ」は一般的に「第２の情報処理装置」とそれぞれ一般的に呼ぶことができる。
【００１５】
まず、本発明の第１の実施の形態について図面を参照して詳細に説明する。図１および図２を参照すると、第１の実施の形態の情報処理装置１０は、ファームウエア記憶部１１、秘密鍵記憶部１２、履歴記録部１３、ＣＰＵ２１、メモリ２２、記憶装置２３および制御部７１０を含む。
【００１６】
ファームウエア記憶部１１は、例えば、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）など、その内容を改ざんすることが困難な記憶手段である。
【００１７】
ファームウエア１１０は、ファームウエア記憶部１１に格納され、復号処理７１１、消去処理７１２、計測処理７１３および参照処理７１４を含む。これらのファームウエア１１０に含まれる各手段処理は、ＣＰＵ２１にて実行されるプログラムである。
【００１８】
秘密鍵記憶部１２は、例えば、ハードウェアのレジスタやＰＲＯＭであり、復号手段１１１からのみ内容を読み出すことができる。
【００１９】
履歴記録部１３は、例えば、ハードウェアのレジスタであり、復号手段１１１および計測手段１１３からのみ内容を書き込みすることができ、履歴参照手段１１４からのみ内容を読み出しすることができる。
【００２０】
ＣＰＵ２１は、ファームウエア１１０、実行形式ファイル２２１のコード領域２２２の各手段、復号プログラム３２７およびＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２４０を実行する。
【００２１】
図２に示すように、メモリ２２は、実行形式ファイル２２１、復号プログラム３２７およびＯＳ２４０をＣＰＵ２１が読み出し可能なデータとして記憶する。図２はメモリ２２に格納される情報の構造を示す図である。
【００２２】
実行形式ファイル２２１は、コード領域２２２およびデータ領域２２６を含む。
【００２３】
コード領域２２２は、読込手段処理７２３、復号要求処理７２４および呼出処理７２５を含む。
【００２４】
データ領域２２６は、暗号化プログラム２２７を含む。
【００２５】
暗号化プログラム２２７は、秘密鍵１２２で復号可能な暗号化を行う暗号鍵を用いて、復号プログラム３２７を暗号化したものである。
【００２６】
復号プログラム３２７は、復号被保障プログラム３２８と復号消去要求プログラム３２９を含む。
【００２７】
復号被保障プログラム３２８は、内容の秘匿と完全性を保障する対象のプログラムである。
【００２８】
復号消去要求プログラム３２９は、メモリ２２上の復号プログラム３２７の消去をファームウエア１１０後述する消去手段１１２に要求するプログラムである。
【００２９】
ＯＳ２４０は、ＣＰＵ２１上で動作し情報処理装置１０全体の動作を制御する。
【００３０】
記憶装置２３は、例えば、磁気ディスク装置等であり、実行形式ファイル２３１を記憶している。
【００３１】
実行形式ファイル２３１は、暗号化プログラム２２７を含み、ＯＳ２４０によってメモリ２２上に展開され、ＣＰＵ２１により実行される。
【００３２】
制御部７１０は、復号手段１１１、消去手段１１２、計測手段１１３、参照手段１１４、読込手段２２３、復号要求手段２２４および呼出手段２２５を含む。復号手段１１１、消去手段１１２、計測手段１１３および参照手段１１４は、復号処理７１１、消去処理７１２、計測処理７１３および参照処理７１４がＣＰＵ２１にてそれぞれ実行されることにより実現される。読込手段２２３、復号要求手段２２４および呼出手段２２５は、読込処理７２３、復号要求処理７２４および呼出処理７２５がＣＰＵ２１にてそれぞれ実行されることにより実現される。
【００３３】
復号手段１１１は、秘密鍵記憶部１２から秘密鍵１２２を読み出し、秘密鍵１２２を用いてメモリ２２上に展開されている暗号化プログラム２２７を復号する。また復号手段１１１は、暗号化プログラム２２７の復号が正常に行われたかどうかを判断し、正常である場合は計測手段１１３に計測開始を指示する。
【００３４】
消去手段１１２は、計測手段１１３に計測終了の指示を出し、メモリ２２の指定された領域の内容を消去（たとえば、その領域すべてに『０』を上書き）する。
【００３５】
計測手段１１３は、計測開始の指示と計測終了の指示を受け、この２つの指示の間の時間を被検証実行時間として計測する。また、計測手段１１３は、復号被保障プログラム３２８および復号消去要求プログラム３２９に対し内容の解析や改ざんなどが行われていない状態で計測した計測開始の指示と計測終了の指示の間の時間を期待値実行時間として予め与えられ、記憶している。さらに、計測手段１１３は、被検証実行時間と期待値実行時間とを比較し、その差が一定の範囲（例えば、期待値実行時間の５％の時間などであってよい）を超えている場合、プログラムの解析や改ざんが行われたと判断し、履歴記録部１３に不正が行われたことを示す記録を書き込む。
【００３６】
履歴参照手段１１４は、履歴記録部１３の記録を読み出す。
【００３７】
読込手段２２３は、暗号化プログラム２２７をメモリ２２のデータ領域２２６に読み込む。復号要求手段２２４は、暗号化プログラム２２７の復号をファームウエア１１０復号手段１１１に要求する。呼出手段２２５は、復号被保障プログラム３２８を呼び出す。
【００３８】
次に、図１から図３を参照して第１の実施の形態の動作について詳細に説明する。図３は、情報処理装置１０の動作を示す図である。
【００３９】
まず、ＯＳ２４０は、記憶装置２３に記憶されている実行形式ファイル２３１の読込処理７２３、復号要求処理７２４および呼出手段７２５を読み出し、メモリ２２のコード領域２２２に展開する（ステップＡ１）。
【００４０】
次に、読込手段２２３は、実行形式ファイル２３１の暗号化プログラム２２７をメモリ２２のデータ領域２２６に展開する（ステップＡ２）。
【００４１】
次に、復号要求手段２２４は、ステップＡ２でメモリ２２に展開した暗号化プログラム２２７のメモリ２２上のアドレスおよびサイズを、ファームウエア１１０の復号手段１１１に与え、暗号化プログラム２２７の復号を要求する（ステップＡ３）。
【００４２】
復号手段１１１は、ステップＡ３の暗号化プログラム２２７の復号の要求に対応して、秘密鍵記憶部１２から秘密鍵１２２を読み出し、秘密鍵１２２を用いて与えられたアドレスから与えられたサイズだけ暗号化プログラム２２７を復号し、復号プログラム３２７としてメモリ２２に展開する（ステップＡ４）。
【００４３】
次に復号手段１１１は、暗号化プログラム２２７の復号が正常に行われたか否かを判断する（ステップＡ５）。例えば、復号手段１１１は、復号プログラム３２７に含まれるチェックコードなどにより復号プログラム３２７の正常性を判断するようにしてもよい。
【００４４】
そして、復号プログラム３２７の復号が正常に行われていない場合（ステップＡ５でＮｏ）、復号手段１１１は履歴記録部１３に復号異常を示す情報を記録し（ステップＡ１４）、処理を終了する。
【００４５】
ステップＡ５で復号プログラム３２７の復号が正常に行われた場合（ステップＡ５でＹｅｓ）、復号手段１１１は計測手段１１３に復号プログラム３２７の実行時間の計測開始の指示を出す（ステップＡ６）。計測開始の指示を受けた計測手段１１３は、現在時刻を復号プログラム３２７の実行の開始時刻として記録する（ステップＡ７）。尚、現在時刻は、ＯＳ２４０から取得してもよいし、計測手段１１３内に時計機能を有していてもよい。
【００４６】
次に、呼出手段２２５が復号された復号被保障プログラム３２８を呼び出し、呼び出された復号被保障プログラム３２８が動作を実行する（ステップＡ８）。
【００４７】
次に、復号消去要求プログラム３２９が、ファームウエア１１０の消去手段１１２に、復号プログラム３２７の内容の消去を要求する（ステップＡ９）。
【００４８】
消去手段１１２は、ステップＡ９の復号プログラム３２７の内容の消去の要求に対応して、まず計測手段１１３に復号プログラム３２７の実行時間の計測終了の指示を出す（ステップＡ１０）。計測終了の指示を受け取った計測手段１１３は、ステップＡ７で記録した復号プログラム３２７の実行の開始時刻と現在の時刻の差（復号プログラム３２７の実行に要した時間と見なせる）から被検証実行時間を計算する（ステップＡ１１）。
【００４９】
続けて、消去手段１１２は、復号プログラム３２７の内容をメモリ２２上から消去する（ステップＡ１２）。
【００５０】
次に、計測手段１１３はステップＡ１１で求めた被検証実行時間と、計測手段１１３に記憶されている復号プログラム３２７の期待値実行時間を比較し、その差が一定の範囲内にあるかどうか判断する（ステップＡ１３）。実行時間の差が一定の範囲に収まっていない場合(ステップＡ１３で、Ｎｏ）、計測手段１１３は履歴記録部１３に実行異常を示す情報を記録し（ステップＡ１５）、処理を終了する。実行時間の差が一定の範囲に収まっている場合(ステップＡ１３で、Ｙｅｓ）、計測手段１１３は処理を終了する。
【００５１】
なお、履歴参照手段１１４は、履歴記録部１３の内容を読み出し、ＯＳ２４０や図示しない他の手段（例えば、マンマシンインタフェースなど）に出力する。ＯＳ２４０や、マンマシンインタフェースを経由して情報を得た操作者は、復号異常を確認することで暗号化プログラム２２７に対して内容の改ざんが行われていたと判断すること、あるいは実行異常を確認することで復号プログラム３２７の解析や改ざんが行われたと判断することができる。
【００５２】
図４は、本実施の形態の特徴的な構成を示す図である。
【００５３】
暗号化被保障プログラム２２８は、ある被保障プログラム８００（図示しない。例えば、不正な解析や改ざんから保護したいアプリケーションプログラムなど）を暗号化したものである。
【００５４】
復号被保障プログラム３２８は、暗号化被保障プログラム２２８を復号したものであり、暗号化被保障プログラム２２８の元である被保障プログラム８００の内容と同じ内容のものである。
【００５５】
復号要求手段６２１は、被保障プログラム８００の実行開始時に対応する暗号化被保障プログラム２２８の復号を要求する。
【００５６】
復号手段６１１は、この復号の要求を受けて暗号化被保障プログラム２２８を復号し、これを復号被保障プログラム３２８としてメモリ２２に書き込む。
【００５７】
消去要求手段６２２は、復号被保障プログラム３２８の実行完了時に、復号被保障プログラム３２８の消去を要求する。
【００５８】
消去手段６１２は、この消去の要求を受けてメモリ２２に書き込まれた復号被保障プログラム３２８を消去する。
【００５９】
本実施の形態の第１の効果は、プログラムの解析や改ざんを行うことができる状態でプログラムが存在する期間が短く、不正な解析や改ざんを困難にできる点である。その理由は、暗号化されたプログラムを実行直前に復号し、復号されたプログラムの実行が完了すると即座に消去するようにしたからである。
【００６０】
本実施の形態の第２の効果は、メモリ上に展開されたプログラムが不正に解析、または改ざんされたことを検出できる点である。その理由は、暗号化されたプログラムを実行直前に復号した時点から、復号されたプログラムの実行が完了して即座に消去する時点までの時間を期待値と比較して異常の有無を検出するようにしたからである。
【００６１】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００６２】
図５を参照すると、本発明の第２の実施の形態の情報処理装置４０は本発明の第１の実施の形態の情報処理装置１０と比較して、ファームウエア４１０に復号手段処理７１１にかわる展開復号処理７４１、呼出処理７２５、および暗号化プログラム４１２とを含むこと、制御部７４０に復号手段１１１にかわる展開復号手段４１１を含むこと、同じく制御部７４０に呼出手段２２５を含むこと、および記憶装置２３に暗号化プログラム２２６を含む実行形式ファイル２３１を含んでいないことが異なる。展開復号手段４１１は、ＣＰＵ２１が展開復号処理７４１を実行することで実現するようにしてもよい。
【００６３】
展開復号手段４１１は、暗号化プログラム４１２をメモリ２２上に展開し、秘密鍵１２２を用いてメモリ２２上に展開した暗号化プログラム４１２を復号する。
【００６４】
次に、図５および図６を参照して第２の実施の形態の動作について詳細に説明する。図６は、情報処理装置４０の動作を示す図である。
【００６５】
まず、ファームウエア４１０の展開復号手段４１１は、暗号化プログラム４１２のメモリ２２への展開と復号の要求を図示しない手段から受け取る（ステップＢ１）。
この要求を出す図示しない手段は、ＯＳ２４０によって記憶装置２３よりメモリ２２上に展開され実行される図示しない実行形式ファイルであっても良いし、ファームウエア４１０内の図示しない指示手段であっても良い。
【００６６】
次に、展開復号手段４１１は、ファームウエア４１０の暗号化プログラム４１２をメモリ２２上に展開する（ステップＢ２）。続けて、展開復号手段４１１は、秘密鍵記憶部１２から秘密鍵１２２を読み出し、秘密鍵１２２を用いてメモリ２２に展開された暗号化プログラム４１２を復号し、復号プログラム３２７としてメモリ２２に展開する（ステップＢ３）。
【００６７】
以後の動作は、第１の実施の形態のステップＡ５〜ステップＡ１３の動作と同じである。
【００６８】
また、展開復号手段４１１は、ステップＢ２を実行しないで、ステップＢ３において秘密鍵１２２を用いてファームウエア４１０の暗号化プログラム４１２を復号して復号プログラム３２７を生成するようにしてもよい。
【００６９】
本実施の形態の第１の効果は、プログラムの改ざんをさらに困難にできる点である。その理由は、暗号化されたプログラムをファームウエア内に含むようにしたからである。
【００７０】
本実施の形態の第２の効果は、プログラム実行開始までの時間を短縮できる点である。その理由は、ファームウエア内の暗号化プログラムを直接復号するようにしたからである。
【００７１】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【００７２】
図７を参照すると、本発明の第３の実施の形態の情報処理装置５０は本発明の第１の実施の形態の情報処理装置１０と比較して、記憶装置２３に実行形式ファイル２３１を含まず、接続手段２４を含む。そして、情報処理装置５０は、ネットワーク７０を介してサーバ６０と接続される。サーバ６０は、例えばコンピュータやネットワークディスク装置であり、処理部６１と記憶装置６３を含む。
【００７３】
図８は、記憶装置６３に格納される情報の構造を示す図である。
【００７４】
次に、図３、図７および図８を参照して第３の実施の形態の動作について詳細に説明する。
【００７５】
第１の実施の形態の動作を示す図３の各ステップに対して、第３の実施の形態で異なる動作を行うステップはステップＡ１とステップＡ２である。
【００７６】
図３のステップＡ１に対応する本実施の形態の動作は以下のとおりである。ＯＳ２４０が接続手段２４を使用してネットワーク７０を介して、サーバ６０の記憶装置６３に記憶されている実行形式ファイル６３１の読込処理７６３、復号要求処理７２４および呼出処理７２５を読出し、メモリ２２のコード領域２２２に展開する。読込手段６２３は、ＣＰＵ２１が読込処理７６３を実行することで実現するようにしてもよい。
【００７７】
図３のステップＡ２に対応する本実施の形態の動作は以下のとおりである。読込手段６２３が、接続手段２４を使用してネットワーク７０を介して、サーバ６０の記憶装置６３に記憶されている実行形式ファイル６３１の暗号化プログラム２２７を読み出し、メモリ２２のデータ領域２２６に展開する。
【００７８】
ステップＡ３以後の動作は、実施の形態１の動作と同じであるため省略する。
【００７９】
本実施の形態の効果は、暗号化された被保障プログラムが遠隔に存在する場合でも、実施の形態１で説明した効果と同様の効果を得られる点である。その理由は、ネットワークを介して実行形式ファイルを読み取るようにしたからである。
【００８０】
なお、以上説明した実施の形態は、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【００８１】
また、各構成要素の物理的な構成は、以上の実施の形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
【００８２】
また、以上説明した実施の形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため本実施の形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００８３】
さらに、以上説明した、実施の形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。このためある動作の実行中に他の動作が発生すること、ある動作の実行タイミングと他の動作の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００８４】
さらに、以上説明した実施の形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作のすべての関係を限定するものではない。このため本実施の形態を実施するときには、その複数の動作の関係は内容的に支障しない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため各構成要素の具体的な各動作は、本実施の形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【産業上の利用可能性】
【００８５】
本発明は、情報の秘匿と完全性の保障が必要な情報を扱うプログラムを実行する装置やシステムに適用できる。例えば、プログラムが収集または出力した情報によって課金が行われるなどといった場合には、その情報のみならずプログラムにも内容の秘匿と完全性の保障が必要であるためである。
【００８６】
また、本発明は、情報の不正利用の防止や著作権保護機能などを実現する機能といった用途にも適用できる。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１および第２の実施の形態におけるメモリに格納される情報の構造を示す図である。
【図３】本発明の第１の実施の形態の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図５】本発明の第２の実施の形態の構成を示すブロック図である。
【図６】本発明の第２の実施の形態の動作を示すフローチャートである。
【図７】本発明の第３の実施の形態の構成を示すブロック図である。
【図８】本発明の第３の実施の形態におけるサーバの記憶装置に格納される情報の構造を示す図である。
【符号の説明】
【００８８】
１０    情報処理装置
１１    ファームウエア記憶部
１１０    ファームウエア
１１１    復号手段
１１２    消去手段
１１３    計測手段
１１４    履歴参照手段
１２    秘密鍵記憶部
１２２    秘密鍵
１３    履歴記録部
２１    ＣＰＵ
２２    メモリ
２２１    実行形式ファイル
２２２    コード領域
２２３    読込手段
２２４    復号要求手段
２２５    呼出手段
２２６    データ領域
２２７    暗号化プログラム
２２８    被保障プログラム
２３    記憶装置
２３１    実行形式ファイル
２４    接続手段
２４０    ＯＳ
３２７    復号プログラム
３２８    復号被保障プログラム
３２９    復号消去要求プログラム
４０    情報処理装置
４１０    ファームウエア
４１１    展開復号手段
４１２    暗号化プログラム
５０    情報処理装置
６０    サーバ
６１    処理部
６１１    復号手段
６１２    消去手段
６２３    読込手段
６３    記憶装置
６３１    実行形式ファイル
７０    ネットワーク
７１０    制御部
７１１    復号処理
７１２    消去処理
７１３    計測処理
７１４    参照処理
７２３    読込処理
７２４    復号要求処理
７２５    呼出処理
７４０    制御部
７４１    展開復号処理
７６３    読込処理
【図１】
2010039891.tif 000003
【図２】
2010039891.tif 000004
【図３】
2010039891.tif 000005
【図４】
2010039891.tif 000006
【図５】
2010039891.tif 000007
【図６】
2010039891.tif 000008
【図７】
2010039891.tif 000009
【図８】
2010039891.tif 000010
【手続補正書】
【提出日】平成21年5月11日(2009.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求する復号要求手段と、
前記ターゲットプログラムの実行完了時に当該ターゲットプログラムの消去を要求する消去要求手段と、
前記復号要求手段からの復号の要求を受けて前記ターゲットプログラムを復号し、復号しされた当該ターゲットプログラムをメモリに書き込む復号手段と、
前記消去要求手段からの消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去する消去手段と、
を有することを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
プロセッサおよびファームウエア領域を有し、
前記復号手段および前記消去手段の一方または両方は前記ファームウエア領域に格納されたプログラムを前記プロセッサ上で実行することにより実現される
ことを特徴とする請求項１記載の情報処理装置。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
前記ターゲットプログラムを復号するための秘密鍵を記憶する秘密鍵記憶部と、
前記暗号化されたターゲットプログラム含む実行形式ファイルを記憶する記憶部と、
前記実行形式ファイルを展開するメモリと、
を有することを特徴とする請求項１または２に記載の情報処理装置。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
プロセッサおよびファームウエア領域を有し、
前記計測手段は前記ファームウエア領域に格納されたプログラムを前記プロセッサ上で実行することにより実現される
ことを特徴とする請求項４記載の情報処理装置。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求するステップと、
当該復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込むステップと、
前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、
当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップと、
を有することを特徴とするプログラム実行方法。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
暗号化されたターゲットプログラムの実行開始時に、当該ターゲットプログラムの復号を要求するステップと、
当該復号の要求を受けて前記ターゲットプログラムを復号し、復号された当該ターゲットプログラムをメモリに書き込むステップと、
前記復号されたターゲットプログラムの実行完了時に当該復号されたターゲットプログラムの消去を要求するステップと、
当該消去の要求を受けて、前記メモリに書き込まれた前記復号されたターゲットプログラムを前記メモリから消去するステップと、
をコンピュータに実行させることを特徴とするプログラム。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
データの改ざんや解析の防止に関連するセキュリティ技術として「セキュア・メモリ」を有するプロセッサが特許文献１に開示されている。特許文献１のプロセッサでは、カーネル・モードで実行している場合のみ参照が可能であるように構成された「セキュア・メモリ」が、プロセッサ・チップ内部に設けられている。この特殊なプロセッサにより、特許文献１のセキュリティ技術は、「セキュア・メモリ」上にロードされたデータを配置し、これにより改竄防止や秘匿性の確保を行なうことを可能にしている。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
また、プログラムの実行が正常であることを検証する技術として、性能評価装置が特許文献３に開示されている。特許文献３の性能評価装置は、テストプログラムの実行時間を測定し、標準実行時間と比較することで正常性の検証を可能にしている。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
しかしながら、上述した特許文献１のセキュリティ技術には、内部にセキュアなメモリが必要なことや、外部メモリを暗号化の施された通信路を介して解析困難なプロトコルで接続する必要があるという非常に特殊なプロセッサでなければ実現できないという課題問題があった。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
さらに、上述した特許文献２のセキュリティ技術には、メモリ上に展開されている状態のプログラムが改ざんされることに対して防備が不十分であるという問題があった。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
また、上述した特許文献３のプログラムの実行が正常であることを検証する技術には、実行時間の測定結果を不正に操作することに対しては防備が不十分であるという問題があった。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
次に、本発明の実施の形態について説明する。尚、以下の説明において用いられる用語、「被保障プログラム」や「復号被保障プログラム」は「ターゲットプログラム」と、「ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）」は「プロセッサ」と、「ファームウエア記憶部」は「ファームウエア領域」とそれぞれ一般的に呼ぶことができる。同様に、「復号異常」や「実行異常」は「異常」と、「情報処理装置」は「第１の情報処理装置」と、「サーバ」は「第２の情報処理装置」とそれぞれ一般的に呼ぶことができる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
ファームウエア１１０は、ファームウエア記憶部１１に格納され、復号処理７１１、消去処理７１２、計測処理７１３および参照処理７１４を含む。これらのファームウエア１１０に含まれる各処理は、ＣＰＵ２１にて実行されるプログラムである。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
履歴記録部１３は、例えば、ハードウェアのレジスタであり、復号手段１１１および計測手段１１３からのみ内容を書き込みすることができ、参照手段１１４からのみ内容を読み出しすることができる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
図２に示すように、メモリ２２は、実行形式ファイル２２１、復号プログラム３２７およびＯＳ２４０をＣＰＵ２１が読み出し可能なデータとして記憶する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
コード領域２２２は、読込処理７２３、復号要求処理７２４および呼出処理７２５を含む。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
復号消去要求プログラム３２９は、メモリ２２上の復号プログラム３２７の消去を後述する消去手段１１２に要求するプログラムである。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
参照手段１１４は、履歴記録部１３の記録を読み出す。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
読込手段２２３は、暗号化プログラム２２７をメモリ２２のデータ領域２２６に読み込む。復号要求手段２２４は、暗号化プログラム２２７の復号を復号手段１１１に要求する。呼出手段２２５は、復号被保障プログラム３２８を呼び出す。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
まず、ＯＳ２４０は、記憶装置２３に記憶されている実行形式ファイル２３１の読込処理７２３、復号要求処理７２４および呼出処理７２５を読み出し、メモリ２２のコード領域２２２に展開する（ステップＡ１）。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
次に、復号要求手段２２４は、ステップＡ２でメモリ２２に展開した暗号化プログラム２２７のメモリ２２上のアドレスおよびサイズを、復号手段１１１に与え、暗号化プログラム２２７の復号を要求する（ステップＡ３）。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
次に、復号消去要求プログラム３２９が、消去手段１１２に、復号プログラム３２７の内容の消去を要求する（ステップＡ９）。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
なお、参照手段１１４は、履歴記録部１３の内容を読み出し、ＯＳ２４０や図示しない他の手段（例えば、マンマシンインタフェースなど）に出力する。ＯＳ２４０や、マンマシンインタフェースを経由して情報を得た操作者は、復号異常を確認することで暗号化プログラム２２７に対して内容の改ざんが行われていたと判断すること、あるいは実行異常を確認することで復号プログラム３２７の解析や改ざんが行われたと判断することができる。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
図５を参照すると、本発明の第２の実施の形態の情報処理装置４０は本発明の第１の実施の形態の情報処理装置１０と比較して、ファームウエア４１０に復号処理７１１にかわる展開復号処理７４１、呼出処理７２５、および暗号化プログラム４１２とを含むこと、制御部７４０に復号手段１１１にかわる展開復号手段４１１を含むこと、同じく制御部７４０に呼出手段２２５を含むこと、および記憶装置２３に暗号化プログラム２２６を含む実行形式ファイル２３１を含んでいないことが異なる。展開復号手段４１１は、ＣＰＵ２１が展開復号処理７４１を実行することで実現するようにしてもよい。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
図３のステップＡ１に対応する本実施の形態の動作は以下のとおりである。ＯＳ２４０が接続手段２４を使用してネットワーク７０を介して、サーバ６０の記憶装置６３に記憶されている実行形式ファイル６３１の読込処理７６３、復号要求処理７２４および呼出処理７２５を読出し、メモリ２２のコード領域２２２に展開する。読込手段２２３は、ＣＰＵ２１が読込処理７６３を実行することで実現するようにしてもよい。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
図３のステップＡ２に対応する本実施の形態の動作は以下のとおりである。読込手段２２３が、接続手段２４を使用してネットワーク７０を介して、サーバ６０の記憶装置６３に記憶されている実行形式ファイル６３１の暗号化プログラム２２７を読み出し、メモリ２２のデータ領域２２６に展開する。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
ステップＡ３以後の動作は、第１の実施の形態の動作と同じであるため省略する。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
本実施の形態の効果は、暗号化された被保障プログラムが遠隔に存在する場合でも、第１の実施の形態で説明した効果と同様の効果を得られる点である。その理由は、ネットワークを介して実行形式ファイルを読み取るようにしたからである。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
１０    情報処理装置
１１    ファームウエア記憶部
１１０    ファームウエア
１１１    復号手段
１１２    消去手段
１１３    計測手段
１１４    参照手段
１２    秘密鍵記憶部
１２２    秘密鍵
１３    履歴記録部
２１    ＣＰＵ
２２    メモリ
２２１    実行形式ファイル
２２２    コード領域
２２３    読込手段
２２４    復号要求手段
２２５    呼出手段
２２６    データ領域
２２７    暗号化プログラム
２２８    被保障プログラム
２３    記憶装置
２３１    実行形式ファイル
２４    接続手段
２４０    ＯＳ
３２７    復号プログラム
３２８    復号被保障プログラム
３２９    復号消去要求プログラム
４０    情報処理装置
４１０    ファームウエア
４１１    展開復号手段
４１２    暗号化プログラム
５０    情報処理装置
６０    サーバ
６１    処理部
６１１    復号手段
６１２    消去手段
６３    記憶装置
６３１    実行形式ファイル
７０    ネットワーク
７１０    制御部
７１１    復号処理
７１２    消去処理
７１３    計測処理
７１４    参照処理
７２３    読込処理
７２４    復号要求処理
７２５    呼出処理
７４０    制御部
７４１    展開復号処理
７６３    読込処理
【手続補正３０】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2010039891.tif 000011