JP4838505B2 - 高い保証の実行環境を備えたシステムにおける信頼できるエージェントへの安全な入出力の提供 - Google Patents

高い保証の実行環境を備えたシステムにおける信頼できるエージェントへの安全な入出力の提供 Download PDF

Info

Publication number
JP4838505B2
JP4838505B2 JP2004278412A JP2004278412A JP4838505B2 JP 4838505 B2 JP4838505 B2 JP 4838505B2 JP 2004278412 A JP2004278412 A JP 2004278412A JP 2004278412 A JP2004278412 A JP 2004278412A JP 4838505 B2 JP4838505 B2 JP 4838505B2
Authority
JP
Japan
Prior art keywords
execution environment
user input
secure
trusted
computer
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
JP2004278412A
Other languages
English (en)
Other versions
JP2005129034A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005129034A publication Critical patent/JP2005129034A/ja
Application granted granted Critical
Publication of JP4838505B2 publication Critical patent/JP4838505B2/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)
  • Multi Processors (AREA)

Description

本発明は、一般的には、コンピュータセキュリティの分野に関する。より具体的には、本発明は、単一のコンピューティング装置上で、複数の実行環境(オペレーティングシステムなど)を使用することに関し、また複数の実行環境のうちのより高い保証の実行環境内で、信頼できるエージェントへのデータ入出力の保全を可能にする技術を提供する。
現代のコンピューティングでは、コンピュータ上で実施され得る多くのタスクが、何らかのセキュリティレベルを必要とする。セキュリティレベルを提供するためには、複数の選択肢がある。1つは、多分安全でないあらゆる要素から完全に分離されたコンピュータ上のすべて安全なアプリケーションを実行すること、または単一のコンピュータシステム上で実行される2つの実行環境(オペレーティングシステムなど)を完全に分離することができる、仮想マシンモニタ(VMM:virtual machine monitor)を使用することである。しかし、これは、非実用的な可能性がある。コストまたは利便性のために、安全な実行環境が、セキュリティが保証されていないアプリケーションと、リソースを共有することを求められることがあり、またこうしたアプリケーションおよびリソースは、攻撃を受けやすいことがある。さらに、VMMが使用される場合、VMMには、マシンおよび装置のすべての仮想化が必要である(したがって、あらゆる可能な装置について、VVMがそれ自体の装置ドライバを提供することが求められる)ので、VMMは、ほとんど無制限の様々な装置をマシンに追加することができるオープンアーキテクチャのマシンには適さない。
2つの実行環境でリソースを共有する能力をもたらす1つのやり方は、マシン上のほとんどのプロセスおよび装置を制御する、1つの「メインの」オペレーティングシステムがあり、また第2のオペレーティングシステムが存在するコンピュータシステムを提供することである。この第2のオペレーティングシステムは、小さな、限定目的のオペレーティングシステムであり、それとともに一部の限られたタスクを実施するメインオペレーティングシステムがある。オペレーティングシステムを「小さな」または「限定目的」にする1つのやり方は、その小さいオペレーティングシステムが、特定のインフラストラクチャ(スケジュール管理、メモリマネージャ、装置ドライバなど)を、「メイン」オペレーティングシステムから借りられるようにすることである。VMMは、オペレーティングシステムを事実上互いに切り離すので、VMMを使用した、こうしたインフラストラクチャの共有は、実用的ではない。
他の特定の技術は、VMMを使用せずに、オペレーティングシステムが同じマシン上で並列に存在することを可能にする。こうした1つの技術は、あるオペレーティングシステムに、他のオペレーティングシステムの「ホスト」の働きをさせることである(「ホスト」がホストしているオペレーティングシステムは、しばしば、「ゲスト」と称される)。この場合、ホストオペレーティングシステムは、ゲストに、メモリやプロセッサ時間などのリソースを提供する。別のこうした技術は、「外部カーネル(exokernel)」の使用である。外部カーネルは、特定の装置(プロセッサやメモリなど)を管理し、オペレーティングシステム間の特定の型の対話をも管理するが、外部カーネルは、VMMとは異なって、マシン全体を仮想化しない。外部カーネルを使用する場合でも、外部カーネルは、あるオペレーティングシステム(「メイン」オペレーティングシステムなど)が他のオペレーティングシステムのために、大部分のインフラストラクチャを提供する場合がある。この場合、メインオペレーティングシステムは、やはり「ホスト」と称され、また小さいオペレーティングシステムを、「ゲスト」と称することができる。ホスティングモデルと外部カーネルモデルの両方が、インフラストラクチャの共有をサポートするオペレーティングシステム間の有用な型の対話を可能にする。
したがって、こうした技術を使用して、少なくとも2つの実行環境を含むコンピュータシステムを提供することができる。これらの1つは、「高い保証」のオペレーティングシステムであり、本明細書では、「ネクサス(nexus)」と称される。高い保証のオペレーティングシステムは、その動作に関して、ある保証レベルを提供するオペレーティングシステムである。例えば、ネクサスを使用して、ネクサスの外部に情報を漏洩しないことが保証された、隠されたメモリ(curtained memory)を提供し、また認証された特定のアプリケーションだけが、ネクサス上で実行され、隠されたメモリにアクセスできるようにすることによって、漏洩されるべきでない秘密の情報(暗号鍵など)を扱うことができる。
1つがネクサスである、2つの実行環境を含むコンピュータシステムでは、ネクサスが、ゲストオペレーティングシステムであり、動作に関して同じ保証レベルの対象でない第2のオペレーティングシステムが、ホストオペレーティングシステムであることが望ましいことがある。これによってネクサスを、できるだけ小さくすることができる。ネクサスが小さいことによって、ネクサスによって提供される保証の信頼レベルが高くなる。
しかしながら、ネクサスの高い保証の性質には、ネクサス上で実行されるプロセスへの入出力の高い保証が必要であり、ホストオペレーティングシステムからのプロセスまたは他のエンティティが、ユーザによって入力されるデータ、あるいはユーザに表示または出力されるデータを読み出しまたは変更しないようにする。しかし、そのプロセスのために、ホストオペレーティングシステムが入出力を処理し、ネクサスに情報を中継できるようにすると、ネクサスの高保証の性質が危険にさらされる。さらに、入力は、その入力を暗号化する信頼できるユーザ入力装置からのものであることがあり、ホストに漏洩されるべきでないネクサス内で保持される秘密を使用して、そのデータを復号することが必要となる場合がある。
ユーザに表示されるグラフィカルユーザインタフェース要素上のユーザイベントを、レンダリングし検出し処理するなど、入出力(I/O:input/output)機能は、しばしば、すべてのプロセスに共通のリソースによって提供される。しかし、ホストオペレーティングシステムにこの機能を設けるには、レンダリングされるデータが、レンダリングのためにホストに渡される必要がある。レンダリングのために送られるデータが、そのデータへのアクセスを有するべきでないホスト側のエンティティによって読み出されまたは変更される場合があるので、これによって、レンダリングのためにデータを渡すプロセスの高保証の性質に対して攻撃を行う可能な手段がもたらされる。ユーザイベントが発生したという通知にも、同じ脆弱性が存在する。
上記の内容に鑑みて、従来技術の欠点を克服するシステムが求められている。
信頼できるUIエンジンを使用して、セキュリティ保護された実行環境および第2の実行環境を含むシステムにおいて、セキュリティ保護された実行環境のセキュリティが維持される。信頼できるUIエンジンは、セキュリティ保護された実行環境への入力、およびセキュリティ保護された実行環境内のプロセスからの表示または出力装置への出力を裁定する。
一実施形態では、信頼できるUIエンジンの1つのコンポーネントは、信頼できる入力マネージャである。信頼できる入力装置から、暗号化された入力が届くと、信頼できる入力マネージャは、その入力を復号する。次いで、その入力がセキュリティ保護された実行環境にとどまるべきか、それとも第2の実行環境に送信されるべきかを判断する。セキュリティ保護されたユーザ環境で判断が行われた後に初めて、暗号化された入力が、第2の実行環境に渡される。
信頼できるUIエンジンの1つのコンポーネントは、信頼できる出力マネージャである。出力のセキュリティを提供するために、信頼できる出力マネージャは、セキュリティ保護された実行環境内のすべてのエンティティのための、出力装置とのコンタクトポイントとして機能する。
本発明の他の特徴について、以下に述べる。
上記の要約、および好ましい実施形態についての以下の詳細な説明を、添付の図面とともに読めば、よりよく理解される。本発明を例示するため、図面に、本発明の例示的な構成が示されている。しかし、本発明は、開示する特定の方法および手段に限定されない。
(概要)
オペレーティングシステムなどの2つの実行環境が、単一のマシン上で、並列に実行されている場合、ユーザ入力および出力がオペレーティングシステムによってどのようにアクセスされるべきかが判断されなければならない。さらに、オペレーティングシステムのうちの1つは、第2のオペレーティングシステムまたは第2のオペレーティングシステム上で実行されるエンティティへのユーザ入力、またはそこからの出力にアクセスされないように、保護される必要がある。本発明は、ネクサス上の高い保証のエンティティに向けたまたはそこから発生するユーザ入出力を、ホストオペレーティングシステムのエンティティによる可能な検出から保護することができる技術を提供する。
(例示的なコンピューティング構成)
図1に、本発明の態様を実施することができる、例示的なコンピューティング環境を示す。コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関するどんな制限をも示唆するためのものではない。コンピューティング環境100は、例示的なオペレーティング環境100内に示されたコンポーネントのいずれか1つまたは組合せに関する、いずれかの依存関係または要件を有すると解釈すべきでない。
本発明は、他の多くの汎用または特定目的のコンピューティングシステム環境または構成で使用することができる。本発明で使用するのに適し得る周知のコンピューティングシステム、環境および/または構成は、これだけに限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな家電品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、埋め込みシステム、上記システムまたは装置のいずれかを含む分散コンピューティング環境などを含む。
本発明について、コンピュータによって実行されるプロセッサモジュールなどの、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。本発明は、タスクが、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理装置によって実施される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体内に置くことができる。
図1を参照すると、本発明を実施するための例示的なシステムが、コンピュータ110の形態の汎用コンピューティング装置を含んでいる。コンピュータ110のコンポーネントは、それだけに限らないが、処理装置120、システムメモリ130、およびシステムメモリを含めて、様々なシステムコンポーネントを処理装置120に結合するシステムバス121を含み得る。処理装置120は、マルチスレッドプロセッサ上でサポートされるものなど、複数の論理処理装置であり得る。システムバス121を、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含めて、いくつかの種類のバス構造のいずれかとすることができる。限定のためではなく、例示すると、こうしたアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)、VESA(Video Electronics Standards Association)ローカルバス、および(メザニンバスとも称される)PCI(Peripheral Component Interconnect)バスを含む。システムバス121は、通信装置では、2地点間接続、スイッチファブリックなどとして実装することもできる。
コンピュータ110は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ110によってアクセスできる任意の使用可能媒体とすることができ、揮発性と不揮発性の両方の媒体、取外し可能と取外し不可能の両方の媒体を含む。限定のためではなく、例示すると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性と不揮発性の両方、取外し可能と取外し不可能の両方の媒体を含む。コンピュータ記憶媒体は、それだけに限らないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、DVDまたは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ110によってアクセスすることができる他の任意の媒体を含む。通信媒体は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波や他のトランスポート機構などの変調されたデータ信号の形の他のデータを実装し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、情報を信号に符号化するようなやり方で、1または複数の特性が設定され、または変更される信号を意味する。限定のためではなく、例示すると、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、RF、赤外線などの無線媒体、および他の無線媒体を含む。上記内容のいずれの組合せもまた、コンピュータ読取り可能媒体の範囲内に含められるべきである。
システムメモリ130は、ROM(read only memory)131およびRAM(random access memory)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動時などに、コンピュータ110内の要素間で情報を転送する助けとなる基本ルーチンを含む、BIOS(basic input/output system)133は、典型的には、ROM131に格納される。RAM132は、典型的には、処理装置120によって直接にアクセス可能であり、および/またはそれによる操作を現在受けているデータおよび/またはプログラムモジュールを含む。限定ではなく、例示するため、図1に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体を含むことができる。例示するためだけに、図1に、取外し不可能な不揮発性の磁気媒体から読み出しまたはそこに書き込むハードディスクドライブ140、取外し可能な不揮発性の磁気ディスク152から読み出しまたはそこに書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体などの取外し可能な不揮発性の光ディスク156から読み出しまたはそこに書き込む光ディスクドライブ155を示す。例示的なオペレーティング環境で使用することができる、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141は一般に、インタフェース140などの取外し不可能なメモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インタフェース150などの取外し可能メモリインタフェースによって、システムバス121に接続される。
上述し、また図1で示した、ドライブおよびその関連のコンピュータ記憶媒体によって、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ110のその他のデータの記憶域がもたらされる。図1に、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147を格納するように示されている。こうしたコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137と同じでも、それとは異なっていてもよいことに留意されたい。少なくともそれらが異なるコピーであること示すために、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147に、ここでは異なる番号を付与してある。ユーザは、キーボード162、およびマウス、トラックボール、またはタッチパッドと一般に称されるポインティング装置161などの入力装置を介して、コンピュータ20にコマンドおよび情報を入力することができる。他の入力装置(図示せず)には、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれ得る。これらのおよび他の入力装置は、しばしば、システムバスに結合されるユーザ入力インタフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポートまたはUSB(universal serial bus)など、他のインタフェースおよびバス構造によって接続することもできる。モニタ191または他のタイプのディスプレイ装置もまた、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加え、コンピュータは、出力周辺インタフェース195を介して接続され得る、スピーカ197およびプリンタ196などの他の周辺出力装置をも含み得る。
コンピュータ110は、リモートコンピュータ180など、1または複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の一般のネットワークノードとすることができ、図1には、メモリ記憶装置181だけが示されているが、コンピュータ110に関して上記で述べた要素の多数またはすべてを一般に含む。図1に示す論理接続は、LAN(local area network)171、およびWAN(wide area network)173を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは、一般的なものである。
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、典型的には、モデム172、またはインターネットなどのWAN173を介して通信を確立する他の手段を含む。モデム172は、内部にあっても、外部にあってもよく、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示したプログラムモジュール、またはその一部を、リモートメモリ記憶装置に格納することができる。限定ではなく、例示するため、図1に、メモリ装置181内に常駐する、リモートアプリケーションプログラム185を示す。図示するネットワーク接続は、例示的なものであり、コンピュータ間の通信接続を確立する他の手段が使用され得ることが理解されよう。
(単一マシン上の複数のコンピューティング環境)
上述したように、2つのオペレーティングシステムが、単一のマシン上で、並列に動作できることが知られている。本発明が取り組む第1の問題は、2つのオペレーティングシステム間のあるレベルの相互作用を依然として提供しながら、2つのオペレーティングシステム間のあるレベルの分離をどのように提供するかである。
図2に、単一のコンピュータシステム110上で、2つのオペレーティングシステム134(1)および134(2)が実行されるシステムを示す。オペレーティングシステム134(1)と134(2)間で、ある程度の対話204は許容されるが、オペレーティングシステムのうちの少なくとも1つを、他のオペレーティングシステムで発生するイベントから依然として保護することができるように、オペレーティングシステム134(1)と134(2)の間に、ある種の論理的分離202が存在する。図2の例では、オペレーティングシステム134(1)は、ホストオペレーティングシステムであり、オペレーティングシステム134(2)は、前述の「ネクサス」などのゲストオペレーティングシステムである、上述したように、オペレーティングシステム134(2)がネクサスである場合は、分離202を構築することが望まく、オペレーティングシステム134(2)は、オペレーティングシステム134(1)のインフラストラクチャを借用するために、オペレーティングシステム134(1)と対話することができるが、オペレーティングシステム134(1)で発生し、またオペレーティングシステム134(2)にその動作仕様に反するやり方で動作させる動作(悪意のあるもの、悪意のないものいずれでも)から、オペレーティングシステム134(2)を依然として守ることができるようする。(しかし、本発明は、オペレーティングシステム134(2)がネクサスである場合に限定されないことが理解されよう。)
オペレーティングシステム134(1)とオペレーティングシステム134(2)の間の分離202は、任意選択で、セキュリティモニタを用いて実施することができる。セキュリティモニタは、オペレーティングシステム134(1)と134(2)の両方の外部にあるコンポーネントであり、オペレーティングシステム134(2)をオペレーティングシステム134(1)から保護するために使用され、何らかのセキュリティサービスを提供することができる。例えば、セキュリティモニタは、特定のハードウェアへのアクセスを制御することができ、(オペレーティングシステム134(2)に、メモリの一部を専用させるために)メモリの使用を管理することができ、あるいはオペレーティングシステム134(1)からオペレーティングシステム134(2)へのデータの通信を、安全なやり方で容易にすることができる。セキュリティモニタの使用は、オペレーティングシステム134(2)がオペレーティングシステム134(1)からどのように保護され得るかについての1つのモデルであるが、セキュリティモニタの使用は必須ではないことに留意されたい。別の例として、オペレーティングシステム134(2)は、オペレーティングシステム134(1)から自衛するために必要なすべての機能を含むことができる。
図2で、オペレーティングシステム134(1)が「ホスト」として、またオペレーティングシステム134(2)が「ゲスト」として示されていることに留意されたい。一般に、この特徴付けは、こうした例では、オペレーティングシステム134(1)は、オペレーティングシステム134(1)と134(2)の両方によって使用される、オペレーティングシステムの特定のインフラストラクチャ(装置ドライバ、スケジューリングなど)を提供し、オペレーティングシステム134(2)は、このインフラストラクチャが欠如しているが、好ましくは、オペレーティングシステム134(1)のインフラストラクチャを使用するという意味で、「ゲスト」であるという事実に言及する。しかし、オペレーティングシステムを「ホスト」または「ゲスト」にする条件は、柔軟であることに留意されたい。さらに、「ホスト」および「ゲスト」オペレーティングシステムの従来の概念では、ホストがゲストのアクションから自衛する必要があると想定されていることに留意されたい。しかし、図2の例では、ゲストオペレーティングシステム134(2)が、オペレーティングシステム134(1)から身を守る必要がある高い保証のオペレーティングシステムであると想定されている。以下の諸例では、それらを区別するために、オペレーティングシステム134(1)を「ホスト」と称し、オペレーティングシステム134(2)を「ゲスト」または「ネクサス」と一般的に称する。本明細書で述べる技術は、同じマシン(さらには同じ1組の接続されたマシン)上で実行される任意の複数のオペレーティングシステムの対話に適用され得ることを理解されたい。
(信頼できるエージェントへの安全な入出力)
ネクサス、およびネクサス上で実行されるプロセスに、安全な入出力を提供するために、ネクサス側に、信頼できるユーザインタフェース(UI)エンジンモジュールが設けられる。信頼できるUIエンジンは、信頼できるエージェントのために、安全な入出力機能の共通リソースを提供する。
ユーザ入力の高い保証を提供するために、UIエンジンは、信頼できるユーザ入力を受け入れる。ユーザ入力のセキュリティは、入力を暗号化することによって確保される。他の実施形態では、ユーザ入力のセキュリティが、電子署名などの他の確認手段によって確認され、または安全な信頼できるハードウェアなどの他の手段によって保証される。信頼できるUIエンジンは、信頼できる入力マネージャを含み、次いで、この入力マネージャは、ユーザ入力の適切な宛先を判断する。場合によっては、ユーザ入力は、ホスト側で使用されるべきである。このような場合、ユーザ入力は、ホストオペレーティングシステムのために、ホスト側の入力スタックに置かれる。しかし、場合によっては、ユーザ入力は、高い保証のものであり、信頼された入力マネージャによって、適切な宛先に、例えばネクサスに向けられる。
出力の高い保証を提供するために、信頼できるUIエンジンは、エージェントおよび他のプロセスから信頼された出力マネージャへの信頼できる出力を受け付ける。信頼できる出力マネージャは、この信頼できる出力を受信し、コンピュータシステム110がネクサスのために、どのように信頼できる出力を提供するかに基づく装置に依存したやり方で、信頼された出力の表示を処理する。ある実施形態では、暗号化されたメモリを使用して、専用の表示領域を示す。この暗号化されたメモリが、ホスト側に渡される。メモリが暗号化されているので、ホスト側は、メモリを復号することができず、専用表示領域については、偽の内容を作成する。別の実施形態では、隠されたメモリが、そのメモリ用に埋め込まれたビデオアダプタと共に使用される。信頼できる出力マネージャは、ネクサスのエージェントが、装置に依存しないやり方で、表示データを出力できるようにする。出力は、視覚出力として一般的に説明しているが、信頼できる出力マネージャの使用、および本明細書で述べる技術は、任意のタイプの信頼できる出力(オーディオ、プリンタまたは他の出力など)に適用することができ、本発明は、視覚出力に限定されないことを理解されたい。
(信頼できるUIエンジンの安全な入力機能)
入力に関して、本発明のある実施形態によれば、信頼できるUIエンジンは、信頼できる入力へのアクセスを制御する。ユーザが、高保証のオペレーティングシステムを含むコンピュータシステム上のプログラムと対話する場合、ユーザは、マウス161やキーボード162(図1)などのユーザ入力装置を用いてそれを行う。ある実施形態では、一部またはすべてのユーザ入力装置が、暗号化をサポートすることができる。こうした暗号化機能付きの装置によって、入力装置およびネクサスは、安全な接続を確立することができ、したがって、ハードウェア攻撃を回避することができる。暗号化されない他の入力装置も存在することができるが、暗号化されないユーザ入力装置からの入力は、ネクサスまたはネクサス上で実行されるエンティティのためではなく、ホストシステムのためだけに受け付けられる。
したがって、安全な入力を提供するために、信頼できるUIエンジン、および非ホスト側エンティティは、ユーザ入力の少なくとも1つのストリームの初期フローを制御する。図3は、本発明の一実施形態による入力を示す、2つの実行環境を含むコンピュータシステムのブロック図である。図3に示すように、信頼できる入力装置300は、コンピュータシステム110に、暗号化されたユーザ入力データを送信する。暗号化されたデータは、ホスト側オペレーティングシステム134(1)の入力スタック305に届く。それは、暗号化されているので、ホスト側オペレーティングシステム134(1)によって使用することができない。したがって、それは、ホスト側での可能な攻撃から保護される。暗号化されたデータは、ネクサス134(2)に渡される。
図3では、ホスト側(論理的分離202の左側)とネクサス側(論理的分離202の右側)の両方がさらに、ユーザレベル310およびカーネルレベル320に分割されている。これらは、オペレーティングシステムのユーザレベルとカーネルレベル実行の区別に対応する。ネクサス134(2)が暗号化されたユーザ入力データを受信すると、それが、入力用の信頼できるサービスプロバイダ(TSP:trusted service provider)325に渡され、このTSPで、暗号化されたユーザ入力データが復号される。実施形態によっては、安全な入力装置300は、コンピュータシステム110と通信するために、例えば共有された秘密および確認を用いて、通信チャネルを確立しなければならない。安全な入力装置300との通信チャネルが必要である場合、TSP325は、安全な入力装置との通信チャネルを確立し管理する。別の実施形態では、ユーザ入力を確認することができ、TSP325は、例えばユーザ入力データのデジタル署名を確認することによって、ユーザ入力データの確認を提供する。
次いで、復号されたユーザ入力データは、信頼できるユーザインタフェース(UI)エンジン(TUE:trusted user interface engine)に、具体的には信頼できる入力マネージャ340に渡される。ユーザ入力がホスト側に向けられるべきか、それともネクサス、またはネクサスエージェント375などのネクサスのエージェントに向けたものであるかの判断が、信頼できる入力マネージャによって行われる。入力がホスト側で使用するためのものであれば、ホスト側で使用するために、矢印C390で示すように、入力スタック305に向けられる。したがって、ネクサス側で判断が行われた後に初めて、復号された入力データがホスト側に届く。
ある実施形態では、コンピュータシステム110は、ユーザに、ウィンドウ、ダイアログボックス、およびアイコンなどのグラフィカルユーザインタフェース要素が並べられた、ウィンドウインタフェース環境を提示する。グラフィカルユーザインタフェース要素は、ホスト側のプロセスに関連付けられ、またはそれによって「所有される」ことができ、あるいはネクサス側のプロセスに関連付けられる。ウィンドウシステムを使用する場合、ユーザのディスプレイに、アプリケーションからの情報を表示する画面上の領域であるウィンドウが並べられる。アプリケーションは、1または複数のウィンドウを有することができる。表示されるすべてのウィンドウのうちの1つのウィンドウに、フォーカスがある。このフォーカスウィンドウを、例えばウィンドウの周りの枠が他とは異なることによって示すことができる。
従来のウィンドウシステムは、あるウィンドウにフォーカスがあるとき、そのウィンドウは、一般に、ユーザが入力する対象である。したがって、ユーザがキーボードを使用して情報を入力すると、多くの場合、キー入力のデータが、オペレーティングシステムによって、フォーカスがあるウィンドウを所有するアプリケーションに送信される。一部のキー入力および他の入力操作は、フォーカスがあるウィンドウを所有するアプリケーションに送信されない場合がある。例えば、ウィンドウシステムによっては、すべてのウィンドウを最小化するキー入力コマンドがある。こうしたコマンドは、ウィンドウシステムによって処理され、フォーカスがあるウィンドウを所有するアプリケーションには送信されない。フォーカスがあるウィンドウを所有するアプリケーションは、ウィンドウの最小化についての通知を受信することができる。しかし、ユーザのキー入力は、フォーカスがあるウィンドウを所有するアプリケーションではなく、ウィンドウシステムのためのものであり、そのアプリケーションには送信されない。
一実施形態では、信頼できるUIエンジンが,信頼できるウィンドウマネージャ(TWinMgr)345を含む。この信頼できるウィンドウマネージャ345は、ネクサス側のウィンドウおよびウィンドウの動作を管理する。信頼できるウィンドウマネージャ345は、信頼できる入力マネージャ340と連携して働いて、ユーザ入力がどこに渡されるべきかを判断する。ある実施形態では、この判断は、少なくとも一部は、フォーカスがあるウィンドウまたはグラフィカルユーザ要素がネクサス内のプロセスによって所有されているか、それともホスト内のプロセスによって所有されているかに基づく。
信頼できるウィンドウマネージャは、枠などのウィンドウの装飾を維持し、またウィンドウの最大化、最小化、サイズ変更などのウィンドウ機能のためのユーザ入力に応答し得る。ある実施形態では、信頼できるウィンドウマネージャは、ユーザ入力データの一部の解釈をも実施する。ある実施形態では、例えば、マウスボタンが押下され、またはキー入力が行われたことを表すユーザ入力の生データは、ホストウィンドウマネージャ346によって一般に実施される機能に類似した、ネクサスエージェント375などのネクサスのエージェントにとってより使用に適した形にして解釈される。
入力が、ネクサスエージェント375などのネクサスのエージェントに対するものであれば、このデータは、信頼できる入力マネージャから、正確な宛先のネクサスモードのプロセスに渡される。これは、矢印A370によって示されており、この矢印は、ユーザ入力データがネクサスエージェント375に送信されることを示している。ある実施形態では、他のデータを、TOM350、またはネクサス側の他のエンティティに渡すことができる。ネクサス側のグラフィカルユーザインタフェース要素の表示は、信頼できる出力マネージャ(TOM:trusted output manager)350によって処理され、したがって、ネクサス側のグラフィカルユーザインタフェース要素上のマウスの動きは、矢印B380によって示されるように、TOM350に渡される。
図4は、セキュリティ保護された実行環境(ネクサス)内のエンティティから、安全な入力を提供するための、本発明の一実施形態による方法のフローチャートである。ステップ400で、ユーザ入力装置から、ユーザ入力が受け付けられる。ステップ410で、ユーザ入力がネクサスに向けたものであるかどうか、例えばユーザ入力がネクサス内で実行されるエージェントのためのものであるかどうかが判断される。またユーザ入力がネクサス宛てでない場合、ステップ420で、ユーザ入力が、ホストに転送される。
(信頼できるUIエンジンの安全な出力機能)
信頼できるUIエンジンの安全な出力機能は、信頼できる出力マネージャ350を介して信頼できるUIエンジン330によって提供される。図5は、本発明の一実施形態による出力を示す、2つの実行環境を含むコンピュータシステムのブロック図である。図5の矢印D500で示すように、ネクサスエージェント375が、出力装置520のための出力をもつ場合、その出力は、信頼できるUIエンジン330に中継される。出力のセキュリティを提供するために、信頼できる出力マネージャ350は、出力用の信頼できるサービスプロバイダ(TSP)530との、すなわち、矢印E510を見て分かるように、出力装置520との、ネクサス側のコンタクトポイントとして機能する。
上述したように、出力装置520をセキュリティ保護することができる、いくつかのやり方がある。ある実施形態では、暗号化が使用される。出力装置520が暗号化された形の出力データを受信し、この出力データが正確に復号される場合、それは、その出力データ優先し、ディスプレイ上で、それが非ネクサスの出力データを上書きできるようにする。別の実施形態では、隠されたメモリが使用される。信頼できる出力マネージャ350は、出力TSP530と対話して、出力装置520のセキュリティを維持する。
出力上に存在するセキュリティの種類に関係なく、信頼できる出力マネージャ350は、信頼できるウィンドウマネージャ345を組み込むコンピュータシステム110内の、信頼できるウィンドウマネージャ345からのどんな出力情報をも処理することを含めて、ネクサス側と出力装置520の間のすべての対話を管理する。ネクサスエージェント375などのネクサスのエージェントによって所有されるウィンドウからの出力情報は、信頼できる出力マネージャ350によって処理される。さらに、ネクサスの他のいずれかのグラフィカルユーザインタフェース要素が存在する場合、こうした要素の表示は、信頼できる出力マネージャによって処理される。例えば、マウスがこうしたネクサスのウィンドウ上を移動する場合、セキュリティ問題を引き起こさずに、ホスト側にマウスを制御させることは困難である。したがって、マウスがネクサスのウィンドウ上にあるときのマウスカーソルの表示は、ネクサス側によって処理される。ネクサスのすべてのウィンドウおよびネクサスの他のグラフィカルユーザインタフェース要素の出力情報は、表示するため、信頼できる出力マネージャによって合成される。さらに、ホストウィンドウマネージャ346とのどんな対話もが、信頼できるUIエンジン330によって処理される。
(信頼できるUIエンジンの安全な出力機能)
一般に、ダイアログフレームワークサービスを、プロセスのために提供することができる。こうしたサービスは、表示する所望のグラフィカルユーザインタフェース要素を表すファイルを受け付ける。例えば、このファイルは、特定の質問、応答オプション、およびダイアログボックスを提示するために使用する言語を含めて、ユーザに提示するダイアログボックスを表す情報を含む、XMLファイルとすることができる。ダイアログフレームワークサービスは、正確なダイアログボックスをレンダリングする情報を含む。しかし、ホスト側のダイアログフレームワークサービスに依存することによって、セキュリティ問題がもたらされる。したがって、一実施形態では、信頼できるレンダリングインタフェースが、信頼できるUIエンジン330内に設けられる。この信頼できるレンダリングインタフェースは、ネクサスエージェント375などのネクサスのエージェントのために、完全なダイアログフレームワークサービスを提供する。信頼できるUIエンジン330として、信頼できるレンダリングインタフェースは、表示用のグラフィカルユーザインタフェース要素、および信頼できるレンダリングインタフェースがどのように要求されたグラフィカルユーザインタフェースをレンダリングし、それを管理するかを指定する情報を受信し、その中のアクティブなグラフィカルユーザインタフェース上でユーザイベントが発生したときに、ネクサスエージェント375を変更する。このようにして、信頼できるUIエンジン330は、ホスト側のローカライズサービスの使用を要求せずに、ネクサスエージェント375がグラフィカルユーザインタフェースのために必要とするローカライズサービスの一部を提供する。例えば信頼できるUIエンジン330は、多言語テキストサービスを提供することができる。
一実施形態では、信頼できるUIエンジン330内に、直接レンダリングインタフェースが設けられる。この直接レンダリングインタフェースは、信頼できるレンダリングインタフェースに加えて設けることができ、また信頼できるレンダリングインタフェースがない場合でも存在することができる。この直接レンダリングインタフェースは、それ自体のレンダリングを希望する、ネクサスエージェント375などのネクサスのエージェントのための最小限必要な機構を提供する。ネクサスエージェント375は、信頼できるUIエンジン330に依存するのではなく、それ自体のスクリーンビットマップを計算して、仕様からそれをレンダリングする。信頼できるUIエンジンは、信頼できる入力マネージャ340を介して、ユーザ入力操作についての通知を送信する。
図6は、セキュリティ保護された実行環境内のエンティティから安全な出力を提供するための、本発明の一実施形態による方法のフローチャートである。ステップ600で、ネクサスなどのセキュリティ保護された実行環境内の特定のソースエンティティから、出力が受け付けられる。ステップ610で、出力が、出力装置に安全に転送される。
(結論)
上記の例は、例示するために提示されたものにすぎず、本発明を限定するものとして解釈すべきでない。本発明について、様々な実施形態を参照して説明したが、本明細書で使用した言葉は、限定ではなく、説明および例示の言葉であることが理解されよう。さらに、本明細書では、本発明について、特定の手段、材料および実施形態を参照して説明したが、本発明は、本明細書で開示した詳細に限定されるものではなく、本発明の範囲は、添付の特許請求の範囲内のものなど、機能的に等価の構造、方法、および使用に及ぶ。当業者は、本仕様の教示の助けによって、それに対する多くの修正を行うことができ、また本発明の範囲および精神から逸脱せずに、その態様を変更することができる。
本発明の態様を実施することができる、例示的なコンピューティング環境のブロック図である。 いくつかの相互作用およびいくつかの相互分離を維持する、2つの例示的な実行環境のブロック図である。 本発明の一実施形態にかかる入力を示す、2つの実行環境を含むコンピュータシステムのブロック図である。 セキュリティ保護された実行環境内のエンティティから安全な入力を提供するための、本発明の一実施形態にかかる方法のフローチャートである。 本発明の一実施形態にかかる出力を示す、2つの実行環境を含むコンピュータシステムのブロック図である。 セキュリティ保護された実行環境内のエンティティから安全な出力を提供するための、本発明の一実施形態にかかる方法のフローチャートである。
符号の説明
110 コンピュータ
134(1),134(2) オペレーティングシステム
300 信頼できる入力
305 入力スタック
310 ユーザレベル
320 カーネルレベル
325 入力TSP
340 信頼できる入力マネージャ
346 ホストウィンドウマネージャ
375 ネクサスエージェント

Claims (12)

  1. セキュリティ保護された第1の実行環境およびセキュリティ保護されていない第2の実行環境を含むシステム上で、前記セキュリティ保護された第1の実行環境に安全なユーザインタフェースを提供するための方法であって、
    ユーザ入力装置から暗号化されたユーザ入力を、前記第2の実行環境において受け付け、前記第1の実行環境に転送すること、
    前記第1の実行環境において、前記暗号化されたユーザ入力を復号すること、
    少なくとも1つのグラフィカルユーザ要素のうち、フォーカスを有するグラフィカルユーザ要素を決定すること、
    前記フォーカスを有するグラフィカルユーザ要素を所有するプロセスが、前記第1の実行環境または前記第2の実行環境のいずれかに属するかを決定すること、
    前記第2の実行環境に属する場合には、復号されたユーザ入力を前記第2の実行環境に転送すること、および、
    前記第1の実行環境に属する場合には、前記復号されたユーザ入力の前記第1の実行環境内の特定の宛先エンティティを決定し、前記復号されたユーザ入力を前記特定の宛先エンティティに転送すること
    を備えたことを特徴とする方法。
  2. 前記ユーザ入力装置から暗号化されたユーザ入力を受け付けることは、安全な通信チャネルを確立して、前記ユーザ入力を受け付けることを備えたことを特徴とする請求項1に記載の方法。
  3. 前記ユーザ入力装置から暗号化されたユーザ入力を受け付けることは、前記ユーザ入力を確認することを備えたことを特徴とする請求項1に記載の方法。
  4. 前記復号されたユーザ入力を前記特定の宛先エンティティに転送することは、前記復号されたユーザ入力を解釈することを備えたことを特徴とする請求項1に記載の方法。
  5. 前記セキュリティ保護された第1の実行環境内の特定のソースエンティティからの出力データを、前記第1の実行環境内において受け付けること、および、
    前記出力データを暗号化し、該暗号化された出力データを出力装置に転送することを備えたことを特徴とする請求項に記載の方法。
  6. 前記セキュリティ保護された第1の実行環境内の特定のソースエンティティからの出力データを、前記第1の実行環境内において受け付けること、および、
    前記出力データを隠されたメモリに転送することを備えたことを特徴とする請求項に記載の方法。
  7. セキュリティ保護された第1の実行環境およびセキュリティ保護されていない第2の実行環境を含むシステム上で、前記セキュリティ保護された第1の実行環境に安全なユーザインタフェースを提供するためのコンピュータ実行可能命令を含むコンピュータ読取り可能記録媒体であって、前記コンピュータ実行可能命令は、
    ユーザ入力装置から暗号化されたユーザ入力を、前記第2の実行環境において受け付け、前記第1の実行環境に転送すること、
    前記第1の実行環境において、前記暗号化されたユーザ入力を復号すること、
    少なくとも1つのグラフィカルユーザ要素のうち、フォーカスを有するグラフィカルユーザ要素を決定すること、
    前記フォーカスを有するグラフィカルユーザ要素を所有するプロセスが、前記第1の実行環境または前記第2の実行環境のいずれかに属するかを決定すること、
    前記第2の実行環境に属する場合には、復号されたユーザ入力を前記第2の実行環境に転送すること、および、
    前記第1の実行環境に属する場合には、前記復号されたユーザ入力の前記第1の実行環境内の特定の宛先エンティティを決定し、前記復号されたユーザ入力を前記特定の宛先エンティティに転送すること
    を備えた動作を実行することを特徴とするコンピュータ読取り可能記録媒体。
  8. 前記ユーザ入力装置から暗号化されたユーザ入力を受け付けることは、安全な通信チャネルを確立して、前記ユーザ入力を受け付けることを備えたことを特徴とする請求項に記載のコンピュータ読取り可能記録媒体。
  9. 前記ユーザ入力装置から暗号化されたユーザ入力を受け付けることは、前記ユーザ入力を確認することを備えたことを特徴とする請求項に記載のコンピュータ読取り可能記録媒体。
  10. 前記復号されたユーザ入力を前記特定の宛先エンティティに転送することは、前記復号されたユーザ入力を解釈することを備えたことを特徴とする請求項に記載のコンピュータ読取り可能記録媒体。
  11. 前記コンピュータ実行可能命令は、
    前記セキュリティ保護された第1の実行環境内の特定のソースエンティティからの出力データを、前記第1の実行環境内において受け付けること、および、
    前記出力データを暗号化し、該暗号化された出力データを出力装置に転送することを備えたことを特徴とする請求項に記載のコンピュータ読取り可能記録媒体。
  12. 前記コンピュータ実行可能命令は、
    前記セキュリティ保護された第1の実行環境内の特定のソースエンティティからの出力データを、前記第1の実行環境内において受け付けること、および、
    前記出力データを隠されたメモリに転送することを備えたことを特徴とする請求項に記載のコンピュータ読取り可能記録媒体。
JP2004278412A 2003-10-24 2004-09-24 高い保証の実行環境を備えたシステムにおける信頼できるエージェントへの安全な入出力の提供 Expired - Fee Related JP4838505B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/693,407 2003-10-24
US10/693,407 US7496768B2 (en) 2003-10-24 2003-10-24 Providing secure input and output to a trusted agent in a system with a high-assurance execution environment

Publications (2)

Publication Number Publication Date
JP2005129034A JP2005129034A (ja) 2005-05-19
JP4838505B2 true JP4838505B2 (ja) 2011-12-14

Family

ID=34394590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004278412A Expired - Fee Related JP4838505B2 (ja) 2003-10-24 2004-09-24 高い保証の実行環境を備えたシステムにおける信頼できるエージェントへの安全な入出力の提供

Country Status (10)

Country Link
US (1) US7496768B2 (ja)
EP (1) EP1526425A3 (ja)
JP (1) JP4838505B2 (ja)
KR (1) KR101109361B1 (ja)
CN (1) CN1609810A (ja)
AU (1) AU2004214620B2 (ja)
BR (1) BRPI0404095A (ja)
CA (1) CA2481040C (ja)
MX (1) MXPA04010157A (ja)
RU (1) RU2365045C2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464412B2 (en) * 2003-10-24 2008-12-09 Microsoft Corporation Providing secure input to a system with a high-assurance execution environment
US7690033B2 (en) * 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US20060075236A1 (en) * 2004-09-30 2006-04-06 Marek James A Method and apparatus for high assurance processing
US7721094B2 (en) * 2005-05-06 2010-05-18 Microsoft Corporation Systems and methods for determining if applications executing on a computer system are trusted
US7752436B2 (en) 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US20070179897A1 (en) * 2006-01-27 2007-08-02 Stefan Andersson Conditional stream access
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
JP4233585B2 (ja) 2006-07-25 2009-03-04 株式会社エヌ・ティ・ティ・ドコモ ペリフェラル切替装置及びペリフェラル切替制御装置
US7913292B2 (en) * 2006-10-18 2011-03-22 Microsoft Corporation Identification and visualization of trusted user interface objects
JP4998019B2 (ja) * 2007-03-06 2012-08-15 富士通株式会社 状態表示制御装置
JP5066112B2 (ja) * 2009-02-19 2012-11-07 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9323921B2 (en) * 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
WO2013030967A1 (ja) * 2011-08-30 2013-03-07 富士通株式会社 バックアップ方法、およびバックアッププログラム
US9389933B2 (en) * 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9781118B2 (en) * 2013-03-14 2017-10-03 Intel Corporation Differentiated containerization and execution of web content based on trust level and other attributes
US9477823B1 (en) 2013-03-15 2016-10-25 Smart Information Flow Technologies, LLC Systems and methods for performing security authentication based on responses to observed stimuli
KR102210995B1 (ko) * 2013-04-24 2021-02-02 삼성전자 주식회사 전자 장치에서 보안 정보를 통지하기 위한 장치와 방법 및 이를 위한 컴퓨터로 판독 가능한 기록 매체
US9633210B2 (en) 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
US20150113241A1 (en) * 2013-10-21 2015-04-23 Jason Martin Establishing physical locality between secure execution environments
US10097513B2 (en) 2014-09-14 2018-10-09 Microsoft Technology Licensing, Llc Trusted execution environment extensible computing device interface
CN104317651A (zh) * 2014-10-13 2015-01-28 浪潮电子信息产业股份有限公司 一种基于可信软件栈的接口调用方法
RU2606556C2 (ru) * 2015-02-20 2017-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ ввода конфиденциальных данных
US11405383B2 (en) * 2017-01-13 2022-08-02 Huawei Technologies Co., Ltd. Authorization credential migration method, terminal device, and service server
US11126754B2 (en) * 2018-11-30 2021-09-21 BicDroid Inc. Personalized and cryptographically secure access control in operating systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1250834B (it) 1991-07-31 1995-04-21 Fiat Auto Spa Sonda per impianti di climatizzazione per veicoli.
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US5537544A (en) 1992-09-17 1996-07-16 Kabushiki Kaisha Toshiba Portable computer system having password control means for holding one or more passwords such that the passwords are unreadable by direct access from a main processor
US6630926B2 (en) 2000-12-07 2003-10-07 International Business Machines Corporation Apparatus and method for verifying keystrokes within a computing system
GB2376761A (en) * 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
JP2003258795A (ja) * 2002-02-28 2003-09-12 Hitachi Ltd コンピュータ集合体運用方法及びその実施システム並びにその処理プログラム
US7464412B2 (en) * 2003-10-24 2008-12-09 Microsoft Corporation Providing secure input to a system with a high-assurance execution environment

Also Published As

Publication number Publication date
EP1526425A2 (en) 2005-04-27
KR20050039548A (ko) 2005-04-29
AU2004214620A1 (en) 2005-05-12
BRPI0404095A (pt) 2005-06-21
RU2365045C2 (ru) 2009-08-20
CA2481040A1 (en) 2005-04-24
JP2005129034A (ja) 2005-05-19
CN1609810A (zh) 2005-04-27
AU2004214620B2 (en) 2010-04-01
EP1526425A3 (en) 2005-07-20
KR101109361B1 (ko) 2012-01-31
MXPA04010157A (es) 2005-04-28
CA2481040C (en) 2012-03-13
US7496768B2 (en) 2009-02-24
US20050091503A1 (en) 2005-04-28
RU2004131021A (ru) 2006-04-10

Similar Documents

Publication Publication Date Title
JP4838505B2 (ja) 高い保証の実行環境を備えたシステムにおける信頼できるエージェントへの安全な入出力の提供
JP6347831B2 (ja) ハイパーバイザに制御されるシステムにおいてゲスト・イベントを処理するための方法、データ処理プログラム、コンピュータ・プログラム製品、およびデータ処理システム
US7882566B2 (en) Providing secure input to a system with a high-assurance execution environment
JP4698195B2 (ja) 高信頼度実行環境を有するシステムでのグラフィカルユーザインターフェースの提供の方法とシステム
US8176324B1 (en) Method and system for a secure virtual keyboard
US9461819B2 (en) Information sharing system, computer, project managing server, and information sharing method used in them
RU2367006C2 (ru) Интегрирование высоконадежных функций в приложение посредством разложения приложения
CN103930899B (zh) 用于管理在设备处输入的公用数据和私人数据的方法
EP3783518A1 (en) Display method and device, and storage medium
US9177164B2 (en) System and method for a parallel world of security for non secure environments
EP3776223B1 (en) Secured computer system
KR20120019614A (ko) 가상화를 이용한 키보드 보안 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070919

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

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: 20110927

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: 20110930

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

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4838505

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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