(57)【要約】  信頼できるデータ通信の方法。コンピュータの構成要素であるプロセッサの信頼できるセキュリティゾーンにおいてデータ通信アプリケーションを実行し、コンピュータの構成要素である周辺機器のコントローラに、コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行するよう命令し、別の周辺機器又はユーザインタフェースデバイスの少なくとも１つに、コンピュータのデータバスにアクセスしないよう命令し、コントローラが、コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行していることを確認し、コンピュータのデータバス上でプロセッサからコントローラへデータを送信し、コントローラが、プロセッサによって送信されたデータの外部通信リンク上の送信、メモリストレージディスクの読み取り、又は、メモリストレージディスクへの書き込みのうちの１つを行うことを備える方法。
2015525934.tif 000002
【特許請求の範囲】
【請求項１】
信頼できるデータ通信の方法であって、
コンピュータの構成要素であるプロセッサの信頼できるセキュリティゾーンにおいてデータ通信アプリケーションを実行することと、
前記コンピュータの構成要素である第１周辺機器のコントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行するように、前記第１周辺機器の前記コントローラに命令することと、
前記コンピュータのデータバスにアクセスしないように、少なくとも１つの別の周辺機器又はユーザインタフェースデバイスに命令することと、
前記第１周辺機器の前記コントローラが前記コントローラの前記信頼できるセキュリティゾーンにおいて前記制御アプリケーションを実行していることを確認することと、
前記第１周辺機器の前記コントローラが前記コントローラの前記信頼できるセキュリティゾーンにおいて前記制御アプリケーションを実行していることを確認した後に、前記コンピュータの前記データバスを介して、前記プロセッサから前記第１周辺機器の前記コントローラにデータを送信することと、
前記第１周辺機器の前記コントローラが、前記プロセッサによって送信された前記データの外部通信リンク上での送信、メモリストレージディスクの読み取り又はメモリストレージディスクへの書き込みのうちの１つを行うことと
を備える、方法。
【請求項２】
前記第１周辺機器は、ユニバーサルシリアルバス（ＵＳＢ）ポートである、請求項１に記載の方法。
【請求項３】
前記第１周辺機器は、イーサネットポートである、請求項１に記載の方法。
【請求項４】
前記第１周辺機器は、メモリディスクドライブコントローラである、請求項１に記載の方法。
【請求項５】
前記ユーザインタフェースデバイスは、キーボード、ディスプレイ、タッチスクリーン又はマイクのうちの１つである、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１周辺機器の前記コントローラの前記信頼できるセキュリティゾーンにおいて前記制御アプリケーションを実行するように前記コントローラに命令することは、前記プロセッサによって、前記第１周辺機器の前記コントローラに、メッセージ内の信頼できるフラグを送信することによって実行される、請求項１から５のいずれか一項に記載の方法。
【請求項７】
少なくともいくつかの秘密情報を含むメモリと、
前記メモリに連結されたプロセッサと、
前記プロセッサに連結されたユニバーサルシリアルバスコネクタと、
前記メモリに格納されたアプリケーションと
を備え、
前記アプリケーションは、前記プロセッサによって実行された場合に、
前記ユニバーサルシリアルバスコネクタによって受信された、前記メモリにアクセスするための要求が前記秘密情報に向けられていることを決定し、
前記メモリにアクセスするための前記要求の送信側から、前記送信側が信頼できるセキュリティゾーンにおいて動作していることを示すメッセージを、前記コネクタによって受信した場合、前記メモリにアクセスするための前記要求を満たし、
前記メモリにアクセスするための前記要求の前記送信側から、前記送信側が信頼できるセキュリティゾーンにおいて動作していることを示すメッセージを、前記コネクタによって受信しなかった場合、前記メモリにアクセスするための前記要求を満たさない、
ユニバーサルシリアルバス（ＵＳＢ）ドライブ。
【請求項８】
前記秘密情報は、クレジットカード番号、クレジットカード認証番号、金融口座番号、金融口座認証番号、社会保障番号又は電話番号の少なくとも１つを含む、請求項７に記載のユニバーサルシリアルバスドライブ。
【請求項９】
前記プロセッサは、信頼できるセキュリティゾーンを有し、前記アプリケーションは、前記信頼できるセキュリティゾーンにおいて動作する、請求項７又は８に記載のユニバーサルシリアルバスドライブ。
【請求項１０】
前記秘密情報は、前記メモリの信頼できるセキュリティゾーンに格納される、請求項９に記載のユニバーサルシリアルバスドライブ。
【請求項１１】
前記アプリケーションは、前記要求に基づいて、前記信頼できるセキュリティゾーンにおいて動作する、請求項９又は１０に記載のユニバーサルシリアルバスドライブ。
【請求項１２】
前記要求は、前記要求が前記プロセッサの信頼できるセキュリティゾーンによって処理されるべきであることを示す、請求項１１に記載のユニバーサルシリアルバスドライブ。
【請求項１３】
前記アプリケーションは、前記要求の前記送信側に、前記送信側が、前記送信側の信頼できるセキュリティゾーンにおいて動作するためのアクセスの要求を送信する、請求項７から１２のいずれか一項に記載のユニバーサルシリアルバスドライブ。
【請求項１４】
メモリディスクドライブにアクセスする方法であって、
メモリディスクドライブのディスクコントローラに、前記ディスクコントローラの信頼できるセキュリティゾーン内で動作するためのコマンドを送信することと、
前記ディスクコントローラが、前記ディスクコントローラの前記信頼できるセキュリティゾーンにおいて動作していることを確認する要求を前記ディスクコントローラに送信することと、
前記ディスクコントローラが前記ディスクコントローラの前記信頼できるセキュリティゾーンにおいて動作していることの確認が受信されたときに、前記メモリディスクドライブの信頼できるセキュリティゾーン部分にアクセスするためのコマンドを前記ディスクコントローラに送信することと
を備える、方法。
【請求項１５】
サーバコンピュータが、前記ディスクコントローラの前記信頼できるセキュリティゾーンにおいて動作するべく、前記メモリディスクドライブに前記コマンドを送信する、請求項１４に記載の方法。
【請求項１６】
前記確認は、信頼トークンを含む、請求項１４又は１５に記載の方法。
【請求項１７】
前記メモリディスクドライブは、デスクトップコンピュータ、ラップトップコンピュータ又はノートコンピュータのうちの１つにインストールされる、請求項１４から１６のいずれか一項に記載の方法。
【請求項１８】
前記メモリディスクドライブは、ノーマルセキュリティ部分を更に含む、請求項１４から１７のいずれか一項に記載の方法。
【請求項１９】
前記ディスクコントローラの前記信頼できるセキュリティゾーンは、前記ディスクコントローラの独立した物理的な部分を含む、請求項１４から１８のいずれか一項に記載の方法。
【請求項２０】
前記ディスクコントローラの前記信頼できるセキュリティゾーンは、前記ディスクコントローラの仮想プロセッサの部分を含む、請求項１４から１９のいずれか一項に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
日常生活にあふれている複数のコンピューティングプラットホーム。我々は、多種多様なアクティビティを実行するための複雑なソフトウェア及び／又はファームウェアを実行する洗練された複数の論理プロセッサを使用している。これらの複数のコンピューティングプラットホームによって、秘密情報が、ますます格納され、操作され、及び／又は通信されてきている。そのような秘密情報の例として、複数の社会保障番号、複数のクレジットカード番号、複数の認証番号、複数の金融口座、複数の教育関連パスワード、複数の医療記録、医療診断情報、連絡先、複数の秘密文書及び他の機密情報が含まれる。ますます多くの機密情報がこれらの複数のコンピューティングプラットホーム内に存在していることから、その情報にアクセスするためにこれらの複数のコンピューティングプラットホームのセキュリティをハッキングする利益は増大している。
【発明の概要】
【課題を解決するための手段】
【０００２】
実施形態において、信頼できるデータ通信の方法が開示される。方法は、コンピュータの構成要素であるプロセッサの信頼できるセキュリティゾーンにおいてデータ通信アプリケーションを実行することと、当該コンピュータの構成要素である第１周辺機器のコントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行するべく、第１周辺機器のコントローラに命令することとを含む。方法は、更に、別の周辺機器又はユーザインタフェースデバイスの少なくとも１つに、コンピュータのデータバスにアクセスしないことを命令することと、第１周辺機器のコントローラが、当該コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行していることを確認することを備える。方法は、更に、第１周辺機器のコントローラがコントローラの信頼できるセキュリティゾーン内において制御アプリケーションを実行していることを確認した後に、コンピュータのデータバスを介して、プロセッサから第１周辺機器のコントローラにデータを送信することと、第１周辺機器のコントローラが、プロセッサによって送信されたデータを外部通信リンク上で送信すること、メモリストレージディスクに読み出すこと、又は、メモリストレージディスクに書き込むことのうちの１つを行うこととを備える。
【０００３】
実施形態において、ユニバーサルシリアルバス（ＵＳＢ）ドライブが開示される。ユニバーサルシリアルバスドライブは、少なくともいくつかの秘密情報を含むメモリと、メモリに連結されたプロセッサと、プロセッサに連結されたユニバーサルシリアルバスコネクタと、メモリに格納されたアプリケーションとを備える。プロセッサによって実行された場合に、アプリケーションは、ユニバーサルシリアルバスコネクタによって受信したメモリにアクセスするための要求が、秘密情報に向けられていることを決定し、かつ、メモリにアクセスするための要求の送信側が信頼できるセキュリティゾーンにおいて動作していることを示すメッセージを、当該送信側からコネクタによって受信した場合に、メモリにアクセスするための要求を満たす。メモリにアクセスするための要求の送信側が信頼できるセキュリティゾーンにおいて動作していることを示すメッセージを、当該送信側からコネクタによって受信しない場合、アプリケーションは、メモリにアクセスするための要求を満たさない。
【０００４】
実施形態において、メモリディスクドライブにアクセスする方法が開示される。方法は、メモリディスクドライブのディスクコントローラに、ディスクコントローラの信頼できるセキュリティゾーン内で実行するためのコマンドを送信することと、ディスクコントローラがディスクコントローラの信頼できるセキュリティゾーンにおいて動作していることを確認するための要求をディスクコントローラに送信することと、ディスクコントローラがディスクコントローラの信頼できるセキュリティゾーンにおいて動作していることの確認を受信した場合に、メモリディスクドライブの信頼できるセキュリティゾーン部分にアクセスするためのコマンドをディスクコントローラに送信することとを備える。
【０００５】
これら及びその他の特徴は、添付の複数の図面及び複数のクレームと併せて、後述の詳細な説明によって、より明確に理解されるであろう。
【図面の簡単な説明】
【０００６】
ここで、本開示をより完全に理解することを目的として、添付の複数の図面及び詳細な説明と併せて、後述の簡単な説明が参照される。ここで、類似の複数の参照番号は、類似の複数の要素を示す。
【０００７】
【図１】本開示の実施形態に係るシステムの一例である。
【０００８】
【図２Ａ】本開示の実施形態に係るユニバーサルシリアルバス（ＵＳＢ）ドライブの一例である。
【０００９】
【図２Ｂ】本開示の実施形態に係る別のユニバーサルシリアルバスドライブの一例である。
【００１０】
【図３】本開示の実施形態に係る方法のフローチャートである。
【００１１】
【図４】本開示の実施形態に係る別の方法のフローチャートである。
【００１２】
【図５】本開示の実施形態に係る携帯電話の一例である。
【００１３】
【図６】本開示の実施形態に係る携帯電話のブロック図である。
【００１４】
【図７Ａ】本開示の実施形態に係る携帯電話のソフトウェアアーキテクチャの一例である。
【００１５】
【図７Ｂ】本開示の実施形態に係る携帯電話の別のソフトウェアアーキテクチャの一例である。
【００１６】
【図８】本開示の実施形態に係るコンピュータシステムの一例である。
【発明を実施するための形態】
【００１７】
１又は複数の実施形態の実例となる複数の実施が以下に説明されるが、開示された複数のシステム及び複数の方法は、現在知られているものであろうと、まだ存在しないものであろうと、任意の数の技術を用いて実現され得るということが、最初に理解されるべきである。本開示は、決して、実例となる複数の実施、複数の図面、及び、以下に説明される複数の技術に制限されるべきではないが、それらの均等物の全範囲と共に、添付の複数のクレームの全体の範囲内において、改造されてもよい。
【００１８】
実施形態において、複数の周辺機器及び／又は複数の周辺機器コントローラとの信頼できる通信のための複数のシステム及び複数の方法が開示される。典型的なコンピュータシステムにおいて、中央処理装置上だけでなく、ポートコントローラ、ディスクコントローラ、無線トランシーバ及び他の複数のデバイスのような複数の周辺機器において、ロジックが動作する。複数の周辺機器は、複数のマイクロプロセッサ、複数のデジタル信号プロセッサ（ＤＳＰｓ）、複数の特定用途向け集積回路（ＡＳＩＣｓ）、複数のフィールドプログラマブル論理アレー（ＦＰＧＡｓ）、複数のコンプレックスプログラマブルロジックデバイス（ＣＰＬＤｓ）又は他の複数の論理プロセッサを含んでよい。そのようなものとして、これらの複数の周辺機器の実行可能なロジック内に入り込んでいる可能性のあるマルウェアは、対象となる周辺機器が、対象となる秘密情報を読み出すべく指示及び／又は命令されていないにもかかわらず、コンピュータシステムのデータバス上を通過するときに、秘密情報をモニタ又は盗聴することが可能であり得る。周辺機器内のマルウェアは、コンピュータシステムのメモリに格納された秘密情報にアクセス可能であり得る。秘密情報は、複数のクレジットカードアカウント番号、複数のクレジットカード認証番号、個人データ、医療データ及び他の情報を含んでよい。
【００１９】
本開示は、２つの信頼できる論理プロセッサ間で秘密情報を送信して、それにより、信頼の継続を提供し、一方でそれと同時に、他の周辺機器をキャプチャ又はロックアウトして、それにより、それら他の周辺機器が、秘密情報がデータバス上を送信されるときに、潜在的にその秘密情報をモニタリング又は盗聴することを防止することを教授する。コンピュータシステムのこのような状態は、信頼できる処理モードとして参照されてよい。実施形態において、信頼できる通信への参加者ではない周辺機器の論理プロセッサは、周辺機器の論理プロセッサの信頼できるセキュリティゾーンにおいて動作するべく命令され、その信頼できるセキュリティゾーンで動作する間、周辺機器の論理プロセッサは、実質的な処理を実行せずかつデータバスを読み取らない信頼できるルーチン又はプログラムを実行する。秘密情報を送信することに従事している複数の論理プロセッサは、複数の論理プロセッサのそれぞれの信頼できるセキュリティゾーンにおいて信頼できる通信アプリケーション又はプログラムを、双方実行してよい。信頼できるセキュリティゾーンにおいて動作する場合、これらの複数の論理プロセッサのそれぞれは、アクティブであったいくらかの他の複数のノーマルアプリケーションまたは複数のプログラムを停止させる又は動作させない。秘密情報がデータバス上を転送されたとき、周辺機器の論理プロセッサ及び他の通信参加者は、論理プロセッサのノーマルセキュリティゾーン内で動作するべく命令されてよく、それにより、ノーマルの処理をリジュームする。他の複数の周辺機器コントローラの複数の論理プロセッサ及び／又は複数のデバイスコントローラは、同様に、ノーマルセキュリティゾーンにおける動作をリジュームするべく命令されてよい。
【００２０】
ユニバーサルシリアルバス（ＵＳＢ）ドライブは、コンピュータシステムのＵＳＢポートにプラグ接続されてよく、コンピュータシステムの中央処理装置は、ＵＳＢドライブから秘密情報を読み取ろうと試みてよい。ＵＳＢドライブは、中央処理装置が信頼できるセキュリティゾーンにおいて動作していることを確認する信頼トークンを、中央処理装置がＵＳＢドライブに送信するまで、秘密情報へのアクセスを中央処理装置に提供することを遅延させるプロセッサ内のロジックを実行してよい。ＵＳＢドライブ内のプロセッサは、信頼できるセキュリティゾーンにおいて動作してよく、又は、例えば、ＵＳＢのプロセッサが信頼できるセキュリティゾーンを含まない場合に、ノーマルセキュリティゾーン内で動作してよい。
【００２１】
ディスクドライブコントローラは、ディスクドライブへのアクセスを仲立ちしてよい。ディスクドライブは、ノーマルメモリエリア及び信頼できるメモリエリアを有してよい。ディスクドライブコントローラは信頼できるセキュリティゾーンを有してよく、信頼できるメモリエリアは、信頼できるセキュリティゾーンのみに知られてよく又は信頼できるセキュリティゾーンからのみアクセス可能であってよい。実施形態において、ディスクメモリは、信頼できるメモリ空間としてフラグされてよく、ディスクドライブコントローラは、信頼できるものとしてフラグされたメモリがアクセスされたときに、信頼できるセキュリティゾーンにおいて動作を開始してよい。
【００２２】
信頼できるセキュリティゾーンは、複数のチップセットに、信頼のハードウェア・ルート、複数のアプリケーションのセキュアな実行環境及び複数の周辺機器へのセキュアなアクセスを提供する。信頼のハードウェア・ルートは、チップセットが、ただ、デバイスの製造業者又はベンダによって意図された複数のプログラムを実行するだけであるはずであることを意味し、ソフトウェア及び物理的な攻撃に抵抗し、それゆえ、意図されたレベルのセキュリティを提供しているという信頼を維持する。チップセットのアーキテクチャは、複数の有用な資源の機密性及びインテグリティが、特定の攻撃から保護されることを可能にするプログラム可能な環境を促進するように設計されている。複数の信頼できるセキュリティゾーンの能力は、無線及び固定されたハードウェアアーキテクチャの両方の設計における特徴になりつつある。主要なモバイルデバイスのチップセットにおける信頼できるセキュリティゾーンを提供すること、及び、信頼のハードウェア・ルートを保護することは、独立したセキュアなハードウェアが、デバイス又はユーザを認証する必要性を取り除く。モバイル金融サービス用のアプリケーションのような信頼できるデータを要求する複数のアプリケーションのインテグリティを確保する目的で、信頼できるセキュリティゾーンは、また、信頼できるアプリケーションのみが動作することができ、攻撃を受ける心配のないセキュアな実行環境を提供する。信頼できるアプリケーションがセキュアな実行環境において動作している間、データ入力及びデータ出力のような、信頼できない複数のアプリケーションの複数の周辺機器へのアクセスを制限することにより、セキュリティはさらに促進される。実施形態において、信頼できるセキュリティゾーンは、ハードウェアによりアシストされたセキュリティとして概念化されてもよい。
【００２３】
完全な信頼できる実行環境（ＴＥＥ）は、信頼できるセキュリティゾーンのハードウェア及びソフトウェアアーキテクチャの使用を通じて実現されてよい。信頼できる実行環境は、主要なモバイルデバイス用のオペレーティングシステムの実行環境に沿った実行環境である。信頼できる実行環境及び／又は信頼できるセキュリティゾーンは、信頼できるセキュリティゾーンにおいて実行する可能性のある複数のアプリケーションを使用するための機能性のベース層及び／又は複数のユーティリティを提供してよい。例えば、実施形態において、複数の信頼トークンが、通信の信頼の継続を記録するべく、信頼できるエンドツーエンド通信リンクにおいて使用される信頼できる実行環境及び／又は信頼できるセキュリティゾーンの機能性のベース層及び／又は複数のユーティリティによって生成されてよい。  ハードウェア支援セキュリティを頼りにする信頼できるエンドツーエンド通信リンクの更なる詳細については、２０１２年６月２５日に提出され、Ｅｎｄ−ｔｏ−ｅｎｄ  Ｔｒｕｓｔｅｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅと題された、Ｌｅｏ  Ｍｉｃｈａｅｌ  ＭｃＲｏｂｅｒｔｓ，ｅｔ  ａｌによる米国特許出願１３／５３２，５８８が、参照によってその全体が本明細書に組み込まれる。複数のアプリケーションプログラミングインタフェース（ＡＰＩｓ）の標準化を通して、信頼できる実行環境は、複数のセキュアなサービスの拡張性のある展開の目標とされ得る場所となった。複数の信頼できるサービス環境において、その上に信頼できる実行環境を有するチップセットを備えたデバイスが存在してよい。そこでは、信頼できるサービス環境内の複数のデバイスは信頼されており、攻撃から保護される。信頼できる実行環境は、複数のパーソナルコンピュータ、複数のサーバ、複数のセンサ、複数の医療デバイス、複数の販売時点情報管理端末、工業オートメーション、複数のハンドヘルド端末、自動車用等のような、他の信頼できるデバイスへの拡張はもちろん、複数の携帯電話及び複数のタブレット上にも実装され得る。
【００２４】
信頼できるセキュリティゾーンは、モバイルデバイスのハードウェア及びソフトウェアリソースのすべてを、２つのパーティション、すなわち、セキュアパーティション及びノーマルパーティションに分割することによって、実現されてよい。慎重に扱うべき複数のリソースをセキュアパーティションに配置することで、これらの複数のリソースに対する複数の起こり得る攻撃から保護することができる。例えば、信頼できるソフトウェアアプリケーションなどの複数のリソースは、セキュアパーティションにおいて動作してよく、タッチスクリーンなどの複数のハードウェア周辺機器、又は、メモリ内のセキュアな位置にアクセスしてもよい。セキュアパーティションがアクセスされている間、無線通信装置などの比較的安全性に劣る複数の周辺機器が、完全に機能しないようにされてよい。一方、他の複数の周辺機器は、セキュアパーティションからのみアクセスされてよい。信頼できる実行環境を通じて、セキュアパーティションがアクセスされている間、ノーマルパーティション内の主要なモバイルオペレーティングシステムは停止し、ノーマルパーティション内の複数のアプリケーションは、セキュアな複数の周辺機器及びデータへのアクセスを妨げられる。これにより、複数の不正なアプリケーション又は複数のマルウェアアプリケーションが、デバイスの信頼を破壊することを防止する。
【００２５】
信頼できるセキュリティゾーンは、ハードウェア及びソフトウェアリソースを、セキュアサブシステムの外側の複数のコンポーネントにアクセスできない当該セキュアサブシステム内に存在するように分割することによって実現される。信頼できるセキュリティゾーンは、セキュアパーティションとノーマルパーティションとの間の周辺境界を有効にする、信頼できるセキュリティゾーン内に存在するハードウェアロジックを用いて、製造時に、プロセッサアーキテクチャ内に構築される。信頼できるセキュリティゾーンは、単に、適切な認証情報を有するものによって操作されるだけであってもよく、実施形態において、その製造後にチップに加えられなくてもよい。セキュアパーティションをサポートするソフトウェアアーキテクチャは、信頼できるアプリケーションを実行する専用のセキュアなカーネルを用いて提供されてよい。複数の信頼できるアプリケーションは、信頼できるセキュリティゾーンを利用するチップセット上の信頼できる実行環境内のアプリケーションプログラミングインタフェースを通じて、ノーマルアプリケーションによりアクセスされ得る、独立したセキュアなアプリケーションである。
【００２６】
実施形態において、複数のノーマルパーティションアプリケーションは、第１の仮想プロセッサ上で動作し、セキュアパーティションアプリケーションは、第２の仮想プロセッサ上で動作する。両方の仮想プロセッサは、単一の物理プロセッサ上で動作してもよく、タイムスライスされた方法で動作してもよく、専用の物理セキュリティプロセッサの必要性を除去してもよい。タイムスライスされた動作は、セキュアなソフトウェア命令又はハードウェア例外などのしっかりと制御されたメカニズムに基づいて、プロセッサのリソースを共有するべく、２つの仮想プロセッサの間のコンテキストを切り替えることを含む。現在動作中の仮想プロセッサのコンテキストは保存され、切り替えられた仮想プロセッサのコンテキストはリストアされ、リストアされた仮想プロセッサにおいて、処理が再開される。タイムスライスされた動作は、セキュアパーティションが動作している間、ノーマルパーティションの動作を中止することにより、信頼できるセキュリティゾーンを保護する。
【００２７】
２つの仮想プロセッサのコンテキストは、現在動作中の仮想プロセッサを変更するときに、モニタモードと呼ばれるプロセッサモードを介して、切り替わる。プロセッサが、ノーマルパーティションからモニタモードに入ることを可能とするメカニズムは、しっかりと制御される。モニタモードへのエントリは、専用の命令であるセキュアモニタコール（ＳＭＣ）命令を実行するソフトウェアによって、又は、プロセッサのモニタモードへの切り替えを引き起こすように構成され得る、ハードウェア割込みなどのハードウェア例外メカニズムのサブセットによって、引き起こされてよい。モニタモードの範囲内で動作するソフトウェアは、その後、動作している仮想プロセッサのコンテキストを保存し、セキュアな仮想プロセッサに切り替える。
【００２８】
信頼できるセキュリティゾーンは、デバイスユーザにアクセスすることができない独立したオペレーティングシステムを実行する。セキュリティの目的で、信頼できるセキュリティゾーンは、アプリケーションのインストールに関して、複数のユーザに開放されていない。つまり、複数のユーザは、信頼できるセキュリティゾーンにアプリケーションをインストールすべくアクセスをすることができない。これにより、複数の不正なアプリケーション又は複数のマルウェアアプリケーションが、予約された強力な命令を信頼できるセキュリティゾーンに対して実行することを防止する。そして、それにより、デバイスの信頼を保護する。携帯電話のハードウェア及びソフトウェアリソースを、それらが、セキュリティサブシステム用途向けのセキュアパーティション及び他のすべての用途向けのノーマルパーティションという２つのパーティションの一方に存在するように分割することにより、少なくとも部分的に、システムのセキュリティが達成される。信頼できるセキュリティゾーンをセキュアパーティション内に配置して、ノーマルパーティションからのアクセスを制限することにより、ソフトウェア及び基本ハードウェアへの攻撃から保護する。ハードウェアロジックは、セキュアパーティションのリソースが、ノーマルパーティションの複数のコンポーネント又は複数のアプリケーションによって、まったくアクセスされることがないことを確保する。専用のセキュアパーティションのオペレーティングシステムは、同様に、それ用の仮想プロセッサにおいて動作するノーマルパーティションのオペレーティングシステムから独立した仮想プロセッサにおいて動作する。複数のユーザは、上述のノーマルパーティションのオペレーティングシステムにおいて動作し得る複数のアプリケーションを、モバイルデバイス上にインストールしてよい。信頼できるセキュリティゾーンは、モバイルデバイスの製造業者又はベンダによってインストールされた、セキュアパーティション向けの独立したオペレーティングシステムを実行し、複数のユーザは、新たな複数のアプリケーションをインストールしたり、信頼できるセキュリティゾーンの複数のコンテンツを変更したりすることができない。
【００２９】
ここで、図１に移ると、システム１００が開示される。実施形態において、システム１００は、中央処理装置（ＣＰＵ）１０２と、メモリ１０４と、キーボードコントローラ１０６と、ディスプレイコントローラ１０８と、ディスクコントローラ１１０と、ユニバーサルシリアルバス（ＵＳＢ）ポートコントローラ１１２と、イーサネット（登録商標）ポートコントローラ１１４と、無線トランシーバ１１６とを備える。システム１００は、更に、データバス１１８と、アドレスバス１２０とを備える。システム１００は、図示されていない他の複数のコンポーネント及び／又は通信経路を備えてもよい。例えば、システム１００は、図示されていない様々な制御ライン又は制御バスを備えてよい。実施形態において、複数のコマンド及び／又は複数の制御信号が、データバス１１８上を送信されてよい。
【００３０】
実施形態において、システム１００は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ノートコンピュータ、サーバコンピュータ、データベースサーバコンピュータ又は他のコンピュータのようなコンピュータシステムを実装する。コンピュータシステムのいくらかの側面が、本明細書の最後のあたりで説明される。  明細書の最後のコンピュータシステムの説明と矛盾しないが、図１のシステム１００の描写は、本開示の実施形態のいくらかの側面を論じるのに都合がよい。システム１００はまた、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、メディアプレーヤ及び無線周波数通信機能を有する他の複数のポータブルデバイスのようなモバイルデバイスによって具現化されてよい。実施形態において、システム１００は、ディスクコントローラ１１０又はイーサネット（登録商標）ポートコントローラ１１４を備えなくてもよい。
【００３１】
メモリ１０４は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）及び同類のもののような様々な半導体メモリのいずれかであってよい。システム１００はまた、ディスクコントローラ１１０を介して（図示されていない）ディスクメモリにアクセスしてよい。実施形態において、メモリ１０４へのアクセスは、（図示されていない）メモリコントローラによって仲立ちされてよい。メモリコントローラは、論理プロセッサ内の複数のソフトウェア及び／又はファームウェア命令を実行してよい。代替的に、別の実施形態において、メモリ１０４は、メモリコントローラによって提供される仲立ちなしでアドレスバス１２０及びデータバス１１８からアクセスされてよい。
【００３２】
キーボードコントローラ１０６は、従来のキーボードから、又は、タッチスクリーンデバイスのようなタッチ入力デバイスからの入力を受信してよい。キーボードコントローラ１０６、又は別のコントローラはまた、マイクからの入力を受信してよい。キーボードコントローラ１０６は、キーボードの複数のキーの跳ね返りを制御し、バス１１８、１２０がビジーであるときにユーザ入力をバッファし、キーボードからの入力をデータバス１１８上でＣＰＵ１０２に送信し、かつ、他の仲立ちサービスを提供してよい。ディスプレイコントローラ１０８は、ＣＰＵ１０２からの出力を受信し、視覚ディスプレイ上にその出力を表示するように、その出力を視覚ディスプレイに送信してよい。ディスクコントローラ１１０は、要求の、（図示されていない）ディスクドライブからの読み取り及びディスクドライブへの書き込みを仲立してよい。ＵＳＢポートコントローラ１１２は、要求の、ＵＳＢドライブからの読み取り及びＵＳＢドライブへの書き込みを仲立ちしてよい。イーサネット（登録商標）ポートコントローラ１１４は、要求の、イーサネット（登録商標）通信リンクからの読み取り及びイーサネット（登録商標）通信リンクへの書き込みを仲立ちしてよい。無線トランシーバ１１６は、信号を変調及び復調する論理プロセッサを備えてよい。無線トランシーバ１１６は、更に、変調された信号を無線周波数信号にアップコンバートし、無線周波数信号を増幅し、（図示されていない）アンテナを介して無線周波数信号を送信し、かつ、アンテナを介して無線周波数信号を受信し、受信した無線周波数信号を増幅し、無線周波数信号をベースバンド信号にダウンコンバートする複数の無線コンポーネントを備えてよい。当業者に知られているように、無線トランシーバ１１６は、さらなる様々な信号処理機能を提供してよい。実施形態において、コントローラ１０６、１０８、１１０、１１２、１１４及び無線トランシーバ１１６のそれぞれは、マイクロプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路、フィールドプログラマブル論理アレー、コンプレックスプログラマブルロジックデバイス又は他の論理プロセッサのような論理プロセッサ内のソフトウェア及び／又はファームウェア命令を実行してよい。
【００３３】
ＣＰＵ１０２は、制御信号を送信することによって、メモリ１０４、コントローラ１０６、１０８、１１０、１１２、１１４及び無線トランシーバ１１６を管理又は制御するものと考えられてよい。ＣＰＵ１０２は、例えば、マイクロプロセッサ、デジタル信号プロセッサ及び／又は別の論理プロセッサなどの論理プロセッサとして実現されてよい。ＣＰＵ１０２は、１又は複数のソフトウェアアプリケーションまたはファームウェアアプリケーションを実行して、システム１００の望まれた機能性を提供する。ＣＰＵ１０２は、アドレスバス１２０上でデバイスのアドレスを指定することによって、デバイスを選択してよい。ＣＰＵ１０２は、データバス１１８上で、デバイスからの読み取り又はデバイスへの書き込みをしてよい。送信され又は受信されるいくらかのデータは、信頼の継続を使用して処理されることが望ましい秘密情報を含んでよい。信頼の継続は、ＣＰＵ１０２が信頼できるセキュリティゾーンにおいて動作し、周辺機器からの読み取り又は周辺機器への書き込みするとき、また同様に、例えば、コントローラ１０６、１０８、１１０、１１２、１１４のうちの１つの又は無線トランシーバ１１６の信頼できるセキュリティゾーンのようなデバイスの信頼できるセキュリティゾーンにおいて動作するときに提供されるものと考えられてよい。
【００３４】
一例として、ＣＰＵ１０２は、ＣＰＵ１０２の信頼できるセキュリティゾーンにおいてディスクドライブ読み取りルーチンを実行してよく、コントローラ１０６、１０８、１１２、１１４及び無線トランシーバ１１６に、それらのそれぞれの論理プロセッサの信頼できるセキュリティゾーンにおいて動作し、かつ、アイドリングプログラムを実行するように命令してよく、かつ、ディスクコントローラ１１０に、ディスクコントローラ１１０の論理プロセッサの信頼できるセキュリティゾーンにおいてディスクアクセスルーチンを実行するように命令してよい。コントローラ１０６、１０８、１１２、１１４及び無線トランシーバ１１６がアイドリングプログラムを実行している間、それらは、データバス１１８に対する読み取り又は書き込みを行わない。更に、実施形態において、複数の信頼できないアプリケーションは、信頼できるセキュリティゾーンで動作する一方で、コントローラ１０６、１０８、１１０、１１２、１１４又は無線トランシーバ１１６上で動作することを許可されない。信頼できる処理モードとして称されてよい、このような状況下、ＣＰＵ１０２は、ディスクドライブの特定のアドレス又はアドレス範囲からデータを読み出す要求を送信してよい。
【００３５】
ディスクコントローラ１１０は、ＣＰＵ１０２から要求を受信し、ＣＰＵ１０２によってディスクコントローラ１１０に送信された信頼トークンによって示される、ＣＰＵ１０２が信頼できるセキュリティゾーンで動作していることを確認してよい。そして、ディスクコントローラ１１０は、その信頼できるセキュリティゾーンにおいて信頼できるルーチンを実行している間、要求されたデータを検索してよく、この要求されたデータをデータバス１１８上で送信してよい。データが送信された後、信頼できるセキュリティ処理モードが終了してよく、ＣＰＵ１０２、コントローラ１０６、１０８、１１０、１１２、１１４及び無線トランシーバ１１６は、それらのそれぞれの論理プロセッサのノーマルセキュリティゾーンにおける動作に戻ってよい。
【００３６】
実施形態において、ディスクコントローラ１１０に連結されたディスクに格納されたデータは、対象となるデータの単位の信頼ステータスを指定する信頼できる／信頼できないフラグを含んでよい。ＣＰＵ１０２がデータへのアクセスを要求したときに、ディスクコントローラ１１０は、最初に、指定されたデータが信頼できるデータであることを確認し得る信頼フラグを読み取ってよい。そして、ディスクコントローラ１１０は、その信頼できるセキュリティゾーンにおいて動作してよく、それが信頼できるセキュリティゾーンに入ってディスクアクセスを完了することを問い合わせるメッセージをＣＰＵ１０２に送信してよい。
【００３７】
図２Ａに移ると、第１ユニバーサルシリアルバス（ＵＳＢ）ドライブ１３０が開示される。実施形態において、第１ＵＳＢドライブ１３０は、プロセッサ１３２と、メモリ１３４と、ユニバーサルシリアルバスコネクタ１３６とを備える。  いくつかの文脈において、第１ＵＳＢドライブ１３０は、サムドライブと称されてよい。第１ＵＳＢドライブ１３０は、容易に携帯可能であり、かつ、低価格であってよい。メモリ１３４は、ありとあらゆる種類のリーダブル及びライタブルランダムアクセスメモリを含んでよい。
【００３８】
実施形態において、第１ＵＳＢドライブ１３０は、ＵＳＢコネクタ１３６によって、システム１００及び／又はＵＳＢポートコントローラ１１２に接続されてよい。第１ＵＳＢドライブ１３０は、例えばＣＰＵ１０２によって、メモリ１３４から読み出され又はメモリ１３４に書き込まれることが望ましい秘密情報を格納してよい。プロセッサ１３２は、ＣＰＵ１０２が、秘密情報をメモリ１３４に書き込む又は秘密情報をメモリ１３４から読み出すことを試みることを決定してよい。この場合、プロセッサ１３２は、ＣＰＵ１０２が、システム１００が信頼できる処理モードにすでに入っていることを示す信頼トークンを送信するまで、要求されたメモリ１３４へのアクセスの実行を遅延させてよい。実施形態において、プロセッサ１３２は、システム１００が信頼できる処理モードに入ることを要求するメッセージをＣＰＵ１０２に送信してよい。ＣＰＵ１０２が秘密情報を含まないメモリ１３４のエリアに書き込む又は読み出すことを試みることを、プロセッサ１３２が決定したときに、プロセッサ１３２は、システム１００が信頼できる処理モードに入ることを期待することなくメモリアクセス要求を満たしてよい。秘密情報は、クレジットカードアカウント番号、クレジットカード認証番号、金融口座番号、金融口座認証番号、社会保障番号、電話番号、個人データ、医療データ又は他の情報を含んでよい。
【００３９】
図２Ｂに移ると、第２ＵＳＢドライバ１４０が開示される。実施形態において、第２ＵＳＢドライバ１４０は、信頼できるセキュリティゾーン１４４を有するプロセッサ１４２と、メモリ１４６と、ユニバーサルシリアルバスコネクタ１４８とを備える。第２ＵＳＢドライバ１４０は、第１ＵＳＢドライブ１３０と十分に似ており、プロセッサ１４２が信頼できるセキュリティゾーン１４４を更に有する点で異なる。実施形態において、システム１００がメモリ１４６に格納された秘密情報にアクセスしようとしていることを第２ＵＳＢドライバ１４０が検出したとき、プロセッサ１４２は、信頼できるセキュリティゾーン１４４の実行を開始する。信頼できるセキュリティゾーン１４４は、システム１００が、ＵＳＢポートコントローラ１１２を介して、システム１００が信頼できる処理モードであることの指示を送信すること、及び／又は、メモリ１４６内の秘密情報にアクセスする要求を手渡す前にシステム１００が信頼できる処理モードに入ることを要求するメッセージをＵＳＢポートコントローラ１１２に送信することを待機してよい。
【００４０】
図３に移ると、方法２００が開示される。ブロックでは、データ通信アプリケーションが、コンピュータの構成要素であるプロセッサの信頼できるセキュリティゾーンにおいて実行される。ブロック２０４では、コンピュータの構成要素である第１周辺機器のコントローラが、コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行することを命令される。このブロックは、信頼できるフラグ又は信頼できる処理モードに入るべきであることの指示を、プロセッサによって第１周辺機器のコントローラに、送信することを含んでよい。ブロック２０６では、別の周辺機器又はユーザインタフェースデバイスの少なくとも１つが、コンピュータのデータバスにアクセスしないことを命令される。ブロック２０８では、第１周辺機器のコントローラが、コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行していることが確認される。
【００４１】
ブロック２１０では、第１周辺機器のコントローラが、コントローラの信頼できるセキュリティゾーンにおいて制御アプリケーションを実行していることを確認した後で、データが、コンピュータのデータバス上で、プロセッサから第１周辺機器のコントローラへ送信される。ブロック２１２では、第１周辺機器のコントローラが、プロセッサによって送信されたデータの外部通信リンク上での送信、メモリストレージディスクの読み取り、又は、メモリストレージディスクへの書き込みのうちの１つを行う。
【００４２】
図４に移ると、方法２２０が開示される。ブロック２２２では、ディスクコントローラの信頼できるセキュリティゾーンで動作するためのコマンドがディスクコントローラに送信される。ブロック２２４では、ディスクコントローラがディスクコントローラの信頼できるセキュリティゾーンで動作していることの確認の要求が、ディスクコントローラに送信される。ブロック２２６では、ディスクコントローラがディスクコントローラの信頼できるセキュリティゾーンで動作していることの確認が受信されたときに、メモリディスクドライブの信頼できるセキュリティゾーンの部分にアクセスするためのコマンドをディスクコントローラに送信する。
【００４３】
図５は、本開示の複数の側面を実装するために動作可能であるモバイルデバイス４００を描写するが、本開示は、これらの複数の実装に制限されるべきではない。携帯電話として説明されているが、モバイルデバイス４００は、無線ハンドセット、ポケットベル（登録商標）、パーソナルデジタルアシスタント（ＰＤＡ）、ゲーム機又はメディアプレーヤを含む、様々な形態を成してもよい。モバイルデバイス４００は、ディスプレイ４０２と、ユーザによる入力のためのタッチセンサ面及び／又は複数のキー４０４とを有する。モバイルデバイス４００は、ユーザが選択するための複数のオプション、ユーザが作動させるための制御、及び／又は、ユーザが指図するためのカーソル若しくは指標を提示してよい。モバイルデバイス４００は、さらに、ダイヤル番号又はハンドセットの動作を設定するための様々なパラメータ値を含む、ユーザからのデータ入力を受け取ってよい。モバイルデバイス４００は、さらに、ユーザコマンドに応じて、１又は複数のソフトウェアアプリケーションまたはファームウェアアプリケーションを実行してよい。これらのアプリケーションは、ユーザ相互作用に応じて、様々なカスタマイズされた機能を実行するようにモバイルデバイス４００を構成してもよい。更に、モバイルデバイス４００は、例えば、無線基地局、無線アクセスポイント、又は、ピアモバイルデバイス４００から、無線通信でプログラムされる及び／又は構成されてよい。モバイルデバイス４００は、ディスプレイ４０２がウェブページを表示することを可能にするウェブブラウザアプリケーションを実行してもよい。ウェブページは、基地局、無線ネットワークアクセスノード、ピアモバイルデバイス４００又は任意のほかの無線通信ネットワーク若しくはシステムとの複数の無線通信を介して、取得されてもよい。
【００４４】
図６は、モバイルデバイス４００のブロック図を示す。複数のハンドセットの様々な周知の構成要素が描写される一方で、実施形態において、列挙される複数の構成要素のサブセット及び／又は列挙されていない複数の付加的な構成要素が、モバイルデバイス４００内に含まれてよい。モバイルデバイス４００は、デジタル信号プロセッサ（ＤＳＰ）５０２と、メモリ５０４とを含む。示されるように、モバイルデバイス４００は、さらに、アンテナ＆フロントエンドユニット５０６と、無線周波数（ＲＦ）送受信機５０８と、ベースバンド処理ユニット５１０と、マイク５１２と、イヤホンスピーカ５１４と、ヘッドセットポート５１６と、入出力インタフェース５１８と、リムーバブルメモリカード５２０と、ユニバーサルシリアルバス（ＵＳＢ）ポート５２２と、赤外線ポート５２４と、バイブレータ５２６と、キーパッド５２８と、タッチセンサ面を有するタッチスクリーン液晶ディスプレイ（ＬＣＤ）５３０と、タッチスクリーン／ＬＣＤコントローラ５３２と、カメラ５３４と、カメラコントローラ５３６と、グローバルポジショニングシステム（ＧＰＳ）レシーバ５３８とを含んでもよい。実施形態において、モバイルデバイス４００は、タッチセンサスクリーンを提供しない別の種類のディスプレイを含んでよい。実施形態において、ＤＳＰ５０２は、入出力インタフェース５１８を通過することなく、メモリ５０４と直接通信してもよい。更に、実施形態において、モバイルデバイス４００は、他の機能性を提供する他の複数の周辺機器を備えてよい。
【００４５】
ＤＳＰ５０２又は他の何らかの形態のコントローラ若しくは中央処理装置は、メモリ５０４に格納された又はＤＳＰ５０２自体の中に含まれるメモリに格納された組み込みソフトウェア又はファームウェアに従って、モバイルデバイス４００の様々な構成要素を制御するように動作する。組み込みソフトウェア又はファームウェアに加えて、ＤＳＰ５０２は、メモリ５０４に格納される、又は、リムーバブルメモリカード５２０のようなポータブルデータ記憶媒体等の情報搬送媒体を介して、若しくは、有線又は無線のネットワーク通信を介して、利用可能になる、他の複数のアプリケーションを実行してよい。アプリケーションソフトウェアは、所望の機能性を提供するようにＤＳＰ５０２を構成する、コンパイルされた機械可読命令のセットを備えてもよく、又は、アプリケーションソフトウェアは、インタープリタ又はコンパイラによって処理され、ＤＳＰ５０２を間接的に構成する、高水準ソフトウェア命令であってもよい。
【００４６】
ＤＳＰ５０２は、アナログベースバンド処理ユニット５１０を介して無線ネットワークと通信してよい。いくつかの実施形態において、その通信は、インターネット接続を提供し、ユーザが、インターネット上のコンテンツへのアクセスを取得したり、電子メールまたはテキストメッセージを送受信したりすることを可能にしてもよい。入出力インタフェース５１８は、ＤＳＰ５０２と、様々なメモリ及びインタフェースとを相互接続する。メモリ５０４及びリムーバブルメモリカード５２０は、ＤＳＰ５０２の動作を構成するためのソフトウェアおよびデータを提供してよい。インタフェースの中には、ＵＳＢポート５２２及び赤外線ポート５２４があってよい。ＵＳＢポート５２２は、モバイルデバイス４００を周辺機器として機能させて、パーソナルコンピュータ又はその他のコンピュータシステムと情報を交換させることを可能にしてよい。赤外線ポート５２４、及び、Ｂｌｕｅｔｏｏｔｈ（登録商標）インタフェース、ＩＥＥＥ８０２．１１に準拠する無線インタフェースなどのオプションであるその他の複数のポートは、モバイルデバイス４００が、他の近くの複数のハンドセット及び／又は無線基地局と無線通信することを可能にしてよい。
【００４７】
キーパッド５２８は、インタフェース５１８を介して、ＤＳＰ５０２に連結し、ユーザが、選択を行う、情報を入力する、及び、別の方法でモバイルデバイス４００に入力を提供するための１つのメカニズムを提供する。別の入力メカニズムはまた、テキスト及び／又はグラフィックをユーザに表示し得るタッチスクリーンＬＣＤ５３０であってもよい。タッチスクリーンＬＣＤコントローラ５３２は、ＤＳＰ５０２をタッチスクリーンＬＣＤ５３０に連結する。ＧＰＳ受信機５３８は、ＤＳＰ５０２に連結され、グローバルポジショニングシステム信号を復号し、それにより、モバイルデバイス４００が、その位置を決定することを可能にする。
【００４８】
図７Ａは、ＤＳＰ５０２により実現され得るソフトウェア環境６０２を示す。ＤＳＰ５０２は、ソフトウェアの残りがそこから動作するプラットフォームを提供するオペレーティングシステムソフトウェア６０４を実行する。オペレーティングシステムソフトウェア６０４は、アプリケーションソフトウェアにアクセス可能である複数の標準化インタフェースを有する、ハンドセットのハードウェア向けの様々なドライバを提供してよい。オペレーティングシステムソフトウェア６０４は、モバイルデバイス４００上で動作する複数のアプリケーション間で制御を転送する複数のアプリケーション管理サービス（ＡＭＳ）６０６と連結され、情報を送受してよい。また、ウェブブラウザアプリケーション６０８、メディアプレーヤアプリケーション６１０及び複数のＪＡＶＡ（登録商標）アプレット６１２が、図７Ａに示される。ウェブブラウザアプリケーション６０８は、例えば、モバイルデバイス４００が無線リンクを介してネットワークに連結された場合に、コンテンツ及び／又はインターネットを閲覧するべく、モバイルデバイス４００によって実行されてよい。ウェブブラウザアプリケーション６０８は、ユーザが、複数のフォームに情報を入力したり、複数のリンクを選択したり、複数のウェブページの検索及び閲覧をすることを可能にしてよい。メディアプレーヤアプリケーション６１０は、オーディオ又はオーディオビジュアルのメディアを再生するべく、モバイルデバイス４００によって実行されてよい。ＪＡＶＡ（登録商標）アプレット６１２は、ゲーム、ユーティリティ及びその他の機能性を含む様々な機能性を提供するべく、モバイルデバイス４００により実行されてよい。
【００４９】
図７Ｂは、ＤＳＰ５０２によって実現され得る代替的なソフトウェア環境６２０を示す。ＤＳＰ５０２は、オペレーティングシステムソフトウェア６２８及び実行ランタイム６３０を実行する。ＤＳＰ５０２は、実行ランタイム６３０において動作し、アプリケーションフレームワーク６２４により提供される複数のサービスを頼りにし得る複数のアプリケーション６２２を実行する。複数のアプリケーション６２２及びアプリケーションフレームワーク６２４は、ライブラリ６２６を用いて提供される機能性を頼りにし得る。
【００５０】
図８は、本明細書に開示された１又は複数の実施形態を実現するのに適したコンピュータシステム３８０を示す。コンピュータシステム３８０は、二次記憶装置３８４、リードオンリーメモリ（ＲＯＭ）３８６、ランダムアクセスメモリ（ＲＡＭ）３８８、複数の入出力（Ｉ／Ｏ）デバイス３９０及び複数のネットワーク接続デバイス３９２を含む、複数のメモリデバイスと通信するプロセッサ３８２（中央処理装置又はＣＰＵと称されてよい）を含む。プロセッサ３８２は、１又は複数のＣＰＵチップにより実現されてよい。
【００５１】
コンピュータシステム３８０上に複数の実行可能命令をプログラムする及び／又はロードすることにより、ＣＰＵ３８２、ＲＡＭ３８８及びＲＯＭ３８６の少なくとも１つが変更され、コンピュータシステム３８０を、部分的に、本開示により教授された新規な機能性を有する特定の機械又は装置に変換することが理解される。実行可能なソフトウェアをコンピュータにロードすることによって実装され得る機能が、周知の設計ルールにより、ハードウェア実装に変換され得ることは、電気工学及びソフトウェア工学の技術において基本的なことである。ソフトウェアとハードウェアとによりコンセプトを実現することの間の複数の決定は、通常、ソフトウェアドメインからハードウェアドメインへの変換に含まれるいくらかの問題よりむしろ、設計の安定性及び生成されるユニットの数についての考慮に依存する。概して、ハードウェア実装を再スピニングすることは、ソフトウェア設計を再スピニングすることよりもコストが高いことから、頻繁に変更されることになる設計は、ソフトウェアにおいて実装されることが好ましい場合がある。概して、大量生産するためには、ハードウェア実装の方がソフトウェア実装よりもコストが低いことから、大量生産される安定している設計は、例えば、特定用途向け集積回路（ＡＳＩＣ）などのハードウェアで実装されることが好ましい。しばしば、設計は、ソフトウェアの形態で開発及びテストされ、その後、周知の設計ルールによって、複数のソフトウェアの命令をハードウェアに組み込む特定用途向け集積回路により、均等なハードウェア実装に変換される。同様に、新たなＡＳＩＣにより制御された機械は、特定の機械又は装置であるので、複数の実行可能命令をプログラム及び／又はロードされたコンピュータは、同様に、特定の機械又は装置と見なされてよい。
【００５２】
二次記憶装置３８４は、通常、データの不揮発性記憶の用途に用いられたり、ＲＡＭ３８８が全ての作業用データを十分に保持できるほど大きくない場合にはオーバーフローデータ記憶デバイスとして用いられたりする１又は複数のディスクドライブ又はテープドライブを含む。二次記憶装置３８４は、そのような複数のプログラムが実行のために選択された場合に、ＲＡＭ３８８にロードされる複数のプログラムを格納する目的で用いられてよい。ＲＯＭ３８６は、複数の命令と、場合によっては、プログラムの実行中に読まれるデータとを格納する目的で用いられてよい。ＲＯＭ３８６は、通常、二次記憶装置３８４の大きなメモリ容量に対して、小さなメモリ容量を有する不揮発性メモリデバイスである。ＲＡＭ３８８は、揮発性データを格納する目的で、また、場合によっては、複数の命令を格納する目的で用いられる。ＲＯＭ３８６及びＲＡＭ３８８へのアクセスは、通常、二次記憶装置３８４に対するものよりも速い。二次記憶装置３８４、ＲＡＭ３８８及び／又はＲＯＭ３８６は、いくつかの文脈において、コンピュータ可読記憶媒体及び／又は非一時的コンピュータ可読媒体と称される場合がある。
【００５３】
複数のＩ／Ｏデバイス３９０は、プリンタ、ビデオモニタ、液晶ディスプレイ（ＬＣＤ）、タッチスクリーンディスプレイ、キーボード、キーパッド、スイッチ、ダイヤル、マウス、トラックボール、音声認識装置、カードリーダ、紙テープリーダ又はその他の周知の入力デバイスを含んでよい。
【００５４】
複数のネットワーク接続デバイス３９２は、モデム、モデムバンク、イーサネット（登録商標）カード、ユニバーサルシリアルバス（ＵＳＢ）インタフェースカード、シリアルインタフェース、トークンリングカード、光ファイバ分散データインタフェース（ＦＤＤＩ）カード、無線ローカルエリアネットワーク（ＷＬＡＮ）カード、符号分割多重アクセス（ＣＤＭＡ）のような無線トランシーバカード、グローバルシステムフォーモバイルコミュニケーションズ（ＧＳＭ（登録商標））、ロングタームエボリューション（ＬＴＥ）、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（ＷｉＭＡＸ）、及び／又は、他の無線インタフェースプロトコルの無線トランシーバカード、並びに他の周知のネットワークデバイスの形態を成してもよい。これらの複数のネットワーク接続デバイス３９２は、プロセッサ３８２が、インターネット又は１若しくは複数のイントラネットと通信することを可能にしてよい。上述の方法の複数のステップを実行する過程において、そのようなネットワーク接続とともに、プロセッサ３８２が、ネットワークから情報を受信する場合があったり、又は、ネットワークに情報を出力する場合があったりすることが予期される。そのような情報は、しばしば、プロセッサ３８２を用いて実行されるべき一連の命令として表され、例えば、搬送波において具現化されたコンピュータデータ信号の形態で、ネットワークから受信されたり、ネットワークに出力されたりしてよい。
【００５５】
そのような情報は、プロセッサ３８２を用いて実行されるべきデータ又は命令を含んでもよく、例えば、搬送波において具現化されたコンピュータデータベースバンド信号又は信号の形態で、例えば、ネットワークから受信されたり、ネットワークに出力されてもよい。搬送波に埋め込まれたベースバンド信号若しくは信号、又は、現在用いられている若しくは将来開発された複数の他のタイプの信号は、当業者にとって周知のいくつかの方法に従って、生成されてよい。搬送波に埋め込まれたベースバンド信号及び／又は信号、いくつかの文脈において、一時的な信号と称されてよい。
【００５６】
プロセッサ３８２は、ハードディスク、フロッピー（登録商標）ディスク、光ディスク（これらの様々なディスクを利用したシステムは、すべて、二次記憶装置３８４と見なされてもよい。）、ＲＯＭ３８６、ＲＡＭ３８８、又は、ネットワーク接続デバイス３９２からアクセスして、複数の命令、複数のコード、複数のコンピュータプログラム、複数のスクリプトを実行する。１つのプロセッサ３８２が示される一方、複数のプロセッサが存在してもよい。このように、複数の命令が、一のプロセッサによって実行されるものとして説明されてよい一方、複数の命令は、同時に、連続的に実行されてもよく、別の面では、１又は複数のプロセッサにより実行されてもよい。例えば、ハードドライブ、フロッピー（登録商標）ディスク、光ディスク並びに／又は他のデバイスなどである二次記憶装置３８４からアクセスされ得る命令、コード、コンピュータプログラム、スクリプト並びに／又はデータ、ＲＯＭ３８６及び／並びにＲＡＭ３８８は、いくつかの文脈において、非一時的な命令並びに／又は非一時的な情報と称されてよい。
【００５７】
実施形態において、コンピュータシステム３８０は、互いに通信し、強調してタスクを実行する、２又は複数のコンピュータを備えてよい。限定するわけではないが、例えば、アプリケーションの複数の命令の並列及び／又は並行処理を可能にするように、当該アプリケーションが分割されてもよい。代替的に、２又は複数のコンピュータによって、データセットの複数の異なる部分を並列及び／又は並行処理することを可能にするように、アプリケーションにより処理されたデータが分割されてもよい。  実施形態において、コンピュータシステム３８０内の多数のコンピュータと直接結合していない多数のサーバの機能を提供するために、仮想化ソフトウェアがコンピュータシステム３８０によって使用されてよい。例えば、仮想化ソフトウェアは、４台の物理コンピュータ上に２０の仮想サーバを提供してよい。実施形態において、上述した機能性は、クラウドコンピューティング環境において１つのアプリケーション及び／又は複数のアプリケーションを実行することによって提供されてもよい。クラウドコンピューティングは、動的スケーラブルコンピューティングリソースを使用するネットワーク接続を介して、複数のコンピューティングサービスを提供することを含んでよい。クラウドコンピューティングは、少なくとも部分的に、仮想化ソフトウェアによりサポートされてよい。クラウドコンピューティング環境は、企業によって確立されてもよく、及び／又は、必要に応じて、サードパーティのプロバイダから借りてもよい。いくらかのクラウドコンピューティング環境は、サードパーティのプロバイダから借りた及び／又はリースされた複数のクラウドコンピューティングリソースだけでなく、企業によって所有及び運用される複数のクラウドコンピューティングリソースを含んでよい。
【００５８】
実施形態において、上述の機能性のいくつか又は全ては、コンピュータプログラムプロダクトとして提供されてよい。コンピュータプログラムプロダクトは、上述した機能性を実現するべく、その中に具現化されたコンピュータ利用可能プログラムコードを有する、１又は複数のコンピュータ可読記憶媒体を含んでよい。コンピュータプログラムプロダクトは、複数のデータ構造体、複数の実行可能命令及び他のコンピュータ利用可能プログラムコードを含んでよい。コンピュータプログラムプロダクトは、リムーバブルコンピュータ記憶媒体及び／又はノンリムーバブルコンピュータ記憶媒体に具現化されてよい。リムーバブルコンピュータ可読記憶媒体は、限定されるものではないが、例えば、アナログ磁気テープ、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）ディスク、フロッピー（登録商標）ディスク、ジャンプドライブ、デジタルカード、マルチメディアカード、および、その他のものといった、紙テープ、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリチップを含んでよい。コンピュータプログラムプロダクトは、コンピュータシステム３８０による、二次記憶装置３８４、ＲＯＭ３８６、ＲＡＭ３８８、並びに／又は、コンピュータシステム３８０の他の不揮発性メモリ及び揮発性メモリへの、コンピュータプログラムプロダクトの複数のコンテンツの少なくとも一部のロードに適していてよい。プロセッサ３８２は、コンピュータプログラムプロダクトに部分的に直接アクセスすることによって、例えば、コンピュータシステム３８０のディスクドライブ周辺機器に挿入されたＣＤ−ＲＯＭディスクから読み出すことによって、複数の実行可能命令、及び／又は、複数のデータ構造体を処理してよい。代替的に、プロセッサ３８２は、コンピュータプログラムプロダクトに遠隔アクセスすることによって、例えば、複数のネットワーク接続デバイス３９２を通して、遠隔サーバから、複数の実行可能命令及び／又は複数のデータ構造体をダウンロードすることによって、複数の実行可能命令及び／又は複数のデータ構造体を処理してよい。コンピュータプログラムプロダクトは、データ、複数のデータ構造体、複数のファイル、及び／又は、複数の実行可能命令の、二次記憶装置３８４、ＲＯＭ３８６、ＲＡＭ３８８及び／又はコンピュータシステム３８０の他の不揮発性メモリ及び揮発性メモリへの、ロード及び／又はコピーを促進する命令を含んでよい。
【００５９】
いくつかの文脈において、二次記憶装置３８４、ＲＯＭ３８６及びＲＡＭ３８８は、非一時的コンピュータ可読媒体又はコンピュータ可読記憶媒体と称されてよい。ＲＡＭ３８８のダイナミックＲＡＭの実施形態は、同様に、ダイナミックＲＡＭが電力を受け取り、かつ、その設計に従って動作される間、例えば、コンピュータ３８０が起動されて動作する期間、ダイナミックＲＡＭは書き込まれる情報を格納する、非一時的コンピュータ可読媒体として称されてよい。同様に、プロセッサ３８２は、内部ＲＡＭ、内部ＲＯＭ，キャッシュメモリ、及び／又は、いくつかの文脈において、非一時的コンピュータ可読媒体又はコンピュータ可読記憶媒体として称されてよい他の内部の非一時的記憶ブロック、セクション又はコンポーネントを含んでよい。
【００６０】
本開示において、いくつかの実施形態が提供される一方、開示されたシステム及び方法は、本開示における精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化されてもよいことが理解されるべきである。本実施例は、限定的ではなく、例証として見なされるべきであり、本明細書に与えられる詳細に制限されることを意図するものではない。例えば、様々な要素又は構成要素が組み合わされたり、又は、別のシステムに統合されたりしてもよく、または、特定の複数の特徴が省略されてもよく、若しくは、実装されなくてもよい。
【００６１】
また、本開示の精神又は範囲から逸脱することなく、様々な実施形態において、別々である若しくは分離しているものとして説明及び示されている技術、複数のシステム、複数のサブシステム、及び、複数の方法が、組み合わされたり、又は、別の複数のシステム、複数のモジュール、複数の技術若しくは複数の方法に統合されたりしてもよい。互いに直接的に連結されている又は通信するものとして開示又は説明されている複数の他のアイテムは、いくらかのインタフェース、デバイス又は中間構成要素を通して、電子的に、機械的に、又は別の方法であるかに関わらず、間接的に連結されてもよく又は通信してもよい。複数の変更、複数の置換及び複数の代替の他の複数の例は、当業者によって究明可能であって、本明細書に開示される精神及び範囲から逸脱することなく成され得る。
【図１】
2015525934.tif 000003
【図２Ａ】
2015525934.tif 000004
【図２Ｂ】
2015525934.tif 000005
【図３】
2015525934.tif 000006
【図４】
2015525934.tif 000007
【図５】
2015525934.tif 000008
【図６】
2015525934.tif 000009
【図７Ａ】
2015525934.tif 000010
【図７Ｂ】
2015525934.tif 000011
【図８】
2015525934.tif 000012
【国際調査報告】
2015525934.tif 000013