(57)【要約】      （修正有）【課題】キーボード、ポインティングデバイス等を介して入力するデータをマルウエアに曝さないようにする。【解決手段】アプリケーションおよびビデオフレームバッファを、保護されたメモリ領域に割り当て、ビデオフレームバッファのランダムな位置に画像をレンダリングして、ポインティングデバイスからのユーザ入力を、レンダリングされたキーボード画像へ相関付ける方法およびシステムを開示する。キーボード画像は、ユーザ入力に続いてランダムに再配置されてよく、セキュアなユーザ画像の上にレンダリングされてよい。承認画像は、保護されたメモリ領域から、ビデオフレームバッファのランダムな位置にレンダリングされてよく、承認画像に相関付けられていないユーザ入力に応じてランダムに再配置されてよい。【選択図】図１
2010170543.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの少なくとも一部を、アクセス保護されたメモリ領域で開始する段階と、
ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階と、
キーボード画像を、前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
ユーザ入力の座標を、前記レンダリングされたキーボード画像のキーと相関付ける段階と、
前記アクセス保護されたメモリ領域に、前記キーの情報を格納する段階と、
前記ユーザ入力に応じて、前記ビデオフレームバッファの別のランダムな位置に、前記キーボード画像を再度レンダリングする段階と、
前記相関付ける段階および前記格納する段階を、別のユーザ入力に対して繰り返す段階と、
前記アクセス保護されたメモリ領域から、前記キーの前記情報を出力する段階とを備え、
前記割り当てる段階、前記レンダリングする段階、前記相関付ける段階、前記格納する段階、前記再度レンダリングする段階、前記繰り返す段階、および前記出力する段階は、前記アクセス保護されたメモリ領域内で、前記アプリケーションプログラムの少なくとも前記一部の制御下において行われる方法。
【請求項２】
前記ビデオフレームバッファ、前記キーボード画像、並びに前記アプリケーションプログラムおよび１以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持する段階と、
前記保護されたページテーブルへのアクセスを実質的に前記アプリケーションプログラムに制限する段階と、
前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定する段階とをさらに備える請求項１に記載の方法。
【請求項３】
前記アプリケーションプログラムの少なくとも前記一部を開始する段階は、前記アプリケーションプログラムの前記少なくとも一部を前記保護されたメモリ領域で、トラステッドエグゼキューションモジュールの制御下でロード、認証、および開始する段階を有する請求項１に記載の方法。
【請求項４】
通信ネットワークの上で、遠隔コンピュータシステムとインタフェースする段階と、
前記遠隔コンピュータシステムからユーザ情報のプロンプトを検出する段階と、
前記プロンプトに応じて、前記アプリケーションプログラムの前記少なくとも一部を前記アクセス保護されたメモリ領域内で呼び出す段階とをさらに備え、
前記出力する段階は、前記プロンプトに前記キーの前記情報を読み込み、前記読み込みの行われたプロンプトを前記通信ネットワークを介して前記遠隔コンピュータシステムに返送する段階を有する請求項１に記載の方法。
【請求項５】
前記ユーザ入力が前記キーボード画像に相関付けられていない場合、エラーカウントを増分する段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階と、
前記ユーザ入力が前記キーボード画像と相関付けされておらず、前記エラーカウントが前記閾値未満である場合、前記キーボード画像を前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階とをさらに備える請求項１に記載の方法。
【請求項６】
ユーザ画像を前記アクセス保護されたメモリ領域にロードして、復号化する段階をさらに備え、
前記キーボード画像をレンダリングする段階および前記キーボード画像を再度レンダリングする段階は、各々、前記キーボード画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの対応するランダムな位置にレンダリングする段階を有する請求項１に記載の方法。
【請求項７】
前記ユーザ入力が前記キーボード画像に相関付けられていない場合、エラーカウントを増分する段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階と、
前記ユーザ入力が前記キーボード画像と相関付けされておらず、前記エラーカウントが前記閾値未満である場合、前記キーボード画像を、前記ユーザ画像の少なくとも前記一部の上の前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階とをさらに備える請求項６に記載の方法。
【請求項８】
ユーザデータ入力が完了すると、承認画像を、前記ユーザ画像の少なくとも一部の上の前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
後続のユーザ入力の座標を、前記レンダリングされた承認画像と相関付ける段階と、
前記後続のユーザ入力の前記座標と前記承認画像との相関付けに応じて、前記キーの前記情報を出力する段階と、
前記後続のユーザ入力が前記承認画像と相関付けられていない場合、前記エラーカウントを増分する段階と、
前記後続のユーザ入力が前記承認画像と相関付けられておらず、前記エラーカウントが前記閾値未満である場合、前記承認画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階とをさらに備える請求項７に記載の方法。
【請求項９】
前記ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階は、
前記ビデオフレームバッファの一部を前記アクセス保護されたメモリ領域に割り当て、前記アクセス保護されたメモリ領域の外の１以上の処理による前記ビデオフレームバッファの残りの部分へのアクセスを許可する段階を有し、
前記レンダリングする段階および前記再度レンダリングする段階は、前記アクセス保護されたメモリ領域に割り当てられた前記ビデオフレームバッファの前記一部に関して行われる請求項１に記載の方法。
【請求項１０】
プロセッサに関連機能を行わせるコンピュータプログラムロジックを記憶するコンピュータ可読媒体を備えるコンピュータプログラムプロダクトであって、
プロセッサに、アクセス保護されたメモリ領域を構成させるメモリ保護ロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域にビデオフレームバッファを割り当てさせ、前記アクセス保護されたメモリ領域から前記ビデオフレームバッファのランダムな位置にキーボード画像をレンダリングさせ、ユーザ入力に応じて、前記キーボード画像を前記アクセス保護されたメモリ領域から前記ビデオフレームバッファの別のランダムな位置に再度レンダリングさせ、ユーザ入力の座標を前記キーボード画像のキーと相関付けさせ、前記アクセス保護されたメモリ領域に対応するキーの情報を格納させ、前記アクセス保護されたメモリ領域から前記キーの前記情報を出力させるアプリケーションロジックとを備えるコンピュータプログラムプロダクト。
【請求項１１】
前記保護されたメモリ領域で、前記アプリケーションロジックの少なくとも一部をロード、認証、および開始させるトラステッドエグゼキューションロジックをさらに備える請求項１０に記載のコンピュータプログラムプロダクト。
【請求項１２】
前記アプリケーションロジックは、
前記プロセッサに、前記保護されたメモリ領域でユーザ画像をロードおよび復号化させる画像復号化ロジックと、
前記プロセッサに、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングさせるレンダリングロジックとを有する請求項１０に記載のコンピュータプログラムプロダクト。
【請求項１３】
前記レンダリングロジックは、
前記プロセッサに、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングさせるロジックを有する請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１４】
前記アプリケーションロジックは、
前記プロセッサに、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超える場合、前記アプリケーションまたはその一部を中断させる中止ロジックをさらに有する請求項１３に記載のコンピュータプログラムプロダクト。
【請求項１５】
前記プロセッサに、遠隔コンピュータシステムからのユーザ入力のプロンプトを検出させるプロンプト検出ロジックと、
前記プロセッサに、検出されたプロンプトに応じて、前記メモリ保護ロジックを呼び出させ、対応するアクセス保護されたメモリ領域で前記アプリケーションを呼び出させる呼び出しロジックと、
前記プロセッサに、前記プロンプトに前記キーの前記情報を読み込ませ、前記読み込みの行われたプロンプトを前記遠隔コンピュータシステムへ出力させるロジックとをさらに備える請求項１０に記載のコンピュータプログラムプロダクト。
【請求項１６】
前記プロンプト検出ロジックは、
前記プロセッサに、ブラウザロジック実行中に前記プロンプトを検出させるブラウザプラグインロジックを有する請求項１５に記載のコンピュータプログラムプロダクト。
【請求項１７】
前記ブラウザプラグインロジックは、
前記プロセッサに、前記遠隔コンピュータシステムの対応するウェブサイトに対する修正を実質的に伴わずに前記プロンプトを検出させるロジックを含む請求項１６に記載のコンピュータプログラムプロダクト。
【請求項１８】
前記ブラウザプラグインロジックは、
前記プロセッサに、前記プロセッサおよび前記遠隔コンピュータシステムの間のセキュアなソケット層チャネルおよびトランスポート層セキュリティチャネルの１以上を傍受させるロジックを含む請求項１６に記載のコンピュータプログラムプロダクト。
【請求項１９】
前記メモリ保護ロジックは、
前記プロセッサに、前記ビデオフレームバッファ、前記キーボード画像、並びに前記アプリケーションロジックおよび１以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持させるロジックと、
前記プロセッサに、前記保護されたページテーブルへのアクセスを実質的に前記アプリケーションロジックに制限させるロジックと、
前記プロセッサに、前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定させるロジックとを有する請求項１０に記載のコンピュータプログラムプロダクト。
【請求項２０】
システムであって、
プロセッサと、
グラフィックプロセッサと、
前記グラフィックプロセッサがアクセス可能な画定されたビデオフレームバッファを内部に有し、前記プロセッサに連結されたメモリと、
コンピュータプログラムプロダクトとを備え、
前記コンピュータプログラムプロダクトは、プロセッサに関連機能を行わせるコンピュータプログラムロジックを記憶するコンピュータ可読媒体を有し、
プロセッサに、前記メモリ内にアクセス保護されたメモリ領域を構成させるメモリ保護ロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域に前記ビデオフレームバッファを割り当てさせ、前記アクセス保護されたメモリ領域から前記ビデオフレームバッファのランダムな位置にキーボード画像をレンダリングさせ、ユーザ入力に応じて、前記キーボード画像を前記アクセス保護されたメモリ領域から前記ビデオフレームバッファの別のランダムな位置に再度レンダリングさせ、ユーザ入力の座標を前記キーボード画像のキーと相関付けさせ、前記アクセス保護されたメモリ領域に対応するキーの情報を格納させ、前記アクセス保護されたメモリ領域から前記キーの前記情報を出力させるアプリケーションロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域で、前記アプリケーションロジックの少なくとも一部をロード、認証、および開始させるトラステッドエグゼキューションロジックとを有するシステム。
【請求項２１】
前記アプリケーションロジックは、
前記プロセッサに、前記保護されたメモリ領域でユーザ画像をロードおよび復号化させる画像復号化ロジックと、
前記プロセッサに、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングさせるレンダリングロジックとを有する請求項２０に記載のシステム。
【請求項２２】
前記レンダリングロジックは、
前記プロセッサに、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングさせるロジックを有する請求項２１に記載のシステム。
【請求項２３】
前記アプリケーションロジックは、
前記プロセッサに、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超える場合、前記アプリケーションまたはその一部を中断させる中止ロジックをさらに有する請求項２２に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
電子支払取引情報等のユーザ機密情報が機械的なキーボードまたはポインティングデバイスを介してコンピュータシステムに入力されると、その情報は、コンピュータシステムに伝達される際またはコンピュータシステム内で、キーストロークまたは入力座標を記録しうるスパイウェア等のマルウェアに曝されることとなる。
【０００２】
ユーザ機密情報の受信に関連付けられたアプリケーションプログラムもまた、スパイウェア等のマルウェアに曝される危険性がある。
【図面の簡単な説明】
【０００３】
【図１】データ入力画像をレンダリングして、保護されたメモリ領域で、レンダリングされた画像とユーザ入力とを相関付ける例示的な方法の処理フローチャートである。
【０００４】
【図２】図１の方法を呼び出して、ネットワーク接続を介して支払取引を行う例示的な方法の処理フローチャートである。
【０００５】
【図３】ディスプレイのランダムな位置に画像をレンダリングして、ユーザ入力に続いてディスプレイの別のランダムな位置に該画像を再度レンダリングする例示的な方法の処理フローチャートである。
【０００６】
【図４】セキュアなメモリ領域において、ユーザ画像の上に入力表示画像をレンダリングする例示的な方法の処理フローチャートである。
【０００７】
【図５】ディスプレイのランダムな位置に承認画像をレンダリングする例示的な方法の処理フローチャートである。
【０００８】
【図６】レンダリングされた画像に相関付けられていないユーザ入力の数が閾値を超えた場合に処理を中止する例示的な方法の処理フローチャートである。
【０００９】
【図７】データ入力画像をレンダリングして、保護されたメモリ領域でユーザ入力とレンダリングされた画像とを相関付ける別の例示的な方法の処理フローチャートである。
【００１０】
【図８】例示的なコンピュータ環境をグラフィックに示す図である。
【００１１】
【図９】図８の例示的なコンピュータ環境に対応する例示的なロジックおよびデータのブロック図である。
【００１２】
図面では、参照番号の左端の桁は、その参照番号を最初に利用する図面を示している。
【発明を実施するための形態】
【００１３】
図１は、データ入力画像をレンダリングして、保護されたメモリ領域で、レンダリングされた画像とユーザ入力とを相関付ける例示的な方法１００の処理フローチャートである。
【００１４】
１０２で、アクセス保護されたメモリ領域をコンピュータシステム内に構成する。保護されたメモリ領域へのアクセスは１以上の規則に則り制限され、保護されたメモリ領域内のデータおよび命令への、領域外の処理からのアクセスを実質的に不可能とする。保護されたメモリ領域は、システムメモリ、グラフィックメモリ、およびこれらの組み合わせの１以上の部分を含んでよい。保護されたメモリ領域は、仮想マシン管理技術を含む、ソフトウェア、ハードウェア、およびこれらの組み合わせの制御下で構成および施行されてよい。
【００１５】
１０４で、保護されたメモリ領域でアプリケーションを開始する。アプリケーションは、コンピュータシステムのプロセッサに、キーボード画像等のデータ入力画像をレンダリングさせ、保護されたメモリ領域で、後続のユーザ入力と該画像とを相関付けさせる命令を含むことができる。
【００１６】
アプリケーションは、開始前に、ソフトウェア、ハードウェア、およびこれらの組み合わせにより認証されていてよく、トラステッドエグゼキューションテクノロジーを含みうるコード署名ハッシュ技術を含む１以上のハッシュ技術により認証されていてよい。
【００１７】
アプリケーションは、セキュアなメモリ領域へロードされそこで認証されてよい。または、あるいはこれに加えて、アプリケーションまたはその一部が、トラステッド・エグゼキューション・テクノロジー・モジュールに関連するアクセス保護されたファームウェア等の別のセキュアなメモリ領域へロードされてもよい。
【００１８】
アプリケーションを起動する対応オペレーティングシステムがルートキット、ウィルス、ウォーム、またはスパイウェア等により危険に曝されている場合であっても、保護されたメモリ領域およびアプリケーション認証が、単独で、または互いに組み合わせられることで、アプリケーションおよび、そのアプリケーションに関連付けられたコード、制御フロー、およびデータ構造を、スパイウェアを含む悪意あるコードから保護することができる。
【００１９】
１０２における保護されたメモリ領域の構成、および／または、１０４におけるアプリケーションのロード、認証、および開始は、悪意あるコードによる覗き見行為および改ざんからメモリ内のコンポーネントを保護するハイパーバイザベースのセキュリティバイザの制御下で行うことができる。
【００２０】
ハイパーバイザベースのセキュリティバイザは、コードおよび／またはデータを特定して、認証対象としてコードおよび／またはデータと関連付けられた１以上の特徴を測定して、認証されたコードおよび／またはデータを保護するよう、構成されてよい。
【００２１】
ハイパーバイザベースのセキュリティバイザは、オペレーティングシステム上に修正を加えることなく動作可能に構成されうる。
【００２２】
ハイパーバイザベースのセキュリティバイザは、オペレーティングシステムの範囲外（つまり、動作環境に潜伏している可能性のあるマルウェアの範囲外）の保護された領域で動作するＩＭＭ（integrity measurement module）を含みうる。ＩＭＭ保護された領域は、仮想マシンマネージャ（ＶＭＭ）の上で動作する、保護されたハードウェアおよび／または保護された仮想マシン（ＶＭ）を含みうる。ＩＭＭは、コードのセクションのハッシュ（例えば、ＳＨＡ−１ハッシュ）を含む署名ファイルに対するアプリケーションのコードのＩＤおよびインテグリティを検証して、コードセクションおよび対応する再配置テーブルへのエントリポイントを検証するよう構成されてよい。
【００２３】
ハイパーバイザベースのセキュリティバイザは、メモリアクセス保護を遂行するメモリ保護モジュール（ＭＰＭ）を含んでよく、ＩＭＭは、ＩＭＭの検証が成功してアプリケーション計測が完了した後で、ＭＰＭにメモリアクセス保護遂行を促すよう構成されてよい。
【００２４】
ＭＰＭは、１以上の保護されたページテーブル（ＰＰＴ）を作成して、アプリケーションの、保護されたコードおよび対応するデータページを、ＰＰＴにマッピングして、アクティブページテーブル（ＡＰＴ）から対応するマッピングを切り離す（sever）よう構成されてよい。ＶＭＭ等のメモリマネージャは、保護されたメモリの仮想アドレス範囲および保護されたページに対応する物理アドレスのリストを管理するよう構成されてよい。ページフォルトが起こると、ＶＭＭは宛先ページの仮想アドレスを、保護されたページのアドレスのリストと比較するよう構成され、整合するものが見つかると、仮想マシン制御構造（ＶＭＣＳ）のページテーブルベースレジスタ（ＰＴＢＲ）を、ＰＰＴベースアドレスのアドレスに切り替える。そして、ＶＭＭは、ＰＴＢＲをＰＰＴアドレスからＡＰＴベースへ切り替える。ＶＭＭは、ＶＭＭがＡＰＴにページを追加しようとする度に、物理ページアドレスのリストをチェックしてよい。ＶＭＭが保護されたページを見つけると、ＶＭＭは保護されたページをＡＰＴに追加することを拒否して、エラー情報を生成してよい。メモリ保護が構成されている場合、アプリケーションに関連付けられた開始ベクトルは、保護されたアプリケーション領域内で実行される第１のコードセクションであってよい。
【００２５】
ハイパーバイザベースのセキュリティバイザは、我がインテルコーポレーションが開発したネットワーク（ＶＩＳＮ）システムのＶＴインテグリティサービスを含みうる。
【００２６】
１０６で、ビデオフレームバッファが、保護されたメモリ領域に割り当てられる。
【００２７】
アプリケーションは、グラフィックアダプタに対応するビデオフレームバッファを、保護されたメモリ領域へ組み込み（pull into）、ビデオフレームバッファへ直接レンダリングする。１以上のビデオフレームバックバッファおよび／または他のサーフェス（surface）が、さらに、保護されたメモリ領域に割り当てられてよい。保護されたメモリ領域にある間は、ビデオフレームバッファ（バックバッファその他のサーフェスをすべて含む）は、保護されたメモリ領域の外のオペレーティングシステムおよびその他の処理が開始する書き込みおよび／または読み出し処理から実質的に保護されうる。これに対応して、ビデオフレームバッファ（バックバッファその他のサーフェスをすべて含む）は、コンピュータシステム上で動作するマルウェア（マルウェアの優先度に関わらず）の影響を実質的に受けない。
【００２８】
アプリケーションは、主要な、またはビデオフレームフロントバッファおよび１以上のビデオフレームバックバッファに対応するメモリアドレスを特定または決定して、オペレーティングシステム（ＯＳ）に関連付けられたＡＰＴから対応するページを除去して、そのページを、アプリケーションの保護された部分および他の保護されたコードおよびデータページとともにＰＰＴに配置するよう構成されてよい。この結果、スクリーンスクレーピングアプリケーション／マルウェアによる、保護されたページに対する読み書きを防ぐことができる。
【００２９】
アプリケーションは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のＤｉｒｅｃｔＺおよびＯｐｅｎＧＬ、およびＬｉｎｕｘ（登録商標）  ＯＳのＯｐｅｎＧＬが提供するもののような直接グラフィックレンダリングを行うよう構成されうる。ビデオフレームバッファに対応するアドレスを見つけ、ＯＳの元で実行されるアプリケーションに関して存在しうる読み書き制限を取り除くべく、対応するライブラリにアクセスしてもよい。
【００３０】
１０２における保護されたメモリ領域でのアプリケーションの開始には、ビデオフレームバッファに対する読み書きを担う少なくともコードおよびそのコード用のデータセクションの保護が含まれてよい。
【００３１】
１０６における、ビデオフレームバッファの、保護されたメモリ領域への割り当てには、ポインタの位置をビデオフレームバッファに特定すること、またはポインタに対応するＡＰＴ変換が含まれてよい。
【００３２】
ポインタをビデオフレームバッファに配置することには、オペレーティングシステムに関連するアプリケーションプログラミングインタフェース（ＡＰＩ）を用いて、ポインタの仮想アドレスを決定することが含まれてよい。対応する物理アドレスが、オペレーティングシステムまたはＶＭＭが維持するページテーブルから特定されてよい。
【００３３】
ポインタをビデオフレームバッファに配置することには、ポインタの物理アドレスを取得して、ページテーブル等の対応する処理アドレススペース内を見回して、物理アドレスおよび対応する仮想アドレスを見つけることが含まれてよい。ポインタの物理アドレスは、既知の物理アドレス（断てばアドレス０ＸＡ０００）にマッピングされてよい。これには、各ステップに対するハイパーコール（hypercall）が含まれてよい。
【００３４】
仮想アドレスおよび対応する物理アドレスは、１以上のＰＰＴに組み込まれてよい。ビデオフレームバッファのＰＰＴへの組み込みには、対応するメモリページをＡＰＴに存在しないものとしてマーキングすること、および、これらメモリページをＰＰＴへの読み書きとしてマーキングすることが含まれてよい。
【００３５】
１０８で、ユーザ入力デバイスの画像を、ビデオフレームバッファにレンダリングする。画像は、キーボードの画像を含んでよく、これには、数字キーボード、英字キーボード、および英数字キーボードの画像の１以上が含まれてよい。
【００３６】
ユーザ入力デバイスの画像は、１０２のアプリケーションのロードの一貫として、保護されたメモリ領域にロードおよび認証されてよい。
【００３７】
グラフィックアダプタは、離散グラフィックアダプタ、共有システムメモリ（システムＲＡＭ）の場合には、グラフィックアダプタ内の１以上のメモリであるビデオＲＡＭ（ＶＲＡＭ）からレンダリングされてよく、エンベデッドグラフィックアダプタの場合には、アドバンスグラフィックアパーチャ（ＡＧＰ）等のような汎用プロセッサを有する共有システムＲＡＭまたはその組み合わせとして構成されてよい。
【００３８】
グラフィックカードは、通常ローカルＶＲＡＭを利用するよう構成されてよく、且つ、ローカルＶＲＡＭがシステム上の処理については不十分な場合にはシステムＲＡＭを利用するよう構成されてよい。グラフィックカードは、１以上の主要なビデオフレームバッファからレンダリングされてよい。ビデオフレームバックバッファの内容は、主要なバッファへブリット（blit）されてよく、または、アプリケーションが、バックバッファのチェーンを宣言したり、バックバッファを、チェーン内の主要なバッファにフリップしたりしてよい。
【００３９】
セキュアな入出力のためには、リング３アプリケーションが多数のサーフェスを宣言してよいが、これには、キーボードをレンダリングする際のテクスチャが含まれてよい。
【００４０】
グラフィックカードおよび／または対応するディスプレイは、セキュリティ保護を含んでよい。
【００４１】
１１０で、入力表示画像のレンダリングの後に、保護されたメモリ領域にユーザ入力が受信される。ユーザ入力には位置情報が含まれてよく、これはポインティングデバイス、マウスデバイス等のカーソルデバイス、タッチパッド、およびタッチスクリーンディスプレイの１以上により生成されてよい。
【００４２】
１１２で、ユーザ入力が入力表示画像の特徴と相関付けられる。この相関付けには、ユーザ入力の座標を、レンダリングされたキーボード画像のキーに相関付けて、キーボードのユーザ選択キーを特定することが含まれてよい。
【００４３】
１１４で、ユーザ入力に相関付けられる画像特徴の情報を、保護されたメモリ領域に格納する。画像がキーボード画像を含む場合、この格納には、ユーザ選択キーの情報の格納が含まれてよい。
【００４４】
１１６で、格納されているユーザ入力情報を、保護されたメモリ領域から出力して、ビデオフレームバッファを、保護されたメモリから解放してよい。
【００４５】
方法１００は、機密のユーザ入力（電子支払い情報等）を受信すべく呼び出される。図２は、方法１００を呼び出して、ネットワーク接続を介して支払取引を行う例示的な方法２００の処理フローチャートである。
【００４６】
２０２で、ユーザコンピュータシステムと、ユーザコンピュータシステムから遠隔にあってよい別のコンピュータシステムとの間で、ネットワークを介して通信セッションが行される。例えば通信セッションは、ユーザコンピュータシステム上で動作するウェブブラウザを介して、インターネットを介して販売業者ウェブサイトまたは金融カード処理業者ウェブサイトとの間で、行うことができる。
【００４７】
２０４で、遠隔コンピュータシステムから受信したユーザ情報のプロンプトがユーザコンピュータシステムで検出される。
【００４８】
２０４のプロンプト検出には、クレジットカード情報、デビットカード情報、または他の支払い照会情報等の電子支払い情報についてのプロンプトの検出が含まれてよい。
【００４９】
２０４のプロンプト検出には、工業規格のＨＴＭＬ（ハイパーテキスト・マークアップ・ランゲージ）クレジットカードフォーム等の１以上の規格化された支払いプロンプトの検出が含まれてよい。
【００５０】
２０４のプロンプト検出には、クレジットカード番号フィールド、日付フィールド、および通貨単位フィールド等のクレジットカード支払取引に共通したデータ入力フィールドを探して、受信するウェブページを検索することが含まれてよい。
【００５１】
プロンプトは、ウェブブラウザ等のユーザコンピュータシステム上で動作するアプリケーションにより検出可能である。プロンプトを検出するコンピュータ可読命令は、ブラウザアプリケーションと協働するブラウザプラグインとして実装可能であり、販売業者ウェブサイトまたは金融カード処理業者ウェブサイトにあまり修正を加えず、または全く修正を加えず、比較的シームレスに実装可能である。
【００５２】
プロンプトの検出には、ユーザコンピュータシステム上で動作するブラウザと、販売業者ウェブサイトまたは金融カード処理業者ウェブサイトとの間のセキュアなソケット層（ＳＳＬ）チャネルまたはトランスポート層セキュリティ（ＴＬＳ）チャネルの傍受が含まれてよい。
【００５３】
プロンプトは、ユーザコンピュータシステム上で動作するＶＭＭにより検出可能である。
【００５４】
２０６で、ユーザ情報のプロンプトの検出に呼応して、アプリケーションが呼び出される。２０６におけるアプリケーションの呼び出しは、方法１００またはその一部の実行を含んでよく、保護されたメモリ領域におけるユーザからのクレジットカード情報および支払い照会情報の取得を含んでよい。
【００５５】
２０８で、プロンプトには、保護されたメモリ領域からのユーザ入力データが読み込まれ（populated）、要求者へ返される。
【００５６】
図１に戻ると、１０８におけるレンダリングは、比較的ランダムな位置へ、または疑似ランダムな位置へ、入力表示画像をレンダリングすることを含んでよく、ユーザ入力に続いて別のランダムな位置へ画像を再度レンダリングすることを含んでよい。ランダムな配置には、真にランダムな配置、疑似ランダムな配置、および複数の所定の位置のいずれかに対する配置が含まれてよい。ランダムな配置は、スパイウェアまたは他の悪意のあるコードがユーザ入力をレンダリング画像と相関付ける能力を低下させる一助となる。
【００５７】
図３は、ランダムな位置に画像をレンダリングして、ユーザ入力に続いて別のランダムな位置に該画像を再度レンダリングする例示的な方法３００の処理フローチャートである。方法３００は、図１の１０２から１０６の後に行われうる。
【００５８】
３０２で、キーボード画像をビデオフレームバッファのランダムな位置にレンダリングする。キーボード画像は、ビデオフレームバッファのサイズより小さいサイズを有し、ビデオフレームバッファ内の多数のランダムな位置へのレンダリングを可能としてよい。
【００５９】
３０４で、ユーザ入力が受信される（図１の１１０に関して上述した説明を参照）。
【００６０】
３０６で、ユーザ入力の座標を、レンダリングされたキーボード画像に相関付けて、対応するユーザ選択キーの情報を、保護されたメモリへ格納する（図１の１１２から１１４に関して上述した説明を参照）。
【００６１】
３０８でユーザがさらなる入力を提供する場合には、３１０でキーボード画像をビデオフレームバッファの別のランダムな位置に再度レンダリングする。３０４におけるユーザ入力の受信および３０６における相関付けおよび格納は、ユーザデータ入力が完了するまで繰り返されてよい。キーボード画像は、各ユーザ入力毎に別のランダムな位置に再度レンダリングされてよい。例えば、ユーザが多数の桁の列を入力する場合、キーボード画像は、各桁の入力毎に別のランダムな位置に再度レンダリングされてよい。
【００６２】
キーボード画像は、ユーザデータ入力完了キーの画像を含むことで、ユーザが、データ入力の完了を示すことを許可してよい。
【００６３】
３０８でユーザデータ入力が完了すると、ユーザ選択キーの格納情報が、保護されたメモリ領域から出力されてよく、３１２で、ビデオフレームバッファが、保護されたメモリ領域から解放されてよい。
【００６４】
図１を参照すると、１０８の入力表示画像のレンダリングは、ユーザ画像の上への入力表示画像のレンダリングを含む。ユーザ画像は、ユーザにより選択されて、セキュリティの尺度として予めアプリケーションに関連付けられてよい。図４は、ユーザ画像の上に入力表示画像をレンダリングする例示的な方法４００の処理フローチャートである。
【００６５】
４０２で、保護されたメモリ領域を構成する（図１の１０２に関して上述した説明を参照）。
【００６６】
４０４で、保護されたメモリ領域でアプリケーションを開始する（図１の１０４に関して上述した説明を参照）。
【００６７】
４０６で、ユーザ画像またはビットマップを、保護されたメモリ領域にロードする。ユーザ画像を、暗号化されたユーザ画像として記憶デバイス（ハードドライブ等）から取得してよい。暗号化されたユーザ画像は、保護されたメモリ領域へロードされ、復号化される。
【００６８】
復号化は、４０４で開始されたアプリケーションの制御の元に行われてよく、復号化キーは、該アプリケーションのコードおよび／または静的データセクションが認証または確認された時点で、セキュリティバイザモジュールによりアプリケーションに提供されてよい。
【００６９】
４０８で、ビデオフレームフロントバッファおよび第１および第２のビデオフレームバックバッファが、保護されたメモリ領域に割り当てられる。
【００７０】
４１０で、第１のビデオフレームバックバッファのランダムな位置にキーボード画像をレンダリングする（図３の３０２に関して上述した説明を参照）。
【００７１】
４１２で、ユーザ画像を、第２のビデオフレームバックバッファの、第１のビデオフレームバックバッファのキーボード画像のランダムな位置に対応する位置にレンダリングする。ユーザ画像のサイズは、キーボード画像のサイズより大きく、ビデオフレームフロントバッファのサイズより小さい。
【００７２】
４１４で、第１および第２のビデオフレームバックバッファが、ビデオフレームフロントバッファとマージされる。マージは、ユーザ画像の一部をキーボード画像の上に重畳することを含む。マージは、ビットブリット（BitBlit）（bit block transfer）またはブロック画像転送（Blit）（block image transfer）として行われてよく、多数のビットマップがラスタ動作を用いて組み合わせられてよい。
【００７３】
４１６で、ユーザ入力が受信される（図１の１１０に関して上述した説明を参照）。
【００７４】
４１８で、ユーザ入力の座標を、レンダリングされたキーボード画像に相関付けて、保護されたメモリへ格納する（図１の１１２から１１４に関して上述した説明を参照）。
【００７５】
４２０でユーザがさらなる入力を提供する場合には、４２２でキーボード画像およびユーザ画像を、対応する第１および第２のビデオフレームバックバッファの別のランダムな位置に再度レンダリングする。
【００７６】
４１４におけるマージ、４１６におけるユーザ入力の受信、および４１８における相関付けおよび格納は、ユーザデータ入力が完了するまで繰り返されてよい。キーボード画像およびユーザ画像は、各ユーザ入力に続いて別のランダムな位置に再度レンダリングされてよい。
【００７７】
４２０でユーザデータ入力が完了すると、ユーザ選択キーの格納情報が、保護されたメモリ領域から出力されてよく、４２４で、ビデオフレームバッファは、保護されたメモリ領域から解放されてよい。
【００７８】
ユーザデータ入力が完了すると、承認画像がランダムな位置にレンダリングされて、ユーザに、対応する取引を終了させてよい。
【００７９】
図５は、ビデオフレームバッファのランダムな位置に承認画像をレンダリングする例示的な方法５００の処理フローチャートである。方法５００は、図１の１１４の後、図３の３０８の後、および図４の４２０の後等の、ユーザデータ入力の完了の後に実装されてよい。
【００８０】
５０２で、承認画像が、保護されたメモリ領域のビデオフレームバッファへレンダリングされる。承認画像はユーザ画像の上にレンダリングされてよい（図４に関して上述した説明を参照）。
【００８１】
５０４で、ユーザ入力が受信される（図１の１１０に関して上述した説明を参照）。
【００８２】
５０６で、ユーザ入力の座標を、レンダリングされた承認画像に相関付ける。
【００８３】
５０６で、ユーザ入力の座標が承認画像に相関付けられているとき、対応するユーザ入力データ（例えばユーザ選択キーの情報）が、保護されたメモリ領域から出力されてよく、ビデオフレームバッファが、保護されたメモリ領域から解放されてよい（５１０）。
【００８４】
５０６でユーザ入力の座標が承認画像に相関付けられていない場合、１以上のアクションが起こってよい。例えば、承認画像が取引キャンセル画像および編集データ画像の１以上を含むことで、取引のキャンセルまたは取引の編集といった選択肢をユーザに提供してよい。
【００８５】
上述の１以上の方法は、レンダリング画像に相関付けられていないユーザ入力をカウントして、相関付けられていない入力の数が閾値を超えたら取引を中止することを含んでよい。これにより、随所をクリックするアタック（click-everywhere attack）を防ぐことができる。
【００８６】
図６は、相関付けられていないユーザ入力を検出する例示的な方法６００の処理フローチャートである。方法６００は、ここに開示する１以上の他の方法に関して実装されうる。
【００８７】
６０２で、画像をビデオフレームバッファのランダムな位置にレンダリングする。画像は、入力表示画像、承認画像、およびユーザ画像の１以上を含んでよい。
【００８８】
６０４で、ユーザ入力を受信する。
【００８９】
６０６で、ユーザ入力が、レンダリングされた画像に相関しているか否かの判断を行う。
【００９０】
６０６でユーザ入力が、レンダリングされた画像に相関付けられている場合、処理は６０８へ進んで、ユーザ入力を相関付けに応じて処理する。これには、図１の１１２の相関付け、図３の３０６の相関付け、図４の４１８の相関付け、および図５の５０６の相関付けの１以上が含まれてよい。
【００９１】
ユーザ入力が、レンダリングされた画像に相関付けられていない場合、処理は６１０に進み、エラーカウントを増分する。
【００９２】
６１２で、エラーカウントが閾値未満である場合には、６１４で画像を別のランダムな位置にレンダリングして、処理は６０４に戻り、別のユーザ入力を受信する。
【００９３】
６１２でエラーカウントが閾値を超えている場合、６１６で１以上の処理を停止または終了させてよい。これには、対応するネットワーク接続の終了、ビデオフレームバッファのコンテンツおよび／または先に入力されたユーザデータの削除、管理者への警告または報告の送信、およびアプリケーションの終了の１以上が含まれてよい。
【００９４】
図７は、データ入力画像をレンダリングして、保護されたメモリ領域で、該画像に対応するユーザ入力選択を受信する例示的な方法７００の処理フローチャートである。方法７００の１以上の特徴は、ここに開示する１以上の他の方法に関して開示する１以上の特徴と組み合わせて実装することができる。
【００９５】
７０２で、暗号化された、もしくは保護されたユーザ画像がセキュアなメモリ領域にロードされ、そこで復号化される。セキュアなメモリ領域は、１以上の保護されたページテーブルを用いて構成されてよい。ユーザ画像はサイトキーに類似していてよい。
【００９６】
７０４で、キーボード画像が、セキュアな表示スクリーン上のランダムな位置の、ユーザ画像の上部にレンダリングされる。キーボード画像は、ユーザ画像の上部にブリットされてよい。キーボード画像とその元であるユーザとの組み合わせを、ここではセキュアな入力スクリーンと称する。
【００９７】
７０６で、ユーザがキーボード画像をクリックすると、対応するキーストロークが記録され、セキュアな表示スクリーン上の出力領域に表示され、セキュアな入力画像が別の位置にランダムに再配置される。これにより、攻撃者の類推によるアタックからの保護が可能となる。
【００９８】
ユーザは、クレジットカード／銀行カードの番号を、セキュアな入力スクリーンを介して入力することができる。または、あるいはこれに加えて、ユーザは、クレジットカード番号等の情報のセキュアな値にアクセスするべく、個人識別番号（ＰＩＮ）を入力してもよい。秘密の鍵は、アクセス鍵により安全性を保たれてよい（上述の、暗号化されたユーザ画像に関する説明を参照）。アクセスキーは、認証されたアプリケーションに対して開示されるセキュリティバイザの機密プラットフォームキーとしてセキュアに管理されてよい。アプリケーションは、秘密の値を解除する目的にＰＩＮを利用することができる。これにより、ユーザが入力するデータ量の低減が図られ、取引の安全性を高めることができる。
【００９９】
７０８で、ユーザデータ入力が完了すると、承認画像をセキュアな表示スクリーンにレンダリングして、ユーザに対して、取引パラメータの承認を促す。上述したように承認画像はユーザ画像の上にレンダリングされてよい。承認画像とその元であるユーザの組み合わせを、ここではセキュアな承認スクリーンと称する。
【０１００】
セキュアな承認スクリーンは、保護されたメモリ領域の別のサーフェスとして視ることができるが、これは、ユーザが信用および取引情報の入力を完了したときにレンダリングされる。セキュアな承認スクリーンは、販売業者またはカード処理業者のサイトへ送られる販売業者名、取引の金額、日付、および信用証明等の取引情報を含んでよい。セキュアな承認スクリーンは、情報表示のために１以上のラインを含むことができる。
【０１０１】
７１０で、ユーザが承認画像をクリックすると、先に入力されたキーストロークまたは他の対応するユーザ情報が、セキュアなメモリ領域から出力されてよい。キーストロークその他のユーザ情報は、販売業者ネットワークサイトまたはクレジットカード処理業者ネットワークサイトへ出力されてよい。
【０１０２】
キーストロークその他のユーザ情報は、出力の前に暗号化および署名がなされてよい。取引情報は、販売業者またはカード処理業者の公開鍵等により暗号化されてよく、ユーザの秘密鍵で署名されてよい。取引の金額、ユーザの入力したクレジットカード番号、取引カウント、および販売業者情報の１以上に、ハッシュ関数を適用して、セキュアな取引値を生成することもできる。セキュアな取引値を販売業者またはカード処理業者に送ってよい。
【０１０３】
販売業者またはカード処理業者のネットワークサイトは、証明書等で、ユーザコンピュータにおいて認証されてよい。これにより、フィッシング詐欺を防ぐことができる。
【０１０４】
承認画像は、ランダムな位置に配置されてよく、承認画像に相関付けられていないユーザクリックに続いてランダムに再配置されてよい。これにより、攻撃者は、先のクリックを分析して承認画像の位置を判断することができなくなる。取引は、相関付けられていないユーザのクリックの数が閾値を超えたときに中止することとしてもよい。これにより、しらみつぶしに行われる随所をクリックするアタックを防ぐことができる。
【０１０５】
ここに開示する１以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、およびこれらの組み合わせ（離散および集積回路ロジック、特定用途向けＩＣ（ＡＳＩＣ）ロジック、マイクロコントローラ）による実装が可能であり、特定領域向けＩＣパッケージまたは集積回路パッケージの組み合わせの一部としての実装が可能である。ここで利用されるソフトウェアという用語は、コンピュータプログラムロジックを記憶することで、コンピュータシステムに、ここに開示する１以上の特徴および／または特徴の組み合わせを行わせるコンピュータ可読媒体を含むコンピュータプログラムプロダクトのことを意味する。
【０１０６】
図８は、例示的なコンピュータ環境８００をグラフィックに示す図であり、コンピュータ環境８００は、プロセッサ８０２およびグラフィックプロセッサＧＰＵ８０４と称されて記載される１以上のコンピュータ命令処理ユニットを含むことで、コンピュータプログラムロジックを実行する。プロセッサ８０２は、１以上の汎用プロセッサおよび／またはプロセッサコアを含みうる。
【０１０７】
コンピュータシステム８００は、メモリ８０６を含み、このメモリは、１以上のビデオメモリまたはＶＲＡＭ８１２および物理システムメモリまたはランダムアクセスメモリ（ＲＡＭ）８０８を含みえて、これには、アドバンスト・グラフィック・プロセッシング（ＡＧＰ）アパーチャ・メモリ８１０が含まれてよい。ＡＧＰアパーチャメモリ８１０は、ＶＲＡＭ８１２に加えてＧＰＵ８０４により利用されうる。
【０１０８】
メモリ８０６は、コンピュータ・プログラム・プロダクト・ロジックまたは命令を記憶することで、１以上のプロセッサ８０２およびＧＰＵ８０４に、これに応じた１以上の機能を行わせるコンピュータ可読媒体を含むことができる。
【０１０９】
メモリ８０６の物理アドレス、あるいはその部分は、１以上の動作環境８１４およびアプリケーションに関して仮想化されていてよい。仮想−対−物理メモリアドレス間のメモリマッピングは、１以上のアクティブページテーブル（ＡＰＴ）８１８に維持されてよい。
【０１１０】
１以上のアクセス保護されたメモリ領域がメモリ８０６内に構成されてよく、対応するメモリアドレスマッピングが、１以上の保護されたページテーブル（ＰＰＴ）８２０に維持されてよい。
【０１１１】
ＡＰＴ８１８およびＰＰＴ８２０は、アクセス制御マネージャ８２４の制御下でセキュリティバイザ環境８２２内に構成および施行されうる。
【０１１２】
図９は、図８のメモリ８０６に対応する例示的なロジックおよびデータのブロック図である。
【０１１３】
図９では、メモリ８０６は、ＰＰＴ８２０で構成されうる、保護されたメモリ領域９０２を含む。
【０１１４】
保護されたメモリ領域９０２は、図１の１０４に関して上述したように認証されていてよいアプリケーションロジック９０４を含む。
【０１１５】
アプリケーションロジック９０４は、ビデオフレームバッファＩＤおよび保護ロジック９０６を含むことで、プロセッサ８０２に、ビデオフレームバッファに対応する位置またはアドレスマッピング、またはビデオフレームバッファへのポインタの位置またはアドレスマッピングを特定させることで、ビデオフレームバッファのアクセス保護を行ってよい（図１の１０６に関して上述した説明参照）。図９の例においては、ビデオフレームバッファ９０８は、保護されたメモリ領域９０２内に描かれている。ビデオフレームバッファ９０８は、１以上のバックバッファ９１０から９１２、および主要な、またはフロントバッファ９１４を含みうる。
【０１１６】
アプリケーションロジック９０４は、プロセッサ８０２に、暗号化されたユーザ画像を保護されたメモリ領域９０２へと取得させるユーザ画像復号化ロジック９１６を含みうる（図４の４０６に関して上述した説明参照）。図９の例では、復号化されたユーザ画像９１８は、保護されたメモリ領域９０２内に描かれている。
【０１１７】
アプリケーションロジック９０４は、図３に関して上述したように、プロセッサ８０２に、入力表示画像９２２をビデオフレームバッファ９０８のランダムな位置にレンダリングさせるランダムレンダリングロジック９２０を含みうる。ランダムレンダリングロジック９２０は、図４に関して上述したように、プロセッサ８０２に、入力表示画像９２２および復号化されたユーザ画像９１８をそれぞれバックバッファ９１０および９１２のランダムな位置にレンダリングさせて、バックバッファ９１０および９１２からフロントバッファ９１４へ画像をマージまたはブリットさせるロジックを含みうる。
【０１１８】
ランダムレンダリングロジック９２０は、図５の５０２に関して上述したように、プロセッサ８０２に、承認画像９２４をビデオフレームバッファ９０８のランダムな位置にレンダリングさせるロジックを含みうる。ランダムレンダリングロジック９２０は、図４および５に関して上述したように、プロセッサ８０２に、承認画像９２４および復号化されたユーザ画像９１８をそれぞれバックバッファ９１０および９１２のランダムな位置にレンダリングさせて、バックバッファ９１０および９１２からフロントバッファ９１４へ画像をマージまたはブリットさせるロジックを含みうる。
【０１１９】
アプリケーションロジック９０４は、図１の１１２および１１４でそれぞれ上述したように、プロセッサ８０２に、ユーザ入力とレンダリングされた画像とを相関付けさせ、対応するユーザ入力を、保護されたメモリ領域９０２に、ユーザ入力データ９２８として格納させる相関付けロジック９２６を含みうる。
【０１２０】
アプリケーションロジック９０４は、図６に関して上述したように、プロセッサ８０２に、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超えたらアプリケーションロジック９０４の１以上の部分を中止させる中止ロジック９３０を含みうる。
【０１２１】
アプリケーションロジック９０４は、図７に関して上述したように、プロセッサ８０２に、クレジットカード情報等の、暗号化されたユーザ値を、保護されたメモリ領域９０２へと取得させ、ユーザ値を復号化させるロジックを含みうる。図９の例では、復号化されたユーザ値９３２は、保護されたメモリ領域９０２内に描かれている。
【０１２２】
メモリ８０６は、プロセッサ８０２に、ネットワークを介して１以上の遠隔コントローラシステムとインタフェースさせるブラウザロジック９３４を含みうる。ブラウザロジック９３４は、図２の２０４に関して上述したように、プロセッサ８０２に、遠隔コンピュータシステムからのプロンプト（例えば、電子支払い情報に関するプロンプト）を検出させるプロンプト検出ロジック９３６を含みうる。ブラウザロジック９３４は、図２の２０６に関して上述したように、プロセッサ８０２に、保護されたメモリ領域９０２内でアプリケーションロジック９０４を開始させ、プロンプトにユーザ入力データ９２８を読み込むアプリケーション開始ロジック９３８を含みうる。１以上のプロンプト検出ロジック９３６およびアプリケーション開始ロジック９３８、またはそれらの部分が、ＶＭＭ内に実装されてよい。
【０１２３】
ここに開示した方法およびシステムは、バイオメトリックスキャナを含むがこれに限定はされないコンピュータシステムに情報を送るよう構成可能な他のデバイスに関しても実装可能である。
【０１２４】
本明細書では、方法およびシステムを、機能、特徴、および関係を示す機能ブロックにより記載している。これら機能ブロック間の少なくとも幾らかの範囲は、説明の便宜上、自由に定義している場合がある。その機能および関係が適切に実現されるのであれば、別の定義づけも可能である。
【０１２５】
当業者であれば、これら機能ブロックを、適切なソフトウェアおよびその組み合わせを実行する離散コンポーネント、特定用途向けＩＣ、プロセッサにより実装することが可能であることを理解する。
【０１２６】
様々な実施形態を記載してきたが、これらはあくまで例示を目的として記載されており、限定を意図していないことを理解されたい。当業者には、ここに記載した方法およびシステムの精神および範囲を逸脱せずに形態および詳細に関する様々な変更が可能であることが明らかである。従って請求項の範囲は、ここに記載した例示的な実施形態のいずれによっても限定されるべきではない。
【図１】
2010170543.tif 000003
【図２】
2010170543.tif 000004
【図３】
2010170543.tif 000005
【図４】
2010170543.tif 000006
【図５】
2010170543.tif 000007
【図６】
2010170543.tif 000008
【図７】
2010170543.tif 000009
【図８】
2010170543.tif 000010
【図９】
2010170543.tif 000011
【手続補正書】
【提出日】平成22年2月17日(2010.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの少なくとも一部を、アクセス保護されたメモリ領域で開始する段階と、
ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階と、
キーボード画像を、前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
ユーザ入力の座標を、前記レンダリングされたキーボード画像のキーと相関付ける段階と、
前記アクセス保護されたメモリ領域に、前記キーの情報を格納する段階と、
前記ユーザ入力に応じて、前記ビデオフレームバッファの別のランダムな位置に、前記キーボード画像を再度レンダリングする段階と、
前記相関付ける段階および前記格納する段階を、別のユーザ入力に対して繰り返す段階と、
前記アクセス保護されたメモリ領域から、前記キーの前記情報を出力する段階とを備え、
前記割り当てる段階、前記レンダリングする段階、前記相関付ける段階、前記格納する段階、前記再度レンダリングする段階、前記繰り返す段階、および前記出力する段階は、前記アクセス保護されたメモリ領域内で、前記アプリケーションプログラムの少なくとも前記一部の制御下において行われる方法。
【請求項２】
前記ビデオフレームバッファ、前記キーボード画像、並びに前記アプリケーションプログラムおよび１以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持する段階と、
前記保護されたページテーブルへのアクセスを実質的に前記アプリケーションプログラムに制限する段階と、
前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定する段階とをさらに備える請求項１に記載の方法。
【請求項３】
前記アプリケーションプログラムの少なくとも前記一部を開始する段階は、前記アプリケーションプログラムの前記少なくとも一部を前記保護されたメモリ領域で、トラステッドエグゼキューションモジュールの制御下でロード、認証、および開始する段階を有する請求項１に記載の方法。
【請求項４】
通信ネットワークの上で、遠隔コンピュータシステムとインタフェースする段階と、
前記遠隔コンピュータシステムからユーザ情報のプロンプトを検出する段階と、
前記プロンプトに応じて、前記アプリケーションプログラムの前記少なくとも一部を前記アクセス保護されたメモリ領域内で呼び出す段階とをさらに備え、
前記出力する段階は、前記プロンプトに前記キーの前記情報を読み込み、前記読み込みの行われたプロンプトを前記通信ネットワークを介して前記遠隔コンピュータシステムに返送する段階を有する請求項１に記載の方法。
【請求項５】
前記ユーザ入力が前記キーボード画像に相関付けられていない場合、エラーカウントを増分する段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階と、
前記ユーザ入力が前記キーボード画像と相関付けされておらず、前記エラーカウントが前記閾値未満である場合、前記キーボード画像を前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階とをさらに備える請求項１に記載の方法。
【請求項６】
ユーザ画像を前記アクセス保護されたメモリ領域にロードして、復号化する段階をさらに備え、
前記キーボード画像をレンダリングする段階および前記キーボード画像を再度レンダリングする段階は、各々、前記キーボード画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの対応するランダムな位置にレンダリングする段階を有する請求項１に記載の方法。
【請求項７】
前記ユーザ入力が前記キーボード画像に相関付けられていない場合、エラーカウントを増分する段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階と、
前記ユーザ入力が前記キーボード画像と相関付けされておらず、前記エラーカウントが前記閾値未満である場合、前記キーボード画像を、前記ユーザ画像の少なくとも前記一部の上の前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階とをさらに備える請求項６に記載の方法。
【請求項８】
ユーザデータ入力が完了すると、承認画像を、前記ユーザ画像の少なくとも一部の上の前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
後続のユーザ入力の座標を、前記レンダリングされた承認画像と相関付ける段階と、
前記後続のユーザ入力の前記座標と前記承認画像との相関付けに応じて、前記キーの前記情報を出力する段階と、
前記後続のユーザ入力が前記承認画像と相関付けられていない場合、前記エラーカウントを増分する段階と、
前記後続のユーザ入力が前記承認画像と相関付けられておらず、前記エラーカウントが前記閾値未満である場合、前記承認画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階と、
前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階とをさらに備える請求項７に記載の方法。
【請求項９】
前記ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階は、
前記ビデオフレームバッファの一部を前記アクセス保護されたメモリ領域に割り当て、前記アクセス保護されたメモリ領域の外の１以上の処理による前記ビデオフレームバッファの残りの部分へのアクセスを許可する段階を有し、
前記レンダリングする段階および前記再度レンダリングする段階は、前記アクセス保護されたメモリ領域に割り当てられた前記ビデオフレームバッファの前記一部に関して行われる請求項１に記載の方法。
【請求項１０】
プロセッサに関連機能を行わせるコンピュータプログラムであって、
プロセッサに、アクセス保護されたメモリ領域を構成させるメモリ保護ロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域にビデオフレームバッファを割り当てさせ、前記アクセス保護されたメモリ領域から前記ビデオフレームバッファのランダムな位置にキーボード画像をレンダリングさせ、ユーザ入力に応じて、前記キーボード画像を前記アクセス保護されたメモリ領域から前記ビデオフレームバッファの別のランダムな位置に再度レンダリングさせ、ユーザ入力の座標を前記キーボード画像のキーと相関付けさせ、前記アクセス保護されたメモリ領域に対応するキーの情報を格納させ、前記アクセス保護されたメモリ領域から前記キーの前記情報を出力させるアプリケーションロジックとを備えるコンピュータプログラム。
【請求項１１】
前記保護されたメモリ領域で、前記アプリケーションロジックの少なくとも一部をロード、認証、および開始させるトラステッドエグゼキューションロジックをさらに備える請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記アプリケーションロジックは、
前記プロセッサに、前記保護されたメモリ領域でユーザ画像をロードおよび復号化させる画像復号化ロジックと、
前記プロセッサに、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングさせるレンダリングロジックとを有する請求項１０に記載のコンピュータプログラム。
【請求項１３】
前記レンダリングロジックは、
前記プロセッサに、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングさせるロジックを有する請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記アプリケーションロジックは、
前記プロセッサに、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超える場合、前記アプリケーションまたはその一部を中断させる中止ロジックをさらに有する請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記プロセッサに、遠隔コンピュータシステムからのユーザ入力のプロンプトを検出させるプロンプト検出ロジックと、
前記プロセッサに、検出されたプロンプトに応じて、前記メモリ保護ロジックを呼び出させ、対応するアクセス保護されたメモリ領域で前記アプリケーションを呼び出させる呼び出しロジックと、
前記プロセッサに、前記プロンプトに前記キーの前記情報を読み込ませ、前記読み込みの行われたプロンプトを前記遠隔コンピュータシステムへ出力させるロジックとをさらに備える請求項１０に記載のコンピュータプログラム。
【請求項１６】
前記プロンプト検出ロジックは、
前記プロセッサに、ブラウザロジック実行中に前記プロンプトを検出させるブラウザプラグインロジックを有する請求項１５に記載のコンピュータプログラム。
【請求項１７】
前記ブラウザプラグインロジックは、
前記プロセッサに、前記遠隔コンピュータシステムの対応するウェブサイトに対する修正を実質的に伴わずに前記プロンプトを検出させるロジックを含む請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記ブラウザプラグインロジックは、
前記プロセッサに、前記プロセッサおよび前記遠隔コンピュータシステムの間のセキュアなソケット層チャネルおよびトランスポート層セキュリティチャネルの１以上を傍受させるロジックを含む請求項１６に記載のコンピュータプログラム。
【請求項１９】
前記メモリ保護ロジックは、
前記プロセッサに、前記ビデオフレームバッファ、前記キーボード画像、並びに前記アプリケーションロジックおよび１以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持させるロジックと、
前記プロセッサに、前記保護されたページテーブルへのアクセスを実質的に前記アプリケーションロジックに制限させるロジックと、
前記プロセッサに、前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定させるロジックとを有する請求項１０に記載のコンピュータプログラム。
【請求項２０】
システムであって、
プロセッサと、
グラフィックプロセッサと、
前記グラフィックプロセッサがアクセス可能な画定されたビデオフレームバッファを内部に有し、前記プロセッサに連結されたメモリと、
コンピュータプログラムプロダクトとを備え、
前記コンピュータプログラムプロダクトは、プロセッサに関連機能を行わせるコンピュータプログラムロジックを記憶するコンピュータ可読媒体を有し、
プロセッサに、前記メモリ内にアクセス保護されたメモリ領域を構成させるメモリ保護ロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域に前記ビデオフレームバッファを割り当てさせ、前記アクセス保護されたメモリ領域から前記ビデオフレームバッファのランダムな位置にキーボード画像をレンダリングさせ、ユーザ入力に応じて、前記キーボード画像を前記アクセス保護されたメモリ領域から前記ビデオフレームバッファの別のランダムな位置に再度レンダリングさせ、ユーザ入力の座標を前記キーボード画像のキーと相関付けさせ、前記アクセス保護されたメモリ領域に対応するキーの情報を格納させ、前記アクセス保護されたメモリ領域から前記キーの前記情報を出力させるアプリケーションロジックと、
前記プロセッサに、前記アクセス保護されたメモリ領域で、前記アプリケーションロジックの少なくとも一部をロード、認証、および開始させるトラステッドエグゼキューションロジックとを有するシステム。
【請求項２１】
前記アプリケーションロジックは、
前記プロセッサに、前記保護されたメモリ領域でユーザ画像をロードおよび復号化させる画像復号化ロジックと、
前記プロセッサに、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングさせるレンダリングロジックとを有する請求項２０に記載のシステム。
【請求項２２】
前記レンダリングロジックは、
前記プロセッサに、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングさせるロジックを有する請求項２１に記載のシステム。
【請求項２３】
前記アプリケーションロジックは、
前記プロセッサに、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超える場合、前記アプリケーションまたはその一部を中断させる中止ロジックをさらに有する請求項２２に記載のシステム。
【外国語明細書】
2010170543.tif 000012
2010170543.tif 000013
2010170543.tif 000014
2010170543.tif 000015
2010170543.tif 000016
2010170543.tif 000017
2010170543.tif 000018
2010170543.tif 000019
2010170543.tif 000020
2010170543.tif 000021
2010170543.tif 000022
2010170543.tif 000023
2010170543.tif 000024
2010170543.tif 000025
2010170543.tif 000026
2010170543.tif 000027
2010170543.tif 000028
2010170543.tif 000029
2010170543.tif 000030
2010170543.tif 000031
2010170543.tif 000032
2010170543.tif 000033
2010170543.tif 000034
2010170543.tif 000035
2010170543.tif 000036
2010170543.tif 000037
2010170543.tif 000038
2010170543.tif 000039
2010170543.tif 000040