(57)【特許請求の範囲】
【請求項１】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイで表示されるデータのセキュリティを維持する方法であって、
前記機密保護された実行環境で稼動する第１プロセスに関連する少なくとも１つのネクサスグラフィカルユーザインターフェース要素の画像を保管するステップと、
前記ネクサスグラフィカルユーザインターフェース要素のどの部分も、前記ディスプレイ上で前記第２実行環境に関連するグラフィカルユーザインターフェース要素によって隠蔽されないように、前記ディスプレイ上の前記ネクサスグラフィカルユーザインターフェース要素を完全にディスプレイに表示するステップと
を含むことを特徴とする方法。
【請求項２】
前記ネクサスグラフィカルユーザインターフェース要素を表示する前記ステップは、
前記ネクサスグラフィカルユーザインターフェース要素は透明の領域を含まないことを保証すること
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ネクサスグラフィカルユーザインターフェース要素をディスプレイに表示する前記ステップは、前記ネクサスグラフィカルユーザインターフェース要素のどの部分もが、前記機密保護された実行環境で稼動する第２プロセスに関連するグラフィカルユーザインターフェース要素によって隠蔽されないように前記ネクサスグラフィカルユーザインターフェース要素を表示することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
ユーザセキュアディスプレイ指示の受領をもって前記ディスプレイに前記ネクサスグラフィカルユーザインターフェース要素だけを表示すること
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持する方法であって、
前記機密保護された実行環境に関連するネクサスユーザ機密を保管するステップと、
前記ネクサスユーザ機密を、ネクサスグラフィカルユーザインターフェース要素の一部として前記ディスプレイに表示するステップであって、前記ネクサスグラフィカルユーザインターフェース要素は、前記機密保護された実行環境で稼動するプロセスに関連する、表示するステップと
を含むことを特徴とする方法。
【請求項６】
前記ネクサスユーザ機密を含むネクサスグラフィカルユーザインターフェース要素をディスプレイに表示する前記ステップは、
ユーザネクサスユーザ機密表示指示を受け入れることと、
前記ネクサスユーザ機密を表示することと
を含むことを特徴とする請求項５に記載の方法。
【請求項７】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持する方法であって、
前記ディスプレイ上の表示のために、それぞれが前記機密保護された実行環境で稼動するプロセスに関連する少なくとも２つのネクサスグラフィカルデータ要素を受け入れるステップと、
少なくとも２つのネクサスグラフィカルユーザインターフェース要素を表示するステップであって、該ネクサスグラフィカルユーザインターフェース要素のそれぞれは、前記ネクサスグラフィカルデータ要素および共通グラフィカルユーザインターフェースデコレーションの１つを含む、表示するステップと
を含むことを特徴とする方法。
【請求項８】
前記共通グラフィカルユーザインターフェースデコレーションは、色付きボーダーを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記共通グラフィカルユーザインターフェースデコレーションは、１つまたは複数のランダムに選択された画像を含むことを特徴とする請求項７に記載の方法。
【請求項１０】
設定時間枠が経過した時に、前記共通グラフィカルユーザインターフェースデコレーションを変更すること
をさらに含むことを特徴とする請求項７に記載の方法。
【請求項１１】
ユーザデコレーション変更指示を受けた時に、前記共通グラフィカルユーザインターフェースデコレーションを変更すること
をさらに含むことを特徴とする請求項７に記載の方法。
【請求項１２】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持する方法であって、
前記機密保護された実行環境で稼動するプロセスに関連するネクサスグラフィカルユーザインターフェース要素のパブリックタイトル情報およびプライベートタイトル情報を保管するステップと、
前記ネクサスグラフィカルユーザインターフェース要素を表示する時に、前記機密保護された実行環境上のウィンドウ管理機能のために前記プライベートタイトル情報を使用するステップと、
前記パブリックタイトル情報を前記第２実行環境での使用のために提供するステップと
を含むことを特徴とする方法。
【請求項１３】
前記第２実行環境は、前記ディスプレイ上のグラフィカルユーザインターフェース要素を管理するホストウィンドウマネージャを含み、前記ホストウィンドウマネージャは、前記ネクサスグラフィカルユーザインターフェース要素に係わるシャドウグラフィカルユーザインターフェース要素を作成し、前記パブリックタイトルは、前記ホストウィンドウマネージャによって使用されることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ネクサスグラフィカルユーザインターフェース要素のどの部分もが、前記ディスプレイ上の前記第２実行環境に関連するグラフィカルユーザインターフェース要素によって隠蔽されないように、前記ディスプレイ上の前記ネクサスグラフィカルユーザインターフェース要素のそれぞれを完全にディスプレイに表示するステップであって、前記ネクサスグラフィカルユーザインターフェース要素のそれぞれは、共通グラフィカルユーザインターフェースデコレーションを含む、表示するステップと、
前記機密保護された実行環境に関連するネクサスユーザ機密を保管するステップと、
前記ネクサスユーザ機密を含むネクサスユーザ機密グラフィカルユーザインターフェース要素を前記ディスプレイに表示するステップと
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイで表示されるデータのセキュリティを維持するコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
前記機密保護された実行環境で稼動する第１プロセスに関連する少なくとも１つのネクサスグラフィカルユーザインターフェース要素の画像を保管することと、
前記ネクサスグラフィカルユーザインターフェース要素のどの部分も、前記ディスプレイ上で前記第２実行環境に関連するグラフィカルユーザインターフェース要素によって隠蔽されないように、前記ディスプレイ上の前記ネクサスグラフィカルユーザインターフェース要素を全部完全にディスプレイに表示することと
を含む動作を実行することを特徴とするコンピュータ可読媒体。
【請求項１６】
前記ネクサスグラフィカルユーザインターフェース要素を表示する前記動作は、
前記ネクサスグラフィカルユーザインターフェース要素が透明の領域を含まないことを保証すること
を含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記ネクサスグラフィカルユーザインターフェース要素をディスプレイに表示する前記動作は、前記ネクサスグラフィカルユーザインターフェース要素のどの部分もが、前記機密保護された実行環境で稼動する第２プロセスに関連するグラフィカルユーザインターフェース要素によって隠蔽されないように前記ネクサスグラフィカルユーザインターフェース要素を表示することを含むことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記コンピュータ実行可能命令は、
ユーザセキュアディスプレイ指示の受領をもって前記ディスプレイに前記ネクサスグラフィカルユーザインターフェース要素だけを表示すること
をさらに含む動作を実行するように適合されていることを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持するコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令が、
前記機密保護された実行環境に関連するネクサスユーザ機密を保管することと、
前記ネクサスユーザ機密を、ネクサスグラフィカルユーザインターフェース要素の一部として前記ディスプレイに表示することであって、前記ネクサスグラフィカルユーザインターフェース要素は、前記機密保護された実行環境で稼動するプロセスに関連する、表示することと
を含む動作を実行することを特徴とするコンピュータ可読媒体。
【請求項２０】
前記ネクサスユーザ機密を含むネクサスグラフィカルユーザインターフェース要素をディスプレイに表示する前記動作は、
ユーザネクサスユーザ機密表示指示を受け入れることと、
前記ネクサスユーザ機密を表示することと
を含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持するコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
前記ディスプレイ上の表示のために、それぞれが前記機密保護された実行環境で稼動するプロセスに関連する少なくとも２つのネクサスグラフィカルデータ要素を受け入れることと、
少なくとも２つのネクサスグラフィカルユーザインターフェース要素を表示することであって、該ネクサスグラフィカルユーザインターフェース要素のそれぞれは、前記ネクサスグラフィカルデータ要素および共通グラフィカルユーザインターフェースデコレーションの１つを含む、表示することと
を含む動作を実行することを特徴とするコンピュータ可読媒体。
【請求項２２】
前記共通グラフィカルユーザインターフェースデコレーションは、色付きボーダーを含むことを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記共通グラフィカルユーザインターフェースデコレーションは、１つまたは複数のランダムに選択された画像を含むことを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２４】
前記コンピュータ実行可能命令は、
設定時間枠が経過した時に、前記共通グラフィカルユーザインターフェースデコレーションを変更すること
をさらに含む動作を実行するように適合されていることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２５】
前記コンピュータ実行可能命令は、
ユーザデコレーション変更指示を受けた時に、前記共通グラフィカルユーザインターフェースデコレーションを変更すること
をさらに含む動作を実行するように適合されることを特徴とする請求項２１に記載のコンピュータ可読媒体。
【請求項２６】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持するコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
前記機密保護された実行環境で稼動するプロセスに関連するネクサスグラフィカルユーザインターフェース要素のパブリックタイトル情報およびプライベートタイトル情報を保管することと、
前記ネクサスグラフィカルユーザインターフェース要素を表示する時に、前記機密保護された実行環境上のウィンドウ管理機能のために前記プライベートタイトル情報を使用することと、
前記パブリックタイトル情報を前記第２実行環境での使用のために提供することと
を含む動作を実行することを特徴とするコンピュータ可読媒体。
【請求項２７】
前記第２実行環境は、前記ディスプレイ上のグラフィカルユーザインターフェース要素を管理するホストウィンドウマネージャを含み、前記ホストウィンドウマネージャは、前記ネクサスグラフィカルユーザインターフェース要素に係わるシャドウグラフィカルユーザインターフェース要素を作成し、前記パブリックタイトルは、前記ホストウィンドウマネージャによって使用されることを特徴とする請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
前記コンピュータ実行可能命令は、
前記ネクサスグラフィカルユーザインターフェース要素のどの部分もが、前記ディスプレイ上の前記第２実行環境に関連するグラフィカルユーザインターフェース要素によって隠蔽されないように、前記ディスプレイ上の前記ネクサスグラフィカルユーザインターフェース要素のそれぞれを全部完全にディスプレイに表示することであって、前記ネクサスグラフィカルユーザインターフェース要素のそれぞれは、共通グラフィカルユーザインターフェースデコレーションを含む、表示することと、
前記機密保護された実行環境に関連するネクサスユーザ機密を保管することと、
前記ネクサスユーザ機密を含むネクサスユーザ機密グラフィカルユーザインターフェース要素を前記ディスプレイに表示することと
をさらに含む動作を実行するように適合されていることを特徴とする請求項２６に記載のコンピュータ可読媒体。
【請求項２９】
１つの機密保護された実行環境および１つの第２実行環境を含むシステムのディスプレイに表示されるデータのセキュリティを維持するシステムであって、
前記機密保護された実行環境で稼動するプロセスに関連するネクサスグラフィカルユーザインターフェース要素のプライベートタイトル情報、および前記機密保護された実行環境に関連するネクサスユーザ機密とを保管するための機密保護された第１実行環境ストレージと、
前記ネクサスグラフィカルユーザインターフェース要素のパブリックタイトル情報を保管する第２実行環境ストレージと、
前記ネクサスグラフィカルユーザインターフェース要素のどの部分もが、前記ディスプレイ上の前記第２実行環境に関連するグラフィカルユーザインターフェース要素によって隠蔽されないように、前記ディスプレイ上の前記ネクサスグラフィカルユーザインターフェース要素のそれぞれを全部完全にディスプレイに表示するトラステッドウィンドウマネージャであって、該ネクサスグラフィカルユーザインターフェース要素のそれぞれが、共通グラフィカルユーザインターフェースデコレーションおよび前記プライベートタイトル情報とを含む、トラステッドウィンドウマネージャと
を含むことを特徴とするシステム。
【請求項３０】
前記トラステッドウィンドウマネージャは、前記ネクサスユーザ機密を含むネクサスユーザ機密グラフィカルユーザインターフェース要素を前記ディスプレイに表示することを特徴とする請求項２９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータセキュリティの分野に関する。具体的には、本発明は、グラフィカルユーザインターフェース要素を複数の実行環境のそれぞれのプロセスによって所有できるようにするグラフィカルユーザインターフェースを用いる、単一コンピューティングデバイス上の複数の実行環境（たとえばオペレーティングシステム）の使用に関する。
【背景技術】
【０００２】
現代のコンピューティングでは、１つのコンピュータで実行できる多数のタスクが、あるレベルのセキュリティを必要とする。ある１つのレベルのセキュリティを提供するために、複数のオプションがある。１つは、すべてのセキュアアプリケーションを、可能な非セキュア要素から完全に分離されたコンピュータで実行するか、仮想コンピュータモニタ（ＶＭＭ）を使用して、単一のコンピュータシステムで稼動する２つの実行環境（たとえばオペレーティングシステム）の間の完全な分離を可能にすることである。しかし、これは、非実用的である可能性がある。コストまたは便利さの理由から、セキュア実行環境が、セキュリティを保証されないアプリケーションでリソースを共有する必要がある場合があり、これらのアプリケーションおよびそのリソースが、攻撃者に対して脆弱である場合がある。さらに、ＶＭＭが使用される場合に、ＶＭＭが、マシン（コンピュータ）およびそのすべてのデバイスの完全な仮想化を必要とする（これによって、ＶＭＭが可能なすべてのデバイスについてそれ自体のデバイスドライバを提供することが必要になる）ので、ＶＭＭは、ほとんど無制限のさまざまなデバイスをマシンに追加することができるオープンアーキテクチャマシンによく適してはいない。
【０００３】
２つの実行環境の間でリソースを共有する能力を提供する１つの方法が、マシン上のほとんどのプロセスおよびデバイスを制御する１つの「メイン」オペレーティングシステムがあり、第２オペレーティングシステムも存在するコンピュータシステムを提供することである。この第２オペレーティングシステムは、ある限られたタスクを実行するメインオペレーティングシステムと一緒の、小規模の、目的を制限されたオペレーティングシステムである。オペレーティングシステムを「小規模の」または「目的を制限された」にする１つの方法が、小規模のオペレーティングシステムが、「メイン」オペレーティングシステムからあるインフラ基盤（たとえば、スケジューリング機能、メモリマネージャ、デバイスドライバなど）を借りることである。ＶＭＭによって、あるオペレーティングシステムが別のオペレーティングシステムから効果的に分離されるので、このインフラストラクチャの共有は、ＶＭＭを使用する場合には実用的でない。
【０００４】
ある他の技法を用いると、複数のオペレーティングシステムが、ＶＭＭの使用なしで、同一のマシン上にならんで存在できるようになる。そのような技法の１つが、ある１つのオペレーティングシステムに、他のオペレーティングシステムの「ホスト」として活動させることである（その「ホスト」がホスティングしているオペレーティングシステムを、「ゲスト」と呼ばれることがある）。この場合に、ホストオペレーティングシステムは、ゲストに、メモリおよびプロセッサ時間などのリソースを提供する。もう１つのそのような技法が、「exokernel（エキソカーネル）」を使用することである。exokernelは、ある種のデバイス（たとえば、プロセッサおよびメモリ）を管理し、オペレーティングシステム間のある種の対話（情報のやりとりをすること、相互作用ともいう）も管理するが、exokernelは、ＶＭＭと異なって、マシン全体を仮想化することはしない。exokernelが使用される時であっても、ある１つのオペレーティングシステム（たとえば、「メイン」オペレーティングシステム）が、他のオペレーティングシステムのインフラストラクチャ（インフラ基盤）の多くを提供する場合があり、その場合に、メインオペレーティングシステムを、やはり「ホスト」と呼ぶことができ、より小規模のオペレーティングシステムを「ゲスト」と呼ぶことができる。ホスティングモデルおよびexokernelモデルの両方が、インフラストラクチャの共有をサポートするオペレーティングシステム間の有用なタイプの対話を可能にする。
【０００５】
したがって、これらの技法を使用して、少なくとも２つの実行環境を伴うコンピュータシステムを提供することができる。その１つを、本明細書において「ネクサス（nexus）」と称する「高信頼度（high-assurance）」オペレーティングシステムとすることができる。高信頼度オペレーティングシステムは、その挙動に関する一定のレベルの信頼度（assurance）を提供するオペレーティングシステムである。たとえば、ネクサスは、ネクサスの外部の世界に情報を持たさないことが保証されるカーテンドメモリ（curtained memory：他から見えないメモリ）を備えることによって、およびある認証されたアプリケーションだけにネクサスの下で動作することおよびカーテンドメモリにアクセスすることを許可することによって、漏らしてはならない機密情報（たとえば、暗号キーなど）を扱うのに使用することができる。
【０００６】
２つの実行環境を有し、その一方がネクサスであるコンピュータシステムにおいて、ネクサスが、ゲストオペレーティングシステムであり、挙動に関する同一レベルの信頼度（assurance）の対象でない第２オペレーティングシステムが、ホストオペレーティングシステムであることが望ましい場合がある。これによって、ネクサスをできる限り小さくすることが可能になる。小規模のネクサスを用いると、ネクサスによって提供される信頼度（assurance）での高いレベルの信頼が可能になる。その結果、オペレーティングシステム機能が、ホストオペレーティングシステムによって実行される。
【０００７】
ホストオペレーティングシステムによって実行することができるそのようなオペレーティングシステムの１つが、ウィンドウイングシステムである。ウィンドウイングシステムが使用される時に、ユーザのディスプレイに、ウィンドウすなわちアプリケーションからの情報を表示する画面上の領域が取り込まれる。アプリケーションは、１つまたは複数のウィンドウを有することができる。
【０００８】
ウィンドウイングシステムが、ネクサスではなくホストオペレーティングシステムによって実行される時には、そのウィンドウイングシステムは、攻撃に対して脆弱である。そのような可能な攻撃の１つを、スプーフ（spoof：なりすまし）と呼びならわされている。スプーフは、ユーザが、あるハードウェア、システムソフトウェア、アプリケーションまたはエージェントソフトウェア、あるいは所与のウィンドウが、実際にはそうでないのに、信頼に値する実体であると思い込まされる攻撃である。攻撃者（アタッカー）は、信頼に値する実体になりすます。これは、ユーザ証明書を盗むのに利用されるか、あるいは高度にトラステッド(trusted:信頼できる、承認された)実体を使用していると考えるユーザによって入力される機密事項を扱う性質を帯びた他のデータをキャプチャ（捕獲）するのに利用されることが可能である。
【０００９】
たとえば、ネクサスが、ログイン（log-in）スクリーンを有するバンキングプログラム(金融プログラム)を実行するシステムにおいて、攻撃者は、ホストオペレーティングシステムで動作するプログラムを書き込み、バンキングプログラムのログインスクリーンと正確に同一に見えるウィンドウを表示することができる。ユーザが、このスプーフウィンドウにだまされる時には、そのユーザは、スプーフウィンドウに情報を入力する。この情報は、攻撃者によってキャプチャされ、その後、ユーザが知ることなく、攻撃者によって使用される可能性がある。
【００１０】
ウィンドウイングシステムは、スヌーカ（snooker：ペテンにかける、だます）として知られる攻撃にも脆弱である。スヌーカ攻撃では、攻撃者が、ユーザディスプレイを変更して、システムが安全でない時に、ユーザにシステムが安全であるように見えるようにする。たとえば、コンピュータシステムに、ユーザがシステムをロックするか、コンピュータにスリープ(sleep:睡眠、活動停止)またはハイバネート(hibernate:冬眠)させる能力を含めることができる。スヌーカ攻撃は、この場合に、システムが、ロックされた時、スリープしている時、またはハイバネートしている時に表示される画面をシミュレートする。ユーザが、注意をそらし、システムがインアクティブ(休止中)で安全であると思う時に、攻撃者は、そのシステムを許可されずに不正に使用することができる。
【００１１】
一般に、正当なネクサス側のプログラムまたは機能するシステムがモニタ上に作ることができるピクセルのパターンが何であっても、ホスト側の攻撃プログラムは、それを模倣することができる。しかし、ネクサスの高信頼度な性質を維持するためには、ユーザは、正当なネクサス側ユーザインターフェースのグラフィック要素を、偽のグラフィック要素から区別できなければならない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述の点に鑑みて、上述した従来技術の短所を克服したシステムが必要とされている。
【課題を解決するための手段】
【００１３】
本発明の一実施形態では、安全なトラステッド実行環境（ネクサス）および第２の実行環境（ホスト）を含むシステムのディスプレイに表示されるデータが、複数の技法の組合せを使用して機密保護される。ウィンドウなど、ネクサス上で稼動するプロセスに関連するグラフィカルユーザインターフェース要素は、他のグラフィカルユーザインターフェース要素にオーバーラップされずに表示される。
【００１４】
さらに、ネクサスユーザ機密（ネクサスユーザ秘密）が維持され、これは、グラフィカルユーザインターフェース要素内に表示される。この表示は、連続的に行うか、他にも代替案があるが、要求時に行うことができる。さらに、機密保護されたウィンドウをユーザの心の中で一緒にリンクするため、したがって、詐称者ウィンドウをより明瞭に強調するために、色においてまたは表示されるグラフィックス情報を用いて、ウィンドウデコレーション（ウィンドウ修飾）を調整することができる。これらのデコレーションは、ある一定間隔で、要求時に、またはシステムイベントが変化をトリガする時に、変更することができる。
【００１５】
シャドウウィンドウが、対応するネクサスウィンドウのために維持される場合に、プライベートタイトルがシャドウウィンドウで使用されている間に、プライベートタイトル情報をネクサスウィンドウに使用することができる。これによって、タイトルをセットするネクサスプロセスが、おそらくは安全でないシャドウウィンドウにどの情報が与えられるかを選択できるようになる。
【００１６】
本発明の他の特徴は、以下で説明する。
【００１７】
上述の本発明の要約、ならびに好ましい実施形態の以下の詳細な説明は、添付図面と共に読まれる時によりよく理解される。本発明の例示のために、図面に、本発明の例示的構成を示すが、本発明は、ここで開示される特定の方法および機器に制限されない。
【発明を実施するための最良の形態】
【００１８】
概要
オペレーティングシステムなどの２つの実行環境が、単一のマシンで並んで稼動する時に、環境の１つが、あるセキュリティ標準規格に拘束される高信頼度実行環境である場合に、表示されるグラフィカルユーザインターフェース要素のどれが、高信頼度オペレーティングシステムで稼動するプロセスに関連するかをユーザが区別することが重要になる可能性がある。上で述べたように、ホスト側（非高信頼度）実行環境を介してグラフィカルＵＩ要素を表示する攻撃者は、ＵＩ要素であるグラフィカルユーザインターフェース要素が高信頼度プロセスから来たものであるとユーザに思わせることを試みる可能性がある。そのような攻撃を防ぐために、本発明は、グラフィカルユーザインターフェース要素のどれが高信頼度実行環境から発したかをユーザが区別できるようにする技法を提供する。
【００１９】
例示的コンピューティング配置
図１に、本発明の諸態様を実施することができる例示的コンピューティング環境を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の１つの例にすぎず、本発明の使用の範囲または機能性に関する制限を暗示することを意図されてはいない。コンピューティング環境１００を、例示的なコンピューティング環境１００に示された構成要素のいずれかまたはその組合せに関する依頼関係または要件を有するものと解釈してもならない。
【００２０】
本発明は、多数の他の汎用または特殊目的のコンピューティングシステムの環境または構成と共に動作する。本発明と共に使用するのに適切である可能性がある周知のコンピューティングシステム、環境、および／または構成には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル消費者電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、組込みシステム、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
【００２１】
本発明を、全般的に、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令に関して説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークまたは他のデータ伝送メディアを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールおよび他のデータを、メモリストレージデバイスを含む、ローカルおよびリモートの両方のコンピュータ記憶メディアに配置することができる。
【００２２】
図１に関して、本発明を実施する例示的システムに、コンピュータ１１０の形の汎用コンピューティングデバイスが含まれる。コンピュータ１１０の構成要素に、処理ユニット１２０、システムメモリ１３０、および、システムメモリを含むさまざまなシステム構成要素を処理ユニット１２０に接続するシステムバス１２１を含めることができるが、これに制限はされない。処理ユニット１２０は、マルチスレッド式プロセッサでサポートされるものなどの複数の論理処理ユニットを表すことができる。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。制限ではなく例として、そのようなアーキテクチャに、Industry  Standard  Architecture（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、Enhanced  ＩＳＡ（ＥＩＳＡ）バス、Video  Electronics  Standards  Association（ＶＥＳＡ）ローカルバス、およびPeripheral  Component  Interconnect（ＰＣＩ）バス（メザニンバスとも称する）が含まれる。システムバス１２１は、通信デバイスの中でも、ポイントツーポイント接続、スイッチングファブリック、または類似物として実施することもできる。
【００２３】
コンピュータ１１０には、通常は、さまざまなコンピュータ可読メディアが含まれる。コンピュータ可読メディアは、コンピュータ１１０によってアクセスできるすべての使用可能なメディアとすることができ、コンピュータ可読メディアには、揮発性メディアおよび不揮発性メディア、取外し可能メディアおよび取外し不能メディアの両方が含まれる。制限ではなく例として、コンピュータ可読メディアに、コンピュータ記憶メディアおよび通信メディアを含めることができる。コンピュータ記憶メディアには、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の保管の任意の方法または技術で実施される揮発性および不揮発性の両方の、取外し可能または取外し不能のメディアが含まれる。コンピュータ記憶メディアには、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報を保管するのに使用でき、コンピュータ１１０によってアクセスできる他のメディアが含まれるが、これに制限はされない。通信メディアによって、通常は、搬送波または他のトランスポート機構などの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが実施され、通信メディアには、すべての情報配信メディアが含まれる。用語「変調されたデータ信号」は、信号内で情報をエンコードする形で１つまたは複数の特性を設定または変更された信号を意味する。制限ではなく例として、通信メディアに、有線ネットワークまたは直接配線接続などの有線メディアと、音響、ＲＦ、赤外線、および他の無線メディアなどの無線メディアが含まれる。上記のいずれかの組合せも、コンピュータ可読メディアの範囲に含まれなければならない。
【００２４】
システムメモリ１３０には、読取専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの、揮発性および／または不揮発性メモリの形のコンピュータ記憶メディアが含まれる。起動中などにコンピュータ１１０内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が、通常はＲＯＭ１３１に保管される。ＲＡＭ１３２には、通常は、処理ユニット１２０によって即座にアクセス可能および／または現在操作されつつあるデータおよび／またはプログラムモジュールが含まれる。制限ではなく例として、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２５】
コンピュータ１１０には、他の取外し可能／取外し不能の揮発性／不揮発性コンピュータ記憶メディアを含めることもできる。例としてのみ、図１に、取外し不能不揮発性磁気メディアから読み取り、これに書き込むハードディスクドライブ１４１、取外し可能不揮発性磁気ディスク１５２から読み取り、これに書き込む磁気ディスクドライブ１５１、およびＣＤ  ＲＯＭまたは他の光学メディアなどの取外し可能不揮発性光ディスク１５６から読み取り、これに書き込む光学ディスクドライブ１５５が図示されている。この例示的オペレーティング環境で使用することができる他の取外し可能／取外し不能の揮発性／不揮発性コンピュータ記憶メディアには、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ、および類似物が含まれるが、これに制限はされない。ハードディスクドライブ１４１は、通常は、インターフェース１４０などの取外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光学ディスクドライブ１５５は、通常は、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００２６】
上で説明した、図１に図示されたドライブおよびそれに関連するコンピュータ記憶メディアによって、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージが提供される。図１では、たとえば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を保管するものとして図示されている。これらのコンポーネントを、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同一または異なるもののいずれかとすることができることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、最低限、これらが異なるコピーであることを示すために、本明細書では異なる符号を与えられている。ユーザは、キーボード１６２、一般にマウス、トラックボール、またはタッチパッドと称するポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信用パラボラアンテナ、スキャナ、または類似物を含めることができる。上記および他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、またはuniversal  serial  bus（ＵＳＢ）などの、他のインターフェースおよびバス構造によって接続することができる。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタの他に、コンピュータに、スピーカ１９７およびプリンタ１９６など、出力周辺インターフェース１９０を介して接続することができる他の周辺出力デバイスも含めることができる。
【００２７】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ１８０には、通常は、コンピュータ１１０に関して上述した要素の多数またはすべてが含まれるが、図１にはメモリストレージデバイス１８１だけを図示した。図１に示された論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含めることができる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
【００２８】
ＬＡＮネットワーキング環境で使用される場合に、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合に、コンピュータ１１０には、通常は、インターネットなどのＷＡＮ１７３を介する通信を確立する、モデム１７２または他の手段が含まれる。モデム１７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース１６０または他の適当な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示されたプログラムモジュールまたはその諸部分を、リモートメモリストレージデバイスに保管することができる。制限ではなく例として、図１に、メモリデバイス１８１に常駐するリモートアプリケーションプログラム１８５を図示した。図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用することができることを諒解されたい。
【００２９】
単一マシン上の複数のコンピューティング環境
前に説明したように、当該技術分野では、２つのオペレーティングシステムを単一のコンピューティングデバイスで並べて実行できることは公知である。本発明を使用して対処できる問題の１つが、２つのオペレーティングシステム間のあるレベルの対話を提供しながら、２つのオペレーティングシステム間のあるレベルの分離をいかにして提供するかの方法である。
【００３０】
図２に、２つのオペレーティングシステム１３４（１）および１３４（２）が単一のコンピュータ１１０で実行されるシステムを示す。ある量の対話２０４がオペレーティングシステム１３４（１）と１３４（２）の間で許可されるが、他のオペレーティングシステムから発するイベントに対して少なくとも１つのオペレーティングシステムを機密保護できるようにする、あるタイプの論理的分離２０２が、オペレーティングシステム１３４（１）と１３４（２）の間に存在する。図２の例では、オペレーティングシステム１３４（１）が、ホストオペレーティングシステムであり、オペレーティングシステム１３４（２）が、上で説明した「ネクサス」などのゲストオペレーティングシステムである。前に注記したように、オペレーティングシステム１３４（２）がネクサスである時に、オペレーティングシステム１３４（１）のインフラストラクチャを借りるためにオペレーティングシステム１３４（２）がオペレーティングシステム１３４（１）と対話することができるが、オペレーティングシステム１３４（１）で生じ、オペレーティングシステム１３４（２）に挙動仕様に反する形で振る舞わせる可能性があるアクション（悪意のある、または悪気のないいずれか）からオペレーティングシステム１３４（２）がそれ自体を機密保護できるようにする分離２０２を構成することが望ましい（しかし、本発明が、オペレーティングシステム１３４（２）がネクサスである場合に制限されないことを理解されたい）。
【００３１】
オペレーティングシステム１３４（１）と１３４（２）の間の分離２０２は、任意選択として、セキュリティモニタの助けを得て実施することができる。セキュリティモニタは、オペレーティングシステム１３４（１）および１３４（２）の両方の外部のコンポーネントであり、オペレーティングシステム１３４（２）をオペレーティングシステム１３４（１）から機密保護するのに使用することができるあるセキュリティサービスを提供する。たとえば、セキュリティモニタは、あるハードウェアへのアクセスを制御でき、メモリの使用を管理でき（オペレーティングシステム１３４（２）にメモリのある部分の排他的使用を与えるために）、オペレーティングシステム１３４（１）からオペレーティングシステム１３４（２）へのセキュアな形でのデータの通信を容易にすることができる。セキュリティモニタの使用が、オペレーティングシステム１３４（２）をオペレーティングシステム１３４（１）から機密保護できる方法の１つのモデルを表すが、セキュリティモニタの使用が、必要ではないことに留意されたい。もう１つの例として、オペレーティングシステム１３４（２）に、オペレーティングシステム１３４（１）からそれ自体を機密保護するのに必要な機能のすべてを含めることができる。
【００３２】
図２に、「ホスト」としてのオペレーティングシステム１３４（１）および「ゲスト」としてのオペレーティングシステム１３４（２）が示されていることに留意されたい。一般に、この特性は、この例で、オペレーティングシステム１３４（１）が、オペレーティングシステム１３４（１）および１３４（２）の両方によって使用されるあるオペレーティングシステムインフラストラクチャを提供し（たとえば、デバイスドライバ、スケジューリングなど）、オペレーティングシステム１３４（２）が、このインフラストラクチャを欠き、オペレーティングシステム１３４（１）のインフラストラクチャを使用することが好ましいという意味で「ゲスト」であるという事実を指す。しかし、オペレーティングシステムを「ホスト」または「ゲスト」にするパラメータが、柔軟であることに留意されたい。さらに、「ホスト」オペレーティングシステムおよび「ゲスト」オペレーティングシステムの従来の概念は、ホストがゲストのアクションからそれ自体を機密保護する必要があることが前提であることに留意されたい。しかし、図２の例では、ゲストオペレーティングシステム１３４（２）が、ホストオペレーティングシステム１３４（１）からそれ自体を機密保護する必要がある高信頼度オペレーティングシステムであると仮定されている。以下の例では、区別のために、全般的に、オペレーティングシステム１３４（１）を「ホスト」、オペレーティングシステム１３４（２）を「ゲスト」または「ネクサス」と呼ぶ。本明細書に記載の技法が、同一のマシンで（または接続されたマシンの同一の組で）稼動する複数のオペレーティングシステムの対話に適用できることを理解されたい。
【００３３】
単一マシン上の複数のコンピューティング環境へのグラフィカルユーザインターフェースの提供
ユーザが、高信頼度オペレーティングシステムを含むコンピュータシステム上のプログラムと対話する時に、ユーザは、マウス１６１またはキーボード１６２（図１から）などのユーザ入力デバイスによってそれを行う。上で述べたように、ホストオペレーティングシステム１３４（１）で稼動するウィンドウイングシステムに、入力イベントのストリームの宛先を制御させることによって、危険にさらされたホストオペレーティングシステムまたはアプリケーションを使用する攻撃が可能になる場合がある。ウィンドウまたは他のグラフィカルユーザインターフェース要素を、ホスト側プロセスによってユーザに表示することができ、このホスト側プロセスが、ネクサスオペレーティングシステム１３４（２）で稼動する正当なネクサス側プロセスを模倣することを試みることができる。したがって、本発明の一実施形態によれば、正当なホスト側ウィンドウおよび他のグラフィカルユーザインターフェース要素の保全性および識別可能性を機密保護する複数の技法が実施される。本発明のさまざまな実施形態で、これらの技法のいずれかまたはすべてが、一緒に実施される。
【００３４】
隠蔽（obscuration）および透き通し（show-through）
ホスト側プロセスおよびネクサス側プロセスの両方が、ウィンドウおよび他のユーザインターフェース要素などのグラフィックス（画像）をディスプレイに表示できる場合に、正当なネクサス側プロセスグラフィックスのすべてまたは一部をホスト側プロセスグラフィックを用いて隠蔽(見通せなく)することによって、攻撃を達成することができる。図３（ａ）に、ディスプレイのブロック図を示す。図３（ａ）では、ディスプレイ３００に、ネクサスグラフィックス３１０が、ネクサスオペレーティングシステム１３４（２）で稼動するネクサスプロセスによって所有されるグラフィックスである。ホストグラフィックス（ホスト画像）３２０は、ホストオペレーティングシステム１３４（１）で稼動するホストプロセスによって所有されるグラフィックスである。図３（ａ）からわかるように、ホストグラフィックス３２０を、ネクサスグラフィックス３１０の上に表示することが許可される場合に、ネクサスグラフィックスが、ホストグラフィックス３２０によって隠蔽される場合がある。この場合に、ネクサスグラフィックス３１０の一部またはすべてをホストグラフィックス３２０によって隠蔽することによって、攻撃を開始することができる。さらに、ネクサスグラフィックス３１０が、ホストグラフィックス３２０にオーバーレイするが部分的に透明の場合に、ホストグラフィックス３２０を使用して、混乱を招く形でネクサスグラフィックス３１０の外見を変更することができる。
【００３５】
本発明の一実施形態では、すべてのネクサスグラフィックス３１０を隠蔽されないようにし、ネクサスグラフィックス３１０内のすべての透き通し（通して透けて見える）を禁止することによって、そのような攻撃を防ぐ。したがって、図３（ａ）に示された情況について、ネクサスグラフィックス３１０は、隠蔽されることを許可されない。図３（ｂ）に、ネクサスグラフィックス３１０の隠蔽の禁止を示す。図３（ｂ）では、２つのネクサスグラフィックス３１０のそれぞれが、完全に表示され、ネクサスグラフィックス３１０のホストグラフィックス３２０によるオーバーラップが許可されていない。さらに、一実施形態で、透明（完全な透明または部分的な透明のいずれか）が、ネクサスグラフィックス３１０内で許可されない。
【００３６】
一実施形態では、あるネクサス側プロセスから別のネクサス側プロセスへの類似する攻撃を防ぐために、ネクサスグラフィックス３１０を、オーバーラップすることができない。ウィンドウイングシステム内で、一実施形態では、これに対する１つの例外、すなわちマウスカーソルが許可され、このマウスカーソルは、ネクサスグラフィックス３１０の上に表示される時にネクサス側プロセスによって描画することができ、ネクサス側グラフィック３１０にオーバーラップすることを許可されるものとすることができる。
【００３７】
もう１つの実施形態で、あるネクサス側プロセスが、たとえば２つのウィンドウまたはウィンドウとダイアログボックスなど、複数のユーザインターフェースグラフィック要素を所有する場合に、オーバーラップを許容することにセキュリティ問題がかかわらない。したがって、１つの共通して所有されるユーザインターフェースグラフィック要素は、ネクサスプロセスによって所有されるもう１つの共通して所有されるユーザインターフェースグラフィック要素にオーバーレイすることを許可される。もう１つの実施形態で、共通して所有されるトップレベルグラフィックＵＩ要素は、オーバーラップを許可されないが、トップレベルＵＩ要素は、そのトップレベルＵＩ要素の子ＵＩ要素によってオーバーラップされることができる。たとえば、この実施形態で、トップレベルウィンドウの子ＵＩ要素であるダイアログボックスが、そのウィンドウにオーバーラップすることができる。
【００３８】
一実施形態で、どのユーザインターフェースグラフィック要素がネクサス側ユーザインターフェースグラフィック要素であるかを検証するために、画面からすべての非ネクサス側ユーザインターフェースグラフィック要素を除去する担保された（hypohecated）ユーザ対話が提供される。担保されたユーザ対話は、コンピュータシステムのコンテキストで、必ず特定の結果をもたらすユーザ対話である。したがって、セキュアディスプレイの担保されたユーザ対話の時、たとえばキーストロークの組合せが発生する時には、ネクサス側ユーザインターフェースグラフィック要素を除いて、ディスプレイ全体が、クリアされる。
【００３９】
図４は、この方法を示す流れ図である。ステップ４００で、機密保護された実行環境で稼動するプロセス（ネクサスエージェント）に関連するネクサスグラフィカルユーザインターフェース要素画像を保管する。ステップ４１０で、ネクサスグラフィカルユーザインターフェース要素画像を、どのホストユーザインターフェース要素によっても隠蔽されずに、完全に表示する。他の実施形態では、このプロセスに関連するもの以外のどのグラフィカルユーザインターフェース要素（ホストまたはユーザ）でも、ネクサスグラフィカルユーザインターフェース要素を隠蔽することができない。
【００４０】
機密の共有
一実施形態で、上で説明したスプーフ攻撃を避けるために、機密が、ホスト側から隠されて表示される。ホスト側のどのプロセスも、機密にアクセスすることができず、したがって、ウィンドウまたは他のグラフィックユーザインターフェース要素が機密を表示できる場合には、その要素は、ネクサス側グラフィックユーザインターフェース要素である。
【００４１】
一実施形態で、機密(秘密）が、ユーザによってネクサスに通信される。このネクサスユーザ機密（ネクサスユーザ秘密）は、たとえばパスワードがユーザによって設定される時など、信頼初期化時にネクサスに通信することができる。グラフィックユーザインターフェース要素は、ネクサスユーザ機密をいつも表示するか、チャレンジされた時にネクサスユーザ機密を表示することができる。
【００４２】
ネクサス側のトラステッドウィンドウマネージャが、ネクサス側のプロセスによるグラフィックユーザインターフェース要素の表示を制御する。このトラステッドウィンドウマネージャは、ウィンドウのボーダー（枠線）およびタイトル（表題）などのウィンドウデコレーション(ウィンドウ修飾)の責任も負う。一実施形態で、ネクサスユーザ機密が、一般にネクサス内のプロセスと共有されない。しかし、この機密は、トラステッドウィンドウマネージャによってウィンドウデコレーションに表示される。代替実施形態では、ネクサスユーザ機密が、ユーザがウィンドウからそれを要求する時に表示される。この要求は、担保されたユーザ対話を介してフォーカスがあるウィンドウで行うことができる。たとえば、キーストロークの特定の組合せを、担保されたユーザ対話とすることができ、これによって、フォーカスがあるウィンドウにネクサスユーザ機密が表示される。代替案では、ウィンドウに、マウスまたはキーストロークによって選択された時に有効なネクサスグラフィック（ネクサス画像）３１０にネクサスユーザ機密を表示させるドロップダウンメニューまたはアクティベーション領域を含めることができる。
【００４３】
ネクサスユーザ機密は、画像またはフレーズ（語句）とすることができる。画像は、ユーザによって容易に識別され、記述が困難なので、有用なネクサスユーザ機密になれる。ネクサスユーザ機密として使用するためにユーザによって選択された画像が、たとえば、ユーザの家の前にいるユーザの犬の写真である場合に、ユーザの画面の画像を見た攻撃者がその写真を説明することはできるが、その情報があったとしても、攻撃者は、その画像を再作成するか、そのコピーを見つけることは困難である。
【００４４】
図５は、この方法の流れ図である。ステップ５００で、ネクサスに関連するネクサスユーザ機密を保管する。ステップ５１０で、ネクサスユーザ機密要素画像を、ネクサスグラフィカルユーザインターフェース要素の一部として表示する。
【００４５】
連続シークレット順列（continual  secret  permutation）
上で説明したように、一実施形態では、トラステッドウィンドウマネージャは、それを介してすべてのネクサス側プロセスがそのユーザインターフェースグラフィック要素を表示する仲介物（intermediary）であり、トラステッドウィンドウマネージャは、ボーダーなど、ユーザインターフェースグラフィック要素のウィンドウデコレーションの責任を単独で負う。一実施形態で、ウィンドウデコレーションに、継続的に更新される短期間の機密が含まれる。この継続的に更新される機密は、非ネクサスウィンドウからアクセス可能ではなく、したがって、非ホストウィンドウを識別するのに使用することができる。
【００４６】
たとえば、各ネクサスユーザインターフェースグラフィック要素のボーダーが、特定の色であり、その色が、１５秒に１回変更される場合に、所与のウィンドウボーダーが他のネクサスユーザインターフェースグラフィック要素と一致しない場合に、そのウィンドウがネクサス側ユーザインターフェースグラフィック要素でないことが、ユーザに明らかになる。他の可能な継続的に更新される機密に、小規模のグラフィックス、ウィンドウデコレーションに表示されるアイコン、グリフ（字型）、または文字の組合せ、あるいは１６進数または数値文字列を含めることができる。ユーザが、適正に容易に気付く不一致と視覚的に比較できる情報を、どれでも使用することができる。
【００４７】
一実施形態で、ネクサスグラフィック３１０が表示される時に、必ず、ネクサスシステムユーザインターフェース領域がディスプレイ３００に維持される。このユーザインターフェース領域には、表示されているネクサスグラフィック３１０に関する情報がリスト（一覧表記）される。たとえば、ユーザインターフェース領域に、表示されているネクサスグラフィック３１０の数、または表示されているネクサスグラフィック３１０の名前（たとえばウィンドウタイトル）をリストすることができる。ネクサスグラフィック３１０のデコレーション内の共有される機密も、ネクサスシステムユーザインターフェース領域に表示される。図６は、本発明の一実施形態によるディスプレイのブロック図である。図６では、３つのグリフ
【００４８】
【表１】
0004698195.tif 000002
【００４９】
からなるシリーズ（一組）が、ディスプレイ３００の各ネクサスグラフィック３１０のウィンドウデコレーション６１０に表示されている。ネクサスシステムインターフェース領域６００も表示され、これには、３つのグリフの同一の組が含まれる。これによって、ウィンドウがネクサス側プロセスによって表示されていることの、ユーザによる簡単な確認が可能になる。
【００５０】
上で説明したように、機密の変更は、１５秒ごとに変化する色付きボーダーなど、時間に基づくものとすることができるが、他の実施形態で、担保されたユーザ対話を介してユーザが機密の変更を要求する時に、またはあるウィンドウから別のウィンドウへのフォーカスの変更などのシステムイベントが発生した時に、機密が変更される。
【００５１】
図７は、この方法の流れ図である。ステップ７００で、少なくとも２つのネクサスグラフィカルデータ要素を受け入れる。ウィンドウイングシステムでは、これらが、ウィンドウデコレーションと共に、ウィンドウイメージを構成する。ステップ７１０で、２つのネクサスグラフィカルユーザインターフェース要素（たとえばウィンドウ）を表示し、これらのそれぞれに、各ウィンドウに共通のデコレーションのほかに、グラフィカルデータ要素の１つが含まれる。
【００５２】
ウィンドウタイトル−パブリック（公開）とプライベート（非公開）
前に説明したように、トラステッドウィンドウマネージャを、それを介してすべてのネクサス側プロセスがユーザインターフェースグラフィック要素を表示する仲介物として使用することができる。しかし、ホスト側ウィンドウマネージャを使用して、ホスト側プロセスのユーザインターフェースグラフィック要素の表示を管理することができる。一実施形態で、ネクサス側ユーザインターフェースグラフィック要素（ネクサスグラフィック３１０など）ごとに、対応するシャドウグラフィックユーザインターフェース要素が、ホスト側ウィンドウマネージャによって維持される。これによって、ホスト側ウィンドウマネージャが、ディスプレイ３００のある領域がネクサスグラフィック３１０によって使用されていることを認識できるようになる。上で説明したように、隠蔽および透き通しが禁止される時に、これは、ホスト側ウィンドウマネージャに有用な情報である可能性があり、したがって、可視にしなければならないウィンドウが、この領域に置かれなくなる。しかし、ネクサスグラフィック３１０に関する限られた情報だけを、ホスト側で使用可能にしなければならない。
【００５３】
したがって、一実施形態で、トラステッドウィンドウマネージャは、ネクサスエージェント（ネクサスで稼動するプロセス）が、ウィンドウまたは他のユーザインターフェースグラフィック要素ごとに２つのタイトルをセットできるようにする。一方のタイトルであるプライベートタイトルは、トラステッドウィンドウマネージャに渡され、ウィンドウ管理機能およびネクサスグラフィック３１０での表示に使用される。プライベートタイトルは、そのウィンドウ（または他の要素）を所有するネクサスエージェント以外のすべてのホスト側プロセスおよびネクサス側プロセスと、トラステッドウィンドウマネージャとによって共有されない。
【００５４】
プライベートタイトル(非公開表題）のほかに、ネクサスエージェントは、パブリックタイトル（公開表題）を指定することができる。このパブリックタイトルは、ホスト側ウィンドウマネージャを含めて、ホスト側と共有することができる。パブリックタイトルは、シャドウウィンドウのタイトルとしてホスト側ウィンドウマネージャによって使用することができる。この形で、ホスト側ウィンドウマネージャは、パブリックタイトルを使用してウィンドウを参照することができ、このパブリックタイトルは、機密を暴露する可能性がある情報を含まずにユーザに理解可能になるために選択される。したがって、ホスト側ウィンドウマネージャは、ユーザが、ウィンドウのリストからフォーカスを当てるウィンドウを選択できるようにする場合に、シャドウウィンドウに関連するパブリックタイトルが、選択されるオプションとしてリストされる。シャドウウィンドウが選択される時に、関連するトラステッドウィンドウが、アクティブ化され、関連するトラステッドウィンドウに関連するネクサスエージェントが、ユーザの入力のフォーカスになる。
【００５５】
図８は、この方法を示す流れ図である。ステップ８００で、パブリックタイトル情報およびプライベートタイトル情報が、ネクサスエージェントに関連するネクサスグラフィカルユーザインターフェース要素について保管される。ステップ８１０で、プライベートタイトル情報を、トラステッドウィンドウマネージャのウィンドウ管理機能に使用する。ステップ８２０で、パブリックタイトル情報を、ホスト側での使用のためにホストに供給する。
【００５６】
結言
前述の例は、単に例示のために提供されたもので、決して本発明の制限と解釈されてはならないことに留意されたい。本発明を、さまざまな実施形態を参照して説明したが、本明細書で使用された用語が、制限の用語ではなく、説明および例示の用語であることを理解されたい。さらに、本発明を、特定の手段、材料、および実施形態に関して説明したが、本発明は、本明細書に開示された詳細に制限されることは意図されておらず、本発明は、請求項の範囲に含まれる、すべての機能的同等の構造、方法、および使用に拡張される。本明細書の教示の利益を有する当業者は、本発明の範囲および趣旨から逸脱せずに、その態様において多数の修正をもたらすことができ、変更を行うことができ得る。
【図面の簡単な説明】
【００５７】
【図１】本発明の諸態様を実施することができる例示的コンピューティング環境を示すブロック図である。
【図２】互いにある対話、および互いからのある分離を維持する２つの例示的実行環境を示すブロック図である。
【図３（ａ）】ディスプレイを示すブロック図である。
【図３（ｂ）】本発明の一態様によるディスプレイを示すブロック図である。
【図４】ディスプレイに表示されるデータのセキュリティを保つ方法を示す流れ図である。
【図５】ディスプレイに表示されるデータのセキュリティを保つ方法を示す流れ図である。
【図６】本発明の一実施形態によるディスプレイを示すブロック図である。
【図７】ディスプレイに表示されるデータのセキュリティを維持する方法を示す流れ図である。
【図８】ディスプレイに表示されるデータのセキュリティを維持する方法を示す流れ図である。
【符号の説明】
【００５８】
１００  コンピューティング環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  取外し不能不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し可能不揮発性メモリインターフェース
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカ
３００  ディスプレイ
３１０  ネクサスグラフィック
３２０  ホストグラフィック
６００  ネクサスシステムユーザインターフェース領域
６１０  ウィンドウデコレーション
【図１】
0004698195.tif 000003
【図２】
0004698195.tif 000004
【図３（ａ）】
0004698195.tif 000005
【図３（ｂ）】
0004698195.tif 000006
【図４】
0004698195.tif 000007
【図５】
0004698195.tif 000008
【図６】
0004698195.tif 000009
【図７】
0004698195.tif 000010
【図８】
0004698195.tif 000011