(57)【特許請求の範囲】
【請求項１】
ホスト装置アプリケーション上でアプリケーションをセキュアに実行するための方法であって、
前記ホスト装置によって、セキュア記憶域エレメントを含むスマートカードにアクセスするステップと、
前記ホスト装置のコンピュータプロセッサによって、前記ホスト装置上でホスト実行ランタイム環境（ＨＥＲＥ）を実行するステップと、
前記スマートカードによって、前記セキュア記憶域エレメントに常駐するセキュアエレメントランタイム環境（ＳＥＲＥ）を実行するステップとを備え、前記セキュア記憶域エレメントは、前記セキュア記憶域エレメントへのアクセスについて前記ホスト装置のユーザを認証するように構成され、
前記ＨＥＲＥによって、前記ＨＥＲＥと前記ＳＥＲＥとの間のセキュア通信セッションを開始するステップと、
前記セキュア記憶域エレメント内の、前記アプリケーションを含む、前記ＨＥＲＥの永続メモリイメージを識別するステップと、
前記永続メモリイメージを用いて、前記ＨＥＲＥがセキュアであることを検証するステップと、
前記ＨＥＲＥがセキュアであることを検証した後、前記コンピュータプロセッサによって、前記ＨＥＲＥ内の前記アプリケーションを実行するステップと、
前記ＳＥＲＥによって、前記アプリケーションの実行に基づいて前記永続メモリイメージに対して第１の複数の変更を適用するステップとを備える、方法。
【請求項２】
前記ＨＥＲＥによって前記セキュア通信セッションを介して前記セキュア記憶域エレメントから前記永続メモリイメージを取得するステップと、
前記アプリケーションを実行するステップの前に前記ホスト装置内に前記永続メモリイメージのキャッシュを作成するステップとをさらに備え、前記第１の複数の変更は、前記アプリケーションの実行中に前記キャッシュに対して行われる、請求項１に記載の方法。
【請求項３】
前記永続メモリイメージに対して前記第１の複数の変更を適用するステップは、
前記キャッシュに対応する変更ログを維持するステップと、
前記アプリケーションの実行中に前記変更ログ内に前記キャッシュに対する前記第１の複数の変更を記憶するステップと、
前記セキュア通信セッションを介して前記アプリケーションの実行後に前記ＳＥＲＥに対する前記変更ログを送信するステップと、
前記ＳＥＲＥによって、前記永続メモリイメージに対して前記第１の複数の変更を適用するステップとを含む、請求項２に記載の方法。
【請求項４】
前記永続メモリイメージに対して前記第１の複数の変更を適用した後に前記アプリケーションを再度実行するステップと、
前記アプリケーションを再度実行する一方で前記セキュア記憶域エレメント内に常駐するセッション変更ログ内に前記キャッシュに対する第２の複数の変更を記憶するステップとを備え、前記第２の複数の変更は、前記セッション変更ログにおける一連の冪等エントリとして記憶され、方法はさらに、
前記セキュア記憶域エレメント内に前記永続メモリイメージのコピーを作成するステップと、
前記永続メモリイメージの前記コピーに対して前記第２の複数の変更を適用する処理を開始するステップと、
前記処理の障害を検知するステップと、
前記障害の検知に応答して、前記永続メモリイメージの前記コピーに対して前記第２の複数の変更を再度適用するステップとをさらに備える、請求項２または３に記載の方法。
【請求項５】
前記永続メモリイメージに対して前記第１の複数の変更を適用した後に前記アプリケーションを再度実行するステップと、
前記アプリケーションを再度実行する一方で前記セキュア記憶域エレメント内に常駐するセッション変更ログ内に前記キャッシュに対する第２の複数の変更を記憶するステップと、
前記セキュア記憶域エレメント内に前記永続メモリイメージの複数のページのコピーを作成するステップと、
前記複数のページの前記コピーに対して前記第２の複数の変更を適用するステップと、
前記第２の複数の変更を適用した後に、前記セッション変更ログおよび前記複数のページの前記コピーを削除するステップとを備える、請求項２または３に記載の方法。
【請求項６】
前記アプリケーションを実行するステップは、
前記アプリケーションのセキュリティ依存セクションを識別するステップと、
前記セキュリティ依存セクションについてのチェック値を算出するステップと、
前記チェック値と前記セキュア記憶域エレメントに記憶された登録チェック値との比較を生成するステップとをさらに含み、前記チェック値と前記登録チェック値とは等しく、前記アプリケーションを実行するステップはさらに、
前記比較に基づいて前記セキュリティ依存セクションを前記ＳＥＲＥによって有効化するステップと、
前記セキュリティ依存セクションを有効化した後に前記セキュリティ依存セクションを実行するステップとをさらに含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記セキュリティ依存セクションは暗号法演算を含む、請求項６に記載の方法。
【請求項８】
前記アプリケーションのための前記永続メモリイメージのセクションを指定するステップをさらに備え、前記指定されたセクションに対して前記第１の複数の変更が適用される、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記第１の複数の変更は、永続オブジェクトに対する単一アイテムのアトミック変更を含み、前記第１の複数の変更は、前記セキュア記憶域エレメント内に常駐するセッション変更ログに記憶される、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記セキュア記憶域エレメントにアクセスするステップは、
前記ホスト装置のユーザからセキュリティ認証情報を取得するステップと、
前記セキュリティ認証情報に基づいて前記ユーザを認証するステップとを含む、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記ＳＥＲＥおよび前記ＨＥＲＥは、Ｊａｖａ  Ｃａｒｄプラットフォームのバージョンであり、前記ＨＥＲＥは、前記ＳＥＲＥに比較して、前記Ｊａｖａ  Ｃａｒｄプラットフォームの後のバージョンである、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
コンピュータプロセッサによって実行されるコンピュータ読取可能な命令を含むコンピュータプログラムであって、前記命令は、請求項１〜１１のいずれか１項に記載の方法を前記コンピュータプロセッサに実行させる、コンピュータプログラム。
【請求項１３】
アプリケーションをセキュアに実行するためのシステムであって、
コンピュータプロセッサを含むホスト装置と、
セキュア記憶域エレメントを含むとともに、前記ホスト装置に動作的に接続されるスマートカードとを備え、前記セキュア記憶域エレメントは、前記セキュア記憶域エレメントへのアクセスについて前記ホスト装置のユーザを認証するように構成され、前記システムはさらに、
前記コンピュータプロセッサ上で実行されるホスト実行ランタイム環境（ＨＥＲＥ）を備え、前記ＨＥＲＥは、
前記ＨＥＲＥと、前記セキュア記憶域エレメントに常駐するセキュアエレメントランタイム環境（ＳＥＲＥ）との間の、セキュア通信セッションを開始するように構成され、
前記セキュア記憶域エレメント内の、前記アプリケーションを含む、ＨＥＲＥの永続メモリイメージを識別するように構成され、
アプリケーションを実行するように構成され、
前記ＳＥＲＥは、さらに、前記永続メモリイメージに対して第１の複数の変更が適用されるように構成される、システム。
【請求項１４】
前記ＨＥＲＥは、さらに
前記セキュア通信セッションを介して前記セキュア記憶域エレメントから前記永続メモリイメージを取得するように構成され、
前記アプリケーションを実行する前に前記ホスト装置において前記永続メモリイメージのキャッシュを作成し、前記アプリケーションの実行中に前記キャッシュに対して前記第１の複数の変更が行われるように構成される、請求項１３に記載のシステム。
【請求項１５】
前記ＨＥＲＥは、さらに
前記キャッシュに対応する変更ログを維持するように構成され、
前記アプリケーションの実行中に、前記キャッシュに対する前記第１の複数の変更を前記変更ログに記憶するように構成され、
前記セキュア通信セッションを介し、前記アプリケーションを実行した後に前記変更ログを前記ＳＥＲＥに対して送信し、前記ＳＥＲＥによって、前記永続メモリイメージに対して前記第１の複数の変更が適用されるように構成される、請求項１４に記載のシステム。
【請求項１６】
前記ＨＥＲＥは、さらに、前記アプリケーションを再度実行するように構成され、前記ＳＥＲＥは、
前記アプリケーションが再度実行される一方で前記セキュア記憶域エレメント内にあるセッション変更ログに前記キャッシュに対する第２の複数の変更を記憶するように構成され、
前記セキュア記憶域エレメント内に前記永続メモリイメージのコピーを作成するように構成され、
前記永続メモリイメージの前記コピーに対して前記第２の複数の変更を適用する処理を開始するように構成され、
前記処理の障害を検知するように構成され、
前記障害の検知に応答して前記永続メモリイメージの前記コピーを削除するように構成される、請求項１４または１５に記載のシステム。
【請求項１７】
前記ＨＥＲＥは、さらに、前記アプリケーションを再度実行するようにさらに構成され、
前記ＳＥＲＥは、さらに
前記アプリケーションが再度実行される一方で前記セキュア記憶域エレメント内にあるセッション変更ログに前記キャッシュに対する第２の複数の変更を記憶するように構成され、
前記セキュア記憶域エレメント内に前記永続メモリイメージのコピーを作成するように構成され、
前記永続メモリイメージの前記コピーに対して前記第２の複数の変更を適用するように構成され、
前記永続メモリイメージの前記コピーに対して前記第２の複数の変更が適用された後に前記セッション変更ログおよび前記永続メモリイメージの前記コピーを削除するように構成される、請求項１４または１５に記載のシステム。
【請求項１８】
前記アプリケーションの実行は、
前記アプリケーションのセキュリティ依存セクションを識別することと、
前記セキュリティ依存セクションについてのチェック値を算出することと、
前記チェック値と前記セキュア記憶域エレメント内に記憶された登録チェック値との比較を生成することとを含み、前記チェック値と前記登録チェック値とは等しく、前記アプリケーションの実行はさらに、
前記比較に基づき、前記ＳＥＲＥによって前記セキュリティ依存セクションを有効化することと、
前記セキュリティ依存セクションを有効化した後に前記セキュリティ依存セクションを実行することとをさらに含む、請求項１３〜１７のいずれか１項に記載のシステム。
【請求項１９】
前記ＳＥＲＥおよび前記ＨＥＲＥは、Ｊａｖａ  Ｃａｒｄプラットフォームのバージョンであり、前記ＨＥＲＥは、前記ＳＥＲＥに比較して、前記Ｊａｖａ  Ｃａｒｄプラットフォームの後のバージョンである、請求項１３〜１８のいずれか１項に記載のシステム。
【請求項２０】
アプリケーションをセキュアに実行するための複数の命令を含むプログラムであって、前記複数の命令は、コンピュータプロセッサを
ホスト装置を介してセキュア記憶域エレメントを含むスマートカードにアクセスする手段と、
前記ホスト上でホスト実行ランタイム環境（ＨＥＲＥ）を実行する手段と、
前記スマートカードによって、前記セキュア記憶域エレメントに常駐するセキュアエレメントランタイム環境（ＳＥＲＥ）を実行する手段として機能させ、前記セキュア記憶域エレメントは、前記セキュア記憶域エレメントへのアクセスについて前記ホスト装置のユーザを認証するように構成され、
前記ＨＥＲＥによって、前記ＨＥＲＥと前記ＳＥＲＥとの間のセキュア通信セッションを開始する手段と、
前記セキュア記憶域エレメント内の、前記アプリケーションを含む、前記ＨＥＲＥの永続メモリイメージを識別する手段と、
前記永続メモリイメージを用いて、前記ＨＥＲＥがセキュアであることを検証する手段と、
前記ＨＥＲＥ内の前記アプリケーションを実行する手段と、
前記ＳＥＲＥによって、前記アプリケーションの実行に基づいて前記永続メモリイメージに対して第１の複数の変更を適用する手段として機能させる、プログラム。
【請求項２１】
前記ＳＥＲＥおよび前記ＨＥＲＥは、Ｊａｖａ  Ｃａｒｄプラットフォームのバージョンであり、前記ＨＥＲＥは、前記ＳＥＲＥに比較して、前記Ｊａｖａ  Ｃａｒｄプラットフォームの後のバージョンである、請求項２０に記載のプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
増え続ける要求を満たすために現代の演算装置の性能が発達するにつれ、設計者たちは既存のソフトウェアプラットフォームを全く新しい用途に適合させる取り組みを行っている。このような装置は、純粋な組み込みシステムおよびハイブリッド組み込みシステムから汎用コンピュータシステムにわたる領域に及んでいる。医療装置、スマートフォン、ネットブック、およびラップトップ型コンピュータなどの特定の用途においては、ハードウェアおよびソフトウェアの厳しい互換性要件を満たすように設計がなされている。これらの用途の多くにおいては、互換性についての考慮とセキュリティについての考慮とのバランスを絶えず変化させる必要がある。
【０００２】
既存のソフトウェアプラットフォームは、互換性のあるハードウェアと結合された場合に広範なセキュリティ機能を提供することができる。たとえば、データのカプセル化および暗号法は、セキュアマイクロコントローラを利用するモバイルオペレーティングシステムにおいて共通の機能である。ハードウェアコンポーネントも、互換性のあるソフトウェアと結合された場合に装置のセキュリティに寄与し得る。しかしながら、このような特殊なアーキテクチャに関連する設計および開発にかかる費用は相当なものとなり得る。
【０００３】
費用についての考慮に加え、セキュリティ機能は、装置の機能性および／または効率を制限し得る。同時に、一般的な電子装置において使用される組み込みシステムの多くは、汎用コンピュータの機能性をより多く組み込むように変更がなされている。たとえば、Web 2.0対応のスマートフォンおよびネットブックは、関連するセキュリティリスクを伴うことなく、デスクトップ型パーソナルコンピュータによって提供されるオンラインエクスペリエンスを模擬するものとして期待されている。設計者たちは、これらの装置の設計に大きなオープン性および機能性を組み込んでいることから、マルウェア、トロイ、ウイルス、および他のエクスプロイトによって悪用される脆弱性が導入される可能性をも高めている。結果として、設計者たちはセキュリティについての考慮と費用および機能性についての考慮とのバランスを取るという困難な課題に直面している。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
概して、ある局面において、本発明はアプリケーションを実行する方法に関する。方法は、コンピュータプロセッサを含むホスト装置を介してセキュア記憶域エレメントにアクセスするステップと、コンピュータプロセッサによってホスト装置上でホスト実行ランタイム環境（ＨＥＲＥ）を実行するステップと、セキュア記憶域エレメント内のＨＥＲＥの永続メモリイメージを識別するステップと、コンピュータプロセッサによってＨＥＲＥを使用してアプリケーションを実行するステップと、アプリケーションの実行に基づいて永続メモリイメージに対して第１の変更のセットを適用するステップとを含む。
【０００５】
概して、ある局面において、本発明はアプリケーションを実行するためのシステムに関する。システムは、コンピュータプロセッサを含むホスト装置と、ホスト装置に動作的に接続され、セキュア記憶域エレメントとを含み、セキュア記憶域エレメントは、セキュア記憶域エレメントへのアクセスについてホスト装置のユーザを認証するように構成され、システムはさらに、コンピュータプロセッサ上で実行されるホスト実行ランタイム環境（ＨＥＲＥ）を含み、ホスト実行ランタイム環境（ＨＥＲＥ）は、セキュア記憶域エレメント内のＨＥＲＥの永続メモリイメージを識別し、アプリケーションを実行するように構成され、アプリケーションの実行に基づいて第１の変更のセットがＨＥＲＥの永続メモリイメージに適用される。
【０００６】
概して、ある局面において、本発明はアプリケーションを実行するための命令を記憶する非一時的コンピュータ可読記憶媒体に関する。命令は、ホスト装置を介してセキュア記憶域エレメントにアクセスし、ホスト装置上でホスト実行ランタイム環境（ＨＥＲＥ）を実行し、セキュア記憶域エレメント内のＨＥＲＥの永続メモリイメージを識別し、ＨＥＲＥを使用するアプリケーションを実行し、アプリケーションの実行に基づいて第１の変更のセットを永続メモリイメージに適用する機能性を含む。
【０００７】
本発明の他の局面は、以下の説明および添付の図面から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】本発明の１つ以上の実施形態に基づく概略図である。
【図２】本発明の１つ以上の実施形態に基づくフローチャートである。
【図３】本発明の１つ以上の実施形態に基づくフローチャートである。
【図４】本発明の１つ以上の実施形態に基づくモバイル装置を示す図である。
【図５】本発明の１つ以上の実施形態に基づくコンピュータシステムを示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
本発明の具体的な実施形態について添付の図面を参照して説明する。様々な図面における同様のエレメントには、整合性を図るために同様の参照符号が付される。
【００１０】
本発明の実施形態についての以下の詳細な説明においては、本発明についてより十分な理解を提供するために、多くの具体的詳細が記載される。しかしながら、これらの具体的詳細なしに本発明が実施され得ることは、当業者にとって明らかとなるであろう。他の例では、説明が不必要に複雑となることを避けるために、周知の特徴については詳細に説明していない。
【００１１】
概して、本発明の実施形態は、ホスト実行ランタイム環境（ＨＥＲＥ）を使用してアプリケーションを実行するための方法およびシステムを提供する。概して、本発明の実施形態は、セキュア記憶域エレメントに動作的に接続されるホスト装置によってＨＥＲＥを実行する。セキュア記憶域エレメントは、アプリケーションを実行した結果として更新され得るＨＥＲＥの永続メモリイメージを含む。
【００１２】
図１は、本発明のある実施形態に基づくシステム（１９９）を示す。図１に示されるように、システム（１９９）は、ホスト装置（１００）、ホスト実行ランタイム環境（ＨＥＲＥ）（１０５）、永続メモリキャッシュ（１１０）、セキュア記憶域エレメント（１１５）、セキュアエレメントランタイム環境（ＳＥＲＥ）（１２０）、および永続メモリイメージ（１２５）など、複数のコンポーネントを含む。システムのコンポーネントは、同じ装置（たとえば、サーバー、メインフレーム、デスクトップ型パーソナルコンピュータ（ＰＣ）、ラップトップ、パーソナルデジタルアシスタント（ＰＤＡ）、電話、携帯電話、キオスク、ケーブルボックス、および任意の他の装置）に設置され得る、または有線および／もしくは無線セグメントを用いてネットワーク（たとえば、インターネット）によって接続される別個の装置に設置され得る。当業者は、装置上で動作する各別個のコンポーネントが２つ以上設けられてもよく、本発明の所与の実施形態の範囲においてこれらのコンポーネントを任意で組み合わせてもよいことを理解するであろう。
【００１３】
ホスト装置（１００）は、パーソナルコンピュータ（ＰＣ）、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、スマートフォン、モバイルインターネットデバイス（ＭＩＤ）、ウルトラモバイルパーソナルコンピュータ（ＵＭＰＣ）、ラップトップ、ネットトップ、ネットブック、タブレット、ホームシアターパーソナルコンピュータ（ＨＴＰＣ）、ハンドヘルドコンピュータ、ＧＰＳナビゲーション装置、自動車コンピュータシステム、Mobile Information Device Profile（ＭＩＤＰ）に準拠した装置、Connected Limited Device Configuration（ＣＬＤＣ）に準拠した装置、および／またはアプリケーションを実行できる任意の他の演算装置であり得る。
【００１４】
本発明の１つ以上の実施形態において、セキュア記憶域エレメント（１１５）は、メモリ装置またはメモリの割り当てられたセグメントであってもよい。セキュア記憶域エレメント（１１５）の例としては、セキュリティトークン、加入者識別モジュール（ＳＩＭ）カード、セキュアデジタル（ＳＤ）カード、アイロンキー（Ironkey（商標））ＵＳＢカード（アイロンキー（Ironkey）はカリフォルニア州サニーベールのアイロンキーコーポレーション（Ironkey Corporation）の商標である）、トラステッド組み込み環境（trusted embedded environment）（ＴＥＥ）内のセキュアな場所、およびホスト装置（１００）が読み取り可能な任意の永続メモリが含まれる。
【００１５】
本発明の１つ以上の実施形態において、セキュア記憶域エレメント（１１５）は、ハードウェアによるデータの暗号化および復号化、認証、認証情報管理、ならびに／またはアクセス制御を行う機能性を含む。セキュア記憶域エレメント（１１５）は、本発明の様々な実施形態に基づき、ロックアウト機能性、生体認証、耐タンパー性パッケージ化／検知、および／または様々な他のハードウェアおよびソフトウェアによるセキュリティ機構も含み得る。
【００１６】
本発明の１つ以上の実施形態において、セキュア記憶域エレメント（１１５）は、ＨＥＲＥ（１０５）の永続メモリイメージ（１２５）を含む。永続メモリイメージ（１２５）は、セキュア記憶域エレメント（１１５）内にＨＥＲＥ（１０５）を記憶する任意の形態の永続メモリ（電気的消去書き込み可能読み出し専用メモリ（ＥＥＰＲＯＭ））であり得る。
【００１７】
図１についての考察を続けると、永続メモリキャッシュ（１１０）は、本発明の１つ以上の実施形態に基づき、ホスト装置（１００）に常駐する永続メモリイメージ（１２５）のキャッシュである。永続メモリキャッシュ（１１０）は、ホスト装置（１００）内の１つ以上の永続もしくは非永続（すなわち、揮発性）のメモリ装置（たとえば、ランダムアクセスメモリ）に常駐し得る、および／またはホスト装置（１００）に動作的に接続され得る。本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、永続メモリキャッシュ（１１０）として使用される永続メモリイメージ（１２５）のコピーをセキュア通信セッションを介してＨＥＲＥ（１０５）に送信するように構成される。
【００１８】
ホスト実行ランタイム環境（ＨＥＲＥ）（１０５）は、ホスト装置（１００）上でアプリケーションを実行することが可能な任意のソフトウェアであり得る。ＨＥＲＥ（１０５）の例として、オラクルコーポレーション（Oracle Corporation）のJava（商標）ランタイム環境（ＪＲＥ）、オラクルコーポレーションのJava Card（商標）ランタイム環境（ＪＣＲＥ）、ノキアコーポレーション（Nokia Corporation）のシンビアン（Symbian）オペレーティングシステム、アップルコーポレーション（Apple Corporation）のiOS（商標）、グーグルコーポレーション（Google Corporation）のアンドロイド（Android）オペレーティングシステム、および／またはアプリケーションを実行することが可能な任意のオペレーティングシステムもしくはランタイム環境が含まれ得る。
【００１９】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、所定時に永続メモリキャッシュ（１１０）を作成するように構成される。たとえば、永続メモリキャッシュ（１１０）は、ホスト装置（１００）の起動時またはホスト装置（１００）におけるＨＥＲＥ（１０５）の実行時に作成され得る。ＨＥＲＥ（１０５）は、本発明の様々な実施形態に基づき、永続メモリキャッシュ（１１０）をいつでも作成、同期、および／または削除するように構成され得る。
【００２０】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、永続メモリイメージ（１２５）を永続メモリキャッシュ（１１０）と同期させるように構成される。同期化は、永続オブジェクトに対する単一アイテムのアトミックな変更およびコミット済みトランザクションの永続性を見込んで行われ得る。本発明の１つ以上の実施形態において、任意のトランザクション外での永続オブジェクトに対する単一アイテムのアトミックな変更は、永続メモリイメージ（１２５）および永続メモリキャッシュ（１１０）の両方について即時に行われる。
【００２１】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、未だ永続メモリイメージ（１２５）に適用されていない永続メモリキャッシュ（１１０）への変更を含む１つ以上の変更ログを維持する。最初に、進行中のトランザクションの範囲内の変更は、永続メモリキャッシュ（１１０）に対して行われ、変更ログに記録され得る。本発明の１つ以上の実施形態において、トランザクションがコミットされると、変更ログが永続メモリイメージ（１２５）に適用される。ＨＥＲＥ（１０５）は、本発明の１つ以上の実施形態に基づき、アプリケーションの実行毎、トランザクション毎、セッション毎、および／または永続メモリキャッシュ（１１０）の更新毎に変更ログを維持し得る。本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）内に変更ログを記憶する。
【００２２】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、永続メモリキャッシュ（１１０）を維持するためにホスト装置（１００）のキャッシング機構をバイパスするように、およびここに記載されるような永続メモリイメージ（１２５）に変更を適用する１つ以上の方法を適用するように構成される。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、永続メモリキャッシュ（１１０）と永続メモリイメージ（１２５）とを強制的に同期させるためにホスト装置（１００）のキャッシング機構を利用するように構成される。
【００２３】
図１についての考察を続けると、ＨＥＲＥ（１０５）は、本発明の１つ以上の実施形態に基づき、永続メモリイメージ（１２５）の破損および／または非同期状態を検知するように構成される。破損および／または非同期状態は、ＨＥＲＥ（１０５）の障害、ＳＥＲＥ（１２０）の障害、ホスト装置（１００）のオペレーティングシステムの障害、ユーザによるセキュア記憶域エレメント（１１５）の突然の撤去、ならびに／またはキャッシュ、キャッシュログ、セッションキャッシュログ、および／もしくは永続メモリイメージ（１２５）の整合性の維持に関連する処理もしくはコンポーネントの障害によって起こり得る。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）および／またはホスト装置（１００）は、起動時に同期化チェックを行うように構成される。同期化チェックの結果として、永続メモリイメージ（１２５）の破損および／または非同期状態が識別された場合、セキュア記憶域エレメント（１１５）は、１つ以上の予め定められたセキュリティ検証および／または回復処理を行うことができるようになるまで、さらなるアクセスから遮断される。
【００２４】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、永続メモリキャッシュ（１１０）に対して部分的に適用されたトランザクション変更および／または変更ログを障害の検知に応答して戻すように構成される。また、ＨＥＲＥ（１０５）は、永続メモリキャッシュ（１１０）の破損が検知された場合に永続メモリキャッシュ（１１０）を再度作成するように構成され得る。本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、永続メモリキャッシュ（１１０）についての同期化動作を追跡し、最後の変更ログが適切に記録されたことを検証するように構成される。
【００２５】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、セキュア記憶域エレメント（１１５）から最後のセッション変更ログを回収し、次のプラットフォームのリセット時にそれを適用するように構成される。代替的に、ＳＥＲＥ（１２０）は、本発明の１つ以上の実施形態に基づき、ＨＥＲＥ（１０５）の実行と同時に永続メモリイメージ（１２５）に対して直接的に変更ログを適用し得る。
【００２６】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、ホスト装置（１００）と結合された場合に、１つ以上のセキュリティ機能を含む。セキュリティ機能の例としては、データのカプセル化、アプリケーションファイヤーウォール、暗号法、および／またはＨＥＲＥ（１０５）によって提供される任意の他のセキュリティ機能が含まれる。本発明の１つ以上の実施形態において、ホスト装置（１００）は、ＨＥＲＥ（１０５）によってセキュアである（すなわち、１つ以上のセキュリティ機能の整合性を保証している、または１つ以上のセキュリティ機能についてのサポートを保証している）とみなされるためには、互換性基準のセットを満たさなければならない。互換性基準の例としては、ハードウェアによる暗号化のサポート（たとえば、プログラムおよび／またはデータメモリの暗号化、暗号化キーの自動生成など）、アクセス防止、コピー／ロック保護、組み込みソフトウェアセキュリティ（たとえば、ファームウェア／メモリセキュリティ、トラステッド組み込み環境（ＴＥＥ）のサポートなど）、ハードウェアコンポーネント要件、性能要件（たとえば、ＣＰＵ、マイクロコントローラ、マイクロプロセッサベンチマーク要件、ランダムアクセスメモリ（ＲＡＭ）、ＳＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、もしくは他のメモリの容量要件）、メモリアドレス割当要件、アーキテクチャ設計要件（たとえば、別個のアドレスおよびデータバス）、ハードウェア／メモリの自己破壊性能、タンパー保護、データメモリとプログラムメモリとの分離などが含まれる。
【００２７】
互換性基準としては、標準化機構によって定められる１つ以上の標準に準拠していることも含まれる。標準の例としては、ＪＥＤＥＣ半導体技術協会によって維持されるJEDEC Standard 100B.01およびJESC21-Cが含まれる。
【００２８】
図１についての考察を続けると、ホスト装置（１００）は、本発明の１つ以上の実施形態に基づき、ＨＥＲＥ（１０５）の１つ以上の互換性基準を満たさない。これにより、ホスト装置（１００）は、上述のセキュリティ機能の１つ以上に関して非セキュアであると考慮され得る。すなわち、ホスト装置（１００）が非セキュアであるとみなされた場合、セキュリティ機能の１つ以上は、潜在的に危殆化され得る、または動作不能となり得る。
【００２９】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、アプリケーションの依存セクション（sensitive section）を識別するように構成される。依存セクションは、アプリケーションの任意のコードセグメント、機能、手順、ライブラリ、オブジェクト、および／または他の識別可能なセクション（ＨＥＲＥ（１０５）自体のセクションも含む）であり、（１）依存セクションとして区別されたもの、または（２）予め定められた基準に適合するものであり得る。依存セクションは、アプリケーションが編集されたプログラム言語中の予め定められたアノテーションのセットを使用して区別され得る。たとえば、Java Card（商標）3 Security Annotationは、Java（商標）コードの依存セクションを区別するために使用され得る。JavaおよびJava Cardは、カリフォルニア州レッドウッドシティ（Redwood City）のオラクルコーポレーションの商標である。依存セクションは、整合性に依存するもの、機密性に依存するもの、および／または任意の他の予め定められたセキュリティ基準に依存するものであり得る。
【００３０】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、予め定められた基準に基づいてアプリケーションの依存セクションを識別するように構成される。予め定められた基準は、任意の動作タイプ、命令文、および／またはセクションコードを識別するための任意の基準（上記のような明示的な区別以外）を識別し得る。たとえば、ＨＥＲＥ（１０５）は、暗号法演算を依存するものであると識別し、ＳＥＲＥ（１２０）に実行を委任するように構成されてもよい。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、ホスト装置（１００）のメモリ装置（たとえば、ＲＡＭ）中のアプリケーションの依存セクションを暗号化および記憶する機能性を含む。依存セクションの暗号化および復号化は、実行中のアプリケーションからの要求に応じて行われ得る。
【００３１】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、セキュア記憶域エレメント（１１５）に設けられる依存セクションの呼び出しを可能とするためにリモートプロキシを生成する機能性を含む。
【００３２】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、ホスト装置（１００）上で実行されるＨＥＲＥ（１０５）のチェック値を算出し、以前に算出されたチェック値に対してチェック値を検証するように構成される。チェック値は、本発明の様々な実施形態に基づき、ホスト装置（１００）またはセキュア記憶域エレメント（１１５）に記憶され得る。チェック値がセキュア記憶域エレメント（１１５）に記憶されると、チェック値はセキュア通信セッションを介して送信され得る。この方法により、ＨＥＲＥ（１０５）の全体が定期的に検証され得る。
【００３３】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、定期的にＳＥＲＥ（１２０）から切断され、ホスト装置（１００）を再開、および／またはＨＥＲＥ（１０５）自体の実行を再開するように構成される。
【００３４】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、アプリケーションのＨＥＲＥ専用セクションおよびアプリケーションのセキュアエレメント専用（ＳＥ専用）セクションを識別する機能性を含む。ＨＥＲＥ専用セクションおよびＳＥ専用セクションの両方は、アプリケーションの開発者によって区別され得る。本発明の１つ以上の実施形態において、ＨＥＲＥ専用アプリケーションは、ウェブとＨＥＲＥ（１０５）によって実行されるように設計された拡張アプレットアプリケーションとを含み、ＳＥ専用アプリケーションは、ＳＥＲＥ（１２０）によって実行されるように設計されたクラッシックアプレットを含む。
【００３５】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、実行中のアプリケーションのＨＥＲＥ専用セクションと互換性のある１つ以上のセキュリティ機能（たとえば、ＨＥＲＥ（１０５）の１つ以上のセキュリティ機能と互換性のあるセクション）を含む。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、未加工のバイナリオブジェクトとして記憶されるようにアプリケーションのＨＥＲＥ専用セクションを暗号化、復号化、および／またはＳＥＲＥ（１２０）に伝送する機能性を含む。そして、未加工のバイナリオブジェクトは、ＳＥＲＥ（１２０）によってＨＥＲＥ（１０５）に戻され、アプリケーションの実行中にＨＥＲＥ（１０５）によって復号化される。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）およびＳＥＲＥ（１２０）は、暗号化されたＨＥＲＥ専用セクションを記憶する未加工のバイナリオブジェクトを伝送するために、帯域外通信プロトコルを利用する。
【００３６】
図１についての考察を続けると、本発明の１つ以上の実施形態に基づき、本来セキュア記憶域エレメント（１２０）によって実行されるように設計され、ＨＥＲＥ（１０５）によって実行されている、アプリケーションのためのリモートプロキシを利用するようにＨＥＲＥ（１０５）が構成される。これらのリモートプロキシは、セキュア記憶域エレメント（１１５）に記憶されたセキュリティ依存セクションについてＳＥＲＥ（１２０）に呼び出しを委任するために使用され得る。本発明の１つ以上の実施形態において、開発者は、本来ＳＥＲＥ（１２０）によって実行されるように設計されたアプリケーションのセキュリティを、ＨＥＲＥ（１０５）による実行のために強化するようリモートで利用し得る。
【００３７】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、ホスト実行（ＨＥ）カードマネージャを含む、またはこれに動作的に接続される。ＨＥカードマネージャは、ＨＥＲＥ（１０５）とセキュア記憶域エレメント（１１５）および／またはＳＥＲＥ（１２０）との間の通信を行う、および／または通信を容易にする機能性を含み得る。したがって、ＨＥカードマネージャは、セキュア通信セッションを確立する、認証情報管理を扱う、暗号法演算を行う、および／またはセキュア記憶域エレメント（１１５）もしくはそのコンポーネントの１つ以上の機能を開始するように構成され得る。本発明の１つ以上の実施形態において、ＨＥＲＥ専用アプリケーションまたはアプリケーションのセクションは、セキュア記憶域エレメント（１１５）へのアクセス（すなわち、読み取りおよび書き込み）についてＨＥカードマネージャに委任される。本発明の１つ以上の実施形態において、ＨＥカードマネージャは、認証情報管理をセキュアエレメント（ＳＥ）カードマネージャに委任する。
【００３８】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、アプリケーションを実行することによって、ホスト装置（１００）のオペレーティングシステムによって提供されるライブラリの使用を制限するように構成される。したがって、ＨＥＲＥ（１０５）は、ホスト装置（１００）上で利用可能なライブラリのサブセットを識別し、システム（１９９）の潜在的な脆弱性を低減させるためにこの承認されたサブセットの使用を許可し得る。
【００３９】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、ＳＥＲＥ（１２０）とのセキュア通信セッションを確立する機能性を含む。セキュア通信セッションは、ＨＥＲＥ（１０５）またはＳＥＲＥ（１２０）のいずれかによって開始されてＨＥＲＥ（１０５）とＳＥＲＥ（１２０）との間のデータの送信を可能とするセキュアな（たとえば、暗号化された）接続であり得る。セキュア通信セッションは、ＨＥＲＥ（１０５）およびＳＥＲＥ（１２０）によってサポートされる帯域外通信プロトコルおよび／または任意のセキュアチャネルプロトコルを使用し得る。たとえば、Global PlatformのSCP03セキュアチャネルプロトコルがセキュア通信セッションを確立するために使用され得る。セキュア通信セッションは、本発明の１つ以上の実施形態に基づき、ホスト装置（１００）のオペレーティングシステムによって容易となり得る、および／または１つ以上のオペレーティングシステムの呼び出しを利用し得る。
【００４０】
図１についての考察を続けると、本発明の１つ以上の実施形態に基づき、ＨＥＲＥ（１０５）は、セキュア通信セッションが失敗した後に再開するように構成される。ＳＥＲＥ（１２０）は、失敗を監視し、試みの失敗が予め定められた数となった後にセキュア記憶域エレメントまたはその一部をロックしてもよい。
【００４１】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、帯域外通信プロトコルを使用してＳＥＲＥ（１２０）と通信するように構成される。範囲外通信プロトコルの例としては、ホスト装置（１００）によって利用される包括的大容量記憶部インターフェイスとは異なる任意のプロトコルが含まれ得る。帯域外通信プロトコルの一例としては、アプリケーションプロトコルデータユニット（ＡＰＤＵ）が挙げられる。
【００４２】
本発明の１つ以上の実施形態において、ティア化アーキテクチャでは、セキュア記憶域エレメント（１１５）は、ＳＥＲＥ（１２０）を含む。ＳＥＲＥ（１２０）は、永続メモリイメージ（１２５）へのアクセスを制御する任意の処理であり得て、ランタイム環境（すなわち、実行環境）、ファームウェアアプリケーション、ファームウェアデータ構造、オペレーティングシステム、および／または永続メモリイメージ（１２５）へのアクセスを制御することが可能な任意のソフトウェアコード、アプリケーション、もしくはランタイム環境を含む。
【００４３】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、ホスト装置（１００）によって実行された場合に１つ以上の外部アプリケーション（たとえば、ＨＥＲＥ（１０５））と永続メモリイメージ（１２５）との間の通信のためのインターフェイスを提供するソフトウェアアプリケーションである。ＳＥＲＥ（１２０）の例としては、オラクルコーポレーション（Oracle Corporation）のJava（商標）ランタイム環境（ＪＲＥ）、オラクルコーポレーションのJava Card（商標）ランタイム環境（ＪＲＥ）、TrueCrypt FoundationのTrueCryptアプリケーション、Sarah DeanのFreeOTFEアプリケーション、および任意の管理／暗号化／認証アプリケーションが含まれ得る。本発明の１つ以上の実施形態において、ＳＥＲＥは、ランタイム環境の機能性のないＳＥＲＥの１つ以上の機能を含むセキュアエレメントアプリケーションとして実施され得る。
【００４４】
図１についての考察を続けると、本発明の１つ以上の実施形態に基づき、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）（もしくはそのセグメント）に記憶されたデータの暗号化および／または復号化を行う。ＳＥＲＥ（１２０）は、対称キー（たとえば、データ暗号化標準（ＤＥＳ）、高度暗号化標準（ＡＥＳ））および公開キー暗号化（たとえば、ＲＳＡ暗号化）を含む任意の暗号化の方法を使用するように構成され得る。
【００４５】
本発明の１つ以上の実施形態において、非ティア化アーキテクチャでは、セキュア記憶域エレメント（１１５）は、ＳＥＲＥ（１２０）を含まない。非ティア化アーキテクチャでは、本発明の様々な実施形態に基づき、様々な他のソフトウェアおよび／またはハードウェアセキュリティ機構が利用され得る。
【００４６】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュア通信セッションのための相互セッションキーとして短期キーを無作為に生成する機能性を含む。相互セッションキーは、ホスト装置（１００）上で実行するためにセキュア記憶域エレメント（１１５）からＨＥＲＥ（１０５）コードが回収された場合に生成され得る。代替的に、本発明の１つ以上の実施形態において、セキュア記憶域エレメント（１１５）は、ホスト装置（１００）上で実行するためにセキュア記憶域エレメント（１１５）からＨＥＲＥ（１０５）コードが回収された場合に単独セッションキーを生成するように構成され得る。
【００４７】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、
−セキュア記憶域エレメント（１１５）から回収されるＨＥＲＥ（１０５）コードにセッションキーを挿入する、
−非常に短い間隔でセッションキーをセキュア記憶域エレメント（１１５）上の既知の場所に置く、および
−ＳＥＲＥ（１２０）への要求に応答して非常に短い間隔でセッションキーを回収するように構成される。
【００４８】
本発明の１つ以上の実施形態において、キーの代わりに、ワンタイムパスワードが使用され得る。本発明の様々な実施形態に基づき、キーまたはパスワードは、一度のみ使用され得る。
【００４９】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）内のセッションログに対する変更（たとえば、変更ログ、永続オブジェクトに対する単一アイテムのアトミックな変更）をコミットするように構成される。そして、ＳＥＲＥ（１２０）は、次のプラットフォームのリセット、１回以上の定められた回数、および／または１つ以上の事象に応答してセッション変更ログを永続メモリイメージ（１２５）に適用し得る。たとえば、ＳＥＲＥ（１２０）は、永続メモリイメージ（１２５）をデフラグしなければならないことを検知してセッション変更ログを適用するように構成され得る。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、（たとえば非ティア化アーキテクチャにおいて）ＳＥＲＥ（１２０）を必要とすることなく、セキュア記憶域エレメント（１１５）に対して直接的に前述の変更のいずれかを適用する機能性を含む。
【００５０】
図１についての考察を続けると、ＳＥＲＥ（１２０）は、本発明の１つ以上の実施形態に基づき、セキュア記憶域エレメント（１１５）および／または永続メモリイメージ（１２５）上で１回以上の定期メンテナンス動作を行うように構成される。定期メンテナンス動作の例としては、デフラグおよびガーベジコレクションが含まれる。ＳＥＲＥ（１２０）は、必要に応じて、または１回以上の定められた回数にわたって定期メンテナンス動作を行い得る。たとえば、メンテナンス動作は、プラットフォームのリセット時に行われ得る。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、（たとえば、非ティア化アーキテクチャにおいて）ＳＥＲＥ（１２０）を必要とすることなく、直接的にセキュア記憶域エレメント（１１５）に対して１回以上の定期メンテナンス動作を行う機能を含む。
【００５１】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、永続メモリイメージ（１２５）（またはその任意のセグメント）のコピーを作成するように構成される。そして、ＳＥＲＥ（１２０）は、永続メモリイメージ（１２５）のコピーに対して（または、代替的に元の永続メモリイメージ（１２５）に対して）セッション変更ログを適用し得る。ＳＥＲＥ（１２０）は、セッション変更ログが上手く適用された後に元の永続メモリイメージ（１２５）をコピーに置き換えるように構成され得る。本発明の１つ以上の実施形態において、セッション変更ログおよび元の（すなわち、変更されていない）永続メモリイメージ（１２５）は、コピーに対してセッション変更ログを適用した後に削除される。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、セキュア記憶域エレメント（１１５）内に永続メモリイメージのコピーを作成する機能性、および（たとえば、非ティア化アーキテクチャにおいて）ＳＥＲＥ（１２０）を必要とすることなく直接的にセキュア記憶域エレメント（１１５）に対して変更ログを適用する機能性を含む。
【００５２】
本発明の１つ以上の実施形態において、変更ログは、情報を損失することなく複数回にわたって変更を適用できるように一連の冪等エントリとして整理される。変更ログの適用時に障害が発生した場合において、これは永続メモリイメージ（１２５）のコピーを全て削除して処理を再開するよりも効率的である。
【００５３】
本発明の１つ以上の実施形態において、永続メモリイメージ（１２５）の全体のコピーを作成するのではなく、ＳＥＲＥ（１２０）は、永続メモリイメージ（１２５）内の１つ以上の変更されたページのコピーを作成するように構成される。したがって、変更ログからの変更は、ページに対して個別に適用され得る。変更の適用時に障害が発生した場合、（永続メモリイメージ（１２５）の全体ではなく）影響を受けたページのみに対して変更を適用することが可能となり得る。
【００５４】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）にアプリケーションの依存セクションに対応するチェック値を記憶するように構成される。チェック値は、エラー検知を行い、破損した依存セクションまたは危殆化した依存セクションを識別するために使用され得る。チェック値は、任意の数値、英数字値、バイナリ値、または依存セクションの演算式に基づいて算出される他の値であり得る。たとえば、ＳＥＲＥ（１２０）は、チェック値を生成してエラー検知を行うために、周期的冗長検査（ＣＲＣ）を使用し得る。
【００５５】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、依存セクションのチェック値を算出し、安全記憶装置（１１５）内に記憶される以前の記録チェック値に対してチェック値を有効化するように構成される。ＨＥＲＥ（１０５）は、依存セクションをＳＥＲＥ（１２０）に送信し、ＳＥＲＥ（１２０）が有効化を行い得る。代替的に、ＨＥＲＥ（１０５）は、有効化を行うために、記憶されたチェック値をＳＥＲＥ（１２０）から要求し得る。ある例において、ＨＥＲＥ（１０５）はアプリケーションを実行し、実行中にアプリケーション内の依存オブジェクトを識別する。ＨＥＲＥ（１０５）は、１回目にオブジェクトにアクセスすると、オブジェクトをＳＥＲＥ（１２０）に送信する。ＳＥＲＥ（１２０）は、オブジェクトについての第１のチェック値を算出し、オブジェクトをセキュア記憶域エレメント（１１５）に記憶する。例について続けると、ＨＥＲＥ（１０５）は、依存オブジェクトに対する２回目のアクセスを識別し、オブジェクトを再度ＳＥＲＥ（１２０）に送信する。ＳＥＲＥ（１２０）は、オブジェクトに基づいて第２のチェック値を算出し、第１のチェック値と第２のチェック値とが等しいことを確認することによってオブジェクトを有効化する。
【００５６】
図１についての考察を続けると、本発明の１つ以上の実施形態に基づき、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）の専用パーティションにチェック値を記憶するように構成される。専用パーティションは、チェック値に対する不法な変更を防止するために使用され得る、および／またはさらにホスト装置（１００）上で実行中のアプリケーションの各々についてセクションにセグメント化され得る。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、（たとえば非ティア化アーキテクチャにおいて）ＳＥＲＥ（１２０）を必要とすることなく直接的にセキュア記憶域エレメント（１１５）にアプリケーションの依存セクションに対応するチェック値を記憶、算出、および／または有効化する前述の機能性の全てを含む。
【００５７】
代替的に、本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュア記憶域エレメント（１１５）上でアプリケーションの依存セクションを暗号化して記憶するように構成される。そして、ＳＥＲＥ（１２０）は、ＨＥＲＥ（１０５）からの要求により依存セクションを復号化する。
【００５８】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、実行中のアプリケーションのＳＥ専用セクションと互換性のある１つ以上のセキュリティ機能を含む。本発明の１つ以上の実施形態において、ＳＥ専用セクション（たとえば、ＳＥＲＥ（１２０）の１つ以上のセキュリティ機能と互換性のあるセクション）が暗号化される、セキュア記憶域エレメント（１１５）に記憶される、および／またはＳＥＲＥ（１２０）によって復号化される。したがって、本発明の１つ以上の実施形態に基づき、アプリーションを実行する時、ＨＥＲＥ（１０５）は、ＳＥ専用依存セクションへのアクセスおよびセキュリティをＳＥＲＥ（１２０）に委任するように構成され得る。
【００５９】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、アプリケーションのＳＥ専用セクションおよびアプリケーションのＨＥＲＥ専用セクションを識別する機能性を含む。ＳＥ専用セクションおよびＨＥＲＥ専用セクションの両方は、アプリケーションの開発者によって区別され得る。
【００６０】
図１についての考察を続けると、ＳＥＲＥ（１２０）は、本発明の１つ以上の実施形態に基づき、ＨＥＲＥ（１０５）のチェック値を算出し、以前に算出されたチェック値に対してチェック値を有効化するように構成される。チェック値は、本発明の様々な実施形態に基づき、ホスト装置（１００）またはセキュア記憶域エレメント（１１５）に記憶され得る。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）の完全なコードを送信およびチェックするのではなく、チェック値を算出するためにコードの一部を使用してもよい。本発明の様々な実施形態に基づき、セクションは、ＨＥＲＥ（１０５）またはＳＥＲＥ（１２０）のいずれかによって無作為に判定され得る。したがって、本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、検証のためにＨＥＲＥ（１０５）からＨＥＲＥ（１０５）コードのセクションを要求し得る、または検証のためにセクションについてのチェック値をＨＥＲＥ（１０５）が算出するように要求し得る。このため、ＨＥＲＥ（１０５）は定期的に検証され得る。
【００６１】
本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）および／またはＳＥＲＥ（１２０）は、新たに算出されたチェック値と、セキュリティ依存セクションおよび／またはオブジェクトについてセキュア記憶域エレメントに記憶された登録チェック値との比較を生成するように構成される。比較に基づき（たとえば、チェック値が等しい）、ＨＥＲＥ（１０５）および／またはＳＥＲＥ（１２０）は、実行のためにコードのセキュリティ依存セクションを有効化し得る。本発明の１つ以上の実施形態において、登録チェック値は、定期的に、または１つ以上の予め定められた事象に応答して更新される。
【００６２】
本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、ＨＥＲＥ（１０５）コードについての１つ以上のセキュリティチェックを発動させるように構成される。セキュリティチェックは、ここに記載される１つ以上のエラー検知方法を含む、ＨＥＲＥ（１０５）の整合性を検証する任意の方法を含み得る。セキュリティチェックは、開始時、終了時、時間ベース、および／またはＨＥＲＥ（１０５）とのインタラクション中の特定の状態時に行われ得る。本発明の１つ以上の実施形態において、ＳＥＲＥ（１２０）は、セキュリティチェックの失敗を検知する、および失敗に応答して永続メモリイメージ（１２５）をロックする、および／またはＨＥＲＥ（１０５）との通信の終了を行うように構成される。本発明の１つ以上の実施形態において、ＨＥＲＥ（１０５）は、（たとえば、非ティア化アーキテクチャにおいて）ＳＥＲＥ（１２０）を必要とすることなく、直接的にＨＥＲＥ（１０５）についてのチェック値を記憶、算出、および／または有効化し、ＨＥＲＥ（１０５）についての１つ以上のセキュリティチェックを発動する前述の機能性の全てを含む。
【００６３】
図１についての考察を続けると、本発明の１つ以上の実施形態に基づき、ＳＥＲＥ（１２０）は、ＳＥカードマネージャを含む、またはＳＥカードマネージャに動作的に接続される。ＳＥカードマネージャは、ＳＥＲＥ（１２０）とセキュア記憶域エレメント（１１５）との間の通信を行う、および／または容易にする機能性を含み得る。したがって、ＳＥカードマネージャは、本発明の様々な実施形態に基づき、ここに記載のように、セキュア記憶域エレメント（１１５）へのアクセス、および／またはセキュア記憶域エレメント（１１５）の管理を制御するように構成され得る。本発明の１つ以上の実施形態において、ＳＥ専用アプリケーションまたはアプリケーションのセクションは、セキュア記憶域エレメント（１１５）に対するアクセス（すなわち、読み取りおよび書き込み）についてＳＥカードマネージャに委任する。本発明の１つ以上の実施形態において、ＳＥカードマネージャは、ＨＥＲＥ（１０５）に対するセキュアな更新を行う。
【００６４】
本発明の１つ以上の実施形態において、システム（１９９）は、以下の信頼チェーン、または信頼チェーンの任意の変形を利用する。１）ＳＥＲＥ（１２０）→２）ＨＥＲＥ（１０５）→３）セキュリティ対策→４）ホスト装置（１００）上でのアプリケーションの実行。対策は、ここに記載のように、アプリケーションの依存セクション、またはＨＥＲＥ（１０５）、ＳＥＲＥ（１２０）、永続メモリイメージ（１２５）、および／もしくは永続メモリキャッシュ（１１０）についての確実性および／または整合性を確保する任意の方法を含み得る。信頼チェーンにより識別された任意の２つのエンティティ間に矛盾が起こった場合、システムは、チェーンにおいて上位のエンティティに対してオーバーライドする権限を付与する。たとえば、ＳＥＲＥ（１２０）からの要求は、ＨＥＲＥ（１０５）からの矛盾する要求に対して優先される。
【００６５】
ある例において、ＳＥＲＥはJava Card（商標）2 Runtime Environmentであり、ＨＥＲＥ（１０５）はJava Card（商標）3 Connected Runtime Environmentである。この例において、開発者は、アプリケーションのコードを（１）「.jar」ファイルのＨＥＲＥ専用コードおよび（２）「.cap」ファイルのＳＥ専用コードの２つに分離する。アプリケーションは、以下のコンポーネントを含む。
【００６６】
−Transit POSウェブアプリケーション
−Transit Adminウェブアプリケーション
−Transit Turnstile拡張アプレットアプリケーション
−Wallet Assist拡張アプレットアプリケーション
−Wallet Classicアプレットアプリケーション
例について続けると、Transit POSウェブアプリケーション、Transit Adminウェブアプリケーション、Transit Turnstile拡張アプレットアプリケーション、およびWallet Assist拡張アプレットアプリケーションは、ＨＥＲＥ（１０５）に展開される。Wallet Classicアプレットアプリケーションおよび必要なリモートプロキシの対応セクション（スケルトン）は、ＳＥＲＥ（１２０）に展開される。
【００６７】
図２は、ホスト装置上で実行ランタイム環境（ＨＥＲＥ）を実行する方法についてのフローチャートを示す。ホスト装置は、ＨＥＲＥの永続メモリイメージを有するセキュア記憶域エレメントに接続される。フローチャートの様々なステップは順に示され、記載されているが、当業者は、これらのステップの一部または全てが異なる順序で行われてもよく、ステップの一部または全てが並行して実行されてもよいことを理解するであろう。さらに、本発明の１つ以上の実施形態において、以下に記載の１つ以上のステップは、省略されてもよい、繰り返されてもよい、および／または異なる順序で行われてもよい。このため、図２に示されるステップの具体的な配置は、本発明の範囲を限定するものと解釈されるべきではない。
【００６８】
ステップ２００において、本発明の１つ以上の実施形態では、セキュア記憶域エレメントはホスト装置を介してアクセスされる。セキュア記憶域エレメントは、動作的にホスト装置に接続され得る。セキュア記憶域エレメントへのアクセスには、セキュア記憶エレメントに対するアクセスのためにホスト装置のユーザを認証する任意の方法が伴う。セキュア記憶域エレメントは、アクセスを提供するために、ユーザからパスワード、キー、および／または認証を取得するように構成され得る。認証の例としては、セキュア記憶域エレメントによる生体認証が含まれ得る。
【００６９】
ステップ２０５において、本発明の１つ以上の実施形態では、セキュア記憶域エレメントに常駐するセキュアエレメントランタイム環境（ＳＥＲＥ）が実行される。ＳＥＲＥは、セキュア記憶域エレメントをホスト装置に接続した時に起動または接続ルーチンの一部として実行され得る。代替的に、ＳＥＲＥは、ホスト装置のユーザを認証したことに応答して、および／または任意の予め定められたトリガまたは事象に応答して実行され得る。
【００７０】
ステップ２１０において、本発明の１つ以上の実施形態では、ホスト実行ランタイム環境（ＨＥＲＥ）がホスト装置上で実行される。本発明の１つ以上の実施形態において、ＨＥＲＥコードがセキュア記憶域エレメントから安全に回収される。ＨＥＲＥコードは、ホスト装置からの要求に応答してＳＥＲＥによって回収され得る。
【００７１】
ティア化アーキテクチャにおいて、本発明の様々な実施形態に基づき、ＳＥＲＥはＨＥＲＥの実行を開始または要求し得る。代替的に、本発明の１つ以上の実施形態において、ＨＥＲＥは、セキュア記憶域エレメントに対するアクセスを取得した後、任意の定められた事象またはトリガに応答して実行され得る。
【００７２】
ステップ２１５において、本発明の１つ以上の実施形態では、セキュア通信セッションがＨＥＲＥとＳＥＲＥとの間で開始される。セキュア通信セッションは、帯域外通信プロトコルまたは任意の予め定められた通信プロトコルを利用し得る。本発明の様々な実施形態に基づき、セキュア通信セッションは、ＨＥＲＥとＳＥＲＥとの間のデータの伝送を容易なものとし得る、ならびに暗号化、整合性チェック、および／または他のセキュリティ機構を提供し得る。
【００７３】
ステップ２２０において、本発明の１つ以上の実施形態では、ＨＥＲＥの永続メモリイメージは、セキュア記憶域エレメント内で識別される。永続メモリイメージは、ＥＥＰＲＯＭイメージまたはセキュア記憶域エレメント上に記憶されるＨＥＲＥコードのセキュアイメージの任意のタイプであり得る。ＳＥＲＥは、任意の予め定められた時に、または任意の予め定められた事象に応答して、永続メモリイメージの整合性を識別および／または有効化し得る。たとえば、ＳＥＲＥは、ホスト装置の起動時に永続メモリイメージの識別を伴う任意の数のセキュリティおよび／または起動ルーチンを行い得る。
【００７４】
ステップ２２５において、アプリケーションはＨＥＲＥを使用して実行される。本発明の１つ以上の実施形態において、ティア化アーキテクチャでは、ＨＥＲＥは、アプリケーションの実行を開始し、アプリケーションのＳＥ専用セクションの実行についてＳＥＲＥに委任する。本発明の１つ以上の実施形態において、ＨＥＲＥは、アプリケーションのＨＥＲＥ専用セクションを実行し、アプリケーションの依存セクションについてはセキュア記憶域エレメントを利用し得る（ティア化または非ティア化アーキテクチャにおいて）。本発明の様々な実施形態に基づき、アプリケーションのセキュリティ依存セクションは、ＳＥＲＥに委任され得る、および／またはセキュア記憶域エレメントに対して記憶される、およびセキュア記憶域エレメントから回収される。
【００７５】
ステップ２３０において、アプリケーションの実行に基づき、永続メモリイメージに変更のセットが適用される。本発明の１つ以上の実施形態において、変更のセットは、変更ログに記憶され、予め定められた時、または予め定められた事象（たとえば、ホスト装置の起動／シャットダウン）に応答して永続メモリイメージに適用される。本発明の１つ以上の実施形態において、変更は、セキュア記憶域エレメント上に常駐するセッション変更ログに書き込まれ、後に永続メモリイメージに対して適用され得る。たとえば、トランザクション変更ログおよび単一アイテムのアトミック変更は、即時にセッション変更ログに書き込まれ得る。例について続けると、ＳＥＲＥはその次に永続メモリイメージのコピーを作成し、全ての変更をコピーに適用する。セッション変更ログがコピーに上手く適用された時、ＳＥＲＥは永続メモリイメージをコピーに置き換える。
【００７６】
図３は、セキュア記憶域エレメント上に常駐するセキュアエレメントランタイム環境（ＳＥＲＥ）によってアプリケーションのセキュリティ依存セクションを実行するための方法についてのフローチャートを示す。このフローチャートにおける様々なステップは順に示され、記載されているが、当業者は、ステップの一部または全てが異なる順に実行され、ステップの一部または全てが並行して実行され得ることを理解するであろう。さらに、本発明の１つ以上の実施形態において、以下に記載の１つ以上のステップは、省略されてもよい、繰り返されてもよい、および／または異なる順序で行われてもよい。このため、図３に示されるステップの具体的な配置は、本発明の範囲を限定するものと解釈されるべきではない。
【００７７】
ステップ３００において、アプリケーションは、ホスト装置上で実行中のホスト実行ランタイム環境（ＨＥＲＥ）によって実行される。アプリケーションは、セキュア記憶域エレメント上に常駐するＳＥＲＥの１つ以上のセキュリティ機能と互換性のあるコードの区別されたまたは認識可能なセキュリティ依存セクションを含み得る。
【００７８】
ステップ３０５において、ＨＥＲＥとホスト装置に動作的に接続されたセキュア記憶域エレメントに常駐するＳＥＲＥとの間でＳＥＲＥセキュア通信セッションが開始される。本発明の１つ以上の実施形態において、セキュア通信セッションは、ＨＥＲＥまたはＳＥＲＥによって開始され、様々な通信プロトコルのうちの１つに従い得る。
【００７９】
ステップ３１０において、アプリケーションのセキュリティ依存セクションが識別される。セキュリティ依存セクションは、アプリケーションを記述するプログラム言語において区別され得る、および／またはＨＥＲＥによって認識される１つ以上の予め定められたセキュリティ依存型命令文であり得る。ＨＥＲＥは、アプリケーションの実行前にアプリケーションのプログラム命令を走査することによって、アプリケーションの実行時にセキュリティセクションを識別し得る。
【００８０】
ステップ３１５において、ＳＥＲＥによって、セキュリティ依存セクションがセキュア記憶域エレメントに記憶された登録チェック値に対して有効化される。セキュリティ依存セクションを有効化するために、セキュリティ依存セクションについての登録チェック値はセキュア記憶域エレメント内に存在しなければならない。したがって、ＨＥＲＥは、セキュリティ依存セクションについてのチェック値を算出し、セキュア通信セッションを介してチェック値をＳＥＲＥに送信し得る。チェック値を受け取ると、ＳＥＲＥは、チェック値と登録チェック値とを比較し得る。２つの値が等しい場合、ＳＥＲＥは、セキュア通信セッションを介してＨＥＲＥに対して有効化メッセージを送信することによって、セキュリティ依存セクションを有効化し得る。
【００８１】
本発明の１つ以上の実施形態において、セキュリティ依存セクションについて登録チェック値がセキュア記憶域エレメント内に未だ存在しない場合、新たな登録チェック値が算出および記憶される。まず、ＨＥＲＥは、セキュリティ依存セクションについての新たなチェック値を算出し、セキュア通信セッションを介してＳＥＲＥにチェック値を送信し得る。次に、ＳＥＲＥは、セキュア記憶域エレメントに新しいチェック値を登録および記憶し、登録を確認するＨＥＲＥにメッセージを返答し得る。本発明の１つ以上の実施形態において、新しいチェック値は、アプリケーションの実行中にセキュリティ依存セクションを終了した時に登録される。
【００８２】
本発明の１つ以上の実施形態において、ティア化アーキテクチャでは、チェック値は、ＳＥＲＥによって算出され得る、および／またはセキュア通信セッションを介してＳＥＲＥに送信されるセキュリティ依存セクションのサブセクションに基づいて算出され得る。この方法により、セキュリティ依存セクションおよび／またはセキュリティ依存セクションによってアクセスされるセキュリティ依存オブジェクトに関する後続の有効化が、新たに登録されたチェック値に対して行われる。
【００８３】
ステップ３２０において、セキュリティ依存セクションが有効化の後に実行される。本発明の様々な実施形態に基づき、セキュリティ依存セクションの実行は、ＳＥＲＥまたはＨＥＲＥによって行われ得る。セキュリティ依存セクションがＳＥ専用コードを含む場合、ＳＥＲＥはこのようなコードを実行するために使用され得る。逆に、ＨＥＲＥ専用コードは、ＨＥＲＥによって実行され得る。
【００８４】
ある例において、モバイル装置のユーザは、加入者識別モジュール（ＳＩＭ）カードをモバイル装置に挿入する。電源が入ると、モバイル装置はＳＩＭカード上常駐するJava Card（商標）2 Runtime Environment（ＪＣ２ＲＥ）を実行する。この時点において、ユーザからパスワードが取得されるまで、ＳＩＭカードはロックされ、モバイル装置上で実行されるアプリケーションからアクセス不能となる。
【００８５】
例について続けると、次にホスト装置は、ＳＩＭカードのロックを解除するために、パスワードをユーザに促す。ＳＩＭカードのロックが解除されると、ＳＩＭカード上のＪＣ２ＲＥは、パスワードまたは別個のワンタイムキー値を生成し、実行されるＨＥＲＥのコード（ＳＩＭカード上の）内にそれを記憶する。そして、ホスト装置は、実行されるＨＥＲＥのコードをＳＩＭカードから回収する。この例において、起動後にホスト上（実行中）のＨＥＲＥは、自身のコードからワンタイムキー値を回収し（使用可能時間は限定される）、ＨＥＲＥとＪＣ２ＲＥとの間のセキュア通信セッションを可能とするようにＪＣ２ＲＥを用いてセッションキーと交渉するために使用される。
【００８６】
例について続けると、ＨＥＲＥは、ＳＩＭカードに常駐するＨＥＲＥの暗号化されたＥＥＰＲＯＭイメージのコピーを要求する。暗号化されたＥＥＰＲＯＭイメージは、ＪＣ２ＲＥからモバイル装置上で実行中のＨＥＲＥに対してセキュア通信セッションを介して送信される。暗号化されたＥＥＰＲＯＭイメージは、モバイル装置のＲＡＭにキャッシュされ、プラットフォームのリセットが行われる。
【００８７】
例について続けると、プラットフォームのリセットの後、セキュア通信セッションが再び確立され、ホスト装置上でＨＥＲＥによってアプリケーションのセットが実行される。アプリケーションの実行中、キャッシュの復号化および暗号化がＨＥＲＥによって行われる。ＨＥＲＥは、以下のタスクも行う。
【００８８】
ａ．暗号法ＡＰＩ、Java Card 2互換オブジェクトの呼び出しをＪＣ２ＲＥに委任する。
【００８９】
ｂ．依存セクション（セキュリティアノテーションオブジェクトまたは方法）に進む時、登録CRC/Digestチェック値に対するチェックのためにセクションをＪＣ２ＲＥに送信する。
【００９０】
ｃ．依存セクション（セキュリティアノテーションオブジェクトまたは方法）を終了する時、CRC/Digestチェック値の登録のためにセクションをＪＣ２ＲＥに送信する。
【００９１】
ｄ．単一アイテムのアトミック更新を行う時、または永続オブジェクトに対してトランザクションをコミットする時、対応する変更ログをＪＣ２ＲＥに送信する。
【００９２】
ｅ．所定のセキュリティチェックポイントにおいて、またはＪＣ２ＲＥ要求時において、ＥＥＰＲＯＭイメージまたはＳＩＭカード上に記憶されたチェック値に対してエラーチェックを行うためのＨＥＲＥコードまたはアプリケーションコートの所定のセクションまたは無作為に決定されたセクションを送信し得る。
【００９３】
例について続けると、終了する前に、ＨＥＲＥはセキュア通信セッションを介してＪＣ２ＲＥに対してＥＥＰＲＯＭイメージのキャッシュ（またはキャッシュに対する変更のセット）を送信する。そして、ＪＣ２ＲＥは、キャッシュされたＥＥＰＲＯＭイメージの全ての依存セクションをチェックし、ＳＩＭカード上のキャッシュされたＥＥＰＲＯＭイメージを暗号化および保存する（または既存のＥＥＰＲＯＭイメージに対して変更を適用する）。モバイル装置の次の起動時にＥＥＰＲＯＭイメージが非同期としてマークされた場合、ＳＩＭカードは遮断される。
【００９４】
本発明の実施形態は、使用されるプラットフォームに関わらず実質的に全てのタイプのモバイル装置に適用され得る。本発明の１つ以上の実施形態において、モバイル装置（４００）は、ユーザインターフェイスを提供する任意のポータブル装置を含む。モバイル装置の例としては、携帯電話、パーソナルデジタルアシスタント、パーソナルコミュニケータ、ページャー、スマートフォン、または任意の他の演算装置が含まれ得るが、これらに限定されない。たとえば、図４に示されるように、モバイル装置（４００）は、プロセッサ（４０２）、メモリ（４０４）、記憶装置（４０６）、加入者識別モジュール（ＳＩＭ）カード（４０８）、スピーカー（４２９）、レシーバー（４２８）、キーボード（４２４）、音声レコーダ（４２６）、表示装置（４２０）、カメラ（４２２）、およびアンテナ（４１９）を含む。
【００９５】
モバイル装置（４００）は、１つ以上のプロセッサ（４０２）（中央処理ユニット（ＣＰＵ）、集積回路、ハードウェアプロセッサなど）、関連するメモリ（４０４）（たとえば、ＲＡＭ、キャッシュメモリ、フラッシュメモリなど）、記憶装置（４０６）（たとえば、ハードディスク、コンパクトディスクドライブもしくはデジタルビデオディスク（ＤＶＤ）ドライブなどの光学ドライブ、フラッシュメモリスティックなど）、ＳＩＭカード（４０８）、および今日のモバイル装置に特有の多くの他のエレメントおよび機能性（図示せず）を含む。モバイル装置（４００）は、数字、アルファベット、および他の文字、画像、もしくは他の媒体タイプを含むキーストロークを入力および／または表示することができる、キーボード（４２４）、レシーバー（４２８）、および／または表示装置（たとえば、液晶表示スクリーン）（４２０）などの入力手段および出力手段を含み得る。他の入力装置は、カメラ（４２２）、音声レコーダ（４２６）、および／または他のデータ記録機構を含み得る。当業者は、これらの入力および出力手段が、現在知られている、または後に開発される他の形態を取り得ることを理解するであろう。本発明の実施形態を使用し、消費者は、モバイル装置（４００）を使用して電子的な資金移動を行い得る。
【００９６】
モバイル装置（４００）は、アンテナ（４１９）または他のネットワークインターフェイス接続（図示せず）を介してネットワーク（たとえば、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、または任意の他の類似のタイプのネットワーク）に接続され得る。本発明の１つ以上の実施形態において、ネットワーク接続は、無線装置に対する無線通信を容易とするために協働する１つ以上のトランシーバーを含む無線インフラストラクチャによって容易となり得る。無線インフラストラクチャは、１つ以上のルータ、スイッチ、マイクロ波リンク、基地局、光ファイバ、または他の類似のネットワーキングハードウェアもしくはソフトウェアコンポーネントを含み得る。たとえば、無線インフラストラクチャは、ページングネットワークや携帯電話ネットワークであり得る。本発明の１つ以上の実施形態において、無線インフラストラクチャは、モバイル装置（４００）から受信した任意のメッセージをモバイル装置（４００）のモバイル装置識別子と関連付け得る。
【００９７】
本発明の１つ以上の実施形態において、ネットワーク接続は、ハードウェアによって実現される接続または他の類似の接続によって容易となり得る。たとえば、ネットワーク接続は、第２のモバイル装置、印刷機構、スキャナ、もしくは記録システムを用いたハードウェアによって実現される接続、または短距離無線接続技術を伴い得る。
【００９８】
本発明の実施形態は、使用されるプラットフォームに関わらず、実質的に全てのタイプのコンピュータ上で適用され得る。たとえば、図５に示されるように、コンピュータシステム（５００）は、１つ以上のプロセッサ（５０２）（中央処理ユニット（ＣＰＵ）、集積回路、ハードウェアプロセッサなど）、関連するメモリ（５０４）（たとえば、ＲＡＭ、キャッシュメモリ、フラッシュメモリ）、記憶装置（５０６）（たとえば、ハードディスク、コンパクトディスクやデジタルビデオディスク（ＤＶＤ）などの光学ドライブ、フラッシュメモリスティックなど）、および今日のコンピュータに特有の多くの他のエレメントおよび機能性（図示せず）を含む。コンピュータシステム（５００）は、キーボード（５０８）、マウス（５１０）、またはマイクロフォン（図示せず）などの入力手段も含み得る。さらに、コンピュータシステム（５００）は、モニタ（５１２）（たとえば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、もしくは陰極線管（ＣＲＴ）モニタ）などの出力手段を含み得る。コンピュータシステム（５００）は、ネットワークインターフェイス接続（図示せず）を介してネットワーク（５１４）（たとえば、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、または任意の他のタイプのネットワーク）に接続され得る。当業者は、多くの異なるタイプのコンピュータシステムが存在し、上述の入力および出力手段が他の形態を取り得ることを理解するであろう。一般的にいえば、コンピュータシステム（５００）は、本発明の実施形態を実施するために必要な最小限の処理手段、入力手段、および／または出力手段を少なくとも含む。
【００９９】
さらに、本発明の１つ以上の実施形態において、上述のコンピュータシステム（５００）の１つ以上のエレメントは、遠方の場所に設けられ、ネットワークを介して他のエレメントに接続され得る。さらに、本発明の実施形態は、複数のノードを有する分散処理システム上で実施され得て、本発明の各部分（たとえば、上で説明した図１のセキュア記憶域エレメント（１１５）、ホスト装置（１００）、ホスト実行ランタイム環境（１０５）、永続メモリイメージ（１２５）など）は、分散処理システム内の異なるノード上に設けられ得る。本発明のある実施形態において、ノードはコンピュータシステムに対応する。代替的に、ノードは、関連する物理メモリを有するプロセッサに対応し得る。ノードは、プロセッサ、または共有メモリおよび／もしくはリソースを有するプロセッサのマイクロコアに代替的に対応し得る。さらに、本発明の実施形態を実行するためのコンピュータ可読プログラムコードの形態のソフトウェア命令が、コンパクトディスク（ＣＤ）、ディスケット、テープ、メモリ、または任意の他の有体のコンピュータ可読記憶装置などの非一時的コンピュータ可読記憶媒体上に一時的または永続的に記憶され得る。
【０１００】
本発明の１つ以上の実施形態は、１つ以上の以下の利点を有する。セキュア記憶域エレメントに接続された非セキュアなホスト装置上でホスト実行ランタイム環境を実行することにより、セキュア記憶域エレメントまたはセキュア記憶域エレメントにあるＳＥＲＥの１つ以上のセキュリティ機能を利用することができ得る。したがって、セキュア記憶域エレメントによって提供される追加のセキュリティを有しながら、設計者はホスト装置を幅広く選択することができ得る。
【０１０１】
さらに、セキュア記憶域エレメント上にあるＳＥＲＥを使用してホストアプリケーションのセキュリティ依存セクションを実行することにより、１つ以上のＳＥ専用セキュリティ機能が利用され得る。したがって、ＳＥＲＥの１つ以上のＳＥ専用セキュリティ機能を危殆化させることなく、非セキュアなホスト装置の処理能力が利用され得る。
【０１０２】
さらに、永続メモリキャッシュに対する変更をセッション変更ログ内に維持し、予め定められた時（たとえば、プラットフォームのリセット時）に永続メモリイメージに対して変更を適用することにより、システムは変更を適用する際に発生して永続メモリイメージを破損させる障害の可能性を減らし得る。
【０１０３】
さらに、トランザクション変更ログおよびセッション変更ログ内での単一アイテムのアトミック変更をすぐに適用する代わりに、これらを記録することにより、永続メモリイメージへのアクセス回数が減少し得て、性能が向上し得る。
【０１０４】
限られた数の実施形態に関して本発明が記載されたが、当業者は本開示の利益を享受し、ここに開示される発明の範囲から逸脱することなく他の実施形態を考案することが可能であると理解するであろう。このため、本発明の範囲は、添付の請求項によってのみ限定されるべきである。
【図１】
0005777810.tif 000002
【図２】
0005777810.tif 000003
【図３】
0005777810.tif 000004
【図４】
0005777810.tif 000005
【図５】
0005777810.tif 000006