(57)【特許請求の範囲】
【請求項１】
データトラフィックへの未認証アクセスを軽減する装置であって、 
複数の未保護カーネル転送バッファを割り当てるオペレーティングシステムスタックと、
前記複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当るハイパーバイザと、
前記複数の保護済みメモリデータバッファ中に格納されている前記データを暗号化するエンコーダモジュールとを備え、
前記複数の未保護カーネル転送バッファは、暗号化された前記データのコピーを受信する、装置。
【請求項２】
前記ハイパーバイザは、前記複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないように、複数の拡張ページテーブルを用いて、前記複数の保護済みメモリデータバッファを保護する、請求項１に記載の装置。
【請求項３】
複数の認証済みフィルタドライバは、前記複数の保護済みメモリデータバッファにアクセスし得る、請求項２に記載の装置。
【請求項４】
前記複数の保護済みメモリデータバッファへのアクセスを制御するべく、前記ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを更に備え、前記複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能でない、請求項２に記載の装置。
【請求項５】
前記データを用いる認証済みアプリケーションが初期化されると、前記複数の未保護カーネル転送バッファおよび前記複数の保護済みメモリデータバッファが、割り当てられる、請求項１または４に記載の装置。
【請求項６】
前記ハイパーバイザは、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当て、前記複数の保護済みメモリデータバッファ用の複数のアドレスは、前記複数のセキュアなＭＭＩＯ領域内に格納される、請求項１または４に記載の装置。
【請求項７】
認証済みユーザ機器のみが、前記複数のセキュアなＭＭＩＯ領域にアクセスし得る、請求項６に記載の装置。
【請求項８】
前記データは、ビデオデータおよびオーディオデータのうちの少なくとも１つであり、ポリシーは、前記装置の位置に基づいて、前記データへのアクセスを自動的に制御する、請求項１または４に記載の装置。
【請求項９】
前記複数の保護済みメモリデータバッファ中に格納されている前記データが認証済み配信元に由来し、マルウェアによる複数の変更および複数の反射攻撃を受けなかったことを保証する入力／出力メモリ管理ユニットを更に備える、請求項１または４に記載の装置。
【請求項１０】
前記入力／出力メモリ管理ユニットは、前記認証済み配信元から前記データと共に送信された少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することによりデータ整合性を認証する、請求項９に記載の装置。
【請求項１１】
前記複数の未保護カーネル転送バッファは、前記データを要求したアプリケーションに前記データをコピーするべく用いられる、請求項１または４に記載の装置。
【請求項１２】
前記データを要求した前記アプリケーションは、前記データを復号化する、請求項１１に記載の装置。
【請求項１３】
前記複数の保護済みメモリデータバッファは、前記ハイパーバイザにより保護される、請求項１または４に記載の装置。
【請求項１４】
コンピュータに、
複数の未保護カーネル転送バッファを割り当てる手順と、
前記複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当る手順と、
前記複数の保護済みメモリデータバッファ中に格納されている前記データを暗号化する手順と、
前記複数の未保護カーネル転送バッファに暗号化された前記データをコピーする手順とを行わせる、プログラム。
【請求項１５】
前記複数の保護済みメモリデータバッファが未認証ソフトウェアによりアクセス可能にならないように、前記複数の保護済みメモリデータバッファは、複数の拡張ページテーブルを用いるハイパーバイザにより保護される、請求項１４に記載のプログラム。
【請求項１６】
コンピュータに、前記ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、前記複数の保護済みメモリデータバッファへのアクセスを制御させる手順を更に行わせ、前記複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能でない、請求項１５に記載のプログラム。
【請求項１７】
前記データを用いる認証済みアプリケーションが初期化されると、前記複数の未保護カーネル転送バッファおよび前記複数の保護済みメモリデータバッファが、割り当てられる、請求項１４または１６に記載のプログラム。
【請求項１８】
コンピュータに、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てる手順を更に行わせる、請求項１４または１６に記載のプログラム。
【請求項１９】
前記複数の保護済みメモリデータバッファ用の複数のアドレスは、前記複数のセキュアなＭＭＩＯ領域内に格納される、請求項１８に記載のプログラム。
【請求項２０】
認証済みユーザ機器のみが、前記複数のセキュアなＭＭＩＯ領域にアクセスし得る、請求項１８に記載のプログラム。
【請求項２１】
コンピュータに、前記複数の保護済みメモリデータバッファ中に格納されている前記データが認証済み配信元に由来し、マルウェアによる複数の変更または複数の反射攻撃を受けなかったことを保証する手順を更に行わせる、請求項１４または１６に記載のプログラム。
【請求項２２】
コンピュータに、前記認証済み配信元から前記データと共に送信された少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することによりデータ整合性を認証する手順を更に行わせる、請求項２１に記載のプログラム。
【請求項２３】
前記複数の未保護カーネル転送バッファは、前記データを要求したアプリケーションに前記データをコピーするべく用いられ、
前記データを要求した前記アプリケーションは、前記データを復号化する、請求項１４または１６に記載のプログラム。
【請求項２４】
データトラフィックへの未認証アクセスを軽減する方法であって、
複数の未保護カーネル転送バッファを割り当てる段階と、
前記複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当てる段階と、
前記複数の保護済みメモリデータバッファ中に格納されている前記データを暗号化する段階と、
前記複数の未保護カーネル転送バッファに複数の暗号化された前記データをコピーする段階と、
複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てる段階とを備え、
割り当てられた前記複数の保護済みメモリデータバッファ用の複数のアドレスは、前記複数のセキュアなＭＭＩＯ領域内に格納される、方法。
【請求項２５】
複数の拡張ページテーブルを用いるハイパーバイザにより複数のメモリデータバッファを保護し、前記複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないようにする段階と、
前記ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、前記複数の保護済みメモリデータバッファへのアクセスを制御する段階とを備え、
前記複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能でない、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は、合衆国法典第３５巻１１９条（ｅ）に基づき、２０１２年９月６日出願の米国特許仮出願第６１／６９７，４９７号「ＰＲＥＶＥＮＴＩＮＧ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ＡＣＣＥＳＳ  ＴＯ  ＡＵＤＩＯ  ＶＩＤＥＯ  ＳＴＲＥＡＭＳ」、および２０１３年４月１５日出願の米国特許非仮出願第１３／８６３，１６８号「ＭＩＴＩＧＡＴＩＮＧ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ＡＣＣＥＳＳ  ＴＯ  ＤＡＴＡ  ＴＲＡＦＦＩＣ」に対する優先権を主張し、これらの双方は、その全体が参照により組み込まれる。
【０００２】
本明細書において説明される複数の実施形態は、概ね、データトラフィックへの未認証アクセスを軽減することに関する。
【背景技術】
【０００３】
ユーザの日々の生活において、電子デバイスがよりユビキタスになっているので、ユーザは、情報をセキュアに処理し、格納することに重度に依存する。残念ながら、複数の電子デバイスの拡散と共に、複数の電子デバイスおよび情報への未認証アクセスのリスクは、増大している。コンピュータシステム情報への不法なアクセスは、複数の電子デバイスにおいて発見される様々なセキュリティの欠陥を利用することにより取得され得る。一般的な欠陥は、ソフトウェアが実行される場合にソフトウェアから、またはソフトウェアが実行されるオペレーティングシステム（ＯＳ）もしくはハードウェアからの直接なデータ窃取に対する感度である。複数のウィルス、常駐終了型プログラム（ＴＳＲ）、ルートキット、共在ソフトウェア、マルチスレッドＯＳ処理、トロイの木馬、ワーム、ハッカ、スプーフプログラム、キープレスパスワードキャプチャラ、マクロレコーダ、スニファ等は、データを窃取するときには効果的であり、一般に、マルウェアまたは不正アプリケーションとして分類され得る。マルウェア（または不正アプリケーション）は、複数のカーネルフィルタドライバとしてマルウェアを挿入することによりデータを窃取し、従って、複数のカーネル転送バッファおよび／またはＯＳスタックを攻撃することができ、または別法では、マルウェアは、リソースを単に要求し、データを指定されたバックエンドサーバに格納／ストリーミングし得る。いくつかのマルウェアは、複数のカーネルドライバをフックし、データフローにタップし得る。電子デバイスが不正ソフトウェアまたは不正アプリケーションに対してより良好に保護され得るならば、有利であろう。
【図面の簡単な説明】
【０００４】
添付の図面において、複数の実施形態は、限定ではなく、例として図示され、同一の複数の参照は、複数の類似の要素を示す。
【図１】本開示の少なくとも一実施形態による、電子デバイスの実施形態を図示する簡略ブロック図である。
【図２】本開示の少なくとも一実施形態による、電子デバイスの実施形態を図示する簡略ブロック図である。
【図３】本開示の少なくとも一実施形態による、電子デバイスの実施形態を図示する簡略ブロック図である。
【図４】本開示の少なくとも一実施形態による、電子デバイスの実施形態を図示する簡略ブロック図である。
【図５】本開示の少なくとも一実施形態による、例示的フローチャートを図示する。
【図６】本開示の少なくとも一実施形態による、例示的フローチャートを図示する。
【図７】本開示の例示的ＡＲＭエコシステムのシステムオンチップ（ＳＯＣ）に関連する簡略ブロック図である。
【図８】本開示に関連するアクティビティを実行するべく使用され得る例示的ロジックを図示する簡略ブロック図である。
【発明を実施するための形態】
【０００５】
以下の詳細な説明は、複数のデュアルタッチ面の多機能入力デバイスに関する複数の装置、方法、およびシステムの複数の例示的実施形態を記載する。例えば、複数の構造、機能、および／または特性等の特徴は、便宜上、１つの実施形態を参照して説明されるが、複数の様々な実施形態が、記載される任意の１または複数の好適な特徴と共に実装されてもよい。
【０００６】
図１は、少なくとも一実施形態による、電子デバイス１０の実施形態を図示する簡略ブロック図である。電子デバイス１０は、ホストコントローラ１４、ハイパーバイザ／仮想マシンマネージャ１６、メモリ１８、複数のドライバ２０、オペレーティングシステム（ＯＳ）スタック２２、データストリーム２４（例えば、オーディオ／ビデオデータストリーム）、プロセッサ２６、デコーダモジュール３４、およびアプリケーション３６を含み得る。ＯＳスタック２２は、ビデオフィルタドライバ３０およびオーディオフィルタドライバ３２を含み得る（他の複数のドライバも含まれ得るが、示されない）。ビデオフィルタドライバ３０およびオーディオフィルタドライバ３２はそれぞれ、エンコーダモジュール２８を含み得る。
【０００７】
データ（またはデータトラフィック）は、既存のＯＳスタック（例えば、ＯＳスタック２２）を介して１または複数の（認証済み）ユーザ機器１２から電子デバイス１０へと流れ得る。既存のＯＳスタックは、ＯＳにより提供される複数のユニバーサルシリアルバス（ＵＳＢ）ドライバおよびカーネルサービスを含み得る。これらのカーネルサービスは、データ経路に機能性を挿入するべく、複数のフィルタドライバにより使用される、１セットのアプリケーションプログラムインターフェース（ＡＰＩ）を提供し得る。複数の未保護カーネル転送バッファは、ＯＳスタック２２により割り当てられ、複数のストリーミングカーネルサービスにより管理され得る。複数の保護オーディオ／ビデオバッファは、ＯＳスタックにより提供される複数のＡＰＩを用いてＯＳスタックに挿入される複数のＵＳＢフィルタドライバにより、管理され得る。
【０００８】
図１の複数の例は、電子的構成の単なる例であって、特許請求の範囲を限定するものではない。例えば、電気コンポーネントの数により、複数の電気コンポーネントの配置等が変わることがある。「オーディオ」および「ビデオ」という用語は、明確さおよび例示のみのために使用されている。オーディオデータストリーム、ビデオデータストリーム、複数のオーディオドライバ、ビデオドライバ、オーディオフィルタドライバ、ビデオフィルタドライバ等を参照しつつ、本明細書において説明される構想は、本開示の範囲および広範な教示を逸脱することなく、他の複数のタイプのデータトラフィックおよびドライバに適用され得る。「データトラフィック」という用語は、電子デバイス１０を介してユーザ機器１２から流れ得るデータを含むが、これに限定されない。
【０００９】
プロセッサ２６は、データに関連するいずれのタイプの複数の命令も実行し、本明細書において詳述される複数のオペレーションを実現することができる。一例において、プロセッサ２６は、要素またはアーティクル（例えば、データ）を、１つの状態または物から別の状態または物に変換することができる。
【００１０】
別の例において、本明細書において概観される複数のアクティビティは、固定ロジックまたはプログラマブルロジック（例えば、プロセッサにより実行される複数のソフトウェア／コンピュータ命令）と共に実装されてもよく、本明細書において特定される複数の要素は、いくつかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック（例えば、フィールドプログラマブルゲートアレイ［ＦＰＧＡ］、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ））、またはデジタルロジック、ソフトウェア、コード、複数の電子命令、またはこれらの任意の好適な組み合わせを含み得るＡＳＩＣであり得る。
【００１１】
電子デバイス１０は、レシーバ、コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、インターネット家電、セットトップボックス、インターネット無線デバイス（ＩＲＤ）、携帯電話、スマートフォン、タブレット、携帯用情報端末（ＰＤＡ）、ゲームコンソール、モバイルインターネットデバイス、グーグルアンドロイド（登録商標）、アイフォン（登録商標）、およびアイパッド（登録商標）等の複数のデバイス、または音声、オーディオ、ビデオ、メディア、または他のデータの交換をすることができるその他のデバイス、コンポーネント、要素、またはオブジェクトを含む。ユーザ機器１２は、マイク、カメラ、ウェブカム、ディスプレイ、キーボード、タッチパッド、遠隔制御装置、周辺機器、または音声、オーディオ、ビデオ、メディア、または他のデータの交換を生成することができる他の機器等、人間ユーザへの好適なインターフェースを含み得る。
【００１２】
マルチメディアコンテンツの作成および消費は、携帯電話から従来のラップトップ、デスクトップコンピュータ、バックエンドクラウドサーバに渡る広範な電子デバイス全体で増大している。携帯電話による通話、家族および友人とのビデオチャット、写真およびビデオの作成／アップロードからソーシャルメディアサイト等に至るまで、オーディオおよび／またはビデオデータは、圧倒的に、日常生活で使用されている。このデータに対する攻撃の数はますます増加しており、最近の例としては、ユーザに知られずにデバイス上のマイクに私的会話を聞き取ることを可能にし、電子デバイスに接続された統合／ディスクリートカメラからデータをエネーブル／窃取することにより人々を見張るコンピュータウィルス／ワームが挙げられる。このデータを窃取する能力は、比較的容易である。大抵のデバイスは、カーネル転送バッファに（例えば、ＯＳスタック２２内のドライバ上の複数のフックを介して）直接にアクセスするマルウェアの挿入によりタップするのが容易な複数のストックプログラミングシステムを起動し、または別法で、アプリケーションが、リソース（例えば、マイクまたはウェブカム）を単に要求し、リソースから選択したバックエンドサーバにデータを格納／ストリーミングすることができるためである。いくつかのＯＳは、データへのアプリケーションレベルによるアクセス制御（例えば、ビデオチャットアプリケーションのみが、カメラデバイスまたはウェブカムに接続することができる）を提供し得る。しかし、たとえこれにより、別のアプリケーションがデータにアクセスすることを防止し得ても、マルウェアは、カーネル転送バッファにタップし、私的会話をスヌープすることができる。他の複数のＯＳは、この高レベルのフィルタリングメカニズムの提供さえもしないことがある。ＯＳがオープンソースであり、十分な知識を有する者により容易に変更され得るからである。
【００１３】
一実施形態において、電子デバイス１０は、複数の適切な難読化技術を用いてＯＳ内の複数のデータフローを保護するように構成され得るので、たとえマルウェアが複数のカーネル転送バッファに挿入され得るとしても、マルウェアは、複数のデータペイロードにアクセスすることができないであろう。大部分の周辺機器に対して選択される内部および外部接続は、ＵＳＢカメラおよび／またはマイク等のＵＳＢであり、本明細書において用いられる複数の例としては、オーディオおよびビデオデータが挙げられる。しかし、複数の類似のアプローチは、他の複数のタイプのデータおよび接続のタイプ（例えば、ＰＣＩ、ＭＩＰＩ、ＣＳＩ等）、ならびに他の複数の周辺機器（キーボード、マウス等）に適用され得る。
【００１４】
データは、ユーザ機器１２からユーザレベルアプリケーション（例えば、アプリケーション３６）、また、おそらくはそれを越えて移動されるので、デバイス１０は、複数のデータバッファおよびペイロードを保護するように構成され得る。デバイス１０は、ユーザ機器１２からデータを受信する複数のデータバッファを保護するように構成され、従って、複数の認証済みバッファ（例えば、保護済み転送バッファ６０）のみがデータを受信することを保証し得る。データが受信されると、デバイス１０は、データを暗号化し、既存のＯＳスタックを介して送信することができ、データは、データをデコードする正しい暗号化キーを有する認証済みアプリケーション（例えば、デコーダモジュール３４）によってのみ復号化され得る。更に、デバイス１０は、データが、ユーザレベルアプリケーション（例えば、アプリケーション３６）、また、おそらくはそれを越えて送信される場合のデータに対するデータ整合性または信頼性アサーションを含み得る。データ整合性または信頼性は、データが正しいソースに由来し、更には、データ経路において、マルウェアによるいずれの変更または反射攻撃も受けなかったことを保証する。データの受信者は、データと共に送信された複数の暗号化ハッシュおよび署名を確認することにより、これらのデータ整合性アサーションを認証することができる。従って、たとえマルウェアがＯＳスタックまたは複数のカーネル転送バッファにアクセス（例えば、フック、タップ等）し、暗号化されたデータにアクセスし得ても、マルウェアは、データを解読する正しい資格情報および複数の暗号化キーを有することなく、データペイロードへのアクセスを得ることはないであろう。データが暗号化される前に、データは、複数のトラスティッドアプリケーションのみによりアクセス可能な複数の保護バッファ内に格納されてもよい。これは、複数のデータバッファの保護を可能にし、複数のデータバッファは、不知のカーネル／ユーザコードによりアクセス可能ではなくなり、ユーザ機器１２に対して指定されたメモリマップド入力／出力（ＭＭＩＯ）空間を保護し、従って、マルウェアは、ユーザ機器１２および受信済みデータとインターフェース接続するメモリを用いて変更／改ざんすることができない。更に、ハイパーバイザは、ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、保護メモリへのアクセスを制御することができ、保護メモリは、未認証ユーザ機器１２によりアクセス可能ではなくなる。従って、データが、データを復号化する複数の正しい暗号化キーを有する認証済みアプリケーションにリリースされる前には、データが未変更のＯＳスタックおよび複数のカーネル転送バッファを介して流れる場合のデータペイロードの難読化は、防止され得る。
【００１５】
図示的な一例において、オーディオおよび／またはビデオデータをピアにストリーミングするべく、オーディオおよび／またはビデオストリーミングアプリケーションは、いくつかのＯＳサービスに依存することがあり、いくつかのＯＳサービスは、データをマイクおよび／またはカメラから抽出し、データをオーディオおよび／またはビデオストリーミングアプリケーションに転送することができる。この処理の一部として、オーディオおよび／またはビデオストリーミングアプリケーションは、カーネルストリーミング、ＵＳＢビデオ、ＵＳＢポート等、複数のＯＳサービスを用い、ＵＳＢデバイスに接続する階層状の１セットのサービスを提供し、データフォーマット、データ速度等の異なる複数の属性をネゴシエートし、データをオーディオおよび／またはビデオストリーミングアプリケーションにストリーミングし得る。オーディオ／ビデオストリーミングアプリケーションは、適切な複数のＯＳサービスに対するオーディオおよび／またはビデオデータの要求を開始し、適切な複数のＯＳサービスは、同様に、ビデオフィルタドライバ３０および／またはオーディオフィルタドライバ３２を使用して、ＯＳスタックおよび複数のカーネル転送バッファの上方にデータを移動することができる。これらのドライバインターフェースは、ＵＳＢポート／ハブドライバとインターフェース接続し、ＵＳＢポート／ハブドライバは、同様に、ホストコントローラ１４を介して適切なユーザ機器１２と通信することができる。ハイパーバイザ／仮想マシンマネージャ１６は、メモリ１８におけるユーザ機器１２のＭＭＩＯ領域をマッピングし、ユーザ機器１２とインターフェース接続するべく使用される異なる複数のデータ構造を定義し得る。とりわけ、複数のデータ構造は、ユーザ機器１２への複数のコマンド、ユーザ機器１２から再受信された複数のイベント、およびユーザ機器１２からの、およびユーザ機器１２へのデータ移動を扱うべく、システムの複数の上部層により指定された複数のメモリ領域（複数の転送バッファ）への複数のポインタを含み得る。オーディオおよび／またはビデオデータの場合、オーディオおよび／またはビデオデータは、ユーザ機器１２から受信され得るが、ＵＳＢストレージ等の他の複数の場合において、データは、双方向に流れ得る。
【００１６】
高レベルの視点から、ユーザ機器１２とインターフェース接続するべく用いられるセキュアなＭＭＩＯ領域およびデータ移動のために用いられるセキュアな転送バッファという、使用中の２つのセキュアなメモリ領域が存在し得る。複数のＭＭＩＯ領域は、複数のセキュアな転送バッファに対する複数のマッピングおよびポインタを含み得る。デバイス１０は、複数の転送バッファに直接メモリアクセス（ＤＭＡ）を用い、ポートドライバは、ユーザ機器１２に対するこれらのバッファの利用可能性を管理し得る。通常、円形の状態で再利用されるため、時には、これらのバッファは、環状バッファとも呼ばれる。データは、所与の転送バッファにおいて利用可能となり、割り込みが生成され、これは、データの利用可能性を示す非同時性イベントをトリガする。データがアプリケーション３６に送信されると、複数の転送バッファは、ポートドライバに再度循環し、次のバッチのデータについて、ユーザ機器１２に対し利用可能となり得る。
【００１７】
このモードのオペレーションにおいて、挿入攻撃中に、カーネル（リング０）マルウェアは、フィルタドライバとして複数のカーネル転送バッファにタップし、検出されないデータを窃取およびコピーする。
【００１８】
不正なアクティビティは、データをサイレントにコピーし、別の場所、ならびに元来意図された受信者に送信することにより、実現され得る。データがいくつかの様式で、変更、リプレイ、または置換され得るが、本質的にはデータ経路における同一の原理の挿入に由来する他の複数の変更形態も可能である。挿入が可能でない場合、データがマルウェアのみにより受信されるように、より高度の攻撃は、複数のＭＭＩＯ領域を再度プログラミングし、マルウェアにより制御される代替の複数のバッファを指し示し得る。
【００１９】
デバイス１０は、ビデオおよび／またはオーディオドライバ（例えば、ビデオフィルタドライバ３０および／またはオーディオフィルタドライバ３２）より低く、ポートドライバ（例えば、ホストコントローラ１４）より高いフィルタドライバを挿入することにより、挿入攻撃から保護するように構成され得る。挿入済みフィルタドライバを用いて、複数のより高い層のドライバ（フィルタドライバのキャッシュ中に保持される）から受信された複数の転送バッファにではなく、フィルタドライバに送信される、複数のセキュアな転送バッファが生成され得る。別の例において、上記のデータ気密性／信頼性は、電子デバイス１０と直接に通信する最低レベルの複数のポートドライバと共に直接に、または電子デバイス１０に直接に組み込まれてもよい。これにより、ユーザ機器１２とインターフェース接続するハードウェアのより近くに移動するコア能力が可能となり、最終的には、ユーザ機器１２、またはユーザ機器１２とインターフェース接続するハードウェア（例えば、ＵＳＢホストコントローラインターフェース１４等）内のいずれかに実装されてもよい。更に、ホストコントローラ１４を用いて、システムは、複数のセキュアな転送バッファメモリ領域および複数のドライバにおける複数のコード選択に関連する複数の拡張ページテーブル（ＥＰＴ）構造について許可を提供することにより、複数のセキュアな転送バッファがフィルタドライバコードにのみアクセス可能となるように、複数のセキュアな転送バッファを保護することができる。データがセキュアな複数の転送バッファで受信されると、データは、任意の様式で暗号化され得るが、その他のコンポーネントにはアクセス可能ではない。データが暗号化されると、データは、複数のカーネル転送バッファにコピーされ、データは、通常の様式で、ユーザ空間（例えば、アプリケーションメモリ）にもコピーされ得る。任意のマルウェアがデータにアクセスすることを試みると、マルウェアは、暗号化済みテキストに遭遇するであろう。複数の認証済みアプリケーション（例えば、アプリケーション３６）は、（デコーダモジュール３４において）正しい暗号化キーを提供され、データを復号化することができる。一実施形態において、デコーダモジュール３４およびアプリケーション３６は、データがその他の悪意のアプリケーションにアクセス可能にならないようにセキュアになり得る。マルウェアからの第２の攻撃は、ＭＭＩＯ空間を直接に変更し、適切なＭＭＩＯデバイス記述子に、マルウェア自身により所有される複数の転送バッファを指し示させることができる。電子デバイス１０は、複数のデバイスＭＭＩＯ領域周辺に保護を提供することにより上記と同様にこの攻撃を軽減し、ユーザ機器１２への／からのデータを転送するべく用いられる複数のセキュアなバッファを指し示すことができる。これは、ホストコントローラ１４により管理されるユーザ機器１２において複数のデータ構造を識別する段階と、これらをいずれの未認証コンポーネントによる複数の変更からも保護する段階とを含む。これらのメモリ領域をトラスティッドコード経路以外には読み取り専用として示すべく、複数のＥＰＴ構造を用いて、電子デバイス１０は、これらの領域の複数の変更に関する複数の通知（イベント）を取得し、複数のＭＭＩＯ構造が、複数のデータ構造に対するあらゆる変更をコミットする前に破壊されていないことを認証するように構成され得る。これは、電子デバイス１０が本質的に、これらの領域を変更することに対する最後のバリケードとなることを可能にし、データを受信する複数の転送バッファをマッピングするべく用いられる異なる複数の構造に対するいずれの所望でない変更も否定するサニティチェックを可能にする。
【００２０】
図２は、少なくとも１つの例示的実施形態による、電子デバイス１０の実施形態を図示する簡略ブロック図である。電子デバイス１０は、ホストコントローラ１４、ハイパーバイザ／仮想マシンマネージャ１６、メモリ１８、複数のドライバ２０、ＯＳスタック２２、プロセッサ２６、デコーダモジュール３４、アプリケーション３６、ポート／ハブドライバ４８、入力／出力メモリ管理ユニット８０（Ｉ／Ｏ  ＭＭＵ）、およびトラステッドプラットフォームモジュール８８を含み得る。
【００２１】
ハイパーバイザ／仮想マシンマネージャ１６は、拡張ページテーブル４０を含み得る。拡張ページテーブル４０は、複数の仮想アドレスと物理アドレスとの間のマッピングを格納するべく、仮想メモリシステムにより用いられるデータ構造であってもよい。メモリ１８は、保護メモリ４２、複数のハードウェアレジスタ４６、複数のカーネル転送バッファ５４、およびアプリケーションメモリ５６（例えば、ユーザ空間）を含み得る。
【００２２】
保護メモリ４２は、複数の保護済みＭＭＩＯ領域５８および保護済み転送バッファ６０を含み得る。複数のドライバ２０は、ビデオドライバ５０およびオーディオドライバ５２を含み得る。ビデオフィルタドライバ３０およびオーディオフィルタドライバ３２はそれぞれ、エンコーダモジュール２６を含み得る。Ｉ／Ｏ  ＭＭＵ８０は、ハイパーバイザ／仮想マシンマネージャ１６によりプログラミングされ、複数の保護済みＭＭＩＯ領域５８および保護済み転送バッファ６０が、未認証ユーザ機器１２によりアクセス可能とならないように、複数の保護済みＭＭＩＯ領域５８へのアクセスを制御することができる。複数のカーネル転送バッファ５４は、データをアプリケーション３６に転送するように構成される。
【００２３】
電子デバイス１０のブート中（またはユーザ機器が電子デバイス１０に接続され、または電子デバイス１０が起動するとき）に、トラステッドプラットフォームモジュール８８は、ハイパーバイザ／仮想マネージャ１６およびホストコントローラソフトウェアがセキュアにブートし、いずれのマルウェアエンティティによっても影響（すなわち、置換または害される）されなかったとの複数のアサーションを提供するべく使用されてもよい。
【００２４】
ハイパーバイザ／仮想マシンマネージャ１６は、保護メモリ４２を作成し、または割り当てることができる。複数のハードウェアレジスタ４６は、複数の保護済みＭＭＩＯ領域５８にアクセスし、ホストコントローラ１４に対する複数の保護済み転送バッファ６０のアドレスを決定し得る。ユーザ機器１２からのデータがホストコントローラ１４で受信されると、データは、保護メモリ４２内の複数の保護済み転送バッファ６０に送信され得る。ビデオフィルタドライバ３０および／またはオーディオフィルタドライバ３２は、複数の保護済み転送バッファ６０におけるデータにアクセスすることができ、エンコーダモジュール２８を用いて、データは、暗号化またはエンコードされ得る。データが暗号化されると、複数のドライバ２０に、複数の未保護メモリデータバッファ（例えば、カーネル転送バッファ５４）を介して送信され得る。そこから、データは、カーネルストリーミング（例えば、データストリーム２４）に入り、デコーダモジュール３４に送信され、データは、復号化もしくはデコードされ、アプリケーション３６に送信にされる。
【００２５】
図３は、少なくとも１つの例示的実施形態による、電子デバイス１０の実施形態を図示する簡略ブロック図である。電子デバイス１０は、ホストコントローラ１４、デコーダモジュール３４、アプリケーション３６、ビデオドライバ５０、複数のカーネル転送バッファ５４、ホストコントローラドライバ６２、ハブドライバ６４、共通の汎用クラス親ドライバ６６、カーネルストリーミングプロキシ６８、および複数のフレームバッファ７０を含み得る。
【００２６】
ホストコントローラドライバ６２、ハブドライバ６４、および共通の汎用クラス親ドライバ６６は、ユーザ機器１２およびホストコントローラ１４を操作または制御する。カーネルストリーミングプロキシ６８は、それらのカーネルストリーミングフィルタの特性を仮定することにより、複数のカーネルストリーミングミニドライバの複数のカーネルストリーミングフィルタを表す。次いで、カーネルストリーミングプロキシ６８は、複数のカーネル転送バッファ５４に制御を送信しつつ、アプリケーション３６からの複数のイベントを反映する。また、カーネルストリーミングプロキシ６８は、複数のアプリケーションに、複数のカーネルストリーミングオブジェクトからの情報を制御および検索させてもよい。複数のフレームバッファ７０は、アプリケーション３６により用いられる複数のビデオ（およびオーディオ）フレームをバッファすることができる。
【００２７】
図４は、少なくとも１つの例示的実施形態による、電子デバイス１０の実施形態を図示する簡略ブロック図である。電子デバイス１０は、ホストコントローラ１４、アプリケーション３６、不正アプリケーション８４、およびアプリケーション制御モジュール８６を含み得る。一例において、電子デバイス１０は、不正アプリケーション８４に感染していることがある。
【００２８】
不正アプリケーション８４は、コンピュータオペレーションを混乱させ、機密情報を収集し、または複数のプライベートコンピュータシステムへのアクセスを得るべく使用または作成されるマルウェア（または悪意もしくは悪質なソフトウェア）であり得る。アプリケーション制御モジュール８６は、アプリケーション３６を制御するように構成され得る。この例において、アプリケーション制御モジュール８６は、ハイパーバイザ／仮想マシンマネージャ（例えば、ハイパーバイザ／仮想マシンマネージャ１６）により保護されたデータおよびコードを有し、マルウェアがポリシーサーバ７２から受信されるいずれのポリシーも迂回し得ないことを保証する。電子デバイス１０は、ネットワーク７４を介してポリシーサーバ７２と通信することができる。ネットワーク７４を用いて、ポリシーサーバ７２は、（例えば、企業環境において）電子デバイス１０に対する複数のアクセス制御ポリシーを提供することができる。例えば、電子デバイス１０の位置に基づいて、ポリシーサーバ７２は、電子デバイス１０に、ユーザ機器１２からデータにアクセスすることが可能とされない（例えば、アプリケーションがデータにアクセスできないようにデータが暗号化される）というポリシーを発行し得る。特定の例において、電子デバイス１０は、セキュアな区域に位置し得、ユーザ機器１２は、カメラまたはマイクであり得る。ユーザ機器１２がビデオおよび／またはオーディオデータを生成する場合、データは、いずれのアプリケーションにもアクセス可能ではない。そのようなポリシーは、不正アプリケーション８４がユーザ機器１２からビデオおよび／またはオーディオデータを取得することを防止することができる。別の例において、ポリシーサーバ７２は、電子デバイス１０に、複数の認証済みアプリケーションのみがユーザ機器１２により生成されたデータにアクセスすることを認証されるというポリシーを発行し得る。特定の例において、ユーザ機器は、カメラであり得、ユーザ機器１２がビデオおよび／またはオーディオデータを生成する場合、認証済みアプリケーション（ビデオチャット用アプリケーション等）のみがデータにアクセスし得る。
【００２９】
ネットワーク７４は、情報の複数のパケットを受信および送信する相互接続された通信経路の一連のポイントまたはノードを表す。ネットワーク７４は、電子デバイス１２とポリシーサーバ７２との間の通信インターフェースを提供し、いずれかのローカルエリアネットワーク（ＬＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、イントラネット、エクストラネット、またはネットワーク環境において複数のネットワーク通信を容易にするその他の適切なアーキテクチャまたはシステムであり得る。
【００３０】
複数のネットワーク通信は、複数のパケット、フレーム、信号、データ等を含み、いずれの好適な通信メッセージングプロトコルによっても送信および受信され得る。好適な複数の通信メッセージングプロトコルは、開放型システム相互接続（ＯＳＩ）モデル等の多層スキーム、またはそれのいずれかの派生物または異形（例えば、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ））を含み得る。
【００３１】
本明細書において用いられる「データ」という用語は、あらゆるタイプのバイナリ、数値、音声、ビデオ、文字、またはスクリプトデータ、またはあらゆるタイプのソースまたはオブジェクトコード、または複数のコンピューティングデバイス（例えば、電子デバイス）および／またはネットワークにおいて、１つのポイントから別のポイントに通信し得る、任意の適切なフォーマットのその他の好適な情報を指す。
【００３２】
図５は、オーディオおよびビデオのトラフィックへの未認証アクセスを軽減する複数の例示的アクティビティを図示する簡略フローチャート５００である。５０２で、アプリケーション（例えば、アプリケーション３６）は、初期化し、複数の未保護メモリデータバッファ（例えば、カーネル転送バッファ５４）が割り当てられる。これらの未保護メモリデータバッファは、複数のカーネル転送バッファの一部であってもよい。５０４で、複数の保護済みメモリデータバッファ（例えば、保護メモリ４２における複数の保護済み転送バッファ６０）が割り当てられる。５０６で、複数のＯＳカーネルサービス用の複数の未保護メモリデータバッファにおいて、ＤＭＡ用のメモリが割り当てられる。５０８で、複数の未保護メモリデータバッファ用の複数のアドレスが、複数の割り当てられた保護済みメモリデータバッファ中に格納される。５１０で、複数の保護済みＭＭＩＯ領域（例えば、ＭＭＩＯ領域５８）が割り当てられる。５１２で、複数の保護済みメモリデータバッファ用のアドレスが、複数の割り当てられたＭＭＩＯ領域内に格納される。
【００３３】
図６は、オーディオおよびビデオのトラフィックへの未認証アクセスを軽減する更なる複数の例示的アクティビティを図示する簡略フローチャート６００である。６０２で、アプリケーション（例えば、アプリケーション３６）は、初期化し、アプリケーション用のユーザ機器（例えば、ユーザ機器１２）が初期化される。６０４で、ユーザ機器は、複数の保護済みＭＭＩＯ領域（例えば、保護済みＭＭＩＯ領域５８）にアクセスし、複数の保護済みメモリデータバッファ（例えば、保護済み転送バッファ６０）用のアドレスを決定する。６０６で、ユーザ機器は、データを生成し、データを複数の保護済みメモリデータバッファに送信する。６０８で、複数の保護済みメモリデータバッファにおけるデータは、エンコード／暗号化される。例えば、ビデオデータは、ビデオフィルタドライバ３０内のエンコーダモジュール２８を用いてエンコード／暗号化され得、オーディオデータは、オーディオフィルタドライバ３２内のエンコーダモジュール２８を用いてエンコード／暗号化され得る。６１０で、エンコード／暗号化されたデータは、複数の未保護メモリデータバッファ（例えば、カーネル転送バッファ５４）に送信され、デコーダ（例えば、デコーダモジュール３４）にコピーされる。６１２で、デコーダは、エンコード／暗号化されたデータをデコードし、データをアプリケーションに送信する。
【００３４】
図７は、本開示の例示的ＡＲＭエコシステムＳＯＣ７００に関連する簡略ブロック図である。少なくとも一実施形態において、本明細書において示され、説明される電子デバイス１０は、例示的ＡＲＭエコシステムＳＯＣ７００と同一または類似の様式で構成されてもよい。本開示の少なくとも１つの例示的実装形態は、データトラフィックおよびＡＲＭコンポーネントへの未認証アクセスを軽減する特徴の統合を含み得る。例えば、図７の例は、いずれかのＡＲＭコア（例えば、Ａ―９、Ａ―１５等）に関連し得る。更に、アーキテクチャは、任意のタイプのタブレット、スマートフォン（アンドロイド（登録商標）フォン、アイフォン（登録商標）を含む）、アイパッド（登録商標）、グーグルネクサス（登録商標）、マイクロソフトサーフェス（登録商標）、パーソナルコンピュータ、サーバ、ビデオ処理コンポーネント、デスクトップコンピュータ、ラップトップコンピュータ（任意のタイプのノートブックを含む）、ウルトラブック（登録商標）システム、任意のタイプのタッチ入力デバイス等の一部であり得る。
【００３５】
図７のこの例において、ＡＲＭエコシステムＳＯＣ７００は、複数のコア７０６〜７０７、Ｌ２キャッシュ制御器７０８、バスインターフェースユニット７０９、Ｌ２キャッシュ７１０、グラフィックス処理ユニット（ＧＰＵ）７１５、相互接続７０２、ビデオコーデック７２０、および液晶ディスプレイ（ＬＣＤ）ＶＦ７２５を含み得、これらは、ＬＤＣに結合するモバイル業界プロセッサインターフェース（ＭＩＰＩ）／高解像度マルチメディアインターフェース（ＨＤＭＩ（登録商標））の複数のリンクに関連し得る。
【００３６】
また、ＡＲＭエコシステムＳＯＣ７００は、加入者識別モジュール（ＳＩＭ）Ｉ／Ｆ７３０、ブートリードオンリメモリ（ＲＯＭ）７３５、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）コントローラ７４０、フラッシュコントローラ７４５、シリアルペリフェラルインターフェース（ＳＰＩ）マスタ７５０、好適な電力制御器７５５、ダイナミックＲＡＭ（ＤＲＡＭ）７６０、およびフラッシュ７６５を含み得る。更に、１または複数の例示的実施形態は、１または複数の通信能力、インターフェース、およびＢｌｕｅｔｏｏｔｈ（登録商標）７７０、３Ｇモデム７７５（または４Ｇ／５Ｇ／ｎＧ）、全地球測位システム（ＧＰＳ）７８０、および８０２．１  １ＷｉＦｉ７８５の例等の特徴を含み得る。オペレーションにおいて、図７の例は、様々なタイプの計算（例えば、モバイルコンピューティング、ハイエンドのデジタルホーム、複数のサーバ、無線インフラストラクチャ等）を可能にするデータ保護と共に、複数の処理能力を提供し得る。更に、そのようなアーキテクチャは、いずれの数のソフトウェアアプリケーション（例えば、アンドロイド（登録商標）、Ａｄｏｂｅ（商標）フラッシュ（商標）プレーヤ、Ｊａｖａ（登録商標）  Ｐｌａｔｆｏｒｍ  Ｓｔａｎｄａｒｄ  Ｅｄｉｔｉｏｎ（Ｊａｖａ（登録商標）  ＳＥ）、Ｊａｖａ（登録商標）ＦＸ、Ｌｉｎｕｘ（登録商標）、マイクロソフトウィンドウズ（登録商標）エンベディッド、シンビアン、およびウブントゥ等）をエネーブルし得る。少なくとも一実施形態において、コアプロセッサは、結合低レイテンシレベル２キャッシュを用いてアウトオブオーダスーパースケーラパイプラインを実装し得る。
【００３７】
図８は、本明細書において論じられる複数の軽減オペレーションのいずれかに関連し得る潜在的電子装置およびロジックを図示する簡略ブロック図である。少なくとも１つの例示的実施形態において、システム８００は、タッチコントローラ８０２、１または複数のプロセッサ８０４、プロセッサ８０４のうち少なくとも１つに結合されたシステム制御ロジック８０６、システム制御ロジック８０６に結合されたシステムメモリ８０８、システム制御ロジック８０６に結合された不揮発性メモリおよび／またはストレージデバイス８３２、システム制御ロジック８０６に結合されたディスプレイコントローラ８１２、ディスプレイデバイス８１０に結合されたディスプレイコントローラ８１２、システム制御ロジック８０６に結合された電力管理コントローラ８１８、および／またはシステム制御ロジック８０６に結合された通信インターフェース８１６を含み得る。
【００３８】
少なくとも一実施形態において、システム制御ロジック８０６は、少なくとも１つのプロセッサ８０４、および／またはシステム制御ロジック８０６と通信する任意の好適なデバイスもしくはコンポーネントに任意の好適なインターフェースを提供する、任意の好適な複数のインターフェースコントローラを含み得る。少なくとも一実施形態において、システム制御ロジック８０６は、インターフェースをシステムメモリ８０８に提供する１または複数のメモリコントローラを含み得る。システムメモリ８０８は、例えば、システム８００のためにデータおよび／または複数の命令を読み込み、格納するべく使用され得る。少なくとも一実施形態において、システムメモリ８０８は、例えば、好適なダイナミックランダムアクセスメモリ（ＤＲＡＭ）等の任意の好適な揮発性メモリを含み得る。少なくとも一実施形態において、システム制御ロジック８０６は、ディスプレイデバイス８１０、タッチコントローラ８０２、および不揮発性メモリ、ならびに／またはストレージデバイス８３２にインターフェースを提供する１または複数のＩ／Ｏコントローラを含み得る。
【００３９】
不揮発性メモリおよび／またはストレージデバイス８３２は、例えば、ソフトウェア８２８内にデータおよび／または複数の命令を格納するべく使用され得る。不揮発性メモリおよび／またはストレージデバイス８３２は、例えば、フラッシュメモリ等、任意の好適な不揮発性メモリを含んでもよく、および／または例えば、１または複数のハードディスクドライブ（ＨＤＤ）、１または複数のコンパクトディスク（ＣＤ）ドライブ、および／または１もしくは複数のデジタル多用途ディスク（ＤＶＤ）ドライブ等、任意の好適な不揮発性ストレージデバイスを含んでもよい。
【００４０】
電力管理コントローラ８１８は、様々な電力管理および／または電力削減機能を制御するように構成される電力管理ロジック８３０を含み得る。少なくとも１つの例示的実施形態において、電力管理コントローラ８１８は、低減電力で動作し、または電子デバイスが閉じられた構成にある場合にオフにされ得るシステム８００の複数のコンポーネントまたはデバイスの電力消費を低減するように構成される。例えば、少なくとも一実施形態において、電子デバイスが閉じられた構成にある場合、電力管理コントローラ８１８は、ディスプレイおよび／またはそれに関連するいずれかのバックライトの未使用部分の電力を落とし、閉じられた構成でより少ない計算電力が必要とされる場合に、プロセッサ８０４のうち１または複数が低電力状態に入ることを可能にし、電子デバイスが閉じられた構成にある場合に、未使用のあらゆるデバイスおよび／またはコンポーネントをシャットダウンすることのうち１または複数を実行する。
【００４１】
通信用インターフェース８１６は、１または複数のネットワークを介して、および／またはその他の好適なデバイスと通信するべく、システム８００のためのインターフェースを提供してもよい。
【００４２】
通信用インターフェース８１６は、任意の好適なハードウェアおよび／またはファームウェアを含み得る。少なくとも１つの例示的実施形態において、通信用インターフェース８１６は、例えば、ネットワークアダプタ、無線ネットワークアダプタ、電話モデム、および／または無線モデムを含み得る。少なくとも一実施形態において、システム制御ロジック８０６は、例えば、音声を対応する複数のデジタル信号に変換するのに役立ち、および／または複数のデジタル信号を対応する音声に変換するのに役立つオーディオデバイス、カメラ、カムコーダ、プリンタ、および／またはスキャナ等、任意の好適な入力／出力デバイスへのインターフェースを提供する、１または複数のＩ／Ｏコントローラを含み得る。
【００４３】
少なくとも一実施形態については、少なくとも１つのプロセッサ８０４は、システム制御ロジック８０６の１または複数のコントローラ用のロジックと共にパッケージ化されてもよい。少なくとも一実施形態において、少なくとも１つのプロセッサ８０４は、システムインパッケージ（ＳｉＰ）を形成するべく、システム制御ロジック８０６の１または複数のコントローラ用のロジックと共にパッケージ化されてもよい。少なくとも一実施形態において、少なくとも１つのプロセッサ８０４は、同一のダイ上に、システム制御ロジック８０６の１または複数のコントローラ用のロジックと共に統合されてもよい。少なくとも一実施形態については、少なくとも１つのプロセッサ８０４は、同一のダイ上に、システムオンチップ（ＳｏＣ）を形成するべく、システム制御ロジック８０６の１または複数のコントローラ用のロジックと共に統合されてもよい。
【００４４】
タッチ制御のために、タッチコントローラ８０２は、タッチセンサインターフェース回路８２２およびタッチ制御ロジック８２４を含んでもよい。タッチセンサインターフェース回路８２２は、ディスプレイ（すなわち、ディスプレイデバイス８１０）の第１のタッチ表面層および第２のタッチ表面層を介してタッチ入力を検出するべく、結合されてもよい。タッチセンサインターフェース回路８２２は、例えば、タッチ入力デバイスに使用されるタッチ感応技術に少なくとも部分的に依存し得る任意の好適な回路を含んでもよい。一実施形態において、タッチセンサインターフェース回路８２２は、任意の好適なマルチタッチ技術をサポートし得る。少なくとも一実施形態において、タッチセンサインターフェース回路８２２は、第１のタッチ表面層および第２の表面層に対応する複数のアナログ信号を任意の好適なデジタルタッチ入力データに変換するべく、任意の好適な回路を含み得る。少なくとも一実施形態の好適なデジタルタッチ入力データは、例えば、タッチ位置または座標データを含み得る。
【００４５】
タッチ制御ロジック８２４は、第１のタッチ表面層および第２のタッチ表面層を介してタッチ入力を検出するように、任意の好適な様式でタッチセンサインターフェース回路８２２を補助するべく結合されてもよい。また、少なくとも１つの例示的実施形態については、タッチ制御ロジック８２４は、タッチセンサインターフェース回路８２２により検出されるタッチ入力に対応するデジタルタッチ入力データを任意の好適な様式で出力するべく、結合されてもよい。タッチ制御ロジック８２４は、任意の好適なハードウェア、ファームウェア、および／またはソフトウェアのロジック（例えば、非一時的有形媒体）を含み、例えば、タッチセンサインターフェース回路８２２に使用される回路に少なくとも部分的に依存し得る任意の好適なロジックを使用して実装されてもよい。少なくとも一実施形態のタッチ制御ロジック８２４は、任意の好適なマルチタッチ技術をサポートし得る。
【００４６】
タッチ制御ロジック８２４は、処理のため、システム制御ロジック８０６および／または少なくとも１つのプロセッサ８０４にデジタルタッチ入力データを出力するべく結合され得る。少なくとも一実施形態の少なくとも１つのプロセッサ８０４は、タッチ制御ロジック８２４から出力されたデジタルタッチ入力データを処理するべく、任意の好適なソフトウェアを実行し得る。好適なソフトウェアは、例えば、任意の好適なドライバソフトウェアおよび／または任意の好適なアプリケーションソフトウェアを含み得る。図８に図示するように、システムメモリ８０８は、好適なソフトウェア８２６および／もしくは不揮発性メモリ、ならびに／またはストレージデバイスを格納し得る。
【００４７】
いくつかの例示的実装形態において、本明細書において概観される複数の機能は、１または複数の有体機械可読ストレージ媒体においてエンコードされるロジック（例えば、プロセッサ、または他の類似の機械等で実行される複数のデジタル信号プロセッサ（ＤＳＰ）命令、ソフトウェア（潜在的には、オブジェクトコードおよびソースコードを含む）で特定用途向け集積回路（ＡＳＩＣ）において提供される埋め込みロジック）と共に実装され、これらは、非一時的であり得ることに留意されたい。これらの例のいくつかにおいて、複数のメモリ素子は、本明細書において説明される複数のオペレーションに使用され得るデータを格納することができる。これは、本明細書において説明される複数のアクティビティを遂行するべく実行されるソフトウェア、ロジック、コード、または複数のプロセッサ命令を格納することができる複数のメモリ素子を含み得る。プロセッサは、本明細書において詳述されるオペレーションを実現するべく、データに関連する任意のタイプの複数の命令を実行することができる。一例において、複数のプロセッサは、要素またはアーティクル（例えば、データ）を、１つの状態または物から別の状態または物に変換し得るであろう。
【００４８】
別の例において、本明細書において概観される複数のアクティビティは、固定ロジックまたはプログラマブルロジック（例えば、プロセッサにより実行される複数のソフトウェア／コンピュータ命令）と共に実装されてもよく、本明細書において特定される複数の要素は、プログラマブルプロセッサ、プログラマブルデジタルロジック（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＤＳＰ、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ））、またはデジタルロジック、ソフトウェア、コード、複数の電子命令、またはこれらのいずれかの好適な組み合わせを含み得るＡＳＩＣのうちのいくつかのタイプであり得る。
【００４９】
上記の複数の方法、ハードウェア、ソフトウェア、ファームウェア、またはコードの複数の実施形態は、処理要素により実行可能な少なくとも１つの機械アクセス可能媒体、機械可読媒体、コンピュータアクセス可能媒体、またはコンピュータ可読媒体上に格納された複数の命令またはコードにより実装されてもよい。機械アクセス可能／可読媒体は、コンピュータまたは電子システム等の機械により可読な形態で情報を提供する（すなわち、格納および／または送信する）任意の一時的または非一時的メカニズムを含む。例えば、非一時的機械アクセス可能媒体としては、スタティックＲＡＭ（ＳＲＡＭ）またはダイナミックＲＡＭ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気または光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、複数の一時的（伝播された）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信される情報を保持する他の形態のストレージデバイス等が挙げられ、これらは、情報を受信し得る非一時的媒体とは区別される。
【００５０】
上記で提供される複数の例、ならびに本明細書において提供される様々な他の例と共に、複数の層、プロトコル、インターフェース、空間、および環境の観点から、インタラクションは、より一般的に説明され得ることに留意されたい。しかし、これは、明確さおよび例示のために説明されている。一定の場合には、限定された数のコンポーネントを参照することにより、所与の１セットのフローの１または複数の機能性を説明するのは、より容易であることがある。本明細書において論じられる複数のアーキテクチャ（およびその教示）は、容易にスケーラブルであり、多くのコンポーネント、ならびにより複雑な／洗練された複数の配置および構成を収容することができることを理解されたい。従って、提供される複数の例は、本開示の範囲を限定し、または無数の他アーキテクチャに潜在的に適用される本開示の広範な教示を阻害するべきではない。
【００５１】
また、複数のフロー図における複数のブロックは、本明細書において論じられる複数の回路により、またはこの中で実行され得る複数の可能なシグナリングのシナリオおよびパターンのうちいくつかのみを例示することに留意することが重要である。これらのブロックのうちいくつかは、適切な場合には、削除または除去されることがあり、またはこれらのオペレーションまたはアクティビティは、本明細書において提供される複数の教示の範囲を逸脱することなく、相当に変更または修正され得る。更に、これらのオペレーションのうちいくつかは、１または複数の更なるオペレーションと同時に、または平行して実行されるものとして説明されている。しかし、これらのオペレーションのタイミングは、相当に変更され得る。先行するオペレーションのフローは、例示および論述のために提供されている。任意の好適な複数の配置、配列順序、構成、およびタイミングメカニズムが、本明細書において提供される複数の教示を逸脱することなく提供され得るように、本開示により実質的な柔軟性が提供される。
【００５２】
また、本明細書、複数のプロトコル、および本明細書において概観される複数の関係（例えば、特定の複数のコマンド、タイミングの間隔、付随サポートコンポーネント等）の全てが、例示および教示のみのために提供されていることに留意することは必須である。これらのデータのそれぞれは、本開示の趣旨または添付の特許請求の範囲を逸脱することなく相当に変更され得る。本明細書は、多くの様々で、非限定的例に適用され、従って、そのようなものとして解釈されるべきである。上記の説明において、複数の例示的実施形態が説明された。添付の特許請求の範囲を逸脱することなくそのような複数の実施形態に、様々な変更および修正は、行われ得る。
【００５３】
従って、説明および図面は、限定的意味ではなく例示的意義とみなされるものである。
【００５４】
様々な他の修正形態、代替形態、変形形態、改変形態、および変更形態は、当業者に明らかとなり得、本開示は、添付の特許請求の範囲内に包含されるものとしてそのような全ての修正形態、代替形態、変形形態、改変形態、および変更形態を含むことが意図される。米国特許商標庁（ＵＳＰＴＯ）、および更に本願に関して発行される任意の特許の読者が添付の特許請求の範囲を解釈するのに役立つべく、出願人は、（ａ）添付の特許請求の範囲のいずれかが、「の手段」または「の段階」という文言が特定の特許請求の範囲で使用されない限り、本願の出願日に存在する合衆国法典第３５巻第１１２条第６段落（７）を引き合いに出すことを意図せず、（ｂ）本明細書におけるいずれかの記述により、添付の特許請求の範囲において反映されない、いかなる方法によっても本開示を限定することを意図しないことを注記しておくことを、出願人は希望する。
【００５５】
他の複数の注記および例
【００５６】
例Ａ１は、データトラフィックへの未認証アクセスを軽減する装置であって、複数の未保護カーネル転送バッファを割り当てるオペレーティングシステムスタックと、複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当てるハイパーバイザと、複数の保護済みメモリデータバッファ中に格納されているデータを暗号化するエンコーダモジュールとを備え、複数の未保護カーネル転送バッファは、暗号化されたデータのコピーを受信する。
【００５７】
例Ａ２において、例Ａ１の主題は、複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないように、ハイパーバイザが複数の拡張ページテーブルを用いて、複数の保護済みメモリデータバッファを保護するように構成されることを任意選択で含み得る。例Ａ３において、例Ａ１からＡ２のいずれか１つの主題は、複数の認証済みフィルタドライバが複数の保護済みメモリデータバッファにアクセスし得ることを任意選択で含み得る。
【００５８】
例Ａ４において、例Ａ２からＡ３のいずれか１つの主題は、複数の保護済みメモリデータバッファへのアクセスを制御するべくハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを任意選択で含み得、複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能ではない。
【００５９】
例Ａ５において、例Ａ１の主題は、データを使用するアプリケーションが初期化されると、複数の未保護カーネル転送バッファおよび複数の保護済みメモリデータバッファが割り当てられることを任意選択で含み得る。
【００６０】
例Ａ６において、例Ａ１からＡ５のいずれか１つの主題は、ハイパーバイザが、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てるように構成され、複数の保護済みメモリデータバッファの複数のアドレスは、複数のセキュアなＭＭＩＯ領域内に格納されることを任意選択で含み得る。
【００６１】
例Ａ７において、例Ａ６の主題は、認証済みユーザ機器のみが複数のセキュアなＭＭＩＯ領域にアクセスし得ることを任意選択で含み得る。
【００６２】
例Ａ８において、例Ａ１からＡ７のいずれか１つの主題は、データがビデオデータおよびオーディオデータのうちの少なくとも１つであり、ポリシーは、装置の位置に基づいて、データへのアクセスを自動的に制御するように構築されることを任意選択で含み得る。
【００６３】
例Ａ９において、例Ａ１からＡ８のいずれか１つの主題は、入力／出力メモリ管理ユニットを任意選択で含み、複数の保護済みメモリデータバッファ中に格納されているデータが認証済み配信元に由来し、マルウェアによる複数の変更または複数の反射攻撃を受けなかったことを保証し得る。
【００６４】
例Ａ１０において、例９の主題は、入力／出力メモリ管理ユニットが、認証済み配信元からデータと共に送信される少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することにより、データ整合性を認証するように構成されることを任意選択で含み得る。
【００６５】
例Ａ１１において、例Ａ１からＡ１０のいずれか１つの主題は、複数の未保護カーネル転送バッファが、データを要求したアプリケーションにデータをコピーするべく用いられることを任意選択で含み得る。
【００６６】
例Ａ１２において、例Ａ１からＡ１１のいずれか１つの主題は、データを要求したアプリケーションが、データを復号化するように構成されることを任意選択で含み得る。
【００６７】
例Ａ１３において、例Ａ６からＡ１２のいずれか１つの主題は、複数の保護済みメモリデータバッファがハイパーバイザにより保護されることを任意選択で含み得る。
【００６８】
例Ｃ１は、データトラフィックへの未認証アクセスを軽減するための格納された複数の命令を有する少なくとも１つの機械可読ストレージ媒体であり、複数の命令は、プロセッサにより実行されると、プロセッサに、複数の未保護カーネル転送バッファを割り当てさせ、複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当てさせ、複数の保護済みメモリデータバッファ中に格納されているデータを暗号化させ、複数の未保護カーネル転送バッファに暗号化されたデータをコピーさせる。
【００６９】
例Ｃ２において、例Ｃ１の主題は、複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないように、複数の保護済みメモリデータバッファは、複数の拡張ページテーブルを用いるハイパーバイザにより保護されることを任意選択で含み得る。
【００７０】
例Ｃ３において、例Ｃ１からＣ２のいずれか１つの主題は、複数の認証済みフィルタドライバが複数の保護済みメモリデータバッファにアクセスし得ることを任意選択で含み得る。
【００７１】
例Ｃ４において、例Ｃ２からＣ３のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、複数の保護済みメモリデータバッファへのアクセスを制御させ、複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能でないことを任意選択で含み得る。
【００７２】
例Ｃ５において、例Ｃ１の主題は、データを使用するアプリケーションが初期化されると、複数の未保護カーネル転送バッファおよび複数の保護済みメモリデータバッファが割り当てられることを任意選択で含み得る。
【００７３】
例Ｃ６において、例Ｃ１からＣ５のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てさせ、複数の保護済みメモリデータバッファ用の複数のアドレスは、複数のセキュアなＭＭＩＯ領域内に格納されることを任意選択で含み得る。
【００７４】
例Ｃ７において、例Ｃ６の主題は、認証済みユーザ機器のみが、複数のセキュアなＭＭＩＯ領域にアクセスし得ることを任意選択で含み得る。
【００７５】
例Ｃ８において、例Ｃ１からＣ７のいずれか１つの主題は、データがビデオデータおよびオーディオデータのうちの少なくとも１つであり、ポリシーは、少なくとも１つの機械可読ストレージ媒体の位置に基づいて、データへのアクセスを自動的に制御するように構築されることを任意選択で含み得る。
【００７６】
例Ｃ９において、例Ｃ１からＣ８のいずれか１つの主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、複数の保護済みメモリデータバッファ中に格納されているデータが認証済み配信元に由来し、マルウェアによる複数の変更または複数の反射攻撃を受けなかったことを保証させることを任意選択で含み得る。
【００７７】
例Ｃ１０において、例Ｃ９の主題は、複数の命令が、プロセッサにより実行されると、プロセッサに更に、認証済み配信元からデータと共に送信された少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することにより、データ整合性を認証させることを任意選択で含み得る。
【００７８】
例Ｃ１１において、例Ｃ１からＣ１０のいずれか１つの主題は、複数の未保護カーネル転送バッファが、データを要求したアプリケーションにデータをコピーするべく用いられることを任意選択で含み得る。
【００７９】
例Ｃ１２において、例Ｃ１からＣ１１のいずれか１つの主題は、データを要求したアプリケーションがデータを復号化することを任意選択で含み得る。
【００８０】
例Ｃ１３において、例Ｃ６からＣ１２のいずれか１つの主題は、複数の保護済みメモリデータバッファがハイパーバイザにより保護されることを任意選択で含み得る。
【００８１】
例Ｍ１は、データトラフィックへの未認証アクセスを軽減する方法であって、複数の未保護カーネル転送バッファを割り当てる段階と、複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当てる段階と、複数の保護済みメモリデータバッファ中に格納されているデータを暗号化する段階と、複数の未保護カーネル転送バッファに暗号化されたデータをコピーする段階とを備える。
【００８２】
例Ｍ２において、例Ｍ１の主題は、複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないように、複数の保護済みメモリデータバッファは、複数の拡張ページテーブルを用いるハイパーバイザにより保護されることを任意選択で含み得る。
【００８３】
例Ｍ３において、例Ｍ１からＭ２のいずれか１つの主題は、複数の認証済みフィルタドライバが、複数の保護済みメモリデータバッファにアクセスし得ることを任意選択で含み得る。
【００８４】
例Ｍ４において、例Ｍ２からＭ３のいずれか１つの主題は、ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、複数の保護済みメモリデータバッファへのアクセスを制御する段階を任意選択で備え、複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能ではない。
【００８５】
例Ｍ５において、例Ｍ１の主題は、データを用いるアプリケーションが初期化されると、複数の未保護カーネル転送バッファおよび複数の保護済みメモリデータバッファが割り当てられることを任意選択で含み得る。
【００８６】
例Ｍ６において、例Ｍ１からＭ５のいずれか１つの主題は、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てる段階を任意選択で備え、複数の保護済みメモリデータバッファ用の複数のアドレスは、複数のセキュアなＭＭＩＯ領域内に格納され得る。
【００８７】
例Ｍ７において、例Ｍ６の主題は、認証済みユーザ機器のみが、複数のセキュアなＭＭＩＯ領域にアクセスし得ることを任意選択で含み得る。
【００８８】
例Ｍ８において、例Ｍ１からＭ７のいずれか１つの主題は、データが、ビデオデータおよびオーディオデータのうちの少なくとも１であり、ポリシーは、複数の保護済みメモリデータバッファの位置に基づいて、データへのアクセスを自動的に制御するように構築されることを任意選択で含み得る。
【００８９】
例Ｍ９において、例Ｍ１からＭ８のいずれか１つの主題は、複数の保護済みメモリデータバッファ中に格納されているデータが、認証済み配信元に由来し、マルウェアによる複数の変更または複数の反射攻撃を受けなかったことを保証する段階を任意選択で備え得る。
【００９０】
例Ｍ１０において、例Ｍ９の主題は、認証済み配信元からデータと共に送信された少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することによりデータ整合性を認証する段階を任意選択で備え得る。
【００９１】
例Ｍ１１において、例Ｍ１からＭ１０のいずれか１つの主題は、複数の未保護カーネル転送バッファが、データを要求したアプリケーションにデータをコピーするべく用いられることを任意選択で含み得る。
【００９２】
例Ｍ１２において、例Ｍ１からＭ１１のいずれか１つの主題は、データを要求したアプリケーションがデータを復号化することを任意選択で含み得る。
【００９３】
例Ｍ１３において、例Ｍ６からＭ１２のいずれか１つの主題は、複数の保護済みメモリデータバッファが、ハイパーバイザにより保護されることを任意選択で含み得る。
【００９４】
例Ｅ１は、データトラフィックへの未認証アクセスを軽減する装置であって、複数の未保護カーネル転送バッファを割り当てる手段と、複数の未保護カーネル転送バッファにコピーされる前に、データが格納される、複数の保護済みメモリデータバッファを割り当てる手段と、複数の保護済みメモリデータバッファ中に格納されているデータを暗号化する手段と、複数の未保護カーネル転送バッファに暗号化されたデータをコピーする手段とを備える。
【００９５】
例Ｅ２において、例Ｅ１の主題は、複数の保護済みメモリデータバッファが未認証ソフトウェアにアクセス可能にならないように、複数の保護済みメモリデータバッファは、複数の拡張ページテーブルを用いるハイパーバイザにより保護されることを任意選択で含み得る。
【００９６】
例Ｅ３において、例Ｅ１からＥ２のいずれか１つの主題は、複数の認証済みフィルタドライバが、複数の保護済みメモリデータバッファにアクセスし得ることを任意選択で含み得る。
【００９７】
例Ｅ４において、例Ｅ２からＥ３のいずれか１つの主題は、ハイパーバイザによりプログラミングされた入力／出力メモリ管理ユニットを用いて、複数の保護済みメモリデータバッファへのアクセスを制御する更なる手段を備え、複数の保護済みメモリデータバッファは、未認証ユーザ機器によりアクセス可能でない。
【００９８】
例Ｅ５において、例Ｅ１の主題は、データを使用するアプリケーションが初期化されると、複数の未保護カーネル転送バッファおよび複数の保護済みメモリデータバッファが割り当てられることを任意選択で含み得る。
【００９９】
例Ｅ６において、例Ｅ１からＥ５のいずれか１つの主題は、複数のセキュアなメモリマップド入力／出力（ＭＭＩＯ）領域を割り当てる更なる手段を任意選択で備え、複数の保護済みメモリデータバッファ用の複数のアドレスは、複数のセキュアなＭＭＩＯ領域内に格納され得る。
【０１００】
例Ｅ７において、例Ｅ６の主題は、認証済みユーザ機器のみが、複数のセキュアなＭＭＩＯ領域にアクセスし得ることを任意選択で含み得る。
【０１０１】
例Ｅ８において、例Ｅ１からＥ７のいずれか１つの主題は、データが、ビデオデータおよびオーディオデータのうちの少なくとも１つであり、ポリシーは、装置の位置に基づいて、データへのアクセスを自動的に制御するように構築されることを任意選択で含み得る。
【０１０２】
例Ｅ９において、例Ｅ１からＥ８のいずれか１つの主題は、複数の保護済みメモリデータバッファ中に格納されているデータが認証済み配信元に由来し、マルウェアによる複数の変更および複数の反射攻撃を受けなかったことを保証する更なる手段を任意選択で備え得る。
【０１０３】
例Ｅ１０において、例Ｅ９の主題は、認証済み配信元からデータと共に送信された少なくとも１つの暗号化ハッシュまたは少なくとも１つの署名を確認することによりデータ整合性を認証する更なる手段を任意選択で備え得る。
【０１０４】
例Ｅ１１において、例Ｅ１からＥ１０のいずれか１つの主題は、複数の未保護カーネル転送バッファが、データを要求したアプリケーションにデータをコピーするべく用いられることを任意選択で含み得る。
【０１０５】
例Ｅ１２において、例Ｅ１からＥ１１のいずれか１つの主題は、データを要求したアプリケーションが、データを復号化することを任意選択で含み得る。
【０１０６】
例Ｅ１３において、例Ｅ６からＥ１２のいずれか１つの主題は、複数の保護済みメモリデータバッファが、ハイパーバイザにより保護されることを任意選択で含み得る。
【０１０７】
例Ｘ１は、複数の機械可読命令を含む機械可読ストレージ媒体であり、実行されると、例Ａ１からＡ１３およびＭ１からＭ１３のいずれか１つの方法を実装し、または装置を実現する。
【０１０８】
例Ｙ１は、例示的方法Ｍ１からＭ１３のいずれかを実行する手段を備える装置である。
【０１０９】
例Ｙ２において、例Ｙ１の主題は、プロセッサおよびメモリを有する方法を実行する手段を任意選択で備える。
【０１１０】
例Ｙ３において、例Ｙ２の主題は、実行されると、装置に例示的方法Ｍ１からＭ１３のいずれかを実行させる複数の機械可読命令を有するメモリを任意選択で備え得る。
【０１１１】
例Ｙ４において、例Ｙ１からＹ３のいずれか１つの主題は、モバイルデバイスまたはコンピューティングシステムである装置を任意選択で備え得る。
【図１】
0005924829.tif 000002
【図２】
0005924829.tif 000003
【図３】
0005924829.tif 000004
【図４】
0005924829.tif 000005
【図５】
0005924829.tif 000006
【図６】
0005924829.tif 000007
【図７】
0005924829.tif 000008
【図８】
0005924829.tif 000009