説明

電子装置にプログラム状態データをセキュアに記憶するための方法

【課題】電子装置にプログラム状態データをセキュアに記憶する方法を提供する。
【解決手段】本発明は、電子装置(100)の実行環境(110)へのプログラム情報が得られる方法に係る。プログラム情報は、少なくともプログラムコード(121)を含む。プログラム情報及び装置特有のシークレット値(114)のキーが計算される。このキーを使用して、実行環境(110)においてプログラム特有の状態データ(170)を解読し、そして実行の後に変更された状態データを暗号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子装置のセキュリティに係る。より詳細には、本発明は、電子装置にプログラム状態データをセキュアに記憶するための方法に係る。
【背景技術】
【0002】
全てのコンピュータプログラム及びアプリケーションが操作のための潜在的なターゲットである世界では、ユーザが使用しているプログラムが、最初にインストール又はダウンロードされたときのままであるよう確保して、ユーザが休息をとれることが必要である。しかしながら、プログラムは、例えば、情報を収集してインターネットへ漏洩する同様に見え且つ感じるプログラムに置き換えられる危険性がある。又、ソフトウェア及びデジタルメディアの売主は、無断配布及び製品改ざんに伴う危険性も悟っている。コンピュータプログラムを使用して実在の資産を管理している場合には危険性が特に顕著である。
【0003】
益々多くの移動装置及びコンピューティング装置に、信頼性ある環境、即ちセキュアなプログラム実行環境が設けられつつある。信頼性ある環境は、装置特有の又はインポートされたシークレットを取り扱うアプリケーションを実行するのに使用される。信頼性ある環境におけるデータは、デジタル権利の管理及びコピー保護を実施するのに使用できる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、既存の信頼性ある環境における問題は、プログラム及びデータが、信頼性ある環境の所有者との協働において記憶され、更新され且つ読み取られることである。所有者は、装置製造者、サービスプロバイダー(xSP)又はネットワークオペレータである。新たな特徴及びプログラムの追加は、信頼性ある環境の所有者からの検証を必要とする。第三者が、信頼性ある環境の利点を利用して、多数の信頼性ある第三者プログラムの基礎を与えることのできる解決策を得ることができれば有益である。
【課題を解決するための手段】
【0005】
本発明は、電子装置に含まれる実行環境へのプログラム情報を得るステップであって、前記プログラム情報が少なくともプログラムコードを含むものであるステップと、前記プログラム情報の少なくとも一部分及び前記電子装置特有のシークレット値のコンフィデンシャルキーを計算するステップと、前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用するステップであって、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含むようなステップと、を備えた方法に係る。
【0006】
又、本発明は、少なくともプログラムコードを含むプログラム情報を得、前記プログラム情報の少なくとも一部分及び電子装置特有のシークレット値のコンフィデンシャルキーを計算し、そして前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用し、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含む、というように構成された実行環境を備えた電子装置にも係る。
【0007】
又、本発明は、少なくともプログラムコードを含むプログラム情報を得る手段と、前記プログラム情報の少なくとも一部分及び電子装置特有のシークレット値のコンフィデンシャルキーを計算する手段と、前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用する手段であって、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含むような手段と、を備えた電子装置にも係る。
【0008】
又、本発明は、データ処理システムにて実行されるときに次のステップ、即ち少なくともプログラムコードを含むプログラム情報を得るステップと、前記プログラム情報の少なくとも一部分及び電子装置特有のシークレット値のコンフィデンシャルキーを計算するステップ、及び前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用するステップであって、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含むようなステップ、を遂行するためのコードを備えたコンピュータプログラムにも係る。
【0009】
本発明の一実施形態では、前記電子装置特有のシークレット値は、前記電子装置特有のマスターシークレット値から得られる。コンフィデンシャルキーの計算に使用するためのシークレット値は、実行環境においてマスターシークレット値からの多様化により得られる。この多様化は、例えば、プログラムコードのようなプログラム情報のハッシュを計算し、そしてこのハッシュをマスターシークレット値に連結することにより遂行することができる。その際に、実行環境は、連結されたハッシュ及びマスターシークレット値を引数として一方向ファンクションを計算し、そして多様化されたシークレット値、即ち電子装置特有のシークレット値を得る。
【0010】
本発明の一実施形態では、電子装置内の実行環境は、第2入力データエレメント及び前記第1入力データエレメントで前記プログラムコードを実行して、前記実行環境において第2出力データエレメントを発生するように構成される。実行環境は、前記第2入力データエレメント、前記第2出力データエレメント、及び前記プログラム情報の第2ハッシュを計算する。その際に、実行環境は、第2プライベートキーで第2ハッシュを暗号化して、結果シグネチャーを発生し、前記第2プライベートキーは、前記実行環境に関連付けられる。
【0011】
本発明の一実施形態では、電子装置と通信するように構成されたネットワークノードへのプログラム情報が得られる。このネットワークノードは、第2入力データエレメントを発生する。又、ネットワークノードは、プログラム情報及び前記第2入力データエレメントを前記電子装置に与える。ネットワークノードは、前記電子装置から第2出力データエレメントを得て、結果シグネチャーを検証し、前記プログラム情報に含まれたプログラムコードが前記電子装置において実行されたことを決定する。
【0012】
本発明の一実施形態では、ネットワークノードは、前記第2出力データエレメントから制御情報を抽出し、そして前記制御情報で装置を制御する。この装置は、ネットワークノードに直接接続されてもよい。この装置は、例えば、ロック又はアラームシステムのようなセキュリティ装置でよい。
【0013】
本発明の一実施形態では、電子装置におけるプロバイダーエンティティは、前記プログラム情報において、プログラムコード、第1パブリックキー、プログラム名、バージョン番号及びシグネチャーを前記実行環境に与える。実行環境は、第1プライベートキーに関連した前記第1パブリックキーで前記シグネチャーをチェックする。実行環境は、少なくとも、前記第1パブリックキー、前記プログラム名、及び前記バージョン番号から第1ハッシュを計算する。プロバイダーエンティティは、前記第1入力情報エレメントを、前記プログラムコードの実行のために前記実行環境に与える。実行環境は、前記第1ハッシュ及び前記電子装置特有の前記シークレット値から一方向ファンクションでコンフィデンシャルキーを計算する。実行環境は、前記第1入力情報エレメントを前記コンフィデンシャルキーで解読し、そして前記第1情報エレメントを変更する。最終的に、実行環境は、前記第1出力情報エレメントを前記コンフィデンシャルキーで暗号化する。
【0014】
本発明の一実施形態では、プロバイダーエンティティは、前記プログラムコードを得、前記プログラムコードに前記第1パブリックキー、前記プログラム名及び前記バージョン番号を設けて、第2のデータオブジェクトを発生すると共に、前記第2データオブジェクトに前記第1パブリックキーでサインして、前記シグネチャーを得るように構成される。これらのタスクは、電子装置と通信するネットワークノードに設けることもできる。
【0015】
本発明の一実施形態では、第1入力データエレメントは、前記プログラムコードに関連した状態情報を備えている。
【0016】
本発明の一実施形態では、コンフィデンシャルキーは、シンメトリーのキーである。又、本発明の一実施形態では、コンフィデンシャルキーは、プライベートキー及びパブリックキーの対であり、暗号化は、プライベートキーで行われ、解読は、パブリックキーで行われ、或いはその逆のことも言える。
【0017】
本発明の一実施形態では、実行環境は、移動ノードにおけるセキュアな環境である。
【0018】
本発明の一実施形態では、実行環境は、セキュアな環境であり、例えば、移動ノードである。
【0019】
本発明の一実施形態では、前記移動ノードは、移動通信システムにおける移動ステーションである。
【0020】
本発明の一実施形態では、前記移動ノードは、移動ステーション又は一般的に移動ターミナルを含む。本発明の一実施形態では、移動通信システムは、移動通信グローバルシステム(GSM)ネットワーク及びユニバーサル移動テレコミュニケーションシステム(UMTS)ネットワークの少なくとも1つを含む。又、本発明の一実施形態では、システムは、ワイヤレスローカルエリアネットワーク(WLAN)を含む。本発明の一実施形態では、システムは、マイクロ波アクセス用ワールドワイド相互運用(WiMAX)ネットワークも含む。又、本発明の一実施形態では、移動ノードは、例えば、異なるアクセス形式をサポートするための二重モード又はマルチモード機能を伴うGSM移動ステーション又はUMTS移動ステーションでよい。
【0021】
本発明の一実施形態では、コンピュータプログラムがコンピュータ読み取り可能な媒体に記憶される。コンピュータ読み取り可能な媒体は、取り外し可能なメモリカード、磁気ディスク、ホログラフィックメモリ、光学的ディスク又は磁気テープでよい。
【0022】
本発明の一実施形態では、電子装置の実行環境へのプログラム情報が得られる。プログラム情報は、少なくともプログラムコードを含む。キーは、プログラム情報及び装置特有のシークレット値で計算される。キーは、プログラムコード実行のために実行環境においてプログラム特有の状態データを解読するのに使用される。キーは、実行の後に、変更された状態データを暗号化するのに使用される。
【0023】
以上に述べた本発明の実施形態は、互いにある組み合わせで使用されてもよい。多数の実施形態を一緒に組み合わせて、本発明の更に別の実施形態を形成してもよい。本発明に係る方法、システム、電子装置又はコンピュータプログラムは、以上に述べた本発明の実施形態の少なくとも1つを含むことができる。
【0024】
本発明の利益は、実行環境に対して与えられるプログラムコードのための改良されたセキュリティ、及びセキュアなアプリケーションのためのソフトウェア開発における改良された融通性に関連している。
【0025】
本発明を更に理解するために含まれ本明細書の一部分を構成する添付図面は、本発明の実施形態を示すと共に、本発明の原理を説明する上で役立つ記述を伴う。
【図面の簡単な説明】
【0026】
【図1】本発明の一実施形態におけるセキュアな実行環境を含む電子装置を示すブロック図である。
【図2】本発明の一実施形態においてプログラムコードからハッシュを計算するセキュアな実行環境を含む電子装置を示すブロック図である。
【図3】本発明の一実施形態におけるリモート装置のセキュアな制御を示すブロック図である。
【図4】本発明の一実施形態におけるセキュアなプログラム実行のための方法を示すフローチャートである。
【図5】本発明の一実施形態における電子装置を示すブロック図である。
【発明を実施するための形態】
【0027】
以下、添付図面に示された本発明の実施形態を詳細に説明する。
【0028】
図1は、本発明の一実施形態におけるセキュアな実行環境を含む電子装置を示すブロック図である。図1には、電子装置100が示されている。この電子装置100は、セキュアな実行環境110及びプロバイダーエンティティ112を備えている。本発明の一実施形態では、プロバイダーエンティティ112は、電子装置100とは個別であり、リモートノード(図示せず)において実行される。プロバイダーエンティティ112には、少なくとも1つのプログラムレコード、例えば、プログラムレコード120、130及び140が記憶される。プログラムレコード120は、コンピュータプログラムコード121、パブリックキー122、プログラム名123、プログラムバージョン124、及びプログラムのデジタルシグネチャー125を含む。プログラムレコードは、電子装置100に長期間記憶されてもよいし、又はセキュアな実行環境においてプログラムレコードが実行される直前にのみネットワーク100に受け取られてもよい。プロバイダーエンティティには、入力データ150及びプログラムレコード状態170もある。プロバイダーエンティティ112は、少なくとも1つのプログラムレコードに対するプログラム状態を記憶することができる。
【0029】
図1のスタート点として、プロバイダーエンティティ112がセキュアな実行環境110において実行のためにプログラムレコード120を与える。プロバイダーエンティティ112は、プログラムコード121に、パブリックキー122、プログラム名、及びプログラムのバージョン番号124を添付して、添付プログラムコードを発生する。それ故、プロバイダーエンティティ112は、パブリックキー122に対応する第1プライベートキーを使用して添付プログラムコードにデジタルでサインし、そしてこのように形成されたシグネチャーを添付プログラムコードに更に添付して、プログラムレコード120を発生する。添付プログラムコードにデジタルでサインすることは、例えば、添付プログラムコードのメッセージダイジェストを計算し、そしてプライベートキーを使用してメッセージダイジェストを暗号化して、シグネチャーを生成することを含む。プロバイダーエンティティは、プログラムレコード120、プログラムコード121のための入力データ150、及びプログラムレコード状態170を、プログラムコード121の実行のためにセキュアな実行環境110に与える。又、プロバイダーエンティティ112は、プログラムレコード120の一部分として、又は個別データパブリックキー122として、プログラム名123及びバージョン番号124をセキュアな実行環境110に与える。本発明の一実施形態では、プロバイダーエンティティ112は、電子装置100とは異なるネットワークノードに配置される。
【0030】
セキュアな実行環境110内において、チェックファンクション101は、例えば、シグネチャー125を解読し、そしてその解読されたシグネチャーを、セキュアな実行環境110内で添付プログラムコードを使用して繰り返し計算されたメッセージダイジェストにマッチングさせることにより、パブリックキー122に対応するプライベートキーを使用してプログラムレコード120のシグネチャー125が実際に発生されるかどうか検証する。チェックファンクションが成功であると、セキュアな実行環境110は、パブリックキー122、プログラム名123及びバージョン番号124からハッシュファンクション102を計算する。ハッシュファンクション102の結果は、電子装置100の独特の装置シークレット114と共に一方向ファンクション103へ入力として与えられる。一方向ファンクション103は、プログラムレコード特有のキー180を生成する。キー180は、シンメトリーのキーでよい。キー180は、解読ファンクション104においてプログラムレコード状態170を解読するのに使用され、解読されたプログラムレコード状態171を生成する。解読ファンクション104が完了すると、実行ファンクション105は、プログラムコード121を入力データ150及び解読されたプログラムレコード状態171で実行することができる。解読されたプログラムレコード状態171は、プログラムコード121の異なる実行の間に通信される情報を含む。実行ファンクション105におけるプログラムコード121の実行中に、プログラムコード121からの出力は、出力160として収集され、そして変更されたプログラムレコード状態は、変更されたプログラムレコード状態172として取り出される。実行ファンクション105の完了後に、入力150、プログラムコード121及び出力160は、ハッシュファンクション106においてハッシュ処理されて、第2のハッシュ結果を生じさせる。この第2のハッシュ結果は、シグネチャーファンクション108において第2プライベートキー116を使用して暗号化されて、結果のシグネチャー162を発生する。プライベートキー116は、信頼性のあるパブリックキーに関係付けられる。信頼関係は、任意の手段によって形成され、例えば、第三者からの証明書によるか又は装置の物理的な所有権により形成される。結果のシグネチャー162は、第2のプライベートキー116を所有するセキュアな実行環境においてプログラムコード121の入力150を使用して出力160が発生されたという証明を与える。結果のシグネチャーは、第2のプライベートキー116に関連したパブリックキーで検証することができる。第2のプライベートキー116は、セキュアな実行環境110、並びにセキュアな実行環境110又は電子装置100の所有者に関連付けられる。変更されたプログラムレコード状態172は、暗号化ファンクション107に与えられ、これは、キー180を使用して、変更されたプログラムレコード状態172を暗号化し、新たな暗号化されたプログラムレコード状態173を発生する。この新たな暗号化されたプログラムレコード状態173は、プログラムレコード120が実行のために繰り返し与えられるまで記憶するためにプロバイダーエンティティ112へ与えられる。
【0031】
図2は、本発明の一実施形態においてプログラムコードからハッシュを計算するセキュアな実行環境を含む電子装置を示すブロック図である。図2には、電子装置200が示されている。この電子装置200は、セキュアな実行環境210及びプロバイダーエンティティ212を備えている。本発明の一実施形態では、プロバイダーエンティティ212は、電子装置200とは個別であり、リモートノード(図示せず)において実行される。プロバイダーエンティティ212には、少なくとも1つのプログラムレコード、例えば、プログラムレコード220、230及び240が記憶される。プログラムレコード220は、少なくともコンピュータプログラムコード221を含む。プロバイダーエンティティ212には、入力データ250及びプログラムレコード状態270もある。プロバイダーエンティティ212は、少なくとも1つのプログラムレコードに対してプログラム状態を記憶することができる。
【0032】
図2におけるスタート点として、プロバイダーエンティティ212がセキュアな実行環境210において実行のためにプログラムレコード220を与える。プロバイダーエンティティは、プログラムコード221を実行するために、プログラムレコード220、プログラムコード221に対する入力データ250、及びプログラムレコード状態270をセキュアな実行環境210に与える。本発明の一実施形態では、プロバイダーエンティティ212は、電子装置200とは異なるネットワークノードに配置される。
【0033】
セキュアな実行環境210は、プログラムコード221の少なくとも一部分からハッシュファンクション201を計算する。ハッシュファンクション201の結果は、電子装置200の独特の装置シークレット214と一緒に、一方向ファンクション202へ入力として与えられる。一方向ファンクション202は、プログラムレコード特有のキー280を発生する。このキー280は、シンメトリーのキーでよい。キー280は、解読ファンクション203においてプログラムレコード状態270を解読するのに使用され、解読されたプログラムレコード状態271を生成する。解読ファンクション203が完了すると、実行ファンクション204は、プログラムコード221を入力データ250及び解読されたプログラムレコード状態271で実行することができる。解読されたプログラムレコード状態271は、プログラムコード221の異なる実行の間に通信される情報を含む。実行ファンクション204におけるプログラムコード221の実行中に、プログラムコード221からの出力は、出力260として収集され、そして変更されたプログラムレコード状態は、変更されたプログラムレコード状態272として取り出される。実行ファンクション204の完了後に、入力250、プログラムコード221及び出力260は、ハッシュファンクション205においてハッシュ処理されて、第2のハッシュ結果を生じさせる。この第2のハッシュ結果は、シグネチャーファンクション207においてパブリックキー証明書に関係した第2プライベートキー216を使用して暗号化されて、結果のシグネチャー262を発生する。結果のシグネチャー162は、第2のプライベートキー216を所有するセキュアな実行環境においてプログラムコード221の入力250を使用して出力260が発生されたという証明を与える。結果のシグネチャーは、第2のプライベートキー216に関連したパブリックキーで検証することができる。第2のプライベートキー216は、セキュアな実行環境210、並びにセキュアな実行環境210又は電子装置200の所有者に関連付けられる。変更されたプログラムレコード状態272は、暗号化ファンクション206に与えられ、これは、キー280を使用して、変更されたプログラムレコード状態272を暗号化し、新たな暗号化されたプログラムレコード状態273を発生する。この新たな暗号化されたプログラムレコード状態273は、プログラムレコード220が実行のために繰り返し与えられるまで記憶するためにプロバイダーエンティティ212へ与えられる。
【0034】
図3は、本発明の一実施形態におけるリモート装置のセキュアな制御を示すブロック図である。図3には、通信システム350が示され、これは、移動ノード360、移動ネットワーク370及びインターネット380を備えている。移動ノード360の内部ファンクションは、ボックス362で示されている。移動ノード360は、通信エンティティ363、セキュアな実行環境365、及びプロバイダーエンティティ365を備えている。図3におけるスタート点として、移動ノード360は、リモートクライアント382への制御要求の発行を希望する。リモートクライアント382は、例えば、実在の資産へのアクセスを与える装置を制御する。実在の資産は、例えば、家や車である。移動ノード360は、矢印301で示すように、リモートクライアント382へ初期メッセージを送信する。この初期メッセージは、例えば、ノンス(nonce)、即ち非繰り返しランダムストリング、移動ノード360に関連したパブリックユーザアイデンティティ、及び装置のためのインストラクションを含む。初期メッセージを受け取ると、リモートクライアント382は、矢印302で示すように、移動ノード360へ認証要求を送信する。この認証要求は、少なくともノンスを更に含むチャレンジ(challenge)を含む。このチャレンジは、移動ノード360及びプロバイダーエンティティ365によって受け取られる。プロバイダーエンティティ365は、例えば、メッセージ302及び送信者の形式に基づいてプログラムレコードを選択する。プロバイダーエンティティ365は、選択されたプログラムレコード及びチャレンジを、処理のためにセキュアな実行環境364に与える。セキュアな実行環境364からの結果は、図1を参照して説明したように、入力、出力及び結果のシグネチャーを含む。出力及びシグネチャーは、矢印303で示すように、移動ノード360からリモートクライアント382に与えられる。第2のプライベートキーに関連したパブリックキーを使用してシグネチャーを検証すると、リモートクライアント382は、初期メッセージで得られるインストラクションに基づいて装置を制御する。
【0035】
図4は、本発明の一実施形態におけるセキュアなプログラム実行のための方法を示すフローチャートである。
【0036】
ステップ400において、電子装置に含まれるプロバイダーエンティティにプログラムコードが得られる。又、電子装置は、セキュアな実行環境を含むこともできる。プログラムコードは、例えば、マシンコード、バイトコード、中間言語、バーチャルマシンコード、ソースコード、その組み合わせ、又はセキュアな実行環境において処理される任意のプログラムコードでよい。
【0037】
ステップ402では、プログラムコードに、プロバイダーエンティティにおいて第1パブリックキー、プログラム名及びバージョン番号が付与される。プログラム名、バージョン番号及び第1パブリックキーは、プログラムコードのヘッダに追加することができる。又、プログラム名、バージョン番号及び第1パブリックキーは、プログラムコードに添付されてもよいし、或いはプログラムコードの実行を妨げないプログラムコードの部分に入れられてもよい。本発明の一実施形態では、プログラムコードのみが実行環境に与えられる。
【0038】
ステップ404では、前記付与されたプログラムコードは、プロバイダーエンティティにおいて、第1パブリックキーに関連した第1プライベートキーでサインされる。前記付与されたプログラムコードにデジタルでサインすることは、例えば、前記付与されたプログラムコードのメッセージダイジェストを計算し、そしてプライベートキーを使用してメッセージダイジェストを暗号化して、シグネチャーを生成することを含む。このシグネチャーも、プログラムコードに付与される。それにより最終的に得られる前記付与されたプログラムコードは、プログラムレコードと称される。
【0039】
ステップ406において、このプログラムレコードは、暗号化されたプログラムレコード状態及び入力データと一緒に、プロバイダーエンティティからセキュアな実行環境に与えられる。このように与えられることは、プロバイダーエンティティ及びセキュアな実行環境が異なるノードにある場合にセキュアな実行環境を含む第2のネットワークノードへプログラムレコードを送信することを含む。プログラムレコード及びそれに関連した入力データ並びに暗号化されたプログラムレコード状態は、1つの手順、ファンクション又はメソッドコールで、或いは多数の断片において与えられてもよい。入力データエレメントは、任意の数の手順、セクション、ファンクション、モジュール、メソッド、又は同等のコンピュータプログラムコードコールにおいて1つ又は多数の引数として与えられてもよい。
【0040】
ステップ408において、セキュアな実行環境は、シグネチャーがOKであるかどうかチェックし、即ち第1プライベートキーに関連したパブリックキーを使用してシグネチャーを検証する。シグネチャーがOKでない場合には、ステップ422に続く。シグネチャーの検証は、必須ではない。
【0041】
ステップ410において、セキュアな実行環境は、第1パブリックキー、プログラム名、及び任意であるが、バージョン番号の少なくとも一部分から、ハッシュ値H1を計算する。
【0042】
本発明の一実施形態では、ハッシュ値H1は、プログラムコードのみから計算される。
【0043】
ステップ412では、ハッシュ値H1及び独特の装置シークレットは、セキュアな実行環境において、一方向ファンクションでキーK(V)を計算するのに使用される。キーK(V)は、処理されるプログラムレコード特有のキーである。キーK(V)は、シンメトリーのキーでもよいし、パブリックキー及びプライベートキーの対でもよい。
【0044】
ステップ414では、キーK(V)は、セキュアな実行環境において、プロバイダーエンティティから得たプログラムレコード状態を解読するのに使用される。プログラムレコード状態は、データの改ざんを回避するために、セキュアな実行環境の外部では暗号フォーマットに維持される。
【0045】
ステップ416では、プログラムレコードからのプログラムコードが、セキュアな実行環境において実行されて、入力データ及びプログラムレコード状態が実行に対して入力として与えられるようにする。プログラムレコード状態は、プログラムコードのその後の実行と実行との間に通信される情報を含む。セキュアな実行環境におけるプログラムコードの実行は、出力データを与える。
【0046】
ステップ418では、プログラムコードの実行中に変更されたプログラムレコード状態は、セキュアな実行環境において、キーK(V)で暗号化される。その暗号化されたプログラムレコード状態は、記憶のためにプロバイダーエンティティへ戻される。
【0047】
ステップ420では、入力データ、出力データ及びプログラムコードをハッシュすることにより得たハッシュH2に第2のプライベートキーでサインすることにより、セキュアな実行環境において結果のシグネチャーが計算される。結果のシグネチャーは、出力データと一緒に、セキュアな実行環境からプロバイダーエンティティに与えられる。
【0048】
ステップ422において、セキュアな実行環境は、プロバイダーエンティティへエラーを発生する。
【0049】
本発明の一実施形態では、セキュアな実行環境は、プログラムレコード状態の記憶を行う。
【0050】
本発明の一実施形態では、プログラムレコード状態が記憶されない。
【0051】
図5は、本発明の一実施形態における電子装置を示すブロック図である。
【0052】
図5には電子装置500が示されている。この電子装置500は、プロセッサ510、二次メモリ520、一次メモリ530、ディスプレイ550、及びユーザインターフェイス560を備えている。ユーザインターフェイスは、例えば、キーパッド、キーボード、或いは制御スティック又は制御パッドでよい。又、電子装置500は、任意の数の他のプロセッサ及び任意の数の二次メモリユニットを含んでもよい。又、個別のアドレススペースを伴う他の一次メモリがあってもよい。電子装置500は、ネットワークインターフェイス540も備えている。プロセッサ510は、一次メモリ530に少なくとも部分的に記憶された多数のソフトウェアエンティティを実行する。一次メモリ530は、通信エンティティ532、プロバイダーエンティティ534、及びセキュアな実行環境536を備えている。エンティティ534及び536は、図1のエンティティ110及び112並びに図2のエンティティ210及び212と機能的に同様のものでよい。本発明の一実施形態では、プロトコルエンティティ535、536及び537の一部分は、電子装置500のオペレーティングシステムにおいて構成される。
【0053】
図5の電子装置500内のエンティティは、種々の仕方で実施されてもよい。それらは、電子装置のネーティブなオペレーティングシステムのもとで実行されるプロセスとして実施されてもよい。又、それらエンティティは、個別のプロセス又はスレッドとして実施されてもよいし、多数の異なるエンティティが1つのプロセス又はスレッドによって実施されるようにしてもよい。プロセス又はスレッドは、多数のルーチン、例えば、手順及びファンクションを含むプログラムブロックのインスタンスであってもよい。又、エンティティは、個別のコンピュータプログラムとして実施されてもよいし、或いはエンティティを実施する多数のルーチン又はファンクションより成る単一のコンピュータプログラムとして実施されてもよい。プログラムブロックは、例えば、メモリ回路、メモリカード、ホログラフィーメモリ、磁気又は光学ディスクのような少なくとも1つのコンピュータ読み取り可能な媒体に記憶される。あるエンティティは、別のエンティティにリンクされたプログラムモジュールとして実施されてもよい。又、図5のエンティティは、個別のメモリに記憶されて個別のプロセッサにより実行されてもよく、これらは、例えば、電子装置内のメッセージバス又は内部ネットワークを経て通信する。このようなメッセージバスは、例えば、周辺コンポーネント相互接続(PCI)バスである。内部ネットワークは、例えば、ローカルエリアネットワークである。又、エンティティは、ASICS又はFPGAのようなハードウェアとして部分的に又は全体的に実施されてもよい。
【0054】
当業者であれば、技術の進歩に伴い、本発明の基本的な考え方を種々の仕方で実施できることが明らかであろう。従って、本発明及びその実施形態は、上述した実施例に限定されず、特許請求の範囲内で変更することができる。
【符号の説明】
【0055】
100:電子装置
104:解読ファンクション
105:実行ファンクション
107:暗号化ファンクション
108:シグネチャーファンクション
110:セキュアな実行環境
112:プロバイダーエンティティ
116:プライベートキー
120、130、140:プログラムレコード
121:コンピュータプログラムコード
122:パブリックキー
123:プログラム名
124:プログラムバージョン
125:デジタルシグネチャー
150:入力データ
160:出力
162:結果のシグネチャー
170:プログラムレコード状態
171:解読されたプログラムレコード状態
172:変更されたプログラムレコード状態
173:暗号化されたプログラムレコード状態
180:プログラムレコード特有のキー
200:電子装置
210:セキュアな実行環境
212:プロバイダーエンティティ
220:プログラムレコード
221:コンピュータプログラムコード
250:入力データ
270:プログラムレコード状態
350:通信システム
360:移動ノード
370:移動ネットワーク
380:インターネット

【特許請求の範囲】
【請求項1】
電子装置に含まれた実行環境へのプログラム情報を得るステップであって、前記プログラム情報が少なくともプログラムコードを含むものであるステップと、
前記プログラム情報の少なくとも一部分及び前記電子装置特有のシークレット値のコンフィデンシャルキーを計算するステップと、
前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用するステップであって、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含むようなステップと、
を備えた方法。
【請求項2】
前記方法は、更に、
前記プログラムコードを第2の入力データエレメント及び前記第1の入力データエレメントで実行して、前記実行環境に第2の出力データエレメントを発生するステップと、
前記第2の入力データエレメント、前記第2の出力データエレメント及び前記プログラム情報の第2ハッシュを計算するステップと、
前記第2のハッシュを第2のプライベートキーで暗号化して結果のシグネチャーを発生するステップであって、前記第2のプライベートキーは、前記実行環境に関連したものであるステップと、
を備えた請求項1に記載の方法。
【請求項3】
前記方法は、更に、
ネットワークノードへの前記プログラム情報を得るステップと、
前記ネットワークノードに第2の入力データエレメントを発生するステップと、
前記プログラム情報及び前記第2の入力データエレメントを前記電子装置に与えるステップと、
前記電子装置から前記ネットワークノードへの第2の出力データエレメントを得るステップと、
前記ネットワークノードにおいて前記結果のシグネチャーを検証して、前記プログラム情報に含まれたプログラムコードが前記電子装置において実行されたことを決定するステップと、
を備えた請求項1又は2に記載の方法。
【請求項4】
前記方法は、更に、
前記ネットワークノードが前記第2出力データエレメントから制御情報を抽出し、
前記ネットワークノードが前記制御情報で装置を制御する、
ことを含む請求項3に記載の方法。
【請求項5】
前記方法は、更に、
前記プログラム情報において、プログラムコード、第1のパブリックキー、プログラム名、バージョン番号及びシグネチャーを前記実行環境に与えるステップと、
前記シグネチャーを、第1のプライベートキーに関連した前記第1のパブリックキーでチェックするステップと、
少なくとも前記第1のパブリックキー、前記プログラム名及び前記バージョン番号から第1のハッシュを計算するステップと、
前記プログラムコードを実行するために前記第1の入力情報エレメントを前記実行環境に与えるステップと、
前記第1のハッシュ及び前記電子装置特有の前記シークレット値からコンフィデンシャルキーを一方向ファンクションで計算するステップと、
前記第1入力情報エレメントを前記コンフィデンシャルキーで解読するステップと、
前記実行環境において前記第1情報エレメントを変更するステップと、
前記第1出力情報エレメントを前記コンフィデンシャルキーで暗号化するステップと、
を備えた請求項1から4のいずれかに記載の方法。
【請求項6】
前記方法は、更に、
前記プログラムコードを得るステップと、
前記プログラムコードに前記第2のパブリックキー、前記プログラム名及び前記バージョン番号を付与して、第2のデータオブジェクトを発生するステップと、
前記第2のデータオブジェクトに前記第1のパブリックキーでサインして、前記シグネチャーを得るステップと、
を備えた請求項5に記載の方法。
【請求項7】
前記第1入力データエレメントは、前記プログラムコードに関連した状態情報を含む、請求項5に記載の方法。
【請求項8】
前記コンフィデンシャルキーは、シンメトリーのキーである、請求項1から7のいずれかに記載の方法。
【請求項9】
前記実行環境は、移動ノードにおけるセキュアな環境である、請求項1から8のいずれかに記載の方法。
【請求項10】
少なくともプログラムコードを含むプログラム情報を得、前記プログラム情報の少なくとも一部分及び電子装置特有のシークレット値のコンフィデンシャルキーを計算し、そして前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用し、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含む、というように構成された実行環境を備えた電子装置。
【請求項11】
前記電子装置は、更に、前記実行環境が前記プログラムコードを第2の入力データエレメントで実行するように構成され、そして前記第1入力データエレメントが、前記実行環境において第2の出力データエレメントを発生し、前記第2の入力データエレメント、前記第2の出力データエレメント及び前記プログラム情報の第2ハッシュを計算し、そして前記第2ハッシュを第2のプライベートキーで暗号化して結果のシグネチャーを発生し、前記第2のプライベートキーは、前記実行環境に関連したものである、請求項10に記載の電子装置。
【請求項12】
前記電子装置は、更に、
前記プログラム情報において、プログラムコード、第1のパブリックキー、プログラム名、バージョン番号及びシグネチャーを前記実行環境に与え、前記プログラムコードを実行するために前記第1の入力情報エレメントを前記実行環境に与えるように構成されたプロバイダーエンティティを備え、
前記実行環境は、前記シグネチャーを、第1のプライベートキーに関連した前記第1のパブリックキーでチェックし、少なくとも前記第1のパブリックキー、前記プログラム名及び前記バージョン番号から第1のハッシュを計算し、前記第1のハッシュ及び前記電子装置特有の前記シークレット値から一方向ファンクションでコンフィデンシャルキーを計算し、前記第1入力情報エレメントを前記コンフィデンシャルキーで解読し、前記実行環境において前記第1情報エレメントを変更し、そして前記第1出力情報エレメントを前記コンフィデンシャルキーで暗号化する、というように構成された、請求項10又は11に記載の電子装置。
【請求項13】
前記電子装置は、更に、前記プロバイダーエンティティが、前記プログラムコードを得、前記プログラムコードに前記第2のパブリックキー、前記プログラム名及び前記バージョン番号を付与して、第2のデータオブジェクトを発生し、そして前記第2のデータオブジェクトに前記第1のパブリックキーでサインして、前記第1のデータオブジェクトを得るように構成される、請求項12に記載の電子装置。
【請求項14】
前記第1入力データエレメントは、前記プログラムコードに関連した状態情報を含む、請求項10から13のいずれかに記載の電子装置。
【請求項15】
前記コンフィデンシャルキーは、シンメトリーのキーである、請求項10から14のいずれかに記載の電子装置。
【請求項16】
前記実行環境は、移動ノードにおけるセキュアな環境である、請求項10から15のいずれかに記載の電子装置。
【請求項17】
少なくともプログラムコードを含むプログラム情報を得る手段と、
前記プログラム情報の少なくとも一部分及び電子装置特有のシークレット値のコンフィデンシャルキーを計算する手段と、
前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用する手段であって、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含むような手段と、
を備えた電子装置。
【請求項18】
コンピュータ読み取り可能な媒体にて実施されるコンピュータプログラムにおいて、
少なくともプログラムコードを含むプログラム情報を得、
前記プログラム情報の少なくとも一部分及び前記電子装置特有のシークレット値のコンフィデンシャルキーを計算し、
前記コンフィデンシャルキーをキーとして暗号法オペレーションを、前記プログラムコードへの第1入力データエレメント又は前記プログラムコードからの第1出力データエレメントより成る第1データエレメントに適用し、前記暗号法オペレーションが暗号化及び解読の少なくとも1つを含む、
ことより成る方法を実行するようにプロセッサを制御するためのコードを備えたコンピュータプログラム。
【請求項19】
前記コンピュータ読み取り可能な媒体は、取り外し可能なメモリカードである、請求項18に記載のコンピュータプログラム。
【請求項20】
前記コンピュータ読み取り可能な媒体は、磁気又は光学ディスク、或いはホログラフィーメモリである、請求項18に記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2010−514000(P2010−514000A)
【公表日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2009−540798(P2009−540798)
【出願日】平成19年12月4日(2007.12.4)
【国際出願番号】PCT/FI2007/050658
【国際公開番号】WO2008/071836
【国際公開日】平成20年6月19日(2008.6.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(398012616)ノキア コーポレイション (1,359)
【Fターム(参考)】