【文献】
太田 賢 Ken Ohta,携帯機の安全な機能拡張のための信頼できるデバイスフレームワーク Trusted Device Framework for Secure,情報処理学会研究報告 Vol.2005 No.16 IPSJ SIG Technical Reports,日本,社団法人情報処理学会 Information Processing Socie,2005年 2月23日,第2005巻,p.49-56
(58)【調査した分野】(Int.Cl.,DB名)
前記第1のペルソナ(110)および第2の(120)ペルソナに対する前記信頼のルートを確立するステップは、前記第1のオペレーティング・システム(112)および前記第2のオペレーティング・システム(122)のイメージを、ロード中に前記第1のペルソナ(110)および第2のペルソナ(120)の前記信頼のルートに対して検証するステップを含む、請求項1に記載の方法。
前記第1のペルソナおよび第2のペルソナがロードされた後に、前記第1の信頼されたプラットフォーム・モジュール(60)の制御を前記第1のペルソナ(110)に移し、前記第2の信頼されたプラットフォーム・モジュール(62)の制御を前記第2のペルソナ(120)に移すステップをさらに含む、請求項1に記載の方法。
前記第1のペルソナ(110)および前記第2のペルソナ(120)に対するセキュリティ・ポリシを定義するステップであって、前記セキュリティ・ポリシはどのように前記第1のペルソナ(110)および前記第2のペルソナ(120)が前記モバイル通信装置(10)上の物理装置にアクセスするかを定義するステップと、
前記セキュリティ・ポリシをセキュリティ・スーパバイザ(108)で強制するステップと、
をさらに含む、請求項1に記載の方法。
前記第1のペルソナ(110)および前記第2のペルソナ(120)をロードするステップは、基盤となるオペレーティング・システムをデバイス製造者の信頼のルートにより署名されたブート・ローダ(144)でロードするステップを含む、請求項7に記載の方法。
【発明を実施するための形態】
【0009】
本明細書で説明するシステムおよび方法を使用してモバイル通信装置を動作させてもよい。例示的な実装では、当該モバイル通信装置は、公開鍵と秘密鍵に基づく暗号化のような暗号化を用いてそこで実行されているオペレーティング・システムの安全性確保を促進するハードウェアおよびソフトウェアのアーキテクチャにより管理される。より具体的には、当該モバイル通信装置は、デバイスで同時に実行されそれぞれ別々の信頼のルートを有する複数の仮想化されたオペレーティング・システムをサポートする。したがって、デバイス上のハードウェアに対する仮想化されたオペレーティング・システムのアクセスが、当該デバイスの信頼された動作を可能とするために所定のセキュリティ・ポリシにより強制される。
【0010】
図1と
図2は例示的なモバイル通信装置10を示す。例示的な実装では、別のモバイル通信装置のような別のデバイスとの音声通信をサポートするためのモバイル通信装置10が提供される。さらに、モバイル通信装置10が、ネットワーク・アクセス、SMSメッセージング、1つまたは複数のアプリケーションのホスト、データ処理、暗号化、および/または他の機能を含む、多様な他の機能を含んでもよい。モバイル通信装置10が、1つまたは複数のセルラ・ネットワークを通じて通信するように構成されたスマートフォンであってもよい。代替的な実装では、モバイル通信装置10が、WiFiおよび/または衛星ネットワークのような非セルラ・ネットワーク上で排他的に動作してもよい。
【0011】
図示したように、モバイル通信装置10は筐体12と少なくとも筐体12内部に配置された複数の提示装置14とを備える。提示装置14は、モバイル通信装置10の動作に関連するデータ、コマンド、要求されたデータ、メッセージ、(仮想キーボードのような)1つまたは複数の入力デバイス、および/または他の任意の種類のデータのような情報をユーザに出力するがこれらに限られない。幾つかの例では、提示装置14が、例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、発光ダイオード(LED)、カメラフラッシュ、有機LED(OLED)ディスプレイ、および/または「電気インク」ディスプレイを含んでもよい。幾つかの実装では、複数の提示装置14を、データをユーザに視覚的におよび/または音声的に提供するために含めてもよい。例示的な実装では、提示装置14は音声通信で使用するためのオーディオ出力を備える。
【0012】
モバイル通信装置10はさらに少なくとも部分的に筐体12内部に配置された複数の入力デバイス16を備える。各入力デバイス16を、本明細書で説明した方法および/またはプロセスのうち1つまたは複数に従って、選択肢、要求、コマンド、情報、データ、および/または他の任意の種類の入力を受信するように構成してもよい。入力デバイス16が、例えば、ボタン、キーボード、マイクロフォン、バイブ、ポインティング・デバイス、スタイラスペン、タッチセンシティブパネル(例えば、タッチパッドまたはタッチスクリーン)、ジャイロスコープ、加速度計、デジタルコンパス、位置検出器、カメラ、第2のカメラ、周辺光センサ、および/またはオーディオ入力インタフェースを含んでもよい。例示的な実装では、タッチスクリーン18のような単一のコンポーネントが、提示装置14と入力デバイス16の両方として機能する。
【0013】
1実装では、モバイル通信装置10は、安全なモバイル通信装置10の動作を促進するセキュリティ機能を備える。セキュリティ機能には、セキュリティ・ボタン17のような入力デバイス16および複数のLEDのような提示装置14が含まれる。より具体的には、モバイル通信装置10は第1のLED19と第2のLED21を備える。下記でさらに詳細に説明するように、当該セキュリティ機能を使用して、モバイル通信装置10の動作上の信頼されたステータスを変更および/または検証してもよい。代替的な実装では、モバイル通信装置10が、当該セキュリティ機能が本明細書で説明したように機能できるようにする任意の種類および/または数の提示装置を備えてもよい。
【0014】
モバイル通信装置10は筐体12と係合した背面パネル20を備える。背面パネル20は、筐体12と十分に一貫した断面を定義し、それにより、筐体12に接続されたとき筐体12とともに十分に統合したユニットを形成する。背面パネル20は、モバイル通信装置10の1つまたは複数の態様へのアクセスを提供するためにモバイル通信装置10から取外し可能である。
【0015】
図3は、(
図1に示す)モバイル通信装置10とともに使用できる例示的なハードウェアアーキテクチャの略図である。例示的な実装では、モバイル通信装置10は、メモリ22とプログラムされた命令を実行するためのメモリ22に接続されたプロセッサ24とを備える。プロセッサ24が、(例えば、マルチコア構成での)1つまたは複数の処理ユニットを備えてもよく、かつ/または、暗号加速器(図示せず)を備えてもよい。モバイル通信装置10は、メモリ22および/またはプロセッサ24をプログラムすることにより本明細書で説明した1つまたは複数の動作を実施するようにプログラム可能である。例えば、プロセッサ24を、動作を実行可能命令として符号化し、当該実行可能命令をメモリ22に提供することでプログラムしてもよい。
【0016】
プロセッサ24が、汎用目的中央演算処理装置(CPU)、マイクロコントローラ、縮小命令セットコンピュータ(RISC)プロセッサ、オープン・メディア・アプリケーションプラットフォーム(OMAP)、特殊用途向け集積回路(ASIC)、プログラム可能論理回路(PLC)、および/または本明細書で説明した機能を実行できる任意の他の回路またはプロセッサを含んでもよいが、これらに限られない。本明細書で説明した方法を、限定ではなく、記憶デバイスおよび/またはメモリ・デバイスを含むコンピュータ可読媒体で具体化した実行可能命令として符号化してもよい。かかる命令は、プロセッサ24により実行されたとき、本明細書で説明した機能の少なくとも一部をプロセッサ24に実施させる。上述の例は例示的なものにすぎず、したがって、プロセッサという用語の定義および/または意味を何ら限定しようとするものではない。
【0017】
メモリ22は、本明細書で説明したように、実行可能命令および/または他のデータのような情報を格納し取り出すことができる1つまたは複数のデバイスである。メモリ22が、限定ではなく、ダイナミック・ランダム・アクセス・メモリ(DRAM)、同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、固体ディスク、および/またはハードディスクのような1つまたは複数のコンピュータ可読媒体を含んでもよい。メモリ22を、限定ではなく、実行可能命令、オペレーティング・システム、アプリケーション、リソース、インストール・スクリプトおよび/または本明細書で説明した方法およびシステムとの使用に適した他の任意の種類のデータを格納するように構成してもよい。
【0018】
オペレーティング・システムおよびアプリケーションに対する命令は、本明細書で説明したプロセスの1つまたは複数を実施するようにプロセッサ24により実行するために、機能的な形態で非一時的なメモリ22に配置される。別の実装では、これらの命令を、メモリ22のような異なる物理的または有形のコンピュータ可読媒体またはコンピュータ可読媒体26のような別のメモリで具体化してもよく、これらが、限定ではなく、フラッシュ・ドライブおよび/またはサム・ドライブを含んでもよい。さらに、命令は機能的な形態で非一時的なコンピュータ可読媒体26に配置される。非一時的なコンピュータ可読媒体26は、限定ではなく、スマートメディア(SM)メモリ、コンパクトフラッシュ(登録商標)(CF)メモリ、セキュアデジタル(SD)メモリ、メモリスティック(MS)メモリ、マルチメディアカード(MMC)メモリ、組込み型マルチメディアカード(e−MMC)、およびマイクロ−ドライブメモリを含んでもよい。コンピュータ可読媒体26が、プロセッサ24によるアクセスおよび/または実行を許可するために、モバイル通信装置10から選択的に挿入可能および/または取外し可能であってもよい。幾つかの実装では、コンピュータ可読媒体26は取外し可能ではない。
【0019】
図3を再度参照すると、モバイル通信装置10がGPSコンポーネント30を備えてもよい。GPSコンポーネント30は位置データをプロセッサ24に提供するように構成される。当該位置データは、プロセッサ24が、モバイル通信装置10の位置を決定し、かつ/または、例えばナビゲーション機能のような、モバイル通信装置10の位置に依存する機能を提供することを可能とする。代替的な実装では、位置データを、近傍の802.11および/またはBluetooth(登録商標)基地局またはデバイス、および/またはそれらの組合せを特定することによって、セルラ・ネットワークを用いてモバイル通信装置10に対して取得してもよい。
【0020】
幾つかの実装では、モバイル通信装置10はさらに少なくとも1つの暗号化プロセッサを備える。より具体的には、モバイル通信装置10は第1の信頼されたプラットフォーム・モジュール(TPM)60および第2のTPM62を備える。当該TPMは、モバイル通信装置10との通信および/またはモバイル通信装置10への格納のためにプロセッサ24によりアクセスされるデータの少なくとも一部を暗号化する。したがって、幾つかのデータを、モバイル通信装置10の他のアプリケーションおよび/または動作から分離し、かかるアプリケーション/動作より高いレベルのセキュリティに保ってもよい。したがって、TPM60および62は、例えば、信頼されたブート、測定されたブート、安全なブート、リモート証明、および保護されたキーストアを促進する。
【0021】
さらに、モバイル通信装置はプロセッサ24に接続されたセキュア要素64を備える。より具体的には、セキュア要素64を、ユニバーサル集積回路カード(UICC)、マイクロSDカードのうち少なくとも1つとしてモバイル通信装置10と統合してもよく、かつ/またはモバイル通信装置10に組み込んでもよい。セキュア要素64は、キーストアデバイスとしておよび/またはモバイル通信装置10で実行されているプラットフォーム向けのハードウェア信頼アンカとして使用できる、耐タンパ性の記憶および実行環境である。より具体的には、セキュア要素64は、データ暗号化鍵、パスワード、およびハードウェアおよびソフトウェア構成情報を格納する。さらに、セキュア要素64は、公開鍵対を生成し、関連する秘密鍵のエクスポートの制限を促進する。代替的な実装では、セキュア要素64をTPMで実装してもよい。
【0022】
モバイル通信装置10はまた、セキュリティ・スーパバイザ・メモリ66を備える。セキュリティ・スーパバイザ・メモリ66は、複数の鍵を含みうるタンパ耐性データを格納し、セキュア要素64および/または第1のTPM60もしくは第2のTPM62の内部にデータをラップしてもよい。動作に際して、改竄事象を検出した際に、ラップしたデータが復元できないように、タンパ耐性データをクリアしてもよい。セキュリティ・スーパバイザ・メモリ66が、モバイル通信装置10が本明細書で説明したように機能できるようにする任意量のタンパ耐性データを保持してもよい。
【0023】
モバイル通信装置10はさらに、プロセッサ24に接続されたセルラ・コントローラ31を備える。セルラ・コントローラ31により、モバイル通信装置10は1つまたは複数のセルラ・ネットワーク(図示せず)と通信して、音声および/またはデータ通信を当該セルラ・ネットワークに提供することができる。本例では、モバイル通信装置10は、セルラ・コントローラ31に接続された2つのサブスクライバ・アイデンティティ・モジュール(SIM)カード・ソケット33Aおよび33Bを備える。このように、モバイル通信装置10は、モバイル通信装置10のユーザにより選択可能な、2つの異なるセルラ・アカウントに関連付けられた2つのSIMカードを受信することができる。例えば、モバイル通信装置10は個人的なセルラアカウントおよびビジネスのセルラアカウントにアクセスして、ユーザが個人的な利用およびビジネス利用を分けるためにそれらの間で選択できるようにしてもよい。他の実装では、異なる数のSIMカード・ソケットを含めてもよいことに留意されたい。
【0024】
さらに、モバイル通信装置10はプロセッサ24に接続されたUSBコントローラ35を備える。
図3に図示したように、USBコントローラ35はコネクタ37を通じてアクセス可能である。このように、1つまたは複数の異なるデバイスがモバイル通信装置10と通信してもよい。同様に、モバイル通信装置10はさらに、プロセッサ24に接続された高解像度マルチメディアインタフェース(HDMI(登録商標))コントローラ39を備え、コネクタ41を通じてアクセス可能である。少なくとも1つの実装では、コネクタ37および/または41が、モバイル通信装置10に対するマイクロUSBおよび/またはマイクロHDMI(登録商標)接続を提供してもよい。
【0025】
追加または代替として、モバイル通信装置10が、1つまたは複数の無線通信チャネルを提供するために、Bluetooth(登録商標)コントローラ、ZigBeeコントローラ、および/またはWi−Fiコントローラのうち1つまたは複数を含んでもよい。GPSコンポーネント30、第1のTPM60、第2のTPM62、およびセルラ・コントローラ31が少なくとも部分的にハードウェアで提供されるが、モバイル通信装置10に統合された1つまたは複数のコンポーネントを、プロセッサ24に関連付けられたソフトウェアおよび/またはファームウェアを介して提供してもよいことはさらに理解される。1例では、プロセッサ24は、モバイル通信装置10の低レベルエアインタフェースプロトコルを分析し、承認されたネットワークのIDおよび特性に基づいてネットワーク送信を許可または拒否するように構成されたエアインタフェースファイアウォールを提供する。本例では、セルラ・ネットワークのIDおよび特性を含むセルラ・コントローラ31からのエアインタフェースプロトコルデータが、プロセッサ24に提供され、セルラ・コントローラ31により識別されたセルラ・ネットワークを介してネットワーク送信を行うことをモバイル通信装置10が許可されるべきであるかどうかを判定するために、プロセッサ24により分析される。本例では、提供された分析のレベルが、セルラ・コントローラ31の標準セルラ・ネットワーク・プロトコル認証機構をそれら自身が使用すること以外に、プロセッサ24にさらにセルラ・コントローラ31のネットワーク接続を認証させることによって、ネットワークセキュリティをモバイル通信装置10に追加する。例えばBluetooth(登録商標)コントローラおよび/またはWi−Fiコントローラのようなモバイル通信装置10の他のエアインタフェースコンポーネントをエアインタフェースファイアウォールにより監視してもよいことに留意されたい。代替的な実装では、第1のTPM60および第2のTPM62をソフトウェアで実装してもよい。
【0026】
他のモバイル通信装置の実装が、プロセッサ24に統合されるかまたはプロセッサ24の外部にあるより多いかまたは少ないコンポーネントを含んでもよいことに留意されたい。
【0027】
図4は、(
図1に示す)モバイル通信装置10とともに使用できる例示的なソフトウェア・アーキテクチャ100の略図である。例示的な実装では、ソフトウェア・アーキテクチャ100は、プロセッサ24とメモリ22を備えるハードウェア・プラットフォーム102にインストールされたオペレーティング・システム104を備える。ハードウェア・プラットフォーム102は上述のモバイル通信装置10のコンポーネントを備える。ソフトウェア・アーキテクチャ100はまた、ハイパバイザ106と通信して接続されるオペレーティング・システム104(即ち、タイプ2のハイパバイザ)およびセキュリティ・スーパバイザ108の上で実行される、ハイパバイザ106のような仮想化ソフトウェア層を備える。代替的な実装では、ハイパバイザ106を、ハードウェア・プラットフォーム102(即ち、タイプ1ハイパバイザ)にインストールしそこで動作させてもよい。ハイパバイザ106は、複数の仮想マシンを並列にインスタンス化し実行できるように、複数の仮想マシン実行空間をサポートする。
【0028】
ハイパバイザ106は、ハイパバイザ106の上で実行できる第1のペルソナ110および第2のペルソナ120を仮想化する。第1のペルソナ110は第1のペルソナのオペレーティング・システム(OS)112および第1の信頼された実行環境(TEE)114を備え、第2のペルソナ120は第2のペルソナのオペレーティング・システム122および第2の信頼された実行環境124を備える。
【0029】
第1のペルソナ110および第2のペルソナ120はそれぞれ、信頼を検証し、各ペルソナにより実施されるアクションを認証するために使用できる定義された信頼アンカを有する。より具体的には、第1のペルソナ110は第1の信頼アンカを有し、第2のペルソナ120は第1の信頼アンカとは別の第2の信頼アンカを有する。本明細書で使用する際「信頼アンカ」という用語は、ペルソナのオーナを定義しペルソナ資産を署名するために使用できる1つまたは複数の秘密暗号化鍵(即ち、暗号証明書)のことをいう。反対に、本明細書で使用する際、「オーナ」および/または「オーナシップ」という用語は、信頼アンカを保持することでペルソナに対する管理上の制御を有する人またはエンティティのことをいう。幾つかの実装では、信頼アンカルートの証明書を使用して、ペルソナ・パッケージの資産を署名する中間認証局を署名してもよい。
【0030】
各信頼アンカはルート認証局に遡る。ルート認証局が、企業組織であってもよく、かつ/または、デスクトップ・コンピュータ上で単一のユーザに対して軽量に定義されてもよい。したがって、第1のペルソナ110のリソースを第2のペルソナ120と分離したままにしてもよく、各信頼アンカに合意され署名されたアクセスポリシを強制してもよい。ルート認証局を、オフラインかつ安全な位置に格納してもよい。さらに、信頼アンカが、特別に定義された能力を有する複数の中間認証局を含んでもよい。例示的な能力には、オペレーティング・システムを定義する権利、TEEを定義する権利、セキュリティ・ポリシを定義する権利、他の中間認証局および/またはユーザ証明書を定義する権利、バックアップ能力、バックアップ・ポリシ、オペレーティング・システムを更新する能力、TEEを更新する能力、モバイル・デバイス管理(MDM)機能、および鍵インポートおよび/またはエクスポートが含まれるがこれらに限られれない。
【0031】
第1のペルソナ110および第2のペルソナ120の信頼されたソフトウェアはそれぞれ、デフォルト条件下で他のソフトウェアから隔離された状況で実行される。より具体的には、上述のように、ハイパバイザ106は、第1のTEE114および第2のTEE124を互いに分離し隔離することを容易にする。したがって、各ペルソナは、モバイル通信装置10で実行されている他のオペレーティング・システムの影響を受けない。さらに、第1のペルソナ110および第2のペルソナ120を、第1のTEE114および第2のTEE124の間で相互信頼を確立するように構成してもよい。かかる相互信頼を確立することにより、第1のペルソナ110および第2のペルソナ120の間で信頼された通信経路を形成することができる。第1のTEE114および第2のTEE124の間の通信を、第1のペルソナ110および第2のペルソナ120のセキュリティ・ポリシにおける相互同意によってのみ可能としてもよい。さらに、高保証ガード(図示せず)を、第1のペルソナ110および第2のペルソナ120の間のデータの流れの制限を容易にするように実装してもよい。例えば、当該高保証ガードが、第1のペルソナ110および第2のペルソナ120の間のセンシティブなおよび/または分類されたデータの流れの制限を、それらの間の未分類のデータの流れを許可しつつ、容易にしてもよい。
【0032】
第1のペルソナ110とその要素を以下でさらに詳細に説明するが、同一の説明を第2のペルソナ120とその要素に適用してもよいことは理解される。例示的な実装では、第1のペルソナOS112は、フル・オペレーティング・システムの実行を可能とするリソースおよび仮想デバイス・ドライバを有する実行環境である。例示的なフル・オペレーティング・システムが、アンドロイド「登録商標」オープン・ソース・プロジェクト(AOSP)オペレーティング・システムを含んでもよいが、これらに限られない。第1のペルソナOS112が、第1のペルソナOS112が第1のTEE114と通信できるようにするライブラリを含んでもよい。さらに、複数のアプリケーション130を、外部ソース(図示せず)から取得し、第1のペルソナOS112の上で実行してもよい。
【0033】
第1のTEE114は、第1のペルソナOS112と分離され第1のペルソナOS112と通信接続される軽量実行環境である。第1のTEE114は、センシティブデータを格納してセンシティブアプリケーションを実行するために使用できる領域を提供するセキュア環境である。代替的な実装では、第1のTEE114が、フル・オペレーティング・システムの実行を可能とし、かつ/または別々のハードウェアで実行できるリソースおよび仮想デバイス・ドライバを有する実行環境であってもよい。さらに、第1のペルソナ110が複数の信頼された実行環境を含んでもよい。
【0034】
第1のTEE114はISO7816サブスクライバ識別モジュール(SIM)インタフェースおよび/またはTPMへの直接アクセスを有する。より具体的には、第1のTPM60(
図3に示す)は第1のペルソナ110に割り当てられ、第2のTPM62(
図3に示す)は第2のペルソナ120に割り当てられる。したがって、第1のTPM60を第1のペルソナ110のオーナに対するハードウェア信頼アンカとして使用してもよく、第2のTPM62を第2のペルソナ120のオーナに対するハードウェア信頼アンカとして使用してもよい。さらに、第1のTEE114は、第1のTPM60に対する直接アクセスを有し、例えば、認証、キーストアアクセス、仮想プライベートネットワーク(VPN)構成、および/またはボイス・オーバー・インターネットプロトコル(VoIP)ソフトウェアのような信頼された実行環境サービスに対する直接アクセスを有する。かかるセンシティブなデータの経路を第1のTEE114内部で第1のペルソナOS112から隔離することで、TEEサービスの制御をペルソナ・オーナで維持しつつ、信頼されたモバイル通信装置10の動作を保証するのを促進する。さらに、第1のTEE114が第1のTPM60を制御できるようにすることで、センシティブ情報を第1のペルソナOS112から隔離するのを促進して、当該情報がより安全な保護された環境にあるようにする。
【0035】
さらに、第1のペルソナOS112に平文鍵を晒すことなく暗号動作を第1のペルソナOS112の代わりに実施できるように、第1のTEE114が暗号サービスに対するアクセスを有してもよい。より具体的には、第1のTEE114が、無認証のハードウェア加速暗号化、スイートB、および/またはFIPS−140−2認証暗号化を可能とする、第1のTPM60内の暗号化モジュールを利用してもよい。モバイル通信装置10がVPNモジュールおよび/またはVoIPモジュールを備えてもよい。当該VPNモジュールにより、第1のペルソナ110はVPNを認証し、信頼されていないコードに対して認証または暗号化鍵が可視であることなく、暗号化と通信することができる。さらに、当該VoIPモジュールにより、第1のペルソナ110はVoIP呼を確立し認証し、信頼されていないコードに対して認証または暗号化鍵が可視であることなく、暗号化と通信することができる。
【0036】
第1のペルソナOS112および第2のペルソナOS122の信頼は、プラットフォーム・ハードウェア102によりロードされる各ペルソナのブート・イメージの整合性により定義される。例えば、第1のTEE114の信頼は、下記でさらに詳細に説明するように、プラットフォーム・ハードウェア102によりロードされたときにその静的イメージの整合性により定義される。より具体的には、第1のTEE114にロードされたコードがロード中に信頼アンカに対して検証され、当該イメージは一旦ロードされると不変である。当該イメージが不変であるので、第1のTEE114を、第1のTEE114で新規に署名されたイメージをロードすることによってのみ、変更してもよい。さらに、第1のペルソナOS112および第2のペルソナOS122が自己の実行環境の外部のリソースを利用して、その整合性を管理してもよい。例えば、オペレーティング・システムのロードを暗号化して検証してもよく、ハードウェア・リソースに対するオペレーティング・システムのアクセスを、その制御の外部の構成を通じて制限し、強制してもよい。
【0037】
ソフトウェア・アーキテクチャ100はまた、オペレーティング・システム104をロードする一次ブート・ローダ140、第1のペルソナOS112をロードする第1の二次ブート・ローダ142、および第2のペルソナOS122をロードする第2の二次ブート・ローダ144を備える。例示的な実装では、モバイル通信装置10は、ブートプロセス中にプラットフォーム信頼の確立を促進するプロセッサを使用する。より具体的には、当該プロセッサは、各オペレーティング・システムのロード中の信頼確立を促進するためのブート・ローダの署名検証を可能とする。例えば、モバイル通信装置10は、信頼のチェーンがハードウェア・プラットフォーム102から第1のペルソナ110と第2のペルソナ120に伸びた際に壊れないように、固定のハッシュ値と署名検証の組合せを使用する。
【0038】
動作に際して、プロセッサ24は一次ブート・ローダ140を、それがデバイス製造者の信頼のルートによりデジタル的に署名されている場合に、ロードする。本明細書で使用する際、「デバイス製造者の信頼のルート」という用語は、モバイル通信装置10にインストールされている資産を署名するためにデバイス製造者により使用される1つまたは複数の秘密暗号化鍵(即ち、暗号証明書)をいう。信頼のチェーンは、隔離された実行環境を確立すること、モバイル通信装置10内部のコンポーネントを検証すること、および/または信頼された状態に対して束縛するためのユーザ・コードにより後に使用するための信頼されたプラットフォーム・モジュールに測定値を格納することを促進するように、ハイパバイザ106を通じて破壊されないままであり続ける。
【0039】
TPM60および62の測定されたブート態様を第1のペルソナ110および第2のペルソナ120により使用できるように、第1のTPM60の制御は第1のペルソナ110に移され、第2のTPM62の制御は第2のペルソナ120に移される。より具体的には、TPM60および62がモバイル通信装置10の信頼されたブート・ソフトウェアにより開始され、次いで制御が、ペルソナがロードされた後にその排他的な利用のために各ペルソナに移される。ペルソナが信頼されたブートに対するTPMを使用する場合、デバイス全体をリセットせずには当該ペルソナをリブートできないように、ハードウェアおよび/またはソフトウェアの変更により、元の構成に対して束縛されている鍵を取り出せないようにしてもよい。
【0040】
ブートプロセスの間、TPMは、モバイル通信装置10内で使用される重大なソフトウェアおよびファームウェアのコンポーネントを測定(即ち、ハッシュ)する。例えば、測定に関する信頼のルートを、一次ブート・ローダ140、オペレーティング・システム104、ハイパバイザ106、セキュリティ・スーパバイザ108、ブート・ローダ142、および第1のペルソナOS112に対する測定値が第1のTPM60に延長されるときに確立してもよい。当該測定値を、第1のTPM60内に配置されたプラットフォーム構成レジスタ(PCR)内に格納し、オペレーティング・システムのイメージを関連する信頼アンカに対してブート時に検証するために使用してもよい。したがって、PCRに束縛できるセンシティブ情報にアクセスできる前に当該システムの整合性を検証してもよい。
【0041】
ブート・ローディング中にデバイス製造者の信頼のルートから一旦制御が移されると、ペルソナがその整合性に対して責任を負ってもよい。例えば、第1のペルソナOS112にインストールされ実行されるアプリケーション130を検証するのは第1のペルソナOS112の責任である。したがって、悪意あるアプリケーション(図示せず)が、モバイル通信装置10で実行されているゲスト・オペレーティング・システムの整合性を危機に晒す場合には、このように危機に晒されることは、他のゲスト・オペレーティング・システムの整合性に対し、危機に晒されたオペレーティング・システムとそれらが信頼関係を有さない場合には、影響を及ぼさない。
【0042】
セキュリティ・スーパバイザ108が第1のペルソナOS112および第2のペルソナOS122と通信して接続される。セキュリティ・スーパバイザ108は、モバイル通信装置10の動作に際して使用するためのセキュリティ・ポリシの格納と実行を促進するオペレーティング・システムである。セキュリティ・スーパバイザ108は隔離された環境で実行され、プラットフォームのリソース、追加のインタフェース、および/または追加の能力に対するアクセスを有してもよい。幾つかの実装では、第1のペルソナ110および第2のペルソナ120は、ペルソナ・オーナが、そのペルソナ・オーナが所有しないペルソナのセキュリティ・ポリシを構成できないように、信頼された機構(即ち、CPU仮想化)を通じて分離される。例えば、第1のペルソナ110のセキュリティ・ポリシが第1のペルソナ・オーナによってのみ構成でき、第2のペルソナ120のセキュリティ・ポリシは第2のペルソナ・オーナによってのみ構成することができる。より具体的には、各セキュリティ・ポリシを、ペルソナ・オーナの秘密鍵により署名してもよく、当該署名を、セキュリティ・スーパバイザ108がセキュリティ・ポリシを関連するペルソナに適用する前に、当該ペルソナ・オーナの対応する公開鍵を用いてモバイル通信装置10により検証してもよい。第1のペルソナ110および第2のペルソナ120に対するオーナシップおよびセキュリティ・ポリシは、セキュリティ・スーパバイザ108により維持できる構成ファイルに格納される。さらに、当該オーナシップおよびセキュリティ・ポリシは暗号証明書により検証される。したがって、各ペルソナ・オーナが、それが所有するペルソナに関するオペレーティング・システム、信頼された実行環境、およびセキュリティ・ポリシを定義してもよい。
【0043】
第1のペルソナ110および第2のペルソナ120のセキュリティ・ポリシを、ペルソナ・オーナにより定義してもよく、ペルソナのコードから隔離して定義し、格納し、強制してもよい。当該セキュリティ・ポリシは、どのように各関連するペルソナがモバイル通信装置10の物理装置にアクセスできるかを定義する。例えば、当該セキュリティ・ポリシは、1つまたは複数の物理装置に対するペルソナのアクセスを制限し、1つまたは複数の物理装置に対するペルソナの排他的アクセスに関するガイドラインを定義し、かつ/または、第1のペルソナ110および第2のペルソナ120に対する共有デバイス・アクセスに関するガイドラインを定義する。より具体的には、共有デバイスに対するアクセスに関するガイドラインにより、ユーザインタフェースの制御下にあるペルソナのみが共有デバイスにアクセスするように、当該デバイスの共有を可能としてもよい。さらに、共有デバイスにアクセスするための1つまたは複数のセキュリティ・ポリシ内の指定されたルールにより、バックグラウンドで実行されているペルソナが依然として共有デバイスにアクセスできるように、当該デバイスの共有を可能としてもよい。したがって、当該セキュリティ・ポリシにより定義されたルールにより、ペルソナ・オーナはそのニーズに適合するように、モバイル通信装置10を多様な構成でカスタマイズすることができる。
【0044】
第1のペルソナ110のベースラインイメージおよび/またはファイル・システムを暗号化して、内部の媒体および/または取外し可能な媒体に格納してもよい。さらに、第1のペルソナ110のブートボリュームを暗号化して、第1のペルソナ110がブートしてそこに格納されたセンシティブなデータにアクセスできる前に、信頼されたブートプロセスからの事前ブート認証を必要とできるようにしてもよい。より具体的には、信頼されたブートプロセスの間、ユーザに、第1のペルソナ110をブートできる前に証明書を入力するように促してもよい。当該ユーザは、自己の証明書を入力する前にモバイル通信装置10のステータスを検証したいかもしれない。例えば、当該ユーザが、入力画面が真正であることを保証するためにパスワードおよび/または個人的な識別番号(PIN)を入力する前に、モバイル通信装置10が信頼された状態にあるとの検証を要求してもよい。上述のように、モバイル通信装置10は(
図1に示す)セキュリティ・ボタン17および/またはLED19および21のようなセキュリティ機能を備える。当該セキュリティ機能は、入力画面が真正であることの検証を容易にするために、モバイル通信装置10で実行されている信頼されていないコードからアクセス不能なハードウェアにおいて隔離されている。
【0045】
動作に際して、ユーザは、認証ダイアログが(
図1に示す)タッチスクリーン18に現れたときにセキュリティ・ボタン17を作動してもよい。セキュリティ・ボタン17を作動すると、モバイル通信装置10に対する信頼のルート情報が表示され、かつ/または、当該認証ダイアログが現れるのを要求するソフトウェア要求に対する信頼のルート情報が表示される。例えば、当該信頼のルート情報が、モバイル通信装置10および/またはモバイル通信装置10で実行されているペルソナに関する信頼のルート情報を含んでもよい。したがって、ユーザは当該信頼のルート情報を検証し、要求された証明書を安全に入力してもよい。代替的な実装では、LED19および21が所定の構成で起動されたときに認証ダイアログを検証してもよい。
【0046】
1実装では、ユーザが、モバイル通信装置の動作ステータスを変更するのを望むかもしれない。より具体的には、ユーザが、モバイル通信装置10で実行されているペルソナ間のモバイル通信装置10のフォーカスを移すことを望むかもしれない。例えば、セキュリティ・ボタン17を作動することで、第1のペルソナ110および第2のペルソナ120の間でフォーカスを移すのを容易にする。さらに、第1のLED19は第1のペルソナ110に割り当てられ、第2のLED21は第2のペルソナ120に割り当てられる。第1のペルソナ110にフォーカスがあるとき、第1のLED19を起動し、第2のLED21を停止してもよく、第2のペルソナ120にフォーカスがあるとき、第2のLED21を起動し、第1のLED19を停止してもよい。したがって、第1のLED19および第2のLED21は、モバイル通信装置10の動作ステータスに基づいて、視覚的フィードバックをユーザに提供する。
【0047】
TPM60および62のうち少なくとも1つは、モバイル通信装置10に関するその存在を検証するようにユーザに促す物理的存在機能を有する。例えば、当該物理的存在機能を、モバイル通信装置10で実行されている動作がリモートに実行されていないことを検証するように実装してもよい。したがって、セキュリティ・ボタン17を押下してユーザの物理的存在を検証してもよい。
【0048】
図5は、モバイル通信装置10とともに使用できるペルソナのオーナシップを要求する例示的な方法の流れ図である。例示的な実装では、モバイル通信装置10は暗号の信頼のルートを使用して、第1のペルソナ110および第2のペルソナ120のオーナシップを定義する。例えば、第1のペルソナ110を或るエンティティにより使用するために構成してもよく、第2のペルソナ120を別のエンティティにより使用するために構成してもよい。モバイル通信装置10の発行者(即ち、企業)は1つまたは複数のモバイル通信装置10をユーザ(例えば、顧客および/または従業員)に発行してもよい。かかる実装では、第1のペルソナ110をビジネス利用のために構成してもよく、第2のペルソナ120を個人的な利用のために構成してもよい。代替的な実装では、モバイル通信装置10を、別個のSIM、別個のサービスを割り当てることによって、および/または、第1のペルソナ110および第2のペルソナ120のデータ、オペレーティング・システム、およびセルラ通信を隔離することによって、ペルソナを分離するように構成してもよい。
【0049】
暗号の信頼のルートを使用することによって、モバイル通信装置10は、ペルソナ構成の整合性を検証し、ペルソナの修正権限を認証されたパーティに限定することができる。例えば、モバイル通信装置10を、そこにインストールされた少なくとも1つのデフォルトのペルソナ(即ち、定義されたオーナシップのないペルソナ)を有するエンド・ユーザに提供してもよい。デフォルトのペルソナは、製造者によるデフォルトの信頼アンカにより署名される。これは、ペルソナが修正されておらず、デフォルトのポリシがそれに割り当てられていることを示す。エンド・ユーザは次いで、当該デフォルトのペルソナを利用できるが、信頼のルートを定義することで最初にオーナシップを得ずにそれをカスタマイズすることはできない。
【0050】
オペレータ200は、ペルソナマネージャ(PM)202のワークステーション上でペルソナに対する信頼のルートを生成することによって(212)、第2のペルソナ120のようなペルソナのオーナシップを主張する。幾つかの実装では、PM202により、オペレータ200は、ペルソナに対するセキュリティ・ポリシを編集および/または定義でき、かつ/または、ペルソナのイメージおよび/または第2のTEE124のような信頼された実行環境を更新することができる。オペレータ200は、オーナシップをデフォルトの信頼アンカから生成された(212)信頼のルートに移すために、デバイス・マネージャ(DM)204が第2のペルソナOS122のようなオペレーティング・システムを主張するためのクレーム・チケットを生成する(214)ことを要求する。次いで当該転送が認証され(216)、モバイル通信装置10がリブートされる(218)。
【0051】
リブート218の間、オペレータ200はユニバーサル・シリアル・バス(USB)ケーブルをDM204とモバイル通信装置10の間で接続し、モバイル通信装置10は当該USB接続を検出し、ペルソナのオペレーティング・システムがロードしないようにプログラミング・モードに入る。オペレータ200は次いで、DM204がソフトウェアを実行してペルソナを新規のオーナに移すことをワークステーションに要求する(220)。当該要求は、セキュリティ・スーパバイザ206に向けられ(222)、新規のペルソナ信頼アンカを定義してもよい。セキュリティ・スーパバイザ206は次いで、生成された(214)クレーム・チケットを使用して、そのアイデンティティを検証するための認証をオペレータ200に要求し(224)、オペレータ200は認証要求224に応答して所定のデバイス・パスワードを入力する(226)。要求224を、生成された(212)信頼のルートにより署名してもよい。
【0052】
モバイル通信装置10は次いで、セキュリティ・スーパバイザ206からの認証要求228をユーザに提供して、セキュア要素208を解除するための証明書を入力する。デフォルトの信頼アンカによりペルソナがオーナをもたないと確認された場合には、古いペルソナ資産のハッシュおよび署名がDM204に転送される(234)。DM204は当該署名を検証し、関連する資産を署名することを認証された新規のペルソナの署名鍵で当該ハッシュを再度署名する。さらに、ペルソナ媒体鍵へのアクセスを可能とするペルソナ鍵が変更される。次いで置換署名がDM204からモバイル通信装置10に移され(236)、モバイル通信装置10が当該署名を検証し、ペルソナ資産上の古い署名を新規の署名で置き換える。
【0053】
次いでペルソナ遷移ファイルが生成され(238)、ペルソナの構成ファイルの妥当性、および、既にモバイル通信装置10にある他の構成ファイルとの衝突がチェックされる。当該構成ファイルの正当性が確認された場合にはプロセスは進行し、構成ファイルの間に衝突が存在する場合にはソフトウェア更新は停止する。ユーザのペルソナ認証は、媒体鍵が新規の信頼のルートによりアクセスできDM204に返却できる(242)ように、認証が進んだ際に更新される(240)。
【0054】
DM204は、更新されている資産を署名し、署名されたハッシュを返す。例えば、更新されている資産が、再署名されたハッシュで更新された署名を有してもよく、かつ/または、新規の署名で更新してもよい(246)。ペルソナ遷移ファイルは、プロセスを割り込まれた更新から再開できるように、各更新の後にチェックポイントされる(244)。当該更新が完了した後、バッファ・データがフラッシュ210にフラッシュされ(248)、ペルソナ遷移ファイルが削除され(250)、モバイル通信装置10がリブートされる(252)。
【0055】
図6は、モバイル通信装置10で実施される動作を認証する際に使用するための例示的なシステム300の略図である。例示的な実装では、エンティティを、モバイル通信装置10のような対象のコンピューティング装置にインストールされたソフトウェアを修正するのが許可される前に、認証する必要があってもよい。例えば、一旦ペルソナがモバイル通信装置10にロードされると、デバイス・ホルダはそのペルソナを削除および/または置換するための権限を保持するが、ペルソナ・オーナはそれを修正する権限を有する。したがって、当該ペルソナ・オーナの代わりに動作するエンティティを、ペルソナを修正するための所定の許可を当該ペルソナ・オーナにより当該エンティティに付与する際に認証する必要があってもよい。本明細書で使用する際、「デバイス・ホルダ」という用語は、デフォルトのペルソナを使用してモバイル通信装置10を操作するエンティティをいう。
【0056】
デバイス・マネージャ(DM)302のような管理者コンピュータが、モバイル通信装置10での動作を実施するための認証についての要求を生成し認証サーバ304に送信してもよい。当該要求は、モバイル通信装置10で実施する動作に関するパラメータを指定するファイルである。例示的なパラメータには、対象のコンピューティング装置(例えば、モバイル通信装置10)の識別、当該対象のコンピューティング装置で実施される動作、当該動作が実施される期間、および当該対象のコンピューティング装置の地理的位置が含まれるがこれらに限られない。さらに、当該要求は管理者に割り当てられた秘密鍵と公開鍵の対の第1の秘密鍵により署名される。幾つかの実装では、当該要求を、取外し可能媒体(図示せず)を介して送信してもよい。
【0057】
認証サーバ304は当該要求をDM302から受信し、DM302の署名を第1の秘密鍵と公開鍵の対のうち公開鍵で検証する。認証サーバ304はまた、実施する動作に関するパラメータがモバイル通信装置10に対するセキュリティ・ポリシと整合するかどうかを判定する。認証されたパラメータを認証データベース306に格納してもよい。認証データベース306は、認証サーバ304によりアクセス可能である。認証サーバ304は次いで、当該要求が認証された場合に認証応答を生成する。当該認証応答がDM302からの要求と認証サーバ304により生成された認証トークンとを含んでもよい。当該認証トークンを使用して、当該要求された動作を認証してもよい。幾つかの実施形態では、当該認証トークンが、当該要求された動作を実施でき、特定の対象のコンピューティング装置に対する権限の付与に制限でき、かつ/またはモバイル通信装置10での単一の動作または複数の動作の実行を認証できる、所定の認証期間を有してもよい。例としてのみ、当該認証トークンが、所定の対象のコンピューティング装置で動作を実施するための認証、および/または、当該対象のコンピューティング装置で所定の動作を実施するための認証を含んでもよい。さらに、当該認証トークンを、モバイル通信装置10で動作を実施する要求を受信する前、および、モバイル通信装置10で動作を実施する要求の検証に応答して、のうち少なくとも1つで生成してもよい。当該認証応答を次いで、当該認証サーバのコンピュータに関連付けられた秘密鍵と公開鍵の対のうち第2の秘密鍵により署名し、管理者のコンピュータに送信してもよい。代替的な実装では、当該認証応答を認証オペレータにより署名してもよい。例えば、当該要求を待ち行列に入れ、認証オペレータにより署名、許可、または拒否してもよい。幾つかの実装では、当該認証応答を、取外し可能媒体(図示せず)を介して送信してもよい。
【0058】
DM302は、認証応答を受信し、認証トークンが要求された動作を認証するかどうかを判定する。例えば、DM302が当該認証応答を第2の秘密鍵と公開鍵の対の公開鍵で検証してもよい。当該認証応答は第2の秘密鍵と公開鍵の対のうち秘密鍵で署名される。DM302は次いで、当該認証応答のファイルをモバイル通信装置10に送信して、当該要求が認証された場合に実施される動作を要求する。当該認証応答を送信するステップが、第1の秘密鍵と公開鍵の対の秘密鍵で当該認証応答を署名するステップを含んでもよい。モバイル通信装置10は、当該認証応答を受信し、管理者のコンピュータに関連付けられた第1の秘密鍵と公開鍵の対のうち公開鍵で当該署名を検証し、当該認証応答で指定されたパラメータがモバイル通信装置10に対するセキュリティ・ポリシと整合するかどうかを判定する。当該署名が検証され当該パラメータが整合する場合、モバイル通信装置10により当該要求された動作を進行することができる。次いで、その特権動作をモバイル通信装置10で実施してもよい。代替的な実装では、当該認証応答が認証信頼のルートに対する証明書チェーンを含んでもよい。さらに、代替的な実装では、認証トークンを、スニーカーネットを介して生成し送信してもよい。
【0059】
図7は、モバイル通信装置10とともに使用できるペルソナ・ソフトウェアを更新する例示的な方法の流れ図である。例示的な実装では、オペレータ400は、第2のペルソナ120のような既存のペルソナOSを、USBケーブルをデバイス・マネージャ(DM)のワークステーション402からモバイル通信装置10に接続することによって、更新してもよい。デバイス管理ソフトウェアが実行され、オペレータ400はモバイル通信装置10にリブート410するよう指示する。リブート410の間、ペルソナのオペレーティング・システムがロードしないように、モバイル通信装置10は当該USB接続を検出しプログラミング・モードに入る。オペレータ400は次いで、モバイル通信装置10上のペルソナOSに対する更新を要求する(414)ようにDMソフトウェア412に指示する。DMワークステーション402は認証サーバにコンタクトして認証トークンを取得する。当該認証トークンをキャッシュし、かつ/または、オフラインソースからロードしてもよい。セキュリティ・スーパバイザ404は次いで当該要求414を認証してもよく(416)、ペルソナ更新418が進行してもよい。幾つかの実装では、正当な認証トークンが存在しない場合には、当該DMソフトウェアはオペレータ400に警告し、更新プロセスの実施を拒否する。
【0060】
DMワークステーション402は、セキュア要素406を解錠するために使用できる共有秘密鍵を含む。認証されたペルソナに関連する記憶暗号化鍵のみを、当該共有秘密鍵により提供された認証を用いてセキュア要素406から取り出してもよい。モバイル通信装置10は次いで、当該認証トークンを検証し、オペレータ400が当該要求された動作を実施するための特権を有することを検証する。当該ユーザがセキュア要素406により認証され(420)、オペレータ400が正しい証明書を有さない場合には当該動作が中断される。
【0061】
当該DMソフトウェアは次いでペルソナのデバイス・ジオメトリ・データをモバイル通信装置10に要求する(422)。当該デバイス・ジオメトリ・データがOSのサイズおよびペルソナのTEEコンポーネントを含んでもよいが、これらに限られない。当該ペルソナのジオメトリが当該デバイス・ジオメトリにマッチする場合にはソフトウェア更新が進み、ミスマッチが存在する場合には当該ソフトウェア更新を停止しエラーを表示する。代替的な実装では、ペルソナ・オーナが当該更新の互換性を検証できるように、ペルソナが所有するパッケージのリビジョン番号を提供してもよい。
【0062】
当該DMソフトウェアは、更新すべきソフトウェアをモバイル通信装置10に送信する(424)ことでロード・プロセスを開始する。1実装では、ソフトウェア更新は、ペルソナの構成が当該更新に含まれる場合には、当該ペルソナの構成を送信する(426)ことで開始する。セキュリティ・スーパバイザ404は次いで当該構成ファイルのジオメトリ、信頼のルート、および署名を検証し評価して、モバイル通信装置10に既にロードされている他の構成ファイルとの衝突が生ずるかどうかを判定する。当該構成ファイルの正当性が確認されている(428)場合、および/または、当該構成ファイルが更新されていない場合、ソフトウェア更新は進行し、構成ファイルの間に衝突が存在する場合には当該ソフトウェア更新は停止する。さらに、更新されたオペレーティング・システムおよび/または信頼された実行環境をモバイル通信装置10にロードしてもよい(430および432)。
【0063】
送信されたソフトウェア更新がフラッシュメモリ408に格納され、信頼アンカに対して検証される。次いでペルソナ遷移ファイルを生成して(434)どのソフトウェアを更新すべきかを示し、当該ソフトウェアがフラッシュ408に書き込まれ、各更新後にチェックポイントが当該遷移ファイル内に生成される。例えば、当該新規の構成ファイルがフラッシュ408に書き込まれ(436)、当該遷移ファイルがチェックポイントされ(438)、新規のペルソナのOSファイル・システムがフラッシュ408に書き込まれ(440)、当該遷移ファイルがチェックポイントされ(442)、当該新規のペルソナのTEEファイル・システムがフラッシュ408に書き込まれ(444)、当該遷移ファイルがチェックポイントされる(446)。例示的な実装では、ターゲットのフラッシュ・ファイル・システムが、以前に格納されたメモリ内容からプログラムされ、当該構成ファイルからの記憶鍵を用いた転送中に暗号化される。更新が完了した後、バッファ・データがフラッシュ408にフラッシュされ(448)、ペルソナ遷移ファイルが削除され(450)、モバイル通信装置10がリブートされる(452)。
【0064】
図8は、モバイル通信装置10とともに使用できるペルソナのオーナシップを移す例示的な方法の流れ図である。モバイル通信装置10にロードされたペルソナのオーナシップを、ペルソナのデータを更新することなく新規のオーナに移してもよい。例示的な実装では、当該新規のオーナは、デバイス・マネージャ(DM)(新たなRoT)502内部の転送チケットを生成する(510)。当該転送チケットが、移すべき特定のデバイスと期待される現在の信頼のルートとを詳述するデータのブロックであってもよい。当該データのブロックは次いで現在のペルソナ・オーナに送信され、現在のペルソナ・オーナは現在のペルソナのオーナDM(新たなRoT)502内部の情報を検証する。
【0065】
現在のペルソナ・オーナの代わりに動作しているオペレータ500は次いで、ペルソナを移すことについてオペレータおよび現在のペルソナ・オーナがDM(古いRoT)503により認証された(512および514)かどうかを示す認証トークンを取得する。次いで当該認証トークンが追加され転送チケットを署名し、署名された転送チケットが移されてフラッシュ508に格納される(516)。署名された転送チケットを、将来の新規のペルソナ・オーナに、セキュア要素506内部のペルソナ・スロットに対する認証鍵とともに返却してもよい。かかる実装では、当該認証鍵を、当該転送チケットに付加された新規のペルソナ・オーナのDMオペレータ公開鍵を用いてラップしてもよい。当該新規のペルソナ・オーナの代わりに動作するオペレータが次いで、ラップした転送チケットを使用して転送プロセスを開始してもよい。より具体的には、モバイル通信装置10は当該新規のペルソナ・オーナの証明書を検証し、当該転送を認証してもよい。
【0066】
オペレータ500は次いで、USBケーブルをDM(新たなRoT)502のワークステーションからモバイル通信装置10に接続する。デバイス管理ソフトウェアが実行され、オペレータ500がリブート518するようにモバイル通信装置10に指示する。リブート518の間、モバイル通信装置10は、当該USB接続を検出し、ペルソナのオペレーティング・システムをロードしないようにプログラミング・モードに入る。オペレータ500は次いで、現在のペルソナ・オーナが所有するペルソナを新規のペルソナ・オーナに移すようにDMソフトウェアに指示する。転送チケットは、認証に必要な情報、および遷移されたペルソナの過去のオーナに対する信頼のルートにより署名された要求を認証する役割を果たすオペレータ500の公開鍵インフラ(PKI)証明書を含む。
【0067】
当該DMソフトウェアは、オペレータ500の秘密鍵を使用して、認証鍵を転送チケットから開封する。次いで当該認証鍵を使用して(520)、ペルソナの転送を要求し(522)、当該オペレータがモバイル通信装置10でセキュア要素506を解除するのを認証してもよい(524)。かかる実装では、認証524により、認証されたペルソナに関連する記憶暗号化鍵のみをセキュア要素506から取り出すことができる。
【0068】
当該遷移はさらに、古いペルソナ資産のハッシュをDM502に転送するステップ(530)を含む。DM502は署名を検証し、関連する資産を署名するのが認証された新規のペルソナ署名鍵でハッシュを再度署名する。さらに、ペルソナ媒体鍵へのアクセスを可能とするペルソナ鍵が変更され、新規の値がDM502に移される。次いで置換署名が、DM502からモバイル通信装置10に移され(532)、モバイル通信装置10が当該署名を検証し、ペルソナ資産の古い署名を新規の署名で置き換える。
【0069】
次いでペルソナ遷移ファイルが生成され(534)、当該ペルソナに対する構成ファイルの妥当性と、既にモバイル通信装置10にロードされている他の構成ファイルとの衝突ががチェックされる。当該構成ファイルの妥当性が確認された場合にはプロセスは進行し、構成ファイルの間に衝突が存在する場合にはソフトウェア更新は停止する。媒体鍵に新規の信頼のルートによってアクセスしDM502に返却できる(538)ように、進行が認証された際にユーザのペルソナ認証が更新される(536)。
【0070】
DM502は更新されている資産を署名し、署名されたハッシュを返す。例えば、更新されている資産は、再署名されたハッシュで更新される署名を有し、かつ/または、新規の署名で更新してもよい(542)。ペルソナ遷移ファイルは、割り込まれた更新からプロセスを再開できるように、各更新の後にチェックポイントされる(540)。当該更新が完了した後、バッファ・データがフラッシュ508にフラッシュされ(544)、当該ペルソナ遷移ファイルが削除され(546)、モバイル通信装置10がリブートされる(548)。
【0071】
ペルソナ・オーナシップが新規のペルソナ・オーナに転送された後、新規の信頼関係を、遷移されたペルソナと、過去のペルソナ・オーナと信頼関係を有する任意のペルソナとの間で確立する必要があってもよい。より具体的には、モバイル通信装置10で実行されている他のペルソナのペルソナ構成を、過去のペルソナ・オーナと同一の機能を維持するための新規のペルソナ・オーナとの信頼関係を確立するために、更新する必要があってもよい。
【0072】
図9は、モバイル通信装置10とともに使用できる新規のペルソナをロードする例示的な方法の流れ図である。例示的な実装では、オペレータ600はUSBケーブルをデバイス・マネージャ(DM)ワークステーション602からモバイル通信装置10に接続する。デバイス管理ソフトウェアが実行され、オペレータ600がモバイル通信装置10にリブートする(612)よう指示する。リブート612の間、モバイル通信装置10は、ペルソナのオペレーティング・システムがロードしないように、当該USB接続を検出し、プログラミング・モードに入る。次いで、デバイスオーナにより保持されるデバイス・パスワードでUSB接続を認証するようにオペレータ600を促し(614)、セキュア要素606を解除するためにデバイス・パスワードを入力し(616)、認証する(618)。代替的な実装では、モバイル通信装置10を、工場出荷時の構成に再初期化しリセットしてもよい。
【0073】
次いでDMソフトウェアはペルソナのデバイス・ジオメトリ・データをモバイル通信装置10に要求し(620)、オペレータ600が、ペルソナ・パッケージを特定のペルソナ・スロットにロードする(622)ようにDMワークステーション602に指示する。当該デバイス・ジオメトリ・データが、OSのサイズおよびペルソナのTEEコンポーネントを含んでもよいが、これらに限られない。当該ペルソナのジオメトリが当該デバイス・ジオメトリとマッチする場合にはソフトウェア更新は進み、ミスマッチが存在する場合には当該ソフトウェア更新を停止しエラーを表示する。代替的な実装では、当該ペルソナのオーナが当該更新の互換性を検証できるように、ペルソナが所有するパッケージのリビジョン番号を提供してもよい。
【0074】
当該DMソフトウェアは、モバイル通信装置10にロードすべきソフトウェアを送信することによってロード・プロセスを開始する。1実装では、当該ソフトウェアのロードは、ペルソナの構成ファイルをモバイル通信装置10に送信する(624)ことによって開始する。次いでセキュリティ・スーパバイザ604は当該構成ファイルのジオメトリ、信頼のルート、および署名を検証し評価して、モバイル通信装置10に既にロードされている他の構成ファイルと衝突が生ずるかどうかを判定する。当該構成ファイルの妥当性が確認された場合には(626)、当該ソフトウェアのロードは進行し、構成ファイルの間に衝突が存在する場合には当該ソフトウェアのロードは停止する。幾つかの実装では、新規のペルソナOSと新規のTEEがモバイル通信装置10にロードされる(628および630)。
【0075】
送信されたソフトウェアはフラッシュメモリ608に格納され、信頼アンカに対して検証される。次いでペルソナ遷移ファイルが生成され(632)、上書きを示すように書き込まれる。更新プロセスが割り込まれた場合に障害から復旧するための適切な復旧措置を取れるように、当該上書き指示は永続的に書き込まれるセンチネル値である。より具体的には、ペルソナに対するセキュア要素606内の記憶媒体鍵が削除され(634)、古いペルソナ構成ファイルが消去され(636)、ペルソナのフラッシュ・ファイルシステムが消去され(638)、信頼されたプラットフォーム・モジュール(TPM)610が強制クリアされる(640)。
【0076】
次いで新規のペルソナをモバイル通信装置10に永続的にロードしてもよい。より具体的には、新規の構成ファイルがフラッシュ608に書き込まれ(642)、ユーザ認証データがセキュリティ・スーパバイザ604により読み出され(644)、ユーザがセキュア要素606の解除について認証される(646)。次いで秘密鍵と公開鍵の対の公開暗号化鍵(PEK)を生成して(648)、セキュア要素606からペルソナ・オーナにエクスポートしてもよい(650)。当該ペルソナ・オーナは当該PEKをその認証局で署名し、構成ファイルの妥当性が確認された場合に(652)、ソフトウェアのロード654が進行する。次いで当該PEKを返却し、セキュア要素606に格納する(656)。
【0077】
PEK秘密鍵と公開鍵の対の秘密鍵は、それがセキュア要素606からエクスポートされないように、セキュア要素606内に格納され、保護される。これにより、ペルソナ・オーナは、当該秘密鍵により署名された応答によって、サービスを実施する要求が認証されたデバイスから来たことを検証することができる。当該PEKを、ペルソナ・オーナシップが定義された時点で生成してもよく、例えば、ソフトウェア更新、要求、および/またはパッケージを認証するために使用してもよい。代替的な実装では、ペルソナ・オーナが特定のデバイスを対象とするデータを暗号化できるように、かつ、他のデバイスが当該データを復号化できないように、第2の秘密鍵と公開鍵の対を生成して、暗号化のために使用してもよい。
【0078】
次いで新規のペルソナOSファイル・システムがフラッシュ608に書き込まれ(658)、新規のペルソナTEEファイル・システムがフラッシュ608に書き込まれ(660)、新規のペルソナ・データ・パーティションが生成される(662)。ターゲットのフラッシュのファイル・システムは、以前に格納されたメモリ内容からプログラムされ、構成ファイルからの記憶鍵を用いた転送中に暗号化される。更新が完了した後、ペルソナの遷移ファイルが削除され(664)、モバイル通信装置10がリブートされる(666)。
【0079】
さらに、本発明は以下の項に従う実施形態を含む。
【0080】
項1:プロセッサ、第1の信頼されたプラットフォーム・モジュール、および第2の信頼されたプラットフォーム・モジュールを備えたモバイル通信装置を動作させるためのコンピュータ実行可能命令を格納した非一時的なコンピュータ可読媒体であって、当該コンピュータ実行可能命令は、当該プロセッサに、
第1のオペレーティング・システムおよび第1の信頼された実行環境を含む第1のペルソナに対する信頼のルートを確立させ、
第2のオペレーティング・システムおよび第2の信頼された実行環境を含む第2のペルソナに対する信頼のルートを確立させ、
第1のペルソナに対する信頼のルートを定義する測定値を第1の信頼されたプラットフォーム・モジュールに格納させ、
第2のペルソナに対する信頼のルートを定義する測定値を第2の信頼されたプラットフォーム・モジュールに格納させ、
第1のペルソナと第2のペルソナに対する信頼のルートを用いて第1のペルソナおよび第2のペルソナをロードさせる
非一時的なコンピュータ可読記憶媒体。
【0081】
項2:当該プロセッサに、第1のペルソナが第2のペルソナと通信して接続されるように、第1の信頼された実行環境と第2の信頼された実行環境の間で相互信頼を確立させるコンピュータ実行可能命令をさらに含む、項1に記載の非一時的なコンピュータ可読記憶媒体。
【0082】
項3:当該プロセッサに、基盤となるオペレーティング・システムをデバイス製造者の信頼のルートにより署名されたブート・ローダでロードさせるコンピュータ実行可能命令をさらに含む、項1に記載の非一時的なコンピュータ可読記憶媒体。
【0083】
項4:当該プロセッサに、第1のペルソナと第2のペルソナがロードされた後に、第1の信頼されたプラットフォーム・モジュールの制御を第1のペルソナに移し、第2の信頼されたプラットフォーム・モジュールの制御を第2のペルソナに移させる、コンピュータ実行可能命令をさらに含む、項1に記載の非一時的なコンピュータ可読記憶媒体。
【0084】
項5:当該プロセッサに、第1のペルソナおよび第2のペルソナに対するセキュリティ・ポリシを定義し、当該セキュリティ・ポリシをセキュリティ・スーパバイザで強制させる、コンピュータ実行可能命令をさらに含み、当該セキュリティ・ポリシはどのように第1のペルソナおよび第2のペルソナが当該モバイル通信装置上の物理装置にアクセスするかを定義する、項1に記載の非一時的なコンピュータ可読記憶媒体。
【0085】
記載した説明では、ベスト・モードを含む様々な実装を開示し、任意のデバイスまたはシステムを生成し使用することおよび任意の取り込まれた方法を実施することを含めて、当業者が様々な実装を実施できるようにするための例を使用した。本発明の特許可能な範囲は、特許請求の範囲により定義され、当業者が想到する他の例を含んでもよい。かかる他の例は、それらが諸請求項の文言と相違しない構造的要素を有する場合、または、それらが諸請求項の文言と実質的に相違しない均等な構造的要素を含む場合に、諸請求項の範囲内にあるものである。