(57)【要約】予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、予め指定プログラムに所定の関数を適用して得られる期待値と指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、入力プログラムと入力プログラムの識別子とからなる組を外部から入力することができる入力インタフェースと、入力プログラムに所定の関数を適用して演算値を得る関数演算部と、期待値テーブル内の期待値のうち入力プログラムの識別子に対応する期待値と演算値との比較を行う比較部と、比較結果が一致した場合に、入力プログラムを外部へ出力させる出力インタフェースとを備えた。
2004053664.tif 000002
【特許請求の範囲】
【請求項１】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力することができる入力インタフェースと、
前記入力プログラムに所定の関数を適用して演算値を得る関数演算部と、
前記期待値テーブル内の期待値のうち前記入力プログラムの識別子に対応する前記期待値と前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、前記入力プログラムを外部へ出力する出力インタフェースと、
を備えてなるプログラム実行制御装置。
【請求項２】
請求の範囲第１項に記載のプログラム実行制御装置において、
前記所定の関数は一方向性関数であり、前記期待値および前記演算値はハッシュ値であることを特徴とするプログラム実行制御装置。
【請求項３】
請求の範囲第１項に記載のプログラム実行制御装置において、
実行中の前記入力プログラムの識別子と演算値とからなる組を少なくとも１組記憶する演算値テーブル記憶部を備え、
外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力することを特徴とするプログラム実行制御装置。
【請求項４】
請求の範囲第１項に記載のプログラム実行制御装置を用いるＯＳであって、
前記プログラム実行制御装置へ前記入力プログラムを入力し、前記プログラム実行制御装置から前記入力プログラムを出力された場合に、前記入力プログラムを実行するＯＳ。
【請求項５】
請求の範囲第１項に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部から入力された前記入力プログラムを前記プログラム実行制御装置へ入力し、前記プログラム実行制御装置から前記入力プログラムが出力された場合に、前記入力プログラムを実行するクライアント端末。
【請求項６】
請求の範囲第３項に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力するクライアント端末。
【請求項７】
請求の範囲第５項に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
予め前記クライアント端末へ前記指定プログラムの識別子と期待値とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバ。
【請求項８】
請求の範囲第６項に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するサーバ。
【請求項９】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求の範囲第５項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、予め前記クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバと、
を備えてなるプログラム実行制御システム。
【請求項１０】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求の範囲第６項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するサーバと、
を備えてなるプログラム実行制御システム。
【請求項１１】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御方法。
【請求項１２】
予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御プログラム。
【請求項１３】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、
予め入力された復号鍵を記憶する復号鍵記憶部と、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力することができる入力インタフェースと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成する復号部と、
前記復号済みプログラムに所定の関数を適用して演算値を得る関数演算部と、
前記期待値テーブル内の前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、前記インタフェースを介して前記復号済みプログラムを外部へ出力させる出力インタフェースと、
を備えてなるプログラム実行制御装置。
【請求項１４】
請求の範囲第１３項に記載のプログラム実行制御装置において、
前記所定の関数は一方向性関数であり、前記期待値および前記演算値はハッシュ値であることを特徴とするプログラム実行制御装置。
【請求項１５】
請求の範囲第１３項に記載のプログラム実行制御装置において、
実行中の前記復号済みプログラムの識別子と演算値とからなる組を少なくとも１組記憶する演算値テーブル記憶部を備え、
外部からの要求に従って前記復号済みプログラムの識別子と演算値とからなる組を前記外部へ出力することを特徴とするプログラム実行制御装置。
【請求項１６】
請求の範囲第１３項に記載のプログラム実行制御装置を用いるＯＳであって、
前記プログラム実行制御装置へ前記暗号済みプログラムを入力し、前記プログラム実行制御装置から前記復号済みプログラムを出力された場合に、前記復号済みプログラムを実行するＯＳ。
【請求項１７】
請求の範囲第１３項に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部から入力された前記暗号済みプログラムを前記プログラム実行制御装置へ入力し、前記プログラム実行制御装置から前記復号済みプログラムが出力された場合に、前記復号済みプログラムを実行するクライアント端末。
【請求項１８】
請求の範囲第１５項に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部からの要求に従って前記復号済みプログラムの識別子と演算値とからなる組を前記外部へ出力するクライアント端末。
【請求項１９】
請求の範囲第１７項に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
予め前記クライアント端末へ前記指定プログラムの識別子と期待値とからなる組を送信し、必要に応じて前記クライアント端末へ前記暗号済みプログラムを送信するサーバ。
【請求項２０】
請求の範囲第１８項に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行中の前記復号済みプログラムを確認するサーバ。
【請求項２１】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求の範囲第１７項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、予め前記クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、必要に応じて前記クライアント端末へ前記暗号済みプログラムを送信するサーバと、
を備えてなるプログラム実行制御システム。
【請求項２２】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求の範囲第１８項に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値に基づいて前記クライアント端末で実行中の前記復号済みプログラムを確認するサーバと、
を備えてなるプログラム実行制御システム。
【請求項２３】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御方法。
【請求項２４】
予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御プログラム。
【発明の詳細な説明】
【技術分野】  本発明は、認証された正当なプログラムのみの実行を許可するプログラム実行制御装置、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ）、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラムに関するものである。
【背景技術】  近年、携帯電話やＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード等のデバイスは、無線や有線でネットワークに接続されており、電子決済等の電子商取引、電子申請等、セキュリティが要求される処理を、これらのデバイス上で行うことが現実化してきている。これらのサービスは多種多様であるため、すべてのサービスに対応するプログラムを事前にデバイスに保持しておくことは不可能であり、享受するサービスに合わせて動的に必要なプログラムだけをデバイスにダウンロードし、動作させることが不可欠となる。
このような場合には、セキュリティ上の観点から、デバイスがあるサービスを享受している間は、許可されたプログラムのみを動作させることを保証すること、及び、デバイス上で動作しているプログラムの一覧が、サービスを提供するサーバ側から確認できることが重要である。これにより、許可していないプログラムがデバイス上で動作していることが判明した場合に、セキュリティ上の理由により、サーバ側からサービスをうち切ることが可能となる。セキュリティに関連する技術として、ＴＣＰＡ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｌｌｉａｎｃｅ）、ＯＳのドライバ署名、外部からダウンロードして実行するプログラムの認証等がある。
ＴＣＰＡは、特別なセキュリティチップをＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や携帯端末等のクライアント端末に追加することで、クライアント端末におけるソフトウェアを含む環境全体の安全性を保証することを目指している。現状の仕様では、一般にＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）、ブートプログラム、ＯＳローダー、ＯＳというようにソフトウェアが順次起動されていくクライアント端末の起動時に、以下の処理を行う。
まずクライアント端末において、ＢＩＯＳ中のコードが、次に起動するブートプログラムのハッシュ値を算出し、セキュリティチップ内に格納した後、ブートプログラムに制御を渡す。ここでハッシュ値とは、対象となるプログラムに一方向性関数を適用して算出された値のことである。次に、ブートプログラムが、ＯＳローダーのハッシュ値を算出し、同様にセキュリティチップ内に格納した後、ＯＳローダーに制御を渡す。次に、ＯＳローダーが、ＯＳのハッシュ値を算出し、同様にセキュリティチップ内に格納した後、ＯＳに制御を移す。次に、クライアント端末は、任意のタイミングで発生するサーバ等の外部エンティティからの要求により、上記で算出したハッシュ値群をサーバに返答する。
このような処理により、現在クライアント端末で実行している、または実行してしまったプログラムの一覧を、ハッシュ値という形でサーバ側が知ることができ、不正なプログラムがクライアント端末で動作しているかどうかを確認できる。不正なプログラムが動作していることが判明した場合には、サーバが該当するクライアント端末に対するサービスをうち切るといった制御が可能になる。
また、ＯＳの中には、正当な署名の付与されていないデバイスドライバの組み込みを拒絶する機能を採用しているものがある。なお、正当な署名がなくても、ユーザが許可すれば組み込みを実行することもできる。
また、クライアント端末において、外部からプログラムをダウンロードして実行する仮想マシンの中には、正当な署名の付与されていないプログラムの実行を拒絶するもの、あるいは、実行は許可するが、プログラムの動作に制限を加えるという機能を持つものがある。このような処理により、不正なドライバの組み込みや、不正なプログラムの実行を防ぐことができる。
しかしながら、ＴＣＰＡにおいては、不正なソフトウェアが動作していることを外部より確認することができても、動作しないように制御することはできないという問題がある。また、ＴＣＰＡはＯＳの起動までを対象としており、ＯＳ起動後のプログラムの起動に対応できていない。
また、ＯＳのドライバ署名においては、署名の検証処理、および、検証結果が否となった場合の組み込み拒絶処理がソフトウェアで実現されているため、処理部分を改竄することにより不正なドライバの組み込み防止の機能を無効化することができてしまうという問題がある。また、外部からダウンロードして実行するプログラムの認証においても、ＯＳのドライバ署名の場合と同様、仮想マシンはソフトウェアであるため、これを改竄することにより不正なプログラムの拒絶の機能を無効化することができてしまうという問題がある。
本発明は、このような問題を解決するためになされたものであり、デバイス内に用意する耐タンパなハードウェアが、事前に安全な手段によってサーバから取得したプログラムの一覧に記載されたプログラムのみをＯＳに渡すことで、ＯＳによるプログラムの実行を可能とし、さらにＯＳにより実行されているプログラムの一覧をハードウェア内に安全に保持し、サーバからの要求に応じて安全に通知することができるプログラム実行制御装置、ＯＳ、クライアント端末、サーバ、プログラム実行制御システム、プログラム実行制御方法、プログラム実行制御プログラムを提供することを目的とする。
【発明の開示】
本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、入力プログラムと該入力プログラムの識別子とからなる組を外部から入力することができる入力インタフェースと、前記入力プログラムに所定の関数を適用して演算値を得る関数演算部と、前記期待値テーブル内の期待値のうち前記入力プログラムの識別子に対応する前記期待値と前記演算値との比較を行う比較部と、該比較結果が一致した場合に、前記入力プログラムを外部へ出力する出力インタフェースとを備えてなるものである。
このような構成によれば、ハードウェアであるプログラム実行制御装置が指定プログラムであることを確認するための情報を内部に保持するとともに、入力プログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。なお、本実施の形態における期待値テーブル記憶部とは期待値テーブル記憶部３６のことであり、入力インタフェースとは入出力インタフェース３１のことであり、関数演算部とは演算ハッシュ値算出部３４のことであり、比較部とは比較部３５のことであり、出力インタフェースとは入出力インタフェース３１とゲート３８のことである。
また、本発明に係るプログラム実行制御装置において、前記所定の関数は一方向性関数であり、前記期待値および前記演算値はハッシュ値であることを特徴とするものである。
このような構成によれば、入力プログラムに一方向性関数を適用して算出されるハッシュ値を用いることにより、指定プログラムであるか否かの判断を高い信頼性で行うことができる。
また、本発明に係るプログラム実行制御装置において、実行中の前記入力プログラムの識別子と演算値とからなる組を少なくとも１組記憶する演算値テーブル記憶部を備え、外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力することを特徴とするものである。
このような構成によれば、現在実行中のプログラムに関する情報を必要に応じて外部へ出力することにより、現在実行中のプログラムを外部から確認することができる。
また、本発明は、本発明に係るプログラム実行制御装置を用いるＯＳであって、前記プログラム実行制御装置へ前記入力プログラムを入力し、前記プログラム実行制御装置から前記入力プログラムを出力された場合に、前記入力プログラムを実行するものである。
このような構成によれば、ＯＳが実行するプログラムが、指定プログラムであるか否かの判断をプログラム実行制御装置が行うことにより、ＯＳは予め指定された指定プログラムのみを実行することができる。
また、本発明は、本発明に係るプログラム実行制御装置を備えたクライアント端末であって、外部から入力された前記入力プログラムを前記プログラム実行制御装置へ入力し、前記プログラム実行制御装置から前記入力プログラムが出力された場合に、前記入力プログラムを実行するものである。
このような構成によれば、クライアント端末が実行するプログラムが、指定プログラムであるか否かの判断をプログラム実行制御装置が行うことにより、クライアント端末は予め指定された指定プログラムのみを実行することができる。
また、本発明は、本発明に係るプログラム実行制御装置を備えたクライアント端末であって、外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力するものである。
このような構成によれば、現在実行中のプログラムに関する情報を必要に応じて外部へ出力することにより、現在実行中のプログラムを外部から確認することができる。
また、本発明は、本発明に係るクライアント端末とネットワークを介して接続されることができるサーバであって、予め前記クライアント端末へ前記指定プログラムの識別子と期待値とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するものである。
このような構成によれば、指定プログラムを送信するサーバが指定プログラムに関する情報を予め送信することにより、実行を許可するプログラムを指定することができる。
また、本発明は、本発明に係るクライアント端末とネットワークを介して接続されることができるサーバであって、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するものである。
このような構成によれば、サーバは、クライアント端末が指定プログラムを実行しているか否かを監視することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、本発明に係るクライアント端末と、該クライアント端末とネットワークを介して接続されることができ、予め前記クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバとを備えてなるものである。
このような構成によれば、指定プログラムを送信するサーバが指定プログラムに関する情報を予め送信することにより、サーバは実行を許可するプログラムを指定することができ、クライアント端末は予め指定された指定プログラムのみを実行することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、本発明に係るクライアント端末と、該クライアント端末とネットワークを介して接続されることができ、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するサーバとを備えてなるものである。
このような構成によれば、サーバは、クライアント端末が指定プログラムを実行しているか否かを監視することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、前記入力プログラムに所定の関数を適用して演算値を得るステップと、前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップとを備えてなるものである。
このような構成によれば、指定プログラムであることを確認するための情報を用いて、入力プログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。
また、本発明は、予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、前記入力プログラムに所定の関数を適用して演算値を得るステップと、前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップとを備えてなるものである。
このような構成によれば、指定プログラムであることを確認するための情報を用いて、入力プログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、予め入力された復号鍵を記憶する復号鍵記憶部と、入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力することができる入力インタフェースと、前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成する復号部と、前記復号済みプログラムに所定の関数を適用して演算値を得る関数演算部と、前記期待値テーブル内の前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行う比較部と、該比較結果が一致した場合に、前記インタフェースを介して前記復号済みプログラムを外部へ出力させる出力インタフェースとを備えてなるものである。
このような構成によれば、ハードウェアであるプログラム実行制御装置が指定プログラムであることを確認するための情報を内部に保持するとともに、復号済みプログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。なお、本実施の形態における復号鍵記憶部とは復号鍵記憶部３３のことであり、復号部とは復号部３２のことである。
また、本発明に係るプログラム実行制御装置において、前記所定の関数は一方向性関数であり、前記期待値および前記演算値はハッシュ値であることを特徴とするものである。
このような構成によれば、復号済みプログラムに一方向性関数を適用して算出されるハッシュ値を用いることにより、指定プログラムであるか否かの判断を高い信頼性で行うことができる。
また、本発明に係るプログラム実行制御装置において、実行中の前記復号済みプログラムの識別子と演算値とからなる組を少なくとも１組記憶する演算値テーブル記憶部を備え、外部からの要求に従って前記復号済みプログラムの識別子と演算値とからなる組を前記外部へ出力することを特徴とするものである。
このような構成によれば、現在実行中のプログラムに関する情報を必要に応じて外部へ出力することにより、現在実行中のプログラムを外部から確認することができる。
また、本発明は、本発明に係るプログラム実行制御装置を用いるＯＳであって、前記プログラム実行制御装置へ前記暗号済みプログラムを入力し、前記プログラム実行制御装置から前記復号済みプログラムを出力された場合に、前記復号済みプログラムを実行するものである。
このような構成によれば、ＯＳが実行するプログラムが、指定プログラムであるか否かの判断をプログラム実行制御装置が行うことにより、ＯＳは予め指定された指定プログラムのみを実行することができる。
また、本発明は、本発明に係るプログラム実行制御装置を備えたクライアント端末であって、外部から入力された前記暗号済みプログラムを前記プログラム実行制御装置へ入力し、前記プログラム実行制御装置から前記復号済みプログラムが出力された場合に、前記復号済みプログラムを実行するものである。
このような構成によれば、クライアント端末が実行するプログラムが、指定プログラムであるか否かの判断をプログラム実行制御装置が行うことにより、クライアント端末は予め指定された指定プログラムのみを実行することができる。
また、本発明は、本発明に係るプログラム実行制御装置を備えたクライアント端末であって、外部からの要求に従って前記復号済みプログラムの識別子と演算値とからなる組を前記外部へ出力するものである。
このような構成によれば、現在実行中のプログラムに関する情報を必要に応じて外部へ出力することにより、現在実行中のプログラムを外部から確認することができる。
また、本発明は、本発明に係るクライアント端末とネットワークを介して接続されることができるサーバであって、予め前記クライアント端末へ前記指定プログラムの識別子と期待値とからなる組を送信し、必要に応じて前記クライアント端末へ前記暗号済みプログラムを送信するものである。
このような構成によれば、指定プログラムを送信するサーバが指定プログラムに関する情報を予め送信することにより、実行を許可するプログラムを指定することができる。
また、本発明は、本発明に係るクライアント端末とネットワークを介して接続されることができるサーバであって、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行中の前記復号済みプログラムを確認することを特徴とするものである。
このような構成によれば、サーバは、クライアント端末が指定プログラムを実行しているか否かを監視することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、本発明に係るクライアント端末と、該クライアント端末とネットワークを介して接続されることができ、予め前記クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、必要に応じて前記クライアント端末へ前記暗号済みプログラムを送信するサーバとを備えてなるものである。
このような構成によれば、指定プログラムを送信するサーバが指定プログラムに関する情報を予め送信することにより、サーバは実行を許可するプログラムを指定することができ、クライアント端末は予め指定された指定プログラムのみを実行することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、本発明に係るクライアント端末と、該クライアント端末とネットワークを介して接続されることができ、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値に基づいて前記クライアント端末で実行中の前記復号済みプログラムを確認するサーバとを備えてなるものである。
このような構成によれば、サーバは、クライアント端末が指定プログラムを実行しているか否かを監視することができる。
また、本発明は、予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、予め入力された復号鍵を記憶するステップと、入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップとを備えてなるものである。
このような構成によれば、指定プログラムであることを確認するための情報を用いて、復号済みプログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。
また、本発明は、予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、予め入力された復号鍵を記憶するステップと、入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップとを備えてなるものである。
このような構成によれば、指定プログラムであることを確認するための情報を用いて、復号済みプログラムの実行の許可および拒絶の制御を行うことにより、高いセキュリティレベルを保証できる。
【図面の簡単な説明】  第１図は、本発明の実施の形態に係るプログラム実行制御システムの構成の一例を示すブロック図である。
第２図は、本発明の実施の形態に係るクライアント端末の構成の一例を示すブロック図である。
第３図は、本発明の実施の形態に係るプログラム実行制御装置の構成の一例を示すブロック図である。
第４図は、本発明の実施の形態に係るプログラム実行制御装置の機能の一例を示すブロック図である。
第５図は、プログラム実行時におけるＯＳの処理の一例を示すフローチャートである。
第６図は、プログラム実行時におけるプログラム実行制御装置の処理の一例を示すフローチャートである。
【発明を実施するための最良の形態】  以下、本発明の実施の形態について図面を参照して詳細に説明する。第１図は、本発明の実施の形態に係るプログラム実行制御システムの構成の一例を示すブロック図である。第１図に示すように、このプログラム実行制御システムは、ネットワーク３で接続されたサーバ１とクライアント端末２で構成される。サーバ１とクライアント端末２はネットワーク３を介してデータの送受信を行う。本実施の形態では、クライアント端末２としてＰＣを用いて説明する。第１図には簡単のため、１台のクライアント端末２を図示しているが、ネットワーク３には複数台のクライアント端末２が接続されている。また、サーバ１とクライアント端末２は、通信を行う際に、互いに信頼できる相手か否かを確認する相互認証を行い、その後サーバ１とクライアント端末２の間で暗号化通信路を用いた通信を行う。
次に、クライアント端末２について説明する。第２図は、クライアント端末の構成の一例を示すブロック図である。第２図に示すように、このクライアント端末２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、プログラム実行制御装置１２と、主記憶装置１３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１４と、二次記憶装置１５と、ディスプレイ１６と、キーボード１７と、ネットワークインタフェース１８から構成される。プログラム実行制御装置１２と主記憶装置１３とＩ／Ｏ１４はシステムバスを介してＣＰＵ１１と接続されており、二次記憶装置１５とディスプレイ１６とキーボード１７とネットワークインタフェース１８はＩ／Ｏ１４と接続されている。
ＣＰＵ１１は、ＯＳやプログラムの実行を行う。プログラム実行制御装置１２は、実行するプログラムの復号や判定等を行う。主記憶装置１３は、ＯＳや各種プログラムが動作するための記憶装置であり、例えばメモリで構成される。二次記憶装置１５は、クライアント端末２で実行されるＯＳや各種プログラム等を格納するための記憶装置であり、例えばハードディスクドライブで構成される。ディスプレイ１６は、ＣＰＵ１１の指示に従って表示を行う。キーボード１７は、ユーザからの入力を受け付け、ＣＰＵ１１出力する。ネットワークインタフェース１８は、ネットワーク３で接続されたサーバ１との間でプログラムやデータの入出力を行う。
次に、プログラム実行制御装置１２について説明する。第３図は、プログラム実行制御装置の構成の一例を示すブロック図である。第３図に示すように、このプログラム実行制御装置１２は、ＣＰＵ２１と、主記憶装置２２と、Ｉ／Ｏ２３と、外部インタフェース２４と、二次記憶装置２５から構成される。主記憶装置２２とＩ／Ｏ２３はシステムバスを介してＣＰＵ２１に接続されており、外部インタフェース２４と二次記憶装置２５はＩ／Ｏ２３に接続されている。
ＣＰＵ２１は、プログラム実行制御装置１２内の各部の制御を行う。主記憶装置２２は、プログラム実行制御のソフトウェアが動作するための記憶装置であり、例えばメモリで構成される。外部インタフェース２４は、プログラム実行制御装置１２の外部との間でデータの入出力を行うインタフェースであり、クライアント端末２のシステムバスに接続されている。二次記憶装置２５は、プログラム実行制御装置１２で実行されるソフトウェアを格納するための記憶装置であり、例えば不揮発性メモリで構成される。
次に、プログラム実行制御装置１２の機能について説明する。第４図は、プログラム実行制御装置の機能の一例を示すブロック図である。第４図に示すように、このプログラム実行制御装置の機能は、入出力インタフェース３１と、復号部３２と、復号鍵記憶部３３と、演算ハッシュ値算出部３４と、比較部３５と、期待ハッシュテーブル記憶部３６と、演算ハッシュテーブル記憶部３７と、ゲート３８から構成される。
入出力インタフェース３１と復号部３２と演算ハッシュ値算出部３４と比較部３５とゲート３８は、二次記憶装置２５に格納されているソフトウェアであり、主記憶装置２２に読み込まれた後、ＣＰＵ２１により実行される。復号鍵記憶部３３と期待ハッシュテーブル記憶部３６と演算ハッシュテーブル記憶部３７は、主記憶装置２２または二次記憶装置２５に備えられ、それぞれ、復号鍵、期待ハッシュテーブル、演算ハッシュテーブルを格納する。ここで、入出力インタフェース３１と復号部３２と演算ハッシュ値算出部３４と比較部３５とゲート３８は、ハードウェアとして実現しても良い。
以下、サーバ１が指定した指定プログラムのみを、クライアント端末２が実行するプログラム実行制御システムについて説明する。最初に、クライアント端末２における期待ハッシュテーブルのダウンロード処理について説明する。期待ハッシュテーブルとは、サーバ１がクライアント端末２に対して実行を許可する指定プログラムの一覧のことであり、指定プログラムのプログラムＩＤと期待ハッシュ値の組からなる。プログラムＩＤとはプログラム固有のＩＤのことである。
まず、サーバ１は、ある指定プログラムに一方向性関数を適用してハッシュ値を算出し、期待ハッシュ値とする。次に、サーバ１は、ある指定プログラムのプログラムＩＤと算出された期待ハッシュ値とを組にしたエントリを作成する。サーバ１は、必要な指定プログラムの数だけエントリを作成し、期待ハッシュテーブルを作成する。次に、サーバ１は、作成した期待ハッシュテーブルをクライアント端末２へ送信する。一方、クライアント端末２において、ＯＳはサーバ１からの期待ハッシュテーブルを受信し、プログラム実行制御装置１２へ出力する。プログラム実行制御装置１２において、入出力インタフェース３１はＯＳから入力された期待ハッシュテーブルを期待ハッシュテーブル記憶部３６へ出力し、期待ハッシュテーブル記憶部３６は期待ハッシュテーブルを格納する。以上のように、クライアント端末２における期待ハッシュテーブルのダウンロード処理は行われる。
次に、クライアント端末２におけるプログラムのダウンロード処理について説明する。まず、サーバ１は、クライアント端末２へ送信する指定プログラムのプログラムＩＤとプログラムを結合して暗号化を行うことにより暗号済みプログラムを生成する。次に、サーバ１は、暗号済みプログラムをクライアント端末２へ送信する。一方、クライアント端末２において、ＯＳはサーバ１からの暗号済みプログラムを受信し、クライアント端末２の二次記憶装置１５へ格納する。以上のように、クライアント端末２におけるプログラムのダウンロード処理は行われる。
次に、クライアント端末２におけるプログラムの実行処理についてフローチャートを用いて説明する。第５図は、プログラム実行時におけるＯＳの処理の一例を示すフローチャートである。第６図は、プログラム実行時におけるプログラム実行制御装置の処理の一例を示すフローチャートである。まず、ユーザは、キーボード１７を用いてプログラムの実行を指示する。ＯＳは、キーボード１７により指定された暗号済みプログラムを二次記憶装置１５から取り出してプログラム実行制御装置１２へ出力する（Ｓ１）。ここで、サーバ１から受信した暗号済みプログラムを二次記憶装置１５に格納せずに、直接、プログラム実行制御装置１２へ出力しても良い。
プログラム実行制御装置１２において、ＯＳからの暗号済みプログラムは、入出力インタフェース３１へ入力される（Ｓ１１）。入出力インタフェース３１は、暗号済みプログラムを復号部３２へ出力し、復号部３２は復号鍵記憶部３３の復号鍵を用いて暗号済みプログラムを復号して、復号済みプログラムと復号済みプログラムのプログラムＩＤを生成する（Ｓ１２）。ここで、復号鍵は予めサーバ１等の外部から取得され、復号鍵記憶部３３へ格納されている。復号済みプログラムはゲート３８と演算ハッシュ値算出部３４へ出力され、復号済みプログラムのプログラムＩＤは期待ハッシュテーブル記憶部３６と演算ハッシュテーブル記憶部３７へ出力される。
演算ハッシュ値算出部３４は、復号済みプログラムに一方向性関数を適用してハッシュ値を算出し、演算ハッシュ値とする（Ｓ１３）。演算ハッシュ値は、比較部３５と演算ハッシュテーブル記憶部３７へ出力される。比較部３５は、復号済みプログラムのプログラムＩＤに対応する期待ハッシュ値を期待ハッシュテーブル記憶部３６から取得し（Ｓ１４）、期待ハッシュ値と演算ハッシュ値との比較を行い、期待ハッシュ値と演算ハッシュ値が一致するか否かの判断を行う（Ｓ１５）。
期待ハッシュ値と演算ハッシュ値が一致した場合（Ｓ１５，Ｙ）、演算ハッシュテーブル記憶部３７は、演算ハッシュテーブルの未使用エントリに、復号済みプログラムのプログラムＩＤと演算ハッシュ値とを組にして格納するとともに、格納したエントリのエントリ番号をゲート３８へ出力する（Ｓ１６）。ゲート３８は、エントリ番号と復号済みプログラムを結合し、入出力インタフェース３１を介してＯＳへ出力し（Ｓ１７）、このフローを終了する。一方、期待ハッシュ値と演算ハッシュ値が一致しなかった場合（Ｓ１５，Ｎ）、ゲート３８はエラーを、入出力インタフェース３１を介してＯＳへ出力し（Ｓ１８）、このフローを終了する。
一方、暗号済みプログラムをプログラム実行制御装置１２へ出力したＯＳが、エントリ番号と復号済みプログラムをプログラム実行制御装置１２から入力された場合（Ｓ２，Ｙ）、ＯＳは、プロセス配置用メモリの獲得、プロセスの配置、及びプロセステーブルの獲得、管理情報の設定を行い（Ｓ３）、プロセステーブルへエントリ番号を格納する（Ｓ４）。その後ＯＳは、復号済みプログラムの実行を行い（Ｓ５）、このフローを終了する。暗号済みプログラムをプログラム実行制御装置１２へ出力したＯＳが、エラーをプログラム実行制御装置１２から入力された場合（Ｓ２，Ｎ）、プログラムの実行を行わずに、このフローを終了する。以上のように、クライアント端末２におけるプログラムの実行処理は行われる。ＯＳはプログラムの実行前にプログラムをプログラム実行制御装置へ渡すことにより、サーバにより実行を許可された指定プログラムのみを実行することができる。
次に、プログラムの実行終了処理について説明する。ＯＳは実行中の復号済みプログラムの終了処理を行う際に、実行中の復号済みプログラムに対応するエントリ番号をプログラム実行制御装置１２へ出力し、演算ハッシュテーブルのエントリの削除を依頼する。次に、ＯＳはプロセス配置用メモリ、プロセステーブルの解放を行う。
プログラム実行制御装置１２の入出力インタフェース３１は、ＯＳから入力されたエントリ番号を演算ハッシュテーブル記憶部３７へ出力する。演算ハッシュテーブル記憶部３７は、入力されたエントリ番号を削除し、「未使用」とマークする。これは、例えば入力されたエントリ番号に対応するエントリ内をゼロクリアすることで実現される。以上のように、クライアント端末２におけるプログラムの実行終了処理は行われる。このプログラムの実行終了処理を行うことにより、プログラム実行制御装置１２の演算ハッシュテーブル記憶部３７には、現在実行中の復号済みプログラムのプログラムＩＤと演算ハッシュ値の組が格納されたエントリのみが記憶される。
次に、サーバ１におけるプログラムの実行確認処理について説明する。まず、サーバ１は演算ハッシュテーブル３７内の全てのエントリ、または演算ハッシュテーブル３７内の一部のエントリの取得要求をクライアント端末２へ送信する。
一方、クライアント端末２において、ＯＳはサーバ１からの演算ハッシュテーブルの取得要求を受信すると、演算ハッシュテーブルの取得要求をプログラム実行制御装置１２へ出力する。プログラム実行制御装置１２において、演算ハッシュテーブル記憶部３７は、入出力インタフェース３１を介して演算ハッシュテーブルの取得要求を受け取る。演算ハッシュテーブル記憶部３７は、演算ハッシュテーブルの取得要求に従って演算ハッシュテーブルのうち指定されたエントリを、入出力インタフェース３１を介してＯＳへ出力する。ＯＳは、指定されたエントリをサーバ１へ送信する。エントリを受信したサーバ１は、クライアント端末２において現在実行中の復号済みプログラムの一覧を確認することができる。以上のように、サーバ１におけるプログラムの実行確認処理は行われる。
なお、本実施の形態では、サーバ側で指定プログラムを暗号化した暗号済みプログラムを送信し、クライアント端末側で受信した暗号済みプログラムを復号して実行する構成としたが、本発明に係るプログラム実行制御装置は、暗号化されていないプログラムにも対応することができる。その場合、第４図に示した復号部３２と復号鍵記憶部３３は不要となる。また、本実施の形態では、サーバ１が期待ハッシュテーブルと暗号済みプログラムをクライアント端末２へ送信するとしたが、期待ハッシュテーブルと暗号済みプログラムは、可搬記録媒体等により外部からクライアント端末２へ入力されても良い。
【産業上の利用の可能性】
以上説明したように本発明によれば、クライアント端末はサーバにより認証された正当なプログラムだけを動作させることができるとともに、ソフトウェアではなくハードウェアでプログラムの実行の許可および拒絶の制御を行うことで高いセキュリティレベルを保証できる。さらに、現在実行中のプログラムの一覧を演算ハッシュテーブルとしてクライアント端末のハードウェアが安全に保持することにより、サーバはクライアント端末におけるプログラムの動作状況を確実に取得することができる。
【図１】
2004053664.tif 000003
【図２】
2004053664.tif 000004
【図３】
2004053664.tif 000005
【図４】
2004053664.tif 000006
【図５】
2004053664.tif 000007
【図６】
2004053664.tif 000008
【手続補正書】
【提出日】平成16年12月15日(2004.12.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力することができる入力インタフェースと、
前記入力プログラムに所定の関数を適用して演算値を得る関数演算部と、
前記期待値テーブル内の期待値のうち前記入力プログラムの識別子に対応する前記期待値と前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、前記入力プログラムを外部へ出力する出力インタフェースと、
を備えてなるプログラム実行制御装置。
【請求項２】
請求項１に記載のプログラム実行制御装置において、
前記所定の関数は一方向性関数であり、前記期待値および前記演算値はハッシュ値であることを特徴とするプログラム実行制御装置。
【請求項３】
請求項１に記載のプログラム実行制御装置において、
実行中の前記入力プログラムの識別子と演算値とからなる組を少なくとも１組記憶する演算値テーブル記憶部を備え、
外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力することを特徴とするプログラム実行制御装置。
【請求項４】
請求項１に記載のプログラム実行制御装置を用いるＯＳであって、
前記プログラム実行制御装置へ前記入力プログラムを入力し、前記プログラム実行制御装置から前記入力プログラムを出力された場合に、前記入力プログラムを実行するＯＳ。
【請求項５】
請求項１に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部から入力された前記入力プログラムを前記プログラム実行制御装置へ入力し、前記プログラム実行制御装置から前記入力プログラムが出力された場合に、前記入力プログラムを実行するクライアント端末。
【請求項６】
請求項３に記載のプログラム実行制御装置を備えたクライアント端末であって、
外部からの要求に従って前記入力プログラムの識別子と演算値とからなる組を前記外部へ出力するクライアント端末。
【請求項７】
請求項５に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
予め前記クライアント端末へ前記指定プログラムの識別子と期待値とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバ。
【請求項８】
請求項６に記載のクライアント端末とネットワークを介して接続されることができるサーバであって、
前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値とからなる組に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するサーバ。
【請求項９】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求項５に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、予め前記クライアント端末へ前記指定プログラムの期待値と識別子とからなる組を送信し、必要に応じて前記クライアント端末へ前記入力プログラムを送信するサーバと、
を備えてなるプログラム実行制御システム。
【請求項１０】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御システムであって、
請求項６に記載のクライアント端末と、
該クライアント端末とネットワークを介して接続されることができ、前記クライアント端末において実行中のプログラムの識別子と演算値とからなる組の要求を前記クライアント端末へ送信し、受信した識別子と演算値に基づいて前記クライアント端末で実行中の前記入力プログラムを確認するサーバと、
を備えてなるプログラム実行制御システム。
【請求項１１】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御方法。
【請求項１２】
予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を外部から入力するステップと、
前記入力プログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記入力プログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記入力プログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御プログラム。
【請求項１３】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御装置であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶する期待値テーブル記憶部と、
予め入力された復号鍵を記憶する復号鍵記憶部と、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力することができる入力インタフェースと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成する復号部と、
前記復号済みプログラムに所定の関数を適用して演算値を得る関数演算部と、
前記期待値テーブル内の前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行う比較部と、
該比較結果が一致した場合に、前記インタフェースを介して前記復号済みプログラムを外部へ出力させる出力インタフェースと、
を備えてなるプログラム実行制御装置。
【請求項１４】
予め指定された指定プログラムのみの実行を許可するプログラム実行制御方法であって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御方法。
【請求項１５】
予め指定された指定プログラムのみをコンピュータに実行させるために、コンピュータにより読取可能な媒体に記憶されたプログラム実行制御プログラムであって、
予め前記指定プログラムに所定の関数を適用して得られる期待値と前記指定プログラムの識別子とからなる組を少なくとも１組記憶するステップと、
予め入力された復号鍵を記憶するステップと、
入力プログラムと該入力プログラムの識別子とからなる組を暗号化した暗号済みプログラムを外部から入力するステップと、
前記復号鍵を用いて前記暗号済みプログラムの復号を行い、復号済みプログラムと該復号済みプログラムの識別子を生成するステップと、
前記復号済みプログラムに所定の関数を適用して演算値を得るステップと、
前記期待値と識別子とからなる組のうち、前記復号済みプログラムの識別子に対応する前記期待値と前記関数演算部から得られる前記演算値との比較を行うステップと、
前記比較により一致と判断された場合に、前記復号済みプログラムを外部へ出力するステップと、
を備えてなるプログラム実行制御プログラム。
【国際調査報告】
2004053664.tif 000009
2004053664.tif 000010