JP4937339B2 - 画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム - Google Patents

画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム Download PDF

Info

Publication number
JP4937339B2
JP4937339B2 JP2009293555A JP2009293555A JP4937339B2 JP 4937339 B2 JP4937339 B2 JP 4937339B2 JP 2009293555 A JP2009293555 A JP 2009293555A JP 2009293555 A JP2009293555 A JP 2009293555A JP 4937339 B2 JP4937339 B2 JP 4937339B2
Authority
JP
Japan
Prior art keywords
image
rendering
user
video frame
frame buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009293555A
Other languages
English (en)
Other versions
JP2010170543A (ja
Inventor
デュワン、プラシャント
ダーハム、デーヴィッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2010170543A publication Critical patent/JP2010170543A/ja
Application granted granted Critical
Publication of JP4937339B2 publication Critical patent/JP4937339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Description

電子支払取引情報等のユーザ機密情報が機械的なキーボードまたはポインティングデバイスを介してコンピュータシステムに入力されると、その情報は、コンピュータシステムに伝達される際またはコンピュータシステム内で、キーストロークまたは入力座標を記録しうるスパイウェア等のマルウェアに曝されることとなる。
ユーザ機密情報の受信に関連付けられたアプリケーションプログラムもまた、スパイウェア等のマルウェアに曝される危険性がある。
データ入力画像をレンダリングして、保護されたメモリ領域で、レンダリングされた画像とユーザ入力とを相関付ける例示的な方法の処理フローチャートである。
図1の方法を呼び出して、ネットワーク接続を介して支払取引を行う例示的な方法の処理フローチャートである。
ディスプレイのランダムな位置に画像をレンダリングして、ユーザ入力に続いてディスプレイの別のランダムな位置に該画像を再度レンダリングする例示的な方法の処理フローチャートである。
セキュアなメモリ領域において、ユーザ画像の上に入力表示画像をレンダリングする例示的な方法の処理フローチャートである。
ディスプレイのランダムな位置に承認画像をレンダリングする例示的な方法の処理フローチャートである。
レンダリングされた画像に相関付けられていないユーザ入力の数が閾値を超えた場合に処理を中止する例示的な方法の処理フローチャートである。
データ入力画像をレンダリングして、保護されたメモリ領域でユーザ入力とレンダリングされた画像とを相関付ける別の例示的な方法の処理フローチャートである。
例示的なコンピュータ環境をグラフィックに示す図である。
図8の例示的なコンピュータ環境に対応する例示的なロジックおよびデータのブロック図である。
図面では、参照番号の左端の桁は、その参照番号を最初に利用する図面を示している。
図1は、データ入力画像をレンダリングして、保護されたメモリ領域で、レンダリングされた画像とユーザ入力とを相関付ける例示的な方法100の処理フローチャートである。
102で、アクセス保護されたメモリ領域をコンピュータシステム内に構成する。保護されたメモリ領域へのアクセスは1以上の規則に則り制限され、保護されたメモリ領域内のデータおよび命令への、領域外の処理からのアクセスを実質的に不可能とする。保護されたメモリ領域は、システムメモリ、グラフィックメモリ、およびこれらの組み合わせの1以上の部分を含んでよい。保護されたメモリ領域は、仮想マシン管理技術を含む、ソフトウェア、ハードウェア、およびこれらの組み合わせの制御下で構成および施行されてよい。
104で、保護されたメモリ領域でアプリケーションを開始する。アプリケーションは、コンピュータシステムのプロセッサに、キーボード画像等のデータ入力画像をレンダリングさせ、保護されたメモリ領域で、後続のユーザ入力と該画像とを相関付けさせる命令を含むことができる。
アプリケーションは、開始前に、ソフトウェア、ハードウェア、およびこれらの組み合わせにより認証されていてよく、トラステッドエグゼキューションテクノロジーを含みうるコード署名ハッシュ技術を含む1以上のハッシュ技術により認証されていてよい。
アプリケーションは、セキュアなメモリ領域へロードされそこで認証されてよい。または、あるいはこれに加えて、アプリケーションまたはその一部が、トラステッド・エグゼキューション・テクノロジー・モジュールに関連するアクセス保護されたファームウェア等の別のセキュアなメモリ領域へロードされてもよい。
アプリケーションを起動する対応オペレーティングシステムがルートキット、ウィルス、ウォーム、またはスパイウェア等により危険に曝されている場合であっても、保護されたメモリ領域およびアプリケーション認証が、単独で、または互いに組み合わせられることで、アプリケーションおよび、そのアプリケーションに関連付けられたコード、制御フロー、およびデータ構造を、スパイウェアを含む悪意あるコードから保護することができる。
102における保護されたメモリ領域の構成、および/または、104におけるアプリケーションのロード、認証、および開始は、悪意あるコードによる覗き見行為および改ざんからメモリ内のコンポーネントを保護するハイパーバイザベースのセキュリティバイザの制御下で行うことができる。
ハイパーバイザベースのセキュリティバイザは、コードおよび/またはデータを特定して、認証対象としてコードおよび/またはデータと関連付けられた1以上の特徴を測定して、認証されたコードおよび/またはデータを保護するよう、構成されてよい。
ハイパーバイザベースのセキュリティバイザは、オペレーティングシステム上に修正を加えることなく動作可能に構成されうる。
ハイパーバイザベースのセキュリティバイザは、オペレーティングシステムの範囲外(つまり、動作環境に潜伏している可能性のあるマルウェアの範囲外)の保護された領域で動作するIMM(integrity measurement module)を含みうる。IMM保護された領域は、仮想マシンマネージャ(VMM)の上で動作する、保護されたハードウェアおよび/または保護された仮想マシン(VM)を含みうる。IMMは、コードのセクションのハッシュ(例えば、SHA−1ハッシュ)を含む署名ファイルに対するアプリケーションのコードのIDおよびインテグリティを検証して、コードセクションおよび対応する再配置テーブルへのエントリポイントを検証するよう構成されてよい。
ハイパーバイザベースのセキュリティバイザは、メモリアクセス保護を遂行するメモリ保護モジュール(MPM)を含んでよく、IMMは、IMMの検証が成功してアプリケーション計測が完了した後で、MPMにメモリアクセス保護遂行を促すよう構成されてよい。
MPMは、1以上の保護されたページテーブル(PPT)を作成して、アプリケーションの、保護されたコードおよび対応するデータページを、PPTにマッピングして、アクティブページテーブル(APT)から対応するマッピングを切り離す(sever)よう構成されてよい。VMM等のメモリマネージャは、保護されたメモリの仮想アドレス範囲および保護されたページに対応する物理アドレスのリストを管理するよう構成されてよい。ページフォルトが起こると、VMMは宛先ページの仮想アドレスを、保護されたページのアドレスのリストと比較するよう構成され、整合するものが見つかると、仮想マシン制御構造(VMCS)のページテーブルベースレジスタ(PTBR)を、PPTベースアドレスのアドレスに切り替える。そして、VMMは、PTBRをPPTアドレスからAPTベースへ切り替える。VMMは、VMMがAPTにページを追加しようとする度に、物理ページアドレスのリストをチェックしてよい。VMMが保護されたページを見つけると、VMMは保護されたページをAPTに追加することを拒否して、エラー情報を生成してよい。メモリ保護が構成されている場合、アプリケーションに関連付けられた開始ベクトルは、保護されたアプリケーション領域内で実行される第1のコードセクションであってよい。
ハイパーバイザベースのセキュリティバイザは、我がインテルコーポレーションが開発したネットワーク(VISN)システムのVTインテグリティサービスを含みうる。
106で、ビデオフレームバッファが、保護されたメモリ領域に割り当てられる。
アプリケーションは、グラフィックアダプタに対応するビデオフレームバッファを、保護されたメモリ領域へ組み込み(pull into)、ビデオフレームバッファへ直接レンダリングする。1以上のビデオフレームバックバッファおよび/または他のサーフェス(surface)が、さらに、保護されたメモリ領域に割り当てられてよい。保護されたメモリ領域にある間は、ビデオフレームバッファ(バックバッファその他のサーフェスをすべて含む)は、保護されたメモリ領域の外のオペレーティングシステムおよびその他の処理が開始する書き込みおよび/または読み出し処理から実質的に保護されうる。これに対応して、ビデオフレームバッファ(バックバッファその他のサーフェスをすべて含む)は、コンピュータシステム上で動作するマルウェア(マルウェアの優先度に関わらず)の影響を実質的に受けない。
アプリケーションは、主要な、またはビデオフレームフロントバッファおよび1以上のビデオフレームバックバッファに対応するメモリアドレスを特定または決定して、オペレーティングシステム(OS)に関連付けられたAPTから対応するページを除去して、そのページを、アプリケーションの保護された部分および他の保護されたコードおよびデータページとともにPPTに配置するよう構成されてよい。この結果、スクリーンスクレーピングアプリケーション/マルウェアによる、保護されたページに対する読み書きを防ぐことができる。
アプリケーションは、Microsoft Windows(登録商標)のDirectZおよびOpenGL、およびLinux(登録商標) OSのOpenGLが提供するもののような直接グラフィックレンダリングを行うよう構成されうる。ビデオフレームバッファに対応するアドレスを見つけ、OSの元で実行されるアプリケーションに関して存在しうる読み書き制限を取り除くべく、対応するライブラリにアクセスしてもよい。
102における保護されたメモリ領域でのアプリケーションの開始には、ビデオフレームバッファに対する読み書きを担う少なくともコードおよびそのコード用のデータセクションの保護が含まれてよい。
106における、ビデオフレームバッファの、保護されたメモリ領域への割り当てには、ポインタの位置をビデオフレームバッファに特定すること、またはポインタに対応するAPT変換が含まれてよい。
ポインタをビデオフレームバッファに配置することには、オペレーティングシステムに関連するアプリケーションプログラミングインタフェース(API)を用いて、ポインタの仮想アドレスを決定することが含まれてよい。対応する物理アドレスが、オペレーティングシステムまたはVMMが維持するページテーブルから特定されてよい。
ポインタをビデオフレームバッファに配置することには、ポインタの物理アドレスを取得して、ページテーブル等の対応する処理アドレススペース内を見回して、物理アドレスおよび対応する仮想アドレスを見つけることが含まれてよい。ポインタの物理アドレスは、既知の物理アドレス(断てばアドレス0XA000)にマッピングされてよい。これには、各ステップに対するハイパーコール(hypercall)が含まれてよい。
仮想アドレスおよび対応する物理アドレスは、1以上のPPTに組み込まれてよい。ビデオフレームバッファのPPTへの組み込みには、対応するメモリページをAPTに存在しないものとしてマーキングすること、および、これらメモリページをPPTへの読み書きとしてマーキングすることが含まれてよい。
108で、ユーザ入力デバイスの画像を、ビデオフレームバッファにレンダリングする。画像は、キーボードの画像を含んでよく、これには、数字キーボード、英字キーボード、および英数字キーボードの画像の1以上が含まれてよい。
ユーザ入力デバイスの画像は、102のアプリケーションのロードの一貫として、保護されたメモリ領域にロードおよび認証されてよい。
グラフィックアダプタは、離散グラフィックアダプタ、共有システムメモリ(システムRAM)の場合には、グラフィックアダプタ内の1以上のメモリであるビデオRAM(VRAM)からレンダリングされてよく、エンベデッドグラフィックアダプタの場合には、アドバンスグラフィックアパーチャ(AGP)等のような汎用プロセッサを有する共有システムRAMまたはその組み合わせとして構成されてよい。
グラフィックカードは、通常ローカルVRAMを利用するよう構成されてよく、且つ、ローカルVRAMがシステム上の処理については不十分な場合にはシステムRAMを利用するよう構成されてよい。グラフィックカードは、1以上の主要なビデオフレームバッファからレンダリングされてよい。ビデオフレームバックバッファの内容は、主要なバッファへブリット(blit)されてよく、または、アプリケーションが、バックバッファのチェーンを宣言したり、バックバッファを、チェーン内の主要なバッファにフリップしたりしてよい。
セキュアな入出力のためには、リング3アプリケーションが多数のサーフェスを宣言してよいが、これには、キーボードをレンダリングする際のテクスチャが含まれてよい。
グラフィックカードおよび/または対応するディスプレイは、セキュリティ保護を含んでよい。
110で、入力表示画像のレンダリングの後に、保護されたメモリ領域にユーザ入力が受信される。ユーザ入力には位置情報が含まれてよく、これはポインティングデバイス、マウスデバイス等のカーソルデバイス、タッチパッド、およびタッチスクリーンディスプレイの1以上により生成されてよい。
112で、ユーザ入力が入力表示画像の特徴と相関付けられる。この相関付けには、ユーザ入力の座標を、レンダリングされたキーボード画像のキーに相関付けて、キーボードのユーザ選択キーを特定することが含まれてよい。
114で、ユーザ入力に相関付けられる画像特徴の情報を、保護されたメモリ領域に格納する。画像がキーボード画像を含む場合、この格納には、ユーザ選択キーの情報の格納が含まれてよい。
116で、格納されているユーザ入力情報を、保護されたメモリ領域から出力して、ビデオフレームバッファを、保護されたメモリから解放してよい。
方法100は、機密のユーザ入力(電子支払い情報等)を受信すべく呼び出される。図2は、方法100を呼び出して、ネットワーク接続を介して支払取引を行う例示的な方法200の処理フローチャートである。
202で、ユーザコンピュータシステムと、ユーザコンピュータシステムから遠隔にあってよい別のコンピュータシステムとの間で、ネットワークを介して通信セッションが行される。例えば通信セッションは、ユーザコンピュータシステム上で動作するウェブブラウザを介して、インターネットを介して販売業者ウェブサイトまたは金融カード処理業者ウェブサイトとの間で、行うことができる。
204で、遠隔コンピュータシステムから受信したユーザ情報のプロンプトがユーザコンピュータシステムで検出される。
204のプロンプト検出には、クレジットカード情報、デビットカード情報、または他の支払い照会情報等の電子支払い情報についてのプロンプトの検出が含まれてよい。
204のプロンプト検出には、工業規格のHTML(ハイパーテキスト・マークアップ・ランゲージ)クレジットカードフォーム等の1以上の規格化された支払いプロンプトの検出が含まれてよい。
204のプロンプト検出には、クレジットカード番号フィールド、日付フィールド、および通貨単位フィールド等のクレジットカード支払取引に共通したデータ入力フィールドを探して、受信するウェブページを検索することが含まれてよい。
プロンプトは、ウェブブラウザ等のユーザコンピュータシステム上で動作するアプリケーションにより検出可能である。プロンプトを検出するコンピュータ可読命令は、ブラウザアプリケーションと協働するブラウザプラグインとして実装可能であり、販売業者ウェブサイトまたは金融カード処理業者ウェブサイトにあまり修正を加えず、または全く修正を加えず、比較的シームレスに実装可能である。
プロンプトの検出には、ユーザコンピュータシステム上で動作するブラウザと、販売業者ウェブサイトまたは金融カード処理業者ウェブサイトとの間のセキュアなソケット層(SSL)チャネルまたはトランスポート層セキュリティ(TLS)チャネルの傍受が含まれてよい。
プロンプトは、ユーザコンピュータシステム上で動作するVMMにより検出可能である。
206で、ユーザ情報のプロンプトの検出に呼応して、アプリケーションが呼び出される。206におけるアプリケーションの呼び出しは、方法100またはその一部の実行を含んでよく、保護されたメモリ領域におけるユーザからのクレジットカード情報および支払い照会情報の取得を含んでよい。
208で、プロンプトには、保護されたメモリ領域からのユーザ入力データが読み込まれ(populated)、要求者へ返される。
図1に戻ると、108におけるレンダリングは、比較的ランダムな位置へ、または疑似ランダムな位置へ、入力表示画像をレンダリングすることを含んでよく、ユーザ入力に続いて別のランダムな位置へ画像を再度レンダリングすることを含んでよい。ランダムな配置には、真にランダムな配置、疑似ランダムな配置、および複数の所定の位置のいずれかに対する配置が含まれてよい。ランダムな配置は、スパイウェアまたは他の悪意のあるコードがユーザ入力をレンダリング画像と相関付ける能力を低下させる一助となる。
図3は、ランダムな位置に画像をレンダリングして、ユーザ入力に続いて別のランダムな位置に該画像を再度レンダリングする例示的な方法300の処理フローチャートである。方法300は、図1の102から106の後に行われうる。
302で、キーボード画像をビデオフレームバッファのランダムな位置にレンダリングする。キーボード画像は、ビデオフレームバッファのサイズより小さいサイズを有し、ビデオフレームバッファ内の多数のランダムな位置へのレンダリングを可能としてよい。
304で、ユーザ入力が受信される(図1の110に関して上述した説明を参照)。
306で、ユーザ入力の座標を、レンダリングされたキーボード画像に相関付けて、対応するユーザ選択キーの情報を、保護されたメモリへ格納する(図1の112から114に関して上述した説明を参照)。
308でユーザがさらなる入力を提供する場合には、310でキーボード画像をビデオフレームバッファの別のランダムな位置に再度レンダリングする。304におけるユーザ入力の受信および306における相関付けおよび格納は、ユーザデータ入力が完了するまで繰り返されてよい。キーボード画像は、各ユーザ入力毎に別のランダムな位置に再度レンダリングされてよい。例えば、ユーザが多数の桁の列を入力する場合、キーボード画像は、各桁の入力毎に別のランダムな位置に再度レンダリングされてよい。
キーボード画像は、ユーザデータ入力完了キーの画像を含むことで、ユーザが、データ入力の完了を示すことを許可してよい。
308でユーザデータ入力が完了すると、ユーザ選択キーの格納情報が、保護されたメモリ領域から出力されてよく、312で、ビデオフレームバッファが、保護されたメモリ領域から解放されてよい。
図1を参照すると、108の入力表示画像のレンダリングは、ユーザ画像の上への入力表示画像のレンダリングを含む。ユーザ画像は、ユーザにより選択されて、セキュリティの尺度として予めアプリケーションに関連付けられてよい。図4は、ユーザ画像の上に入力表示画像をレンダリングする例示的な方法400の処理フローチャートである。
402で、保護されたメモリ領域を構成する(図1の102に関して上述した説明を参照)。
404で、保護されたメモリ領域でアプリケーションを開始する(図1の104に関して上述した説明を参照)。
406で、ユーザ画像またはビットマップを、保護されたメモリ領域にロードする。ユーザ画像を、暗号化されたユーザ画像として記憶デバイス(ハードドライブ等)から取得してよい。暗号化されたユーザ画像は、保護されたメモリ領域へロードされ、復号化される。
復号化は、404で開始されたアプリケーションの制御の元に行われてよく、復号化キーは、該アプリケーションのコードおよび/または静的データセクションが認証または確認された時点で、セキュリティバイザモジュールによりアプリケーションに提供されてよい。
408で、ビデオフレームフロントバッファおよび第1および第2のビデオフレームバックバッファが、保護されたメモリ領域に割り当てられる。
410で、第1のビデオフレームバックバッファのランダムな位置にキーボード画像をレンダリングする(図3の302に関して上述した説明を参照)。
412で、ユーザ画像を、第2のビデオフレームバックバッファの、第1のビデオフレームバックバッファのキーボード画像のランダムな位置に対応する位置にレンダリングする。ユーザ画像のサイズは、キーボード画像のサイズより大きく、ビデオフレームフロントバッファのサイズより小さい。
414で、第1および第2のビデオフレームバックバッファが、ビデオフレームフロントバッファとマージされる。マージは、ユーザ画像の一部をキーボード画像の上に重畳することを含む。マージは、ビットブリット(BitBlit)(bit block transfer)またはブロック画像転送(Blit)(block image transfer)として行われてよく、多数のビットマップがラスタ動作を用いて組み合わせられてよい。
416で、ユーザ入力が受信される(図1の110に関して上述した説明を参照)。
418で、ユーザ入力の座標を、レンダリングされたキーボード画像に相関付けて、保護されたメモリへ格納する(図1の112から114に関して上述した説明を参照)。
420でユーザがさらなる入力を提供する場合には、422でキーボード画像およびユーザ画像を、対応する第1および第2のビデオフレームバックバッファの別のランダムな位置に再度レンダリングする。
414におけるマージ、416におけるユーザ入力の受信、および418における相関付けおよび格納は、ユーザデータ入力が完了するまで繰り返されてよい。キーボード画像およびユーザ画像は、各ユーザ入力に続いて別のランダムな位置に再度レンダリングされてよい。
420でユーザデータ入力が完了すると、ユーザ選択キーの格納情報が、保護されたメモリ領域から出力されてよく、424で、ビデオフレームバッファは、保護されたメモリ領域から解放されてよい。
ユーザデータ入力が完了すると、承認画像がランダムな位置にレンダリングされて、ユーザに、対応する取引を終了させてよい。
図5は、ビデオフレームバッファのランダムな位置に承認画像をレンダリングする例示的な方法500の処理フローチャートである。方法500は、図1の114の後、図3の308の後、および図4の420の後等の、ユーザデータ入力の完了の後に実装されてよい。
502で、承認画像が、保護されたメモリ領域のビデオフレームバッファへレンダリングされる。承認画像はユーザ画像の上にレンダリングされてよい(図4に関して上述した説明を参照)。
504で、ユーザ入力が受信される(図1の110に関して上述した説明を参照)。
506で、ユーザ入力の座標を、レンダリングされた承認画像に相関付ける。
506で、ユーザ入力の座標が承認画像に相関付けられているとき、対応するユーザ入力データ(例えばユーザ選択キーの情報)が、保護されたメモリ領域から出力されてよく、ビデオフレームバッファが、保護されたメモリ領域から解放されてよい(510)。
506でユーザ入力の座標が承認画像に相関付けられていない場合、1以上のアクションが起こってよい。例えば、承認画像が取引キャンセル画像および編集データ画像の1以上を含むことで、取引のキャンセルまたは取引の編集といった選択肢をユーザに提供してよい。
上述の1以上の方法は、レンダリング画像に相関付けられていないユーザ入力をカウントして、相関付けられていない入力の数が閾値を超えたら取引を中止することを含んでよい。これにより、随所をクリックするアタック(click-everywhere attack)を防ぐことができる。
図6は、相関付けられていないユーザ入力を検出する例示的な方法600の処理フローチャートである。方法600は、ここに開示する1以上の他の方法に関して実装されうる。
602で、画像をビデオフレームバッファのランダムな位置にレンダリングする。画像は、入力表示画像、承認画像、およびユーザ画像の1以上を含んでよい。
604で、ユーザ入力を受信する。
606で、ユーザ入力が、レンダリングされた画像に相関しているか否かの判断を行う。
606でユーザ入力が、レンダリングされた画像に相関付けられている場合、処理は608へ進んで、ユーザ入力を相関付けに応じて処理する。これには、図1の112の相関付け、図3の306の相関付け、図4の418の相関付け、および図5の506の相関付けの1以上が含まれてよい。
ユーザ入力が、レンダリングされた画像に相関付けられていない場合、処理は610に進み、エラーカウントを増分する。
612で、エラーカウントが閾値未満である場合には、614で画像を別のランダムな位置にレンダリングして、処理は604に戻り、別のユーザ入力を受信する。
612でエラーカウントが閾値を超えている場合、616で1以上の処理を停止または終了させてよい。これには、対応するネットワーク接続の終了、ビデオフレームバッファのコンテンツおよび/または先に入力されたユーザデータの削除、管理者への警告または報告の送信、およびアプリケーションの終了の1以上が含まれてよい。
図7は、データ入力画像をレンダリングして、保護されたメモリ領域で、該画像に対応するユーザ入力選択を受信する例示的な方法700の処理フローチャートである。方法700の1以上の特徴は、ここに開示する1以上の他の方法に関して開示する1以上の特徴と組み合わせて実装することができる。
702で、暗号化された、もしくは保護されたユーザ画像がセキュアなメモリ領域にロードされ、そこで復号化される。セキュアなメモリ領域は、1以上の保護されたページテーブルを用いて構成されてよい。ユーザ画像はサイトキーに類似していてよい。
704で、キーボード画像が、セキュアな表示スクリーン上のランダムな位置の、ユーザ画像の上部にレンダリングされる。キーボード画像は、ユーザ画像の上部にブリットされてよい。キーボード画像とその元であるユーザとの組み合わせを、ここではセキュアな入力スクリーンと称する。
706で、ユーザがキーボード画像をクリックすると、対応するキーストロークが記録され、セキュアな表示スクリーン上の出力領域に表示され、セキュアな入力画像が別の位置にランダムに再配置される。これにより、攻撃者の類推によるアタックからの保護が可能となる。
ユーザは、クレジットカード/銀行カードの番号を、セキュアな入力スクリーンを介して入力することができる。または、あるいはこれに加えて、ユーザは、クレジットカード番号等の情報のセキュアな値にアクセスするべく、個人識別番号(PIN)を入力してもよい。秘密の鍵は、アクセス鍵により安全性を保たれてよい(上述の、暗号化されたユーザ画像に関する説明を参照)。アクセスキーは、認証されたアプリケーションに対して開示されるセキュリティバイザの機密プラットフォームキーとしてセキュアに管理されてよい。アプリケーションは、秘密の値を解除する目的にPINを利用することができる。これにより、ユーザが入力するデータ量の低減が図られ、取引の安全性を高めることができる。
708で、ユーザデータ入力が完了すると、承認画像をセキュアな表示スクリーンにレンダリングして、ユーザに対して、取引パラメータの承認を促す。上述したように承認画像はユーザ画像の上にレンダリングされてよい。承認画像とその元であるユーザの組み合わせを、ここではセキュアな承認スクリーンと称する。
セキュアな承認スクリーンは、保護されたメモリ領域の別のサーフェスとして視ることができるが、これは、ユーザが信用および取引情報の入力を完了したときにレンダリングされる。セキュアな承認スクリーンは、販売業者またはカード処理業者のサイトへ送られる販売業者名、取引の金額、日付、および信用証明等の取引情報を含んでよい。セキュアな承認スクリーンは、情報表示のために1以上のラインを含むことができる。
710で、ユーザが承認画像をクリックすると、先に入力されたキーストロークまたは他の対応するユーザ情報が、セキュアなメモリ領域から出力されてよい。キーストロークその他のユーザ情報は、販売業者ネットワークサイトまたはクレジットカード処理業者ネットワークサイトへ出力されてよい。
キーストロークその他のユーザ情報は、出力の前に暗号化および署名がなされてよい。取引情報は、販売業者またはカード処理業者の公開鍵等により暗号化されてよく、ユーザの秘密鍵で署名されてよい。取引の金額、ユーザの入力したクレジットカード番号、取引カウント、および販売業者情報の1以上に、ハッシュ関数を適用して、セキュアな取引値を生成することもできる。セキュアな取引値を販売業者またはカード処理業者に送ってよい。
販売業者またはカード処理業者のネットワークサイトは、証明書等で、ユーザコンピュータにおいて認証されてよい。これにより、フィッシング詐欺を防ぐことができる。
承認画像は、ランダムな位置に配置されてよく、承認画像に相関付けられていないユーザクリックに続いてランダムに再配置されてよい。これにより、攻撃者は、先のクリックを分析して承認画像の位置を判断することができなくなる。取引は、相関付けられていないユーザのクリックの数が閾値を超えたときに中止することとしてもよい。これにより、しらみつぶしに行われる随所をクリックするアタックを防ぐことができる。
ここに開示する1以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、およびこれらの組み合わせ(離散および集積回路ロジック、特定用途向けIC(ASIC)ロジック、マイクロコントローラ)による実装が可能であり、特定領域向けICパッケージまたは集積回路パッケージの組み合わせの一部としての実装が可能である。ここで利用されるソフトウェアという用語は、コンピュータプログラムロジックを記憶することで、コンピュータシステムに、ここに開示する1以上の特徴および/または特徴の組み合わせを行わせるコンピュータ可読媒体を含むコンピュータプログラムプロダクトのことを意味する。
図8は、例示的なコンピュータ環境800をグラフィックに示す図であり、コンピュータ環境800は、プロセッサ802およびグラフィックプロセッサGPU804と称されて記載される1以上のコンピュータ命令処理ユニットを含むことで、コンピュータプログラムロジックを実行する。プロセッサ802は、1以上の汎用プロセッサおよび/またはプロセッサコアを含みうる。
コンピュータシステム800は、メモリ806を含み、このメモリは、1以上のビデオメモリまたはVRAM812および物理システムメモリまたはランダムアクセスメモリ(RAM)808を含みえて、これには、アドバンスト・グラフィック・プロセッシング(AGP)アパーチャ・メモリ810が含まれてよい。AGPアパーチャメモリ810は、VRAM812に加えてGPU804により利用されうる。
メモリ806は、コンピュータ・プログラム・プロダクト・ロジックまたは命令を記憶することで、1以上のプロセッサ802およびGPU804に、これに応じた1以上の機能を行わせるコンピュータ可読媒体を含むことができる。
メモリ806の物理アドレス、あるいはその部分は、1以上の動作環境814およびアプリケーションに関して仮想化されていてよい。仮想−対−物理メモリアドレス間のメモリマッピングは、1以上のアクティブページテーブル(APT)818に維持されてよい。
1以上のアクセス保護されたメモリ領域がメモリ806内に構成されてよく、対応するメモリアドレスマッピングが、1以上の保護されたページテーブル(PPT)820に維持されてよい。
APT818およびPPT820は、アクセス制御マネージャ824の制御下でセキュリティバイザ環境822内に構成および施行されうる。
図9は、図8のメモリ806に対応する例示的なロジックおよびデータのブロック図である。
図9では、メモリ806は、PPT820で構成されうる、保護されたメモリ領域902を含む。
保護されたメモリ領域902は、図1の104に関して上述したように認証されていてよいアプリケーションロジック904を含む。
アプリケーションロジック904は、ビデオフレームバッファIDおよび保護ロジック906を含むことで、プロセッサ802に、ビデオフレームバッファに対応する位置またはアドレスマッピング、またはビデオフレームバッファへのポインタの位置またはアドレスマッピングを特定させることで、ビデオフレームバッファのアクセス保護を行ってよい(図1の106に関して上述した説明参照)。図9の例においては、ビデオフレームバッファ908は、保護されたメモリ領域902内に描かれている。ビデオフレームバッファ908は、1以上のバックバッファ910から912、および主要な、またはフロントバッファ914を含みうる。
アプリケーションロジック904は、プロセッサ802に、暗号化されたユーザ画像を保護されたメモリ領域902へと取得させるユーザ画像復号化ロジック916を含みうる(図4の406に関して上述した説明参照)。図9の例では、復号化されたユーザ画像918は、保護されたメモリ領域902内に描かれている。
アプリケーションロジック904は、図3に関して上述したように、プロセッサ802に、入力表示画像922をビデオフレームバッファ908のランダムな位置にレンダリングさせるランダムレンダリングロジック920を含みうる。ランダムレンダリングロジック920は、図4に関して上述したように、プロセッサ802に、入力表示画像922および復号化されたユーザ画像918をそれぞれバックバッファ910および912のランダムな位置にレンダリングさせて、バックバッファ910および912からフロントバッファ914へ画像をマージまたはブリットさせるロジックを含みうる。
ランダムレンダリングロジック920は、図5の502に関して上述したように、プロセッサ802に、承認画像924をビデオフレームバッファ908のランダムな位置にレンダリングさせるロジックを含みうる。ランダムレンダリングロジック920は、図4および5に関して上述したように、プロセッサ802に、承認画像924および復号化されたユーザ画像918をそれぞれバックバッファ910および912のランダムな位置にレンダリングさせて、バックバッファ910および912からフロントバッファ914へ画像をマージまたはブリットさせるロジックを含みうる。
アプリケーションロジック904は、図1の112および114でそれぞれ上述したように、プロセッサ802に、ユーザ入力とレンダリングされた画像とを相関付けさせ、対応するユーザ入力を、保護されたメモリ領域902に、ユーザ入力データ928として格納させる相関付けロジック926を含みうる。
アプリケーションロジック904は、図6に関して上述したように、プロセッサ802に、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超えたらアプリケーションロジック904の1以上の部分を中止させる中止ロジック930を含みうる。
アプリケーションロジック904は、図7に関して上述したように、プロセッサ802に、クレジットカード情報等の、暗号化されたユーザ値を、保護されたメモリ領域902へと取得させ、ユーザ値を復号化させるロジックを含みうる。図9の例では、復号化されたユーザ値932は、保護されたメモリ領域902内に描かれている。
メモリ806は、プロセッサ802に、ネットワークを介して1以上の遠隔コントローラシステムとインタフェースさせるブラウザロジック934を含みうる。ブラウザロジック934は、図2の204に関して上述したように、プロセッサ802に、遠隔コンピュータシステムからのプロンプト(例えば、電子支払い情報に関するプロンプト)を検出させるプロンプト検出ロジック936を含みうる。ブラウザロジック934は、図2の206に関して上述したように、プロセッサ802に、保護されたメモリ領域902内でアプリケーションロジック904を開始させ、プロンプトにユーザ入力データ928を読み込むアプリケーション開始ロジック938を含みうる。1以上のプロンプト検出ロジック936およびアプリケーション開始ロジック938、またはそれらの部分が、VMM内に実装されてよい。
ここに開示した方法およびシステムは、バイオメトリックスキャナを含むがこれに限定はされないコンピュータシステムに情報を送るよう構成可能な他のデバイスに関しても実装可能である。
本明細書では、方法およびシステムを、機能、特徴、および関係を示す機能ブロックにより記載している。これら機能ブロック間の少なくとも幾らかの範囲は、説明の便宜上、自由に定義している場合がある。その機能および関係が適切に実現されるのであれば、別の定義づけも可能である。
当業者であれば、これら機能ブロックを、適切なソフトウェアおよびその組み合わせを実行する離散コンポーネント、特定用途向けIC、プロセッサにより実装することが可能であることを理解する。
様々な実施形態を記載してきたが、これらはあくまで例示を目的として記載されており、限定を意図していないことを理解されたい。当業者には、ここに記載した方法およびシステムの精神および範囲を逸脱せずに形態および詳細に関する様々な変更が可能であることが明らかである。従って請求項の範囲は、ここに記載した例示的な実施形態のいずれによっても限定されるべきではない。

Claims (22)

  1. アプリケーション開始手段が、アプリケーションプログラムの少なくとも一部を、メモリ内に構成されたアクセス保護されたメモリ領域で開始する段階と、
    メモリ保護手段が、ビデオフレームバッファを前記メモリ内に構成された前記アクセス保護されたメモリ領域に割り当てる段階と、
    レンダリング手段が、キーボード画像を、前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
    相関付け手段が、ポインティングデバイスを介してユーザ入力を受信する段階と、
    前記相関付け手段が、前記ユーザ入力の座標を、前記レンダリングされたキーボード画像のキーと相関付ける段階と、
    前記相関付け手段が、前記アクセス保護されたメモリ領域に、前記キーの情報を格納する段階と、
    前記相関付け手段が、全てのユーザ入力が完了したか否かを判断する段階と、
    前記レンダリング手段が、前記全てのユーザ入力が完了していない場合に、前記ビデオフレームバッファの別のランダムな位置に、前記キーボード画像を再度レンダリングする段階と、
    前記相関付け手段が、前記再度レンダリングする段階の後に、前記受信する段階、前記相関付ける段階、前記格納する段階、前記判断する段階を、更なるユーザ入力に対して繰り返す段階と、
    前記相関付け手段が、前記全てのユーザ入力が完了した場合に、前記アクセス保護されたメモリ領域から、前記キーの前記情報を出力する段階と
    を備える方法。
  2. メモリマネージャが、前記ビデオフレームバッファ、前記キーボード画像、並びに前記アプリケーションプログラムおよび1以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持する段階と、
    前記メモリマネージャが、前記保護されたページテーブルへのアクセスを実質的に前記アプリケーションプログラムに制限する段階と、
    前記メモリマネージャが、前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定する段階とをさらに備える請求項1に記載の方法。
  3. 前記アプリケーションプログラムの少なくとも前記一部を開始する段階は、前記アプリケーションプログラムの前記少なくとも一部を前記保護されたメモリ領域で、トラステッドエグゼキューションモジュールの制御下でロード、認証、および開始する段階を有する請求項1に記載の方法。
  4. ブラウザ手段が、通信ネットワークの上で、遠隔コンピュータシステムとインタフェースする段階と、
    プロンプト検出手段が、前記遠隔コンピュータシステムからユーザ情報のプロンプトを検出する段階と、
    前記アプリケーション開始手段が、前記プロンプトに応じて、前記アプリケーションプログラムの前記少なくとも一部を前記アクセス保護されたメモリ領域内で呼び出す段階とをさらに備え、
    前記出力する段階は、前記プロンプトに前記キーの前記情報を読み込み、前記読み込みの行われたプロンプトを前記通信ネットワークを介して前記遠隔コンピュータシステムに返送する段階を有する請求項1から請求項3のいずれか1つに記載の方法。
  5. 中止手段が、前記ユーザ入力が前記キーボード画像に相関付けられていない場合、エラーカウントを増分する段階と、
    前記中止手段が、前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階と、
    前記レンダリング手段が、前記ユーザ入力が前記キーボード画像と相関付けされておらず、前記エラーカウントが前記閾値未満である場合、前記キーボード画像を前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階とをさらに備える請求項1から請求項4のいずれか1つに記載の方法。
  6. 画像復号化手段が、ユーザ画像を前記アクセス保護されたメモリ領域にロードして、復号化する段階をさらに備え、
    前記キーボード画像をレンダリングする段階および前記キーボード画像を再度レンダリングする段階は、各々、前記キーボード画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの対応するランダムな位置にレンダリングする段階を有する請求項に記載の方法。
  7. 前記レンダリング手段が、ユーザデータ入力が完了すると、承認画像を、前記ユーザ画像の少なくとも一部の上の前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
    前記相関付け手段が、後続のユーザ入力の座標を、前記レンダリングされた承認画像と相関付ける段階と、
    前記相関付け手段が、前記後続のユーザ入力の前記座標と前記承認画像との相関付けに応じて、前記キーの前記情報を出力する段階と、
    前記中止手段が、前記後続のユーザ入力が前記承認画像と相関付けられていない場合、前記エラーカウントを増分する段階と、
    前記レンダリング手段が、前記後続のユーザ入力が前記承認画像と相関付けられておらず、前記エラーカウントが前記閾値未満である場合、前記承認画像を、前記ユーザ画像の少なくとも一部の上の、前記ビデオフレームバッファの別のランダムな位置に再度レンダリングする段階と、
    前記中止手段が、前記エラーカウントが閾値を超える場合、前記アプリケーションの少なくとも一部を中止する段階とをさらに備える請求項6に記載の方法。
  8. 前記ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階は、
    前記ビデオフレームバッファの一部を前記アクセス保護されたメモリ領域に割り当て、前記アクセス保護されたメモリ領域の外の1以上の処理による前記ビデオフレームバッファの残りの部分へのアクセスを許可する段階を有し、
    前記レンダリングする段階および前記再度レンダリングする段階は、前記アクセス保護されたメモリ領域に割り当てられた前記ビデオフレームバッファの前記一部に関して行われる請求項1から請求項7のいずれか1つに記載の方法。
  9. メモリ保護手段が、メモリ内にアクセス保護されたメモリ領域を構成する段階と、
    前記メモリ保護手段が、ビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てる段階と、
    レンダリング手段が、キーボード画像を、前記ビデオフレームバッファのランダムな位置にレンダリングする段階と、
    相関付け手段が、ポインティングデバイスを介してユーザ入力を受信する段階と、
    前記相関付け手段が、前記ユーザ入力の座標を、前記レンダリングされたキーボード画像のキーと相関付ける段階と、
    前記相関付け手段が、前記アクセス保護されたメモリ領域に、前記キーの情報を格納する段階と、
    前記相関付け手段が、全てのユーザ入力が完了したか否かを判断する段階と、
    前記レンダリング手段が、前記全てのユーザ入力が完了していない場合に、前記ビデオフレームバッファの別のランダムな位置に、前記キーボード画像を再度レンダリングする段階と、
    前記相関付け手段が、前記再度レンダリングする段階の後に、前記受信する段階、前記相関付ける段階、前記格納する段階、前記判断する段階を、更なるユーザ入力に対して繰り返す段階と、
    前記相関付け手段が、前記全てのユーザ入力が完了した場合に、前記アクセス保護されたメモリ領域から、前記キーの前記情報を出力する段階とをコンピュータに実行させるためのコンピュータプログラム。
  10. トラステッドエグゼキューション手段が、前記保護されたメモリ領域で、前記キーボード画像をレンダリングするためのアプリケーションの少なくとも一部をロード、認証、および開始する段階を前記コンピュータにさらに実行させる請求項に記載のコンピュータプログラム。
  11. 画像復号化手段が、前記保護されたメモリ領域でユーザ画像をロードおよび復号化する段階と
    前記レンダリング手段が、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングする段階と
    を前記コンピュータにさらに実行させる請求項9または請求項10に記載のコンピュータプログラム。
  12. 前記レンダリング手段が、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングする段階を前記コンピュータにさらに実行させる請求項11に記載のコンピュータプログラム。
  13. 中止手段が、レンダリングされた画像に相関付けられていないユーザ入力をカウントさせ、相関付けられていないユーザ入力の数が閾値を超える場合、前記キーボード画像をレンダリングするためのアプリケーションまたはその一部を中断させる段階を前記コンピュータにさらに実行させる請求項12に記載のコンピュータプログラム。
  14. プロンプト検出手段が、遠隔コンピュータシステムからのユーザ入力のプロンプトを検出する段階と、
    呼び出し手段が、検出されたプロンプトに応じて、対応するアクセス保護されたメモリ領域で前記キーボード画像をレンダリングするためのアプリケーションを呼び出す段階と、
    出力手段が、前記プロンプトに前記キーの前記情報を読み込ませ、前記読み込みの行われたプロンプトを前記遠隔コンピュータシステムへ出力する段階とを前記コンピュータにさらに実行させる請求項から請求項13のいずれか1つに記載のコンピュータプログラム。
  15. 前記プロンプト検出手段が、ブラウザ上で前記プロンプトを検出する段階を前記コンピュータにさらに実行させる請求項14に記載のコンピュータプログラム。
  16. 前記プロンプト検出手段が、前記遠隔コンピュータシステムの対応するウェブサイトに対する修正を実質的に伴わずに前記プロンプトを検出する段階を前記コンピュータにさらに実行させる請求項15に記載のコンピュータプログラム。
  17. 前記プロンプト検出手段が、前コンピュータおよび前記遠隔コンピュータシステムの間のセキュアなソケット層チャネルおよびトランスポート層セキュリティチャネルの1以上を傍受する段階を前記コンピュータにさらに実行させる請求項15に記載のコンピュータプログラム。
  18. メモリマネージャが、前記ビデオフレームバッファ、前記キーボード画像、並びに前記キーボード画像をレンダリングするためのアプリケーションおよび1以上の保護されたページテーブル内の対応するデータに関連付けられた物理アドレスおよび仮想アドレス間の変換を維持する段階と
    前記メモリマネージャが、前記保護されたページテーブルへのアクセスを前記キーボード画像をレンダリングするためのアプリケーションに制限する段階と
    前記メモリマネージャが、前記ビデオフレームバッファへのポインタに関連付けられた物理アドレスおよび仮想アドレス間の変換を、アクティブページテーブル内で利用不可能として特定する段階とを前記コンピュータにさらに実行させる請求項から請求項17のいずれか1つに記載のコンピュータプログラム。
  19. メモリ内にアクセス保護されたメモリ領域を構成させビデオフレームバッファを前記アクセス保護されたメモリ領域に割り当てるメモリ保護手段と、
    キーボード画像を、前記ビデオフレームバッファのランダムな位置にレンダリングするレンダリング手段と、
    ポインティングデバイスを介してユーザ入力を受信し、前記ユーザ入力の座標を、前記レンダリングされたキーボード画像のキーと相関付け前記アクセス保護されたメモリ領域に、前記キーの情報を格納し、全てのユーザ入力が完了したか否かを判断する相関付け手段と
    を備え、
    前記レンダリング手段は、前記全てのユーザ入力が完了していない場合に、前記ビデオフレームバッファの別のランダムな位置に、前記キーボード画像を再度レンダリングする段階と、
    前記相関付け手段は、前記再度レンダリングした後に、前記受信前記相関付け前記格納前記判断、更なるユーザ入力に対して繰り返
    前記相関付け手段は、前記全てのユーザ入力が完了した場合に、前記アクセス保護されたメモリ領域から、前記キーの前記情報を出力するシステム。
  20. 記保護されたメモリ領域でユーザ画像をロードおよび復号化させる画像復号化手段をさらに備え、
    前記レンダリング手段は、前記キーボード画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファの前記ランダムな位置の、前記復号化されたユーザ画像の上にレンダリングおよび再度レンダリングする請求項19に記載のシステム。
  21. 前記レンダリング手段は、ユーザデータ入力に応じて、承認画像を、前記アクセス保護されたメモリ領域から、前記ビデオフレームバッファのランダムな位置の前記復号化されたユーザ画像の上にレンダリングする請求項20に記載のシステム。
  22. レンダリングされた画像に相関付けられていないユーザ入力をカウント、相関付けられていないユーザ入力の数が閾値を超える場合、前記キーボード画像をレンダリングするためのアプリケーションまたはその一部を中断する中止手段をさらに備える請求項21に記載のシステム。
JP2009293555A 2008-12-31 2009-12-24 画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム Expired - Fee Related JP4937339B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/347,576 2008-12-31
US12/347,576 US8364601B2 (en) 2008-12-31 2008-12-31 Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain

Publications (2)

Publication Number Publication Date
JP2010170543A JP2010170543A (ja) 2010-08-05
JP4937339B2 true JP4937339B2 (ja) 2012-05-23

Family

ID=42034503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009293555A Expired - Fee Related JP4937339B2 (ja) 2008-12-31 2009-12-24 画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム

Country Status (5)

Country Link
US (1) US8364601B2 (ja)
EP (1) EP2204758A3 (ja)
JP (1) JP4937339B2 (ja)
KR (2) KR20100080401A (ja)
CN (1) CN101840469B (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8207983B2 (en) * 2009-02-18 2012-06-26 Stmicroelectronics International N.V. Overlaying videos on a display device
US9111325B2 (en) * 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US8780122B2 (en) 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US8650299B1 (en) 2010-02-03 2014-02-11 Citrix Systems, Inc. Scalable cloud computing
US8775590B2 (en) * 2010-09-02 2014-07-08 International Business Machines Corporation Reactive monitoring of guests in a hypervisor environment
JP2014513348A (ja) * 2011-04-08 2014-05-29 インサイド ソフトウェア コーポレーション 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
WO2013036223A1 (en) * 2011-09-07 2013-03-14 Intel Corporation Verifying firmware integrity of a device
CN103999092B (zh) * 2011-11-30 2017-05-10 英特尔公司 保护输入免受恶意软件侵害
WO2013081406A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
WO2013101206A1 (en) 2011-12-30 2013-07-04 Intel Corporation Interactive drawing recognition
US8973095B2 (en) 2012-06-25 2015-03-03 Intel Corporation Authenticating a user of a system via an authentication image mechanism
GB201212878D0 (en) 2012-07-20 2012-09-05 Pike Justin Authentication method and system
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
EP2747071A1 (de) * 2012-12-21 2014-06-25 Deutsche Telekom AG Anzeige eines fälschungssicheren Identitätsindikators
KR20140099135A (ko) * 2013-02-01 2014-08-11 삼성전자주식회사 이미지의 부분 프레임을 업데이트 하는 시스템 온 칩 및 그 동작방법
KR20140111790A (ko) * 2013-03-12 2014-09-22 삼성전자주식회사 가상 키보드에서 난수를 이용한 키 입력 방법 및 장치
EP3084667A4 (en) * 2013-12-19 2017-07-26 Intel Corporation Policy-based trusted inspection of rights managed content
US20150212658A1 (en) * 2014-01-24 2015-07-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Indicating altered user interface elements
US9009468B1 (en) * 2014-08-26 2015-04-14 MagicCube, Inc. System for transaction authentication
US9507951B2 (en) * 2014-10-20 2016-11-29 Intel Corporation Technologies for secure input and display of virtual touch user interfaces
EP3021249A1 (en) * 2014-11-13 2016-05-18 Gemalto Sa System for securely entering a private code
US9940455B2 (en) 2015-02-25 2018-04-10 International Business Machines Corporation Programming code execution management
GB201520741D0 (en) 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Authentication methods and systems
US10025550B2 (en) * 2016-03-15 2018-07-17 Intel Corporation Fast keyboard for screen mirroring
GB2549118B (en) * 2016-04-05 2020-12-16 Samsung Electronics Co Ltd Electronic payment system using identity-based public key cryptography
US11233658B2 (en) * 2019-08-14 2022-01-25 OX Labs Inc. Digital transaction signing for multiple client devices using secured encrypted private keys
US11392721B2 (en) * 2019-12-13 2022-07-19 At&T Intellectual Property I, L.P. Virtual machine formjacking protection

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
DE69132300T2 (de) * 1990-03-12 2000-11-30 Hewlett Packard Co Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US7054547B1 (en) * 1992-02-07 2006-05-30 Max Abecassis Disc having a segment code for prohibiting a play control function during a playing of a video segment
US6208805B1 (en) * 1992-02-07 2001-03-27 Max Abecassis Inhibiting a control function from interfering with a playing of a video
US5312673A (en) * 1992-07-28 1994-05-17 Bradford Industries, Inc. Adhesive system for athletic lettering and the like
US5379400A (en) * 1992-08-07 1995-01-03 International Business Machines Corp. Method and system for determining memory refresh rate
EP0721621B1 (en) * 1993-09-30 2002-01-30 Apple Computer, Inc. System for decentralized backing store control of virtual memory in a computer
US5634043A (en) * 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5687370A (en) * 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
FR2744818B1 (fr) * 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US6542919B1 (en) * 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5991881A (en) * 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6360244B1 (en) 1997-04-11 2002-03-19 Fujitsu Limited System and method for multi-level memory domain protection
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US6163834A (en) * 1998-01-07 2000-12-19 Tandem Computers Incorporated Two level address translation and memory registration system and method
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6321276B1 (en) * 1998-08-04 2001-11-20 Microsoft Corporation Recoverable methods and systems for processing input/output requests including virtual memory addresses
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
US6832257B1 (en) * 1998-12-07 2004-12-14 Sony Corporation Computer, recorded medium on which address validity checking program is recorded, and address validity checking method
US6732220B2 (en) * 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
WO2001001262A1 (fr) * 1999-06-24 2001-01-04 Fujitsu Limited Controleur de peripherique et systeme d'entree/sortie
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6779117B1 (en) * 1999-07-23 2004-08-17 Cybersoft, Inc. Authentication program for a computer operating system
US6751737B1 (en) * 1999-10-07 2004-06-15 Advanced Micro Devices Multiple protected mode execution environments using multiple register sets and meta-protected instructions
AU4705001A (en) 1999-10-25 2001-06-18 Phoenix Technologies Inc. Secure software smi dispatching using caller address
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
US6738882B1 (en) * 1999-11-30 2004-05-18 Hewlett-Packard Development Company, L.P. Concurrent multi-processor memory testing beyond 32-bit addresses
US6658515B1 (en) * 2000-01-25 2003-12-02 Dell Usa, L.P. Background execution of universal serial bus transactions
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US6553438B1 (en) * 2000-04-24 2003-04-22 Intel Corporation Methods and system for message resource pool with asynchronous and synchronous modes of operation
US6931540B1 (en) * 2000-05-31 2005-08-16 Networks Associates Technology, Inc. System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6954861B2 (en) * 2000-07-14 2005-10-11 America Online, Inc. Identifying unauthorized communication systems based on their memory contents
US6487643B1 (en) * 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6996551B2 (en) * 2000-12-18 2006-02-07 International Business Machines Corporation Apparata, articles and methods for discovering partially periodic event patterns
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US6567897B2 (en) * 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6684305B1 (en) * 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US7328453B2 (en) * 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US7478394B1 (en) * 2001-06-04 2009-01-13 Hewlett-Packard Development Company, L.P. Context-corrupting context switching
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7093118B2 (en) * 2001-06-27 2006-08-15 Intel Corporation System and method for external bus device support
US6920534B2 (en) * 2001-06-29 2005-07-19 Intel Corporation Virtual-port memory and virtual-porting
US8001594B2 (en) * 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US6685567B2 (en) * 2001-08-08 2004-02-03 Igt Process verification
US6883116B2 (en) * 2001-09-27 2005-04-19 International Business Machines Corporation Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system
US7062650B2 (en) * 2001-09-28 2006-06-13 Intel Corporation System and method for verifying integrity of system with multiple components
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6850994B2 (en) * 2001-11-16 2005-02-01 Microsoft Corporation Method for determining status of a computer device and detecting device behavior in response to a status request
US6804741B2 (en) * 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
JP2003330365A (ja) * 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7107497B2 (en) * 2002-09-30 2006-09-12 Sun Microsystems, Inc. Method and system for event publication and subscription with an event channel from user level and kernel level
US7028229B2 (en) * 2002-09-30 2006-04-11 Sun Microsystems, Inc. Kernel event subscription and publication system and method
US20040073809A1 (en) * 2002-10-10 2004-04-15 Wing Keong Bernard Ignatius Ng System and method for securing a user verification on a network using cursor control
CN1220128C (zh) * 2003-01-22 2005-09-21 王洋 键值可随机变化的智能保密键盘
US7111200B2 (en) * 2003-04-17 2006-09-19 International Business Machines Corporation Apparatus and method for debugging a logical partition
US20040226009A1 (en) * 2003-05-09 2004-11-11 International Business Machines Corporation System and method for software application task abstraction
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US7010630B2 (en) * 2003-06-30 2006-03-07 International Business Machines Corporation Communicating to system management in a data processing system
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US7542026B2 (en) * 2003-11-03 2009-06-02 International Business Machines Corporation Apparatus method and system for improved feedback of pointing device event processing
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US20050138417A1 (en) * 2003-12-19 2005-06-23 Mcnerney Shaun C. Trusted network access control system and method
US7225325B2 (en) * 2003-12-30 2007-05-29 International Business Machines Corporation Customizing a computer system by using stored configuration parameters in a configuration mechanism
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7653727B2 (en) * 2004-03-24 2010-01-26 Intel Corporation Cooperative embedded agents
US20050213768A1 (en) * 2004-03-24 2005-09-29 Durham David M Shared cryptographic key in networks with an embedded agent
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US7558966B2 (en) * 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
US7594124B2 (en) * 2004-06-09 2009-09-22 Intel Corporation Cross validation of data using multiple subsystems
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7281102B1 (en) * 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US7571474B2 (en) * 2004-12-30 2009-08-04 Intel Corporation System security event notification aggregation and non-repudiation
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7739517B2 (en) * 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
US7603484B2 (en) * 2005-04-21 2009-10-13 Microsoft Corporation Protocol for communication with a user-mode device driver
US20060294596A1 (en) * 2005-06-27 2006-12-28 Priya Govindarajan Methods, systems, and apparatus to detect unauthorized resource accesses
US20070006175A1 (en) * 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7761674B2 (en) * 2005-12-30 2010-07-20 Intel Corporation Identifier associated with memory locations for managing memory accesses
US20070006307A1 (en) * 2005-06-30 2007-01-04 Hahn Scott D Systems, apparatuses and methods for a host software presence check from an isolated partition
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US20070005935A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Method and apparatus for securing and validating paged memory system
US7587612B2 (en) * 2005-06-30 2009-09-08 Intel Corporation Generating and communicating information on locations of program sections in memory
CN1825796A (zh) * 2006-03-29 2006-08-30 刘大扬 基于图片键盘的网络加密系统及其操作方法
JP2008033747A (ja) * 2006-07-31 2008-02-14 Fuji Xerox Co Ltd 入力情報保護システム及びプログラム
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US8161395B2 (en) * 2006-11-13 2012-04-17 Cisco Technology, Inc. Method for secure data entry in an application
CN201035502Y (zh) * 2006-12-28 2008-03-12 上海麦柯信息技术有限公司 安全随机动态软键盘
US8364973B2 (en) * 2007-12-31 2013-01-29 Intel Corporation Dynamic generation of integrity manifest for run-time verification of software program

Also Published As

Publication number Publication date
KR20120135165A (ko) 2012-12-12
JP2010170543A (ja) 2010-08-05
EP2204758A3 (en) 2010-12-15
CN101840469B (zh) 2017-10-13
KR20100080401A (ko) 2010-07-08
KR101390077B1 (ko) 2014-04-29
US20100169666A1 (en) 2010-07-01
CN101840469A (zh) 2010-09-22
US8364601B2 (en) 2013-01-29
EP2204758A2 (en) 2010-07-07

Similar Documents

Publication Publication Date Title
JP4937339B2 (ja) 画像を直接レンダリングしてセキュアなメモリ領域で対応するユーザ入力と相関付ける方法およびシステム
CN107851163B (zh) 用于i/o数据的完整性、防重放和真实性保证的技术
KR101504857B1 (ko) 보안 시스템에서 랜덤하게 할당된 메모리 범위로 jit를 지원하는 시스템 및 방법
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
US7730318B2 (en) Integration of high-assurance features into an application through application factoring
US20100199104A1 (en) Device with a secure virtual machine
JP5940677B2 (ja) 入力を保護するための方法、コンピュータプログラム及び装置
CN110737926B (zh) 一种显示方法、装置及存储介质
Amiri Sani Schrodintext: Strong protection of sensitive textual content of mobile applications
CN113302613B (zh) 旁路保护
JP5049185B2 (ja) 情報セキュリティ装置、セキュリティシステム及び入力情報漏洩防止方法
US9256756B2 (en) Method of encryption and decryption for shared library in open operating system
Oh et al. Trustore: Side-channel resistant storage for sgx using intel hybrid cpu-fpga
US10303885B2 (en) Methods and systems for securely executing untrusted software
Mittal et al. A survey of techniques for improving security of gpus
US20190103074A1 (en) Technologies for secure z-order enforcement with trusted display
Van Bulck et al. Breaking virtual memory protection and the SGX ecosystem with foreshadow
Zheng et al. Secure mobile payment employing trusted computing on trustzone enabled platforms
Toll et al. The Caernarvon secure embedded operating system
JP6117402B2 (ja) 入力を保護するシステム及び方法
Xu et al. Protecting Cryptographic Keys and Functions from Malware Attacks
Parker Protecting Cryptographic Secrets and Processes
Ma Insight into TCB Issues for Information Security

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4937339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees