以下、本発明の実施の形態を図面に基づいて説明する。図1は本実施の形態のトラステッドアプリケーションのインストレーションシステムの構成の一例を示すブロック図である。以下では、便宜上、トラステッドアプリケーションのインストレーションシステムを単に導入システムとも称する。本実施の形態の導入システムは、セキュアエレメント50が組み込まれたデバイス100、及びサーバ200などを備える。デバイス100は、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイス(電子デバイスとも称する)を含む。
デバイス100は、セキュアエレメント50の他に、デバイス本体10を備える。デバイス本体10とセキュアエレメント50との間は、I2C(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)等の通信路45で物理的に接続されている。なお、セキュアエレメント50は、UICC(Universal Integrated Circuit Card)のように着脱可能な構成とすることもできる。
デバイス本体10の大部分は、単一のSoC(System on a Chip)で構成され、一個の半導体チップ上にシステムの動作に必要な機能(例えば、CPU41、不図示のメモリなどを含む)の多く、あるいは全ての機能を一体化して実装している。
デバイス本体10は、例えば、TrustZone(登録商標)と称される技術を用いることによって、ソフトウェア(OS、アプリケーションなど)の実行環境を通常実行環境20(ノーマルワールド、REE:Rich Execution Environmentとも称する)と、トラステッド実行環境30(セキュアワールド、TEE:Trusted Execution Environmentとも称する)との二つに分けている。通常実行環境20とトラステッド実行環境30との間では、メモリ空間、入出力装置などが分離されている。
通常実行環境20は、広く一般的に利用されているOSの実行環境であり、トラステッド実行環境30へのアクセスが制限される以外、特段の機能制約がない実行環境である。
トラステッド実行環境30は、セキュリティ機能を隔離する目的で、同一のSoC上で通常実行環境20とは別に提供される独立した実行環境である。トラステッド実行環境30は、通常実行環境20からのアクセスが制限されており、実行可能な機能も限定されている。なお、トラステッド実行環境30は、例えば、TEEのような称呼に限定されるものではなく、通常実行環境20と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。
セキュリティ上保護すべきソフトウェア及びデータをトラステッド実行環境30に配置するとともに、通常実行環境20及びデバイス100の外部からのアクセスを制限することによって、デバイス100のセキュリティを確保することができる。なお、TEEは、TrustZoneの設計思想に基づく仕様を表す用語としても用いられる。
上述のように、通常実行環境20からトラステッド実行環境30にはアクセスできないように制限されるので、通常実行環境20からはトラステッド実行環境30の存在を認識することはできない。通常実行環境20からトラステッド実行環境30で実行する処理を呼び出すためには、セキュアモニタ40を経由しなければならない。
通常実行環境20では、汎用OS21、汎用アプリケーション22などを実行することができる。また、トラステッド実行環境30では、トラステッドOS31、トラステッドアプリケーション32、管理用トラステッドアプリケーション33などを実行することができる。
汎用OS21は、通常実行環境20においてOSの機能を果たすソフトウェアである。汎用OS21は、汎用アプリケーション22からの要求に応じ、デバイス100に接続されたハードウェア(入出力装置)の制御等を含む各種OS機能を提供する。汎用OS21は、トラステッドアプリケーション32を利用するためのインタフェースとして機能することもできる。
汎用アプリケーション22は、汎用OS21上で動作するアプリケーションである。なお、図1では、便宜上、一つの汎用アプリケーション22を図示しているが、汎用アプリケーション22の数は複数でもよい。
トラステッドOS31は、トラステッド実行環境30においてOSの機能を果たすソフトウェアである。トラステッドOS31は、トラステッドアプリケーション32からの要求に応じて、セキュリティ機能を中心としたOS機能を提供する。また、トラステッドOS31は、通常実行環境20とトラステッド実行環境30との通信(例えば、通常実行環境20からの機能実行要求又はデータの授受など)を行うためのインタフェース機能を有し、通常実行環境20(汎用アプリケーション22)とトラステッドアプリケーション32との間の通信路としても機能する。
トラステッドアプリケーション32は、トラステッドOS31上で動作するアプリケーションである。トラステッドアプリケーション32は、セキュリティ上の保護が必要な機能(例えば、鍵管理、暗号演算など)を実装することができる。なお、図1では、便宜上、一つのトラステッドアプリケーション32を図示しているが、トラステッドアプリケーション32の数は複数でもよい。
管理用トラステッドアプリケーション33は、トラステッドアプリケーション32のインストール又は削除等、トラステッドOS31上のトラステッドアプリケーション32のインストール状況を管理するためのアプリケーションである。
ネットワーク通信部42は、デバイス100をネットワークに接続する機能を有し、ネットワーク上のサービスサーバ(不図示)との間で情報の送受信を行うことができる。ネットワーク通信部42は、不図示のセンサ類で検出した情報をサービスサーバ(不図示)送信することができる。
セキュアエレメント50は、インストール処理部51、検証処理部52、ダウンロード処理部53、記憶部54などを備える。
記憶部54は、トラステッドアプリケーション541を記憶する。なお、図1では、便宜上、記憶部54に一つのトラステッドアプリケーション541を図示しているが、記憶部54に記憶されるトラステッドアプリケーション541の数は複数でもよい。記憶部54に記憶されるトラステッドアプリケーション541は、デバイス本体10(より具体的には、トラステッド実行環境30)へのインストール対象となるトラステッドアプリケーションである。
記憶部54には、予めトラステッド実行環境30で動作する1又は複数のトラステッドアプリケーション541を記憶しておくことができる。また、記憶部54に記憶するトラステッドアプリケーション541には、デバイス100が設置されて動作を開始した後に、初めてインストールされる可能性のあるトラステッドアプリケーション(すなわち、デバイス本体10に当初インストールされていないトラステッドアプリケーション)を含めることができる。
インストール処理部51は、取得部としての機能を有し、デバイス本体10(より具体的には、管理用トラステッドアプリケーション33)からトラステッドアプリケーションのインストール要求を取得する。
インストール処理部51は、出力部としての機能を有し、インストール要求を取得した場合、記憶部54に記憶したトラステッドアプリケーションをデバイス本体10(より具体的には、トラステッド実行環境30)へ出力する。この場合、管理用トラステッドアプリケーション33は、セキュアエレメント50から出力されたトラステッドアプリケーション541をデバイス本体10(より具体的には、トラステッド実行環境30)内にインストールすることができる。
インストール処理部51は、存否判定部としての機能を有し、インストール要求を取得した場合、サーバ200との間でネットワーク接続の存否を判定する。ネットワーク接続の存否は、ネットワーク接続が確立されているか、遮断されているかを判定する。デバイス本体10又はセキュアエレメント50とサーバ200との間のネットワークは、例えば、イーサーネット、Wifi、3G回線などの一般的なネットワークである。サーバ200は、デバイス100に対してトラステッドアプリケーションを配信することができるサーバとすることができる。サーバ200の詳細は後述する。
また、インストール処理部51は、ネットワーク接続が存在しないと判定した場合、インストール要求に係る(インストール対象となる)トラステッドアプリケーションを、記憶部54を検索して特定し、特定したトラステッドアプリケーション541をトラステッド実行環境30へ出力することができる。
これにより、例えば、デバイス100がネットワークと接続されていない状態(オフライン環境)であっても、秘密情報を開示することなくトラステッドアプリケーションをインストールすることができ、トラステッド実行環境30で実行されるトラステッドアプリケーションのインストールの自由度を大きくすることができる。
ダウンロード処理部53は、通信部としての機能を有し、インストール処理部51でネットワーク接続が存在すると判定した場合、サーバ200との間で暗号化された秘匿通信路61を確立する。
ダウンロード処理部53は、受信部としての機能を有し、確立された秘匿通信路61を経由してサーバ200からインストール要求に係る(インストール対象となる)トラステッドアプリケーションを受信する。
秘匿通信路61においては、例えば、TLS(Transport Layer Security)などのプロトコルによって通信を行うことができる。これにより、トラステッドアプリケーションをサーバ200から受信する際に、トラステッドアプリケーションに関する情報の改ざんの防止、あるいは受信の妨害を回避することができる。
この場合、インストール処理部51は、ダウンロード処理部53で受信したトラステッドアプリケーションをトラステッド実行環境30へ出力する。オンライン環境において、トラステッドアプリケーションをサーバ200から受信し、受信したトラステッドアプリケーションをトラステッド実行環境30へ出力するので、トラステッド実行環境30では、最新のトラステッドアプリケーションをインストールすることができる。
ダウンロード処理部53は、更新部としての機能を有し、サーバ200から受信したトラステッドアプリケーションで記憶部54に記憶したトラステッドアプリケーションを更新する。
例えば、サーバ200から受信したトラステッドアプリケーションのバージョン又はエディションが記憶部54に記憶したトラステッドアプリケーションのバージョン又はエディションよりも新しい場合、トラステッドアプリケーションを更新することにより、セキュアエレメント50内で最新のトラステッドアプリケーションを記憶することができる。なお、サーバ200から受信したトラステッドアプリケーションが記憶部54に記憶されていない場合には、受信したトラステッドアプリケーションをそのまま記憶部54に記憶すればよい。
検証処理部52は、アプリケーション取得部としての機能を有し、デバイス本体10が保持するトラステッドアプリケーション(より具体的には、トラステッド実行環境30で実行されるトラステッドアプリケーション32のうちの判定対象(検証対象とも称する)のトラステッドアプリケーション32)に係る情報を取得する。トラステッドアプリケーションに係る情報とは、トラステッドアプリケーション全体のデータでもよく、トラステッドアプリケーションの一部のデータでもよく、あるいはトラステッドアプリケーションのデータを変換(例えば、ハッシュ変換など)して得られたデータでもよい。
検証処理部52は、判定部としての機能を有し、トラステッド実行環境30から取得したトラステッドアプリケーション32に係る情報と記憶部54に記憶したトラステッドアプリケーション541に係る情報との一致・不一致を判定(検証とも称する)する。
両者が一致する場合には、トラステッド実行環境30内の判定対象のトラステッドアプリケーション32が、セキュアエレメント50で記憶するトラステッドアプリケーション541と同じであるので、問題はないと判定することができる。両者が不一致である場合には、トラステッド実行環境30内の判定対象のトラステッドアプリケーション32が、例えば、改ざんされている、あるいは破損していると判定することができる。
検証処理部52は、通知部としての機能を有し、判定結果を管理用トラステッドアプリケーション33へ通知する。これにより、管理用トラステッドアプリケーション33は、トラステッド実行環境30内のトラステッドアプリケーション32が改ざん又は破損しているか否かを確認することができる。
インストール処理部51は、検証処理部52で不一致と判定した場合、トラステッド実行環境30内のトラステッドアプリケーション32を置き換えるべくトラステッドアプリケーションの再インストールを行う。
トラステッド実行環境30内のトラステッドアプリケーション32の置き換え(再インストール)は、例えば、セキュアエレメント50(より具体的には、インストール処理部51)が、判定対象としたトラステッドアプリケーションをトラステッド実行環境30へ出力し、管理用トラステッドアプリケーション33が、トラステッド実行環境30内のトラステッドアプリケーション32を削除し、セキュアエレメント50から取得したトラステッドアプリケーションを再インストールことにより行うことができる。これにより、デバイス本体10は、当該トラステッドアプリケーションが行う機能を停止させることなく、当該トラステッドアプリケーションによる正常な動作を続けることが可能となる。
また、検証処理部52は、トラステッドアプリケーションに係る情報にハッシュ関数を適用して得られたハッシュ値の一致・不一致を判定する。ハッシュ関数は、適宜のものを用いることができる。これにより、一致・不一致の判定に要するデータ量を少なくすることができ、セキュアエレメント50の処理に係る負荷を軽減することができる。
セキュアエレメント50は、耐タンパ性を有する。セキュアエレメント50の記憶部54は、例えば、不揮発性メモリで構成することができ、記憶されたトラステッドアプリケーション541を安全に保持することができる。セキュアエレメント50の機能(例えば、インストール処理部51、検証処理部52、ダウンロード処理部53、記憶部54など)をハードウェアのモジュールで実現する場合、耐タンパ性を有するためには、セキュアエレメント50を1チップ化にしてもよく、あるいは、モジュール表面をコーティングしてもよい。また、セキュアエレメント50の機能をソフトウェアのモジュールで実現する場合、耐タンパ性を有するためには、実行コードを暗号化し、実行時に必要な部分だけをメモリ上で復号するようにすればよい。
なお、上述の例では、トラステッドアプリケーションの一致・不一致の判定処理をセキュアエレメント50で行う構成であるが、これに限定されるものではなく、デバイス本体10において、トラステッドアプリケーションの一致・不一致の判定処理を行うこともできる。
デバイス本体10がトラステッドアプリケーションの一致・不一致の判定処理を行う場合、例えば、管理用トラステッドアプリケーション33が、セキュアエレメント50が記憶するトラステッドアプリケーションを取得する。管理用トラステッドアプリケーション33は、トラステッドアプリケーションとデバイス本体10のトラステッド実行環境30で実行するトラステッドアプリケーションのうち判定対象のトラステッドアプリケーションとの一致・不一致を判定する。管理用トラステッドアプリケーション33は、両者が不一致である場合には、トラステッド実行環境30内の判定対象のトラステッドアプリケーションが、例えば、改ざんされている、あるいは破損していると判定することができる。
サーバ200は、セキュアエレメント50と通信することによって、セキュアエレメント50内、及びデバイス本体10のトラステッド実行環境30内のトラステッドアプリケーションを管理することができる。
サーバ200は、記憶部201、配信処理部210などを備える。記憶部201は、複数のトラステッドアプリケーション202、203、…を記憶する。
配信処理部210は、取得部としての機能を有し、秘匿通信路61を介してトラステッドアプリケーションの送信要求をセキュアエレメント50から取得する。
配信処理部210は、特定部としての機能を有し、送信要求を取得した場合、記憶部201に記憶した複数のトラステッドアプリケーションの中から送信要求に係るトラステッドアプリケーションを特定する。
配信処理部210は、送信部としての機能を有し、秘匿通信路61を介して特定したトラステッドアプリケーションをセキュアエレメント50へ送信する。これにより、サーバは200、セキュアエレメント50が必要とするトラステッドアプリケーションをセキュアエレメント50に提供することができる。
次に、本実施の形態の導入システムの動作について説明する。以下では、オフライン時のトラステッドアプリケーションのインストール動作、オンライン時のトラステッドアプリケーションのインストール動作、トラステッドアプリケーションの改ざん検出と再インストール動作について説明する。
図2は本実施の形態の導入システムのオフライン時のトラステッドアプリケーションのインストール動作の一例を示す説明図である。以下、符号P1〜P3で示す処理について説明する。なお、セキュアエレメント50内のトラステッドアプリケーション541は、製造段階などの工場出荷時、あるいはオンライン時のインストールによって、記憶部54に記憶されている。また、以下の図2〜図4では、デバイス本体10のうち所要の箇所のみ図示する。
P1(トラステッドアプリケーションのインストール要求):管理用トラステッドアプリケーション33は、セキュアエレメント50のインストール処理部51に対して、所要のトラステッドアプリケーションのインストール要求を出力する。
P2(インストール対象のトラステッドアプリケーションの特定):インストール処理部51は、トラステッドアプリケーションのインストール要求を取得すると、サーバ200へのネットワーク接続が遮断されていることを確認した上で、記憶部54を検索することによって、インストール対象のトラステッドアプリケーションを特定する。
P3(セキュアエレメント50からトラステッド実行環境30へインストール):インストール処理部51は、トラステッド実行環境30に対し、特定した(インストール対象の)トラステッドアプリケーションを出力する。
なお、図2の例では、トラステッド実行環境30とセキュアエレメント50との間でインストール要求及びトラステッドアプリケーションのインストールを行っているが、これに限定されない。例えば、通常実行環境20とセキュアエレメント50との間で秘匿通信を確立した上で、通常実行環境20に対してトラステッドアプリケーションを出力し、出力されたトラステッドアプリケーションを通常実行環境20からトラステッド実行環境30にインストールしてもよい。
図3は本実施の形態の導入システムのオンライン時のトラステッドアプリケーションのインストール動作の一例を示す説明図である。以下、符号P11〜P18で示す処理について説明する。
P11(トラステッドアプリケーションのインストール要求):管理用トラステッドアプリケーション33は、セキュアエレメント50のインストール処理部51に対して、所要のトラステッドアプリケーションのインストール要求を出力する。
P12(トラステッドアプリケーションのダウンロード依頼):インストール処理部51は、トラステッドアプリケーションのインストール要求を取得すると、サーバ200へのネットワーク接続が存在する場合、ダウンロード処理部53に対し、インストール対象のトラステッドアプリケーションのダウンロードを依頼する。
P13(秘匿通信路61の開設):ダウンロード処理部53は、ダウンロードの依頼を取得すると、セキュアエレメント50とサーバ200との間で、エンドツーエンドの秘匿通信路61を開設する。セキュアエレメント50が自ら物理的な通信手段(例えば、LAN又はWifi等)を有する場合、通信路開設(通信路確立)を独力で行うことができるが、通信手段を有しない場合には、デバイス100の物理的な通信手段を介してもよい。
P14(サーバ200への要求):ダウンロード処理部53は、秘匿通信路61を経由してサーバ200の配信処理部210に対し、トラステッドアプリケーションのダウンロード要求(送信要求)を行う。
P15(配信対象の特定):配信処理部210は、ダウンロード要求を取得すると、セキュアエレメント50に対し、配信すべきトラステッドアプリケーションを特定する。
P16(トラステッドアプリケーションの配信):配信処理部210は、秘匿通信路61を経由して、特定したトラステッドアプリケーションをセキュアエレメント50へ配信する。
P17(セキュアエレメント50内のトラステッドアプリケーションの更新):ダウンロード処理部53は、セキュアエレメント50の記憶部54にダウンロード済の旧バージョンのトラステッドアプリケーションが存在する場合、旧バージョンのトラステッドアプリケーションをダウンロードした最新版のトラステッドアプリケーションで更新する。
P18(セキュアエレメント50からトラステッド実行環境30へインストール):インストール処理部51は、トラステッド実行環境30に対し、ダウンロードした最新版のトラステッドアプリケーションを出力する。
図4は本実施の形態の導入システムのトラステッドアプリケーションの改ざん検出と再インストール動作の一例を示す説明図である。以下、符号P21〜P25で示す処理について説明する。
P21(トラステッド実行環境30のトラステッドアプリケーションに係る情報の送信):管理用トラステッドアプリケーション33は、改ざん検出対象(判定対象)のトラステッドアプリケーションに係る情報を、セキュアエレメント50の検証処理部52に送信し、改ざん検出を要求する。
P22(検出対象のトラステッドアプリケーションの特定):検証処理部52は、記憶部54を検索することにより、改ざん検出要求を受けたトラステッドアプリケーションと比較すべきトラステッドアプリケーションを特定する。
P23(判定処理の実行):検証処理部52は、管理用トラステッドアプリケーション33から取得したトラステッドアプリケーションに係る情報と、特定したトラステッドアプリケーションに係る情報との一致・不一致を判定し、両者が一致しているか否かを検証する。判定の結果、両者が一致している場合、検証処理部52は、判定結果を管理用トラステッドアプリケーション33へ出力し、処理を終了する。
P24(トラステッドアプリケーションの再インストール要求):検証処理部52は、判定の結果、両者が不一致である場合、トラステッド実行環境30のトラステッドアプリケーションが改ざんされている、あるいは破損していると判定し、インストール処理部51に対し、トラステッドアプリケーションの再インストールを要求する。
P25(トラステッドアプリケーションの再インストール):インストール処理部51は、トラステッドアプリケーションの再インストールの要求を取得すると、記憶部54に記憶したトラステッドアプリケーションのうち、判定対象としたトラステッドアプリケーションをトラステッド実行環境30に出力する。管理用トラステッドアプリケーション33は、インストール処理部51が出力したトラステッドアプリケーションを再インストールする。これにより、トラステッド実行環境30内の改ざんされたトラステッドアプリケーション又は破損したトラステッドアプリケーションを再インストールすることができる。
なお、図4に示す処理において、セキュアエレメント50とサーバ200との間で秘匿通信路61を開設することができる場合、サーバ200に対して、最新のトラステッドアプリケーションを配信するように要求し、取得した最新のトラステッドアプリケーションを再インストールしてもよい。
図5は本実施の形態の導入システムによるトラステッドアプリケーションのインストール処理手順の一例を示すフローチャートである。セキュアエレメント50は、管理用トラステッドアプリケーション33からトラステッドアプリケーションのインストール要求の有無を判定し(S11)、インストール要求がない場合(S11でNO)、ステップS11の処理を続ける。
トラステッドアプリケーションのインストール要求がある場合(S11でYES)、セキュアエレメント50は、サーバ200とのネットワーク接続が存在するか否かを判定する(S12)。サーバ200とのネットワーク接続が存在しない場合(S12でNO)、すなわち、オフライン環境である場合、セキュアエレメント50は、インストール対象のトラステッドアプリケーションを検索し特定する(S13)。
セキュアエレメント50は、特定したインストール対象のトラステッドアプリケーションをデバイス本体10(具体的には、トラステッド実行環境30)へ出力し(S14)、処理を終了する。
サーバ200とのネットワーク接続が存在する場合(S12でYES)、すなわち、オンライン環境である場合、セキュアエレメント50は、サーバ200との間で秘匿通信路61を確立(開設)し(S15)、インストール対象のトラステッドアプリケーションのダウンロード要求をサーバ200へ送信する(S16)。
サーバ200は、ダウンロード要求を受信し(S101)、記憶部201を検索することによってダウンロード要求に係るトラステッドアプリケーションを特定する(S102)。サーバ200は、特定したトラステッドアプリケーションをセキュアエレメント50へ送信する(S103)。
セキュアエレメント50は、サーバ200が送信したトラステッドアプリケーションを受信し(S17)、受信したトラステッドアプリケーションをデバイス本体10(具体的には、トラステッド実行環境30)へ出力し(S18)、受信したトラステッドアプリケーションを記憶部54に記憶し(S19)、処理を終了する。
図6は本実施の形態のセキュアエレメント50によるトラステッドアプリケーションの改ざん検出及び再インストール処理手順の一例を示すフローチャートである。セキュアエレメント50は、管理用トラステッドアプリケーション33からトラステッドアプリケーションの改ざん検出要求の有無を判定し(S31)、改ざん検出要求がない場合(S31でNO)、ステップS31の処理を続ける。
改ざん検出要求がある場合(S31でYES)、セキュアエレメント50は、改ざん検出対象のトラステッドアプリケーションの情報を取得し(S32)、記憶部54に記憶したトラステッドアプリケーションの中から改ざん検出対象のトラステッドアプリケーションを検索し特定する(S33)。
セキュアエレメント50は、管理用トラステッドアプリケーション33から取得したトラステッドアプリケーションの情報と、特定したトラステッドアプリケーションの情報とが一致するか否かを判定する(S34)。
情報が一致しない場合(S34でNO)、改ざん検出対象のトラステッドアプリケーションが改ざんされている(あるいは破損している)と判断し、セキュアエレメント50は、特定したトラステッドアプリケーションをデバイス本体10(具体的には、トラステッド実行環境30)へ出力し(S35)、処理を終了する。情報が一致する場合(S34でYES)、改ざん検出対象のトラステッドアプリケーションが改ざんされていない(あるいは破損していない)と判断し、セキュアエレメント50は、処理を終了する。
なお、図6に示すようなトラステッドアプリケーションの改ざん検出処理は、デバイス本体10で行うこともできる。
図5及び図6に示すような処理手順を定めたコンピュータプログラムをRAMにロードし、CPU(プロセッサ)により当該コンピュータプログラムを実行させることにより、セキュアエレメント50の各処理をコンピュータプログラムによって実現することができる。
上述のように、本実施の形態によれば、ネットワーク接続を確保せずに、セキュアエレメント50からデバイス本体10(具体的には、トラステッド実行環境30)に所要のトラステッドアプリケーションをインストールすることができる。また、セキュアエレメント50が耐タンパ性を有することにより、トラステッドアプリケーションを物理的に保護することができる。
また、本実施の形態によれば、セキュアエレメント50が独立した開設した秘匿通信路61経由でサーバ200から最新のトラステッドアプリケーションをダウンロードし、セキュアエレメント50が記憶するトラステッドアプリケーションを最新のものに更新することができる。
また、本実施の形態によれば、ネットワーク接続が確保されていない状態であっても、改ざん又は破損したトラステッドアプリケーションを再インストールすることができる。
本実施の形態に係るセキュアエレメントは、通常実行環境よりも安全なトラステッド実行環境でトラステッドアプリケーションを実行するデバイス本体からトラステッドアプリケーションのインストール要求を取得する取得部と、トラステッドアプリケーションを記憶する記憶部と、前記取得部でインストール要求を取得した場合、前記記憶部に記憶したトラステッドアプリケーションを前記デバイス本体へ出力する出力部とを備える。
本実施の形態に係るコンピュータプログラムは、コンピュータに、アプリケーションをインストールさせるためのコンピュータプログラムであって、コンピュータに、通常実行環境よりも安全なトラステッド実行環境でトラステッドアプリケーションを実行するデバイス本体からトラステッドアプリケーションのインストール要求を取得する処理と、インストール要求を取得した場合、記憶部に記憶したトラステッドアプリケーションを前記デバイス本体へ出力する処理とを実行させる。
本実施の形態に係るデバイスは、本実施の形態に係るセキュアエレメントと、デバイス本体とを備える。
本実施の形態に係るトラステッドアプリケーションのインストレーション方法は、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドアプリケーションのインストレーション方法であって、セキュアエレメントは、トラステッドアプリケーションを記憶し、トラステッドアプリケーションを実行するデバイス本体からトラステッドアプリケーションのインストール要求を取得し、インストール要求を取得した場合、記憶したトラステッドアプリケーションを前記デバイス本体へ出力する。
取得部は、通常実行環境よりも安全なトラステッド実行環境でトラステッドアプリケーションを実行するデバイス本体からトラステッドアプリケーションのインストール要求を取得する。インストール要求は、例えば、トラステッド実行環境でトラステッドアプリケーションのインストール又は削除、トラステッドアプリケーションのインストール状況を管理する管理用トラステッドアプリケーションが行うことができる。
記憶部は、トラステッドアプリケーションを記憶する。記憶部には、予めトラステッド実行環境で動作する1又は複数のトラステッドアプリケーションを記憶しておくことができる。また、記憶部に記憶するトラステッドアプリケーションには、デバイスが設置されて動作を開始した後に、初めてインストールされる可能性のあるトラステッドアプリケーション(すなわち、デバイス本体にインストールされていないトラステッドアプリケーション)を含めることができる。
出力部は、取得部でインストール要求を取得した場合、記憶部に記憶したトラステッドアプリケーションをデバイス本体へ出力する。この場合、管理用トラステッドアプリケーションは、セキュアエレメントから出力されたトラステッドアプリケーションをデバイス本体内にインストールすることができる。これにより、例えば、デバイスがネットワークと接続されていない状態(オフライン環境)であっても、秘密情報を開示することなくトラステッドアプリケーションをインストールすることができ、トラステッド実行環境で実行されるトラステッドアプリケーションのインストールの自由度を大きくすることができる。
本実施の形態に係るセキュアエレメントは、所定のサーバとの間でネットワーク接続の存否を判定する存否判定部を備え、前記出力部は、前記存否判定部でネットワーク接続が存在しないと判定した場合、前記記憶部に記憶したトラステッドアプリケーションを前記デバイス本体へ出力する。
存否判定部は、所定のサーバとの間でネットワーク接続の存否を判定する。所定のサーバは、例えば、デバイスに対してトラステッドアプリケーションを配信することができるサーバとすることができる。ネットワーク接続の存否は、ネットワーク接続が確立されているか、遮断されているかを判定する。
出力部は、存否判定部でネットワーク接続が存在しないと判定した場合、記憶部に記憶したトラステッドアプリケーションをデバイス本体へ出力する。これにより、例えば、デバイスがネットワークと接続されていない状態(オフライン環境)であっても、秘密情報を開示することなくトラステッドアプリケーションをインストールすることができ、トラステッド実行環境で実行されるトラステッドアプリケーションのインストールの自由度を大きくすることができる。
本実施の形態に係るセキュアエレメントは、前記存否判定部でネットワーク接続が存在すると判定した場合、前記サーバとの間で暗号化された秘匿通信路を確立する通信部と、前記秘匿通信路を経由して前記サーバからトラステッドアプリケーションを受信する受信部とを備え、前記出力部は、前記受信部で受信したトラステッドアプリケーションを前記デバイス本体へ出力する。
通信部は、存否判定部でネットワーク接続が存在すると判定した場合、サーバとの間で暗号化された秘匿通信路を確立する。受信部は、確立された秘匿通信路を経由してサーバからトラステッドアプリケーションを受信する。秘匿通信路においては、例えば、TLS(Transport Layer Security)などのプロトコルによって通信を行うことができる。これにより、トラステッドアプリケーションをサーバから受信する際に、トラステッドアプリケーションに関する情報の改ざんの防止、あるいは受信の妨害を回避することができる。
出力部は、受信部で受信したトラステッドアプリケーションをデバイス本体へ出力する。オンライン環境において、トラステッドアプリケーションをサーバから受信し、受信したトラステッドアプリケーションをデバイス本体へ出力するので、デバイス本体では、最新のトラステッドアプリケーションをインストールすることができる。
本実施の形態に係るセキュアエレメントは、前記受信部で受信したトラステッドアプリケーションで前記記憶部に記憶したトラステッドアプリケーションを更新する更新部を備える。
更新部は、受信部で受信したトラステッドアプリケーションで記憶部に記憶したトラステッドアプリケーションを更新する。例えば、サーバから受信したトラステッドアプリケーションのバージョン又はエディションが記憶部に記憶したトラステッドアプリケーションのバージョン又はエディションよりも新しい場合、トラステッドアプリケーションを更新することにより、セキュアエレメント内で最新のトラステッドアプリケーションを記憶することができる。なお、サーバから受信したトラステッドアプリケーションが記憶部に記憶されていない場合には、受信したトラステッドアプリケーションをそのまま記憶部に記憶すればよい。
本実施の形態に係るセキュアエレメントは、前記デバイス本体が保持するトラステッドアプリケーションに係る情報を取得するアプリケーション取得部と、該アプリケーション取得部で取得したトラステッドアプリケーションに係る情報と前記記憶部に記憶したトラステッドアプリケーションに係る情報との一致・不一致を判定する判定部と、該判定部での判定結果を前記デバイス本体へ通知する通知部とを備える。
アプリケーション取得部は、デバイス本体が保持するトラステッドアプリケーションに係る情報を取得する。トラステッドアプリケーションに係る情報とは、トラステッドアプリケーション全体のデータでもよく、トラステッドアプリケーションの一部のデータでもよく、あるいはトラステッドアプリケーションのデータを変換(例えば、ハッシュ変換など)して得られたデータでもよい。
判定部は、アプリケーション取得部で取得したトラステッドアプリケーションに係る情報と記憶部に記憶したトラステッドアプリケーションに係る情報との一致・不一致を判定する。両者が一致する場合には、デバイス本体が保持するトラステッドアプリケーションが、セキュアエレメントで記憶するトラステッドアプリケーションと同じであるので、問題はないと判定することができる。両者が不一致である場合には、デバイス本体が保持するトラステッドアプリケーションが、例えば、改ざんされている、あるいは破損していると判定することができる。
通知部は、判定部での判定結果をデバイス本体へ通知する。これにより、デバイス本体は、デバイス本体が保持するトラステッドアプリケーションが改ざん又は破損しているか否かを確認することができる。
本実施の形態に係るセキュアエレメントにおいて、前記出力部は、前記判定部で不一致と判定した場合、前記記憶部に記憶したトラステッドアプリケーションを前記デバイス本体へ出力する。
出力部は、判定部で不一致と判定した場合、記憶部に記憶したトラステッドアプリケーションをデバイス本体へ出力する。すなわち、トラステッドアプリケーションの再インストールを行う。ここで、再インストールとは、デバイス本体にインストール済のトラステッドアプリケーションを置き換えることである。トラステッドアプリケーションの再インストールは、例えば、セキュアエレメントが、判定対象としたトラステッドアプリケーションをデバイス本体へ出力し、管理用トラステッドアプリケーションが、デバイス本体が保持するトラステッドアプリケーションを削除し、セキュアエレメントから取得したトラステッドアプリケーションを再インストールことにより行うことができる。これにより、デバイス本体は、当該トラステッドアプリケーションが行う機能を停止させることなく、当該トラステッドアプリケーションによる正常な動作を続けることが可能となる。
本実施の形態に係るセキュアエレメントにおいて、前記判定部は、前記トラステッドアプリケーションに係る情報にハッシュ関数を適用して得られたハッシュ値の一致・不一致を判定する。
判定部は、トラステッドアプリケーションに係る情報にハッシュ関数を適用して得られたハッシュ値の一致・不一致を判定する。ハッシュ関数は、適宜のものを用いることができる。これにより、一致・不一致の判定に要するデータ量を少なくすることができ、セキュアエレメントの処理に係る負荷を軽減することができる。
本実施の形態に係るデバイスにおいて、前記デバイス本体は、前記セキュアエレメントが記憶するトラステッドアプリケーションを取得する取得部と、該取得部で取得したトラステッドアプリケーションと前記デバイス本体のトラステッド実行環境で実行するトラステッドアプリケーションとの一致・不一致を判定する判定部とを備える。
デバイス本体の取得部は、セキュアエレメントが記憶するトラステッドアプリケーションを取得する。判定部は、取得部で取得したトラステッドアプリケーションとデバイス本体のトラステッド実行環境で実行するトラステッドアプリケーションとの一致・不一致を判定する。デバイス本体は、両者が不一致である場合には、デバイス本体が保持するトラステッドアプリケーションが、例えば、改ざんされている、あるいは破損していると判定することができる。
本実施の形態に係るサーバは、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドアプリケーションを複数記憶する記憶部と、トラステッドアプリケーションの送信要求をセキュアエレメントから取得する取得部と、該取得部で送信要求を取得した場合、前記記憶部に記憶した複数のトラステッドアプリケーションの中から送信要求に係るトラステッドアプリケーションを特定する特定部と、該特定部で特定したトラステッドアプリケーションを前記セキュアエレメントへ送信する送信部とを備える。
記憶部は、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドアプリケーションを複数記憶する。取得部は、トラステッドアプリケーションの送信要求をセキュアエレメントから取得する。特定部は、取得部で送信要求を取得した場合、記憶部に記憶した複数のトラステッドアプリケーションの中から送信要求に係るトラステッドアプリケーションを特定する。送信部は、特定部で特定したトラステッドアプリケーションをセキュアエレメントへ送信する。これにより、サーバは、セキュアエレメントが必要とするトラステッドアプリケーションを当該セキュアエレメントに提供することができる。