(57)【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて、
アプリケーションを実行するように構成されている第１のハードウェアプロセッサを備える第１のハードウェアサブシステムと、
セキュリティファームウェアを実行するように構成されている第２の別個のハードウェアプロセッサを備える第２のハードウェアサブシステムと、
前記第２のハードウェアサブシステムに接続されている周辺機器と、ここにおいて、前記アプリケーションによる前記接続されている周辺機器へのアクセスは、前記第１のハードウェアサブシステムの対応する周辺接続をエミュレートする、前記第２のハードウェアプロセッサ上で実行している前記セキュリティファームウェアにより選択的に妨げられる、
を具備し、
前記周辺機器は、ビデオディスプレイとキーボードとを備え、
前記コンピュータシステムは、前記第１のハードウェアサブシステムに接続される第１の入力と、前記第２のハードウェアサブシステムに接続される第２の入力と、前記ビデオディスプレイに接続される出力とを有するビデオマルチプレクサをさらに具備し、
前記出力を導出するための、前記第１の入力および前記第２の入力からのコンテンツの選択は、前記第２のハードウェアプロセッサ上で実行している前記セキュリティファームウェアにより制御され、前記セキュリティファームウェアは、スタートアップシーケンスを含み、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第２のハードウェアプロセッサにより排他的に制御され、前記第１のハードウェアプロセッサによる前記キーボードおよびビデオディスプレイへのアクセスは妨げられる、コンピュータシステム。
【請求項２】
前記周辺機器は、前記第１のハードウェアサブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記コンピュータシステムは、前記セキュリティファームウェアにより維持されるエミュレートされたディスクドライブをさらに具備し、
前記第１のハードウェアプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される請求項１記載のコンピュータシステム。
【請求項３】
前記セキュリティファームウェアは、前記エミュレートされたディスクドライブの１つ以上の時間特有な画像を維持する請求項２記載のコンピュータシステム。
【請求項４】
前記ディスクドライブは、ソリッドステートディスクドライブを含む請求項２記載のコンピュータシステム。
【請求項５】
前記セキュリティファームウェアは、前記ディスクドライブ上のすべてのデータを暗号化し、前記暗号化のためのキーは、前記セキュリティファームウェアにより排他的に維持される請求項２記載のコンピュータシステム。
【請求項６】
前記周辺機器は、ネットワーク接続を備え、前記セキュリティファームウェアは、前記第１のハードウェアサブシステムによる外部ネットワークへのアクセスを制御する請求項１記載のコンピュータシステム。
【請求項７】
前記第１のハードウェアサブシステムと前記外部ネットワークとの間のすべての通信のために、前記セキュリティファームウェアにより維持されているＶＰＮトンネルをさらに具備する請求項６記載のコンピュータシステム。
【請求項８】
コンピュータシステムを守る方法において、
アプリケーションを実行する第１のハードウェアプロセッサを備える、前記コンピュータシステムの第１のハードウェアサブシステムを構成することと、
セキュリティファームウェアを実行する第２の別個のハードウェアプロセッサを備える、前記コンピュータシステムの第２のハードウェアサブシステムを構成することと、
周辺機器を前記第２のハードウェアサブシステムに接続することと、
前記第１のハードウェアサブシステムの対応する周辺接続をエミュレートする、前記第２のハードウェアプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記アプリケーションによる前記接続されている周辺機器へのアクセスを選択的に妨げることと、
含み、
前記周辺機器は、ビデオディスプレイとキーボードとを備え、
前記方法は、
ビデオマルチプレクサを前記コンピュータシステム中に提供することと、
前記ビデオマルチプレクサの第１の入力を前記第１のハードウェアサブシステムに接続することと、
前記ビデオマルチプレクサの接続されている第２の入力を前記第２のハードウェアサブシステムに接続することと、
前記ビデオマルチプレクサの出力を前記ビデオディスプレイに接続することと、
前記第２のハードウェアプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記出力を導出するための、前記第１の入力および前記第２の入力からのコンテンツの選択を制御することと、
前記セキュリティファームウェアにより実行されるスタートアップシーケンスと、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第２のハードウェアプロセッサにより排他的に制御され、前記第１のハードウェアプロセッサによる、前記キーボードおよびビデオディスプレイへのアクセスは妨げられる、
をさらに含む、方法。
【請求項９】
前記周辺機器は、前記第１のハードウェアサブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記方法は、前記セキュリティファームウェアを使用して、エミュレートされたディスクドライブを維持することをさらに含み、
前記第１のハードウェアプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される請求項８記載の方法。
【請求項１０】
前記セキュリティファームウェアを使用して、前記エミュレートされたディスクドライブの１つ以上の時間特有な画像を維持することをさらに含む請求項９記載の方法。
【請求項１１】
前記ディスクドライブは、ソリッドステートディスクドライブを含む請求項９記載の方法。
【請求項１２】
前記セキュリティファームウェアを使用して、前記ディスクドライブ上のすべてのデータを暗号化することと、
前記暗号化のためのキーを、前記セキュリティファームウェアにより排他的に維持することと、
をさらに含む請求項９記載の方法。
【請求項１３】
前記周辺機器は、ネットワーク接続を備え、
前記方法は、前記セキュリティファームウェアを使用して、前記第１のハードウェアサブシステムによる外部ネットワークへのすべてのアクセスを制御することをさらに含む請求項９記載の方法。
【請求項１４】
前記セキュリティファームウェアを使用して、前記第１のハードウェアサブシステムと前記外部ネットワークとの間のすべての通信のために、ＶＰＮトンネルを維持することをさらに含む請求項１３記載の方法。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、一般的に、コンピュータに関連し、さらに詳細には、情報セキュリティがさらに重要である企業および政府機関において使用されるコンピュータに関連している。
【発明の背景】
【０００２】
従来、個人的なおよび法人のデータセキュリティ機能は、手が届く価格になるように設計された消費者級のパーソナルコンピュータと本質的に同一のハードウェアアーキテクチャ上のアドオンソフトウェアモジュールの形態で実現されている。時に、例えば、より安全にユーザを認証する目的のために、セキュリティ特有なアドオンハードウェアモジュール（例えば、スマートカード、バイオメトリクス）も実現されている。たとえこれらのケースであっても、セキュリティ機能性の大部分は、アドオンソフトウェアコンポーネントとして実現されている。アドオンソフトウェアコンポーネントは、時にオペレーティングシステム中に統合されているが、たいていはメモリ中に存在し、他の任意のソフトウェアアプリケーションと同然に実行される。
【０００３】
この従来のアプローチによる著しい課題は、セキュリティ機能性がソフトウェア上で実現されるときに、これが多数の異なる方法で危険にさらされるかもしれないことである。コンピュータを動作させる通常のコースでは、ユーザはいくつかのソフトウェアコンポーネントを時折追加し、または、修正する。これは、ソフトウェアコンポーネントを追加および置換する能力であり、汎用コンピューティングアーキテクチャに、幅広い種類のタスクおよび割り当てにおけるその柔軟性および有用性を提供する。攻撃者がコンピュータシステムのセキュリティを危険にさらす好機を開くソフトウェアモジュールを修正または追加するのもこの同一の能力である。
【０００４】
新しいソフトウェアコンポーネントが導入されるとき、それが攻撃をもたらすように向けられた機能を含むリスク、または、それが、攻撃を促進するために外部で悪用され得るプログラミングエラーを含むリスクがある。また、セキュリティソフトウェアは、アプリケーションソフトウェアと同様に分配およびインストールされることから、これも同じリスクを受けやすい。
【０００５】
従来の汎用コンピュータでは、ランダムアクセスメモリ（ＲＡＭ）全体が、単一の大きな均一バンク中に編成されており、単一の大きな均一バンクは、プロセッサにより物理的にアクセスでき、または、システムが複数のプロセッサを備える場合に、すべてのプロセッサによりアクセスできる。メモリアクセスの均一性は、コンピュータにおける重要なリソースの１つであるＲＡＭの使用における最大の柔軟性を提供し、ＲＡＭは、オペレーティングシステムおよびアプリケーションソフトウェアによるＲＡＭの最も最適な利用につながる。コスト効率に対して効率的である一方で、均一ＲＡＭアーキテクチャは、継続的に実行しているプログラムが、互いのメモリ領域にアクセスできること、または、オペレーティングシステムもしくはそのコンポーネントにより占有されているメモリにアクセスできることも意味する。そのようにして、均一ＲＡＭアーキテクチャのこの機能は、コンピュータのセキュリティを危険にさらすのに最も使用されている手段である。
【０００６】
現代のコンピュータシステムは、“仮想メモリ”と呼ばれるメカニズムも用いる。ここで、メモリ管理ユニット（“ＭＭＵ”）と呼ばれる、プロセッサに埋め込まれているハードウェアコンポーネントが、メモリアドレス翻訳の機能を実行する。仮想メモリの追加により、ＲＡＭをセクションに分割することができるようになり、各セクションは、特定のソフトウェアコンポーネントまたはそのグループに専用である。仮想メモリはまた、異なるソフトウェアコンポーネントまたはオペレーティングシステムに属するメモリへの故意ではないアクセスを妨げる。仮想メモリメカニズムは、異常なソフトウェアの振る舞いが、全体としてのシステムの安定性に影響を与えることを妨げるのに非常に効率的であることが分かっているが、これは、悪質なサボタージュを妨げることは意図しておらず、すべてのオペレーティングシステム中には、診断目的を意図するＭＭＵにより提供されている保護を回避するための文書化されたメカニズムが存在する。これらのメカニズムは悪用されて、コンピュータのセキュリティおよびコンピュータに含まれるデータを危険にさらすことが多い。
【０００７】
高められたレベルのセキュリティを達成するための１つの従来のアプローチでは、セキュリティメカニズムのいくつかの部分は、個々のおよび専用のハードウェアモジュールで実現され、これは、さらなる耐タンパの機能を持つように設計されており、それにより、潜在的な侵入者に対して難易度を追加する。おそらく、ハードウェア強化されたコンピュータセキュリティ機能の最も早い機密扱いされていない例の一つは、ＩＢＭ（登録商標）ＨＳＭ（ハードウェアセキュリティモジュール）であった。これは、オフィスの金庫と同様に設計された堅牢な格納装置中に構築されたそれ自体のメモリおよび記憶サブシステムを持つ小さな独立型コンピュータであった。銀行カードの個人識別番号は、銀行員でさえもクリアテキスト形態のそれらのコードへのアクセスを持たないように、ＨＳＭ中に記憶されていた。現金自動預け払い機がカード保持者の身元を検証する必要があったときには、ＰＩＮが決してそのまま通信リンクを通して送信されないように、暗号化チャレンジレスポンスシーケンスが開始され、ＨＳＭが検証プロセスを安全に実行した。
【０００８】
（ＧＳＭ（登録商標）に基づく）世界水準のセルラ電話機システムのスマートカードアプローチのユーザ認証メカニズムは、ハードウェアセキュリティモジュールが指の爪のサイズに小型化されていることを除いて、同様なメカニズムを持ち、各ユーザはそのようなデバイスを提供されている。ＳＩＭカード構造は、組み込まれたメモリチップに損害を与えることなしに分解することを困難にしている。
【０００９】
別の従来のアプローチは、現在製造されているパーソナルコンピュータのうちのいくつかの中に構築された信頼プラットフォームモジュールである。ＴＰＭは、これが、制限されたアクセスを有する小さいメモリチップであり、いくつかのセキュリティ関連の識別情報およびいくつかの暗号化キーを含む点で、ＳＩＭカードにいくぶん類似している。ＴＰＭの中枢の考えは、誤ってコンピュータまたはそのユーザを識別し、それゆえに、システム中のどこかに存在するセキュリティメカニズムを回避するように、この識別情報を攻撃者が修正することを妨げることである。しかしながら、その欠点は、ＴＰＭ中に含まれるキーおよび数字は保護の１つのパートに過ぎず、残りのパートは、オペレーティングシステムおよびアプリケーションソフトウェアコンポーネント中で従来通りに実現されることである。したがって、ＴＰＭは、認証されていないユーザによっていくつかのキー保護関連の情報トークンを修正することを不可能にする、追加の保護のレイヤを提供する。しかしながら、ＴＰＭは、攻撃を成功させるために悪用できる、システムソフトウェアの他のパートおよびその通信における著しい虚弱性を残している。
【００１０】
したがって、コンピュータシステムセキュリティへの向上したアプローチに対する必要性が残っている。
【発明の概要】
【００１１】
本発明は、強化されたデータセキュリティのために設計されたコンピュータアーキテクチャに関連する。実施形態では、アーキテクチャは、それぞれがそれら自体の処理ユニットおよびメモリを持つ、２つのサブシステムと、２つのサブシステムおよび外界を相互接続するインターフェースの明瞭に規定されたセットとを備える。
【００１２】
ある態様にしたがうと、２つのサブシステムのうちの１つは、今日のパーソナルコンピュータの大部分を実行するｘ８６のような、一般的なプロセッサアーキテクチャ周辺に構築され、アプリケーションプロセッササブシステムとして指定されている。このアーキテクチャは、幅広いさまざまなアプリケーションソフトウェアおよびそれに対して利用可能なオペレーティングシステムに対して選択され、ユーザがそれらの選択のアプリケーションソフトウェアをインストールする柔軟性を最大化することを狙っている。これもまたｘ８６アーキテクチャ周辺に設計されている従来のパーソナルコンピュータとは異なって、このアプリケーションプロセッサは、実際の外部または内部周辺機器の代わりに、他のサブシステムにルーティングされているその周辺機器接続のすべてを有する。それにより、ｘ８６上で実行できるソフトウェアは、仮想的に制限されていない一方、このソフトウェアまたはそのデータへの外部アクセスは、専用のシステムプロセッササブシステムにより厳しく制御されており、専用のシステムプロセッササブシステムは、それらのアプリケーションおよびそれらのデータを安全に保つのに必要な保護を実施する。
【００１３】
あるさらなる態様にしたがうと、システムプロセッサとして指定されている他のサブシステムは、本質的に、埋め込みシステムである。それは、プロセッサと一緒に備えられている埋め込まれたソフトウェアシステムを実行し、どのような環境下においてもコンピュータのエンドユーザにより修正できず、代わりに、ファームウェアと呼ばれるべきである。埋め込みシステムであるので、エンドユーザも、何らかの第３者開発者もそのソフトウェアコンポーネントのうちのいずれに書き込む、または、修正することを許可されていないことから、システムプロセッサモジュールのプロセッサアーキテクチャのうちの特定のものは重要ではない。システムプロセッサは、本質的に、それ自体のハードウェアサブシステム上で実行している本来安全ではないアプリケーションソフトウェア環境と外界との間の“ブリッジ”として機能する。システムプロセッサ１０４は、典型的に、各タイプの周辺接続に対して２つの接続を有しており、１つは、実際の周辺機器１０６に対してのものであり、もう一方は、アプリケーションプロセッササブシステム１０２に対してのものである。システムプロセッサハードウェアとともにファームウェアは、サポートされているタイプの周辺機器のそれぞれに適切であって、アプリケーションソフトウェアおよびそのデータに対する最高レベルの保護を常に維持するために必要な、ルールおよびメカニズムのセットを実施しつつ、アプリケーションプロセッササブシステムのために、システムプロセッサに実際に接続されている各タイプの周辺機器デバイスをエミュレートする。すべての内部および外部周辺機器は、システムプロセッサに接続され、周辺エミュレーションファームウェア機能性により使用される。
【００１４】
これらおよび他の実施形態にしたがうと、本発明の実施形態にしたがったコンピュータシステムは、アプリケーションを実行するように構成されている第１のプロセッサを備える第１のサブシステムと、セキュリティファームウェアを実行するように構成されている第２の別個のプロセッサを備える第２のサブシステムと、第２のサブシステムに接続されている周辺機器とを具備し、アプリケーションによる周辺機器へのアクセスは、第１のサブシステムの対応する周辺接続をエミュレートする、第２のプロセッサ上で実行しているセキュリティファームウェアにより制御される。
【００１５】
これらのおよび他の態様にさらにしたがうと、本発明の実施形態にしたがった、コンピュータシステムを守る方法は、アプリケーションを実行する第１のプロセッサを備える、コンピュータシステムの第１のサブシステムを構成することと、セキュリティファームウェアを実行する第２の別個のプロセッサを備える、コンピュータシステムの第２のサブシステムを構成することと、周辺機器を第２のサブシステムに接続することと、第１のサブシステムの対応する周辺接続をエミュレートする、第２のプロセッサ上で実行しているセキュリティファームウェアを使用して、アプリケーションによる周辺機器へのアクセスを制御することとを含む。
【００１６】
これらのおよび他の態様のさらなる推進において、本発明の実施形態にしたがったシステムは、アプリケーションを実行するように構成されている第１のプロセッサを備える第１のサブシステムと、セキュリティファームウェアを実行するように構成されている第２の別個のプロセッサを備える第２のサブシステムとを備える独立型コンピュータシステムと、独立型コンピュータシステムを制御する組織によりホストされた安全なイントラネットとを具備し、アプリケーションによる安全なイントラネットへのアクセスは、第１のサブシステムの対応する周辺ネットワーク接続をエミュレートする、第２のプロセッサ上で実行しているセキュリティファームウェアにより制御される。
【図面の簡単な説明】
【００１７】
本発明のこれらおよび他の態様ならびに特徴は、付随した図面と組み合わせて、本発明の特定の実施形態の以下の説明をレビューする際に、当業者にとって明らかになるだろう。
【図１】図１は、本発明の実施形態にしたがった安全なコンピュータアーキテクチャを図示しているトップレベルのダイヤグラムである。
【図２】図２は、本発明の原理にしたがったコンピュータシステムの機能ブロックダイヤグラムである。
【図３】図３は、本発明の実施形態にしたがって、コンピュータシステムのディスプレイおよびスタートアップ機能を守る例示的な態様を図示しているダイヤグラムである。
【図４】図４は、本発明の実施形態にしたがって、コンピュータシステムのネットワーク接続機能を守る例示的な態様を図示しているダイヤグラムである。
【図５】図５は、本発明の実施形態にしたがって、コンピュータシステムの周辺機器へのアプリケーションアクセスを守る例示的な態様を図示しているダイヤグラムである。
【図６】図６は、本発明の実施形態にしたがって、コンピュータシステムを守る例示的なプロセスを図示しているフローチャートである。
【好ましい実施形態の詳細な説明】
【００１８】
これから、本発明を図面を参照して詳細に説明する。図面は、当業者が本発明を実施できるようにするための、本発明の実例となる例として提供されている。特に、以下の図面および例は、本開示の範囲を単一の実施形態に限定することを意図しておらず、記述または図示したエレメントのうちのいくつかまたはすべての置換として、他の実施形態も可能性がある。さらに、既知のコンポーネントを使用して、本発明の特定のエレメントを部分的にまたは完全に実現できる場合、本発明の理解に必要なそのような既知のコンポーネントのうちのそれらの部分のみを記述し、本発明を曖昧にしないように、そのような既知のコンポーネントのうちの他の部分の詳細な説明は省略する。ソフトウェアで実現されるように記述された実施形態は、それに限定されるべきではなく、当業者にとって明らかなように、そうでないことがここに規定されていない限り、ハードウェアで、または、ソフトウェアおよびハードウェアの組み合わせで実現される実施形態を含めることができ、逆もまた同じである。本明細書中では、単一コンポーネントを示す実施形態は、限定するものとして考えられるべきではなく、むしろ、本発明は、そうでないことがここに明白に言及されていない限り、複数の同一コンポーネント含む他の実施形態を包含することが意図されており、逆もまた同じである。さらに、出願人は、そのように明白に述べられていない限り、明細書または特許請求の範囲中の任意の用語が、稀なまたは特別な意味であるとみなされることを意図していない。さらに、本発明は、ここで事例として参照される既知のコンポーネントとの現在および将来の既知の均等物を含む。
【００１９】
一般的に、本発明は、強化されたデータセキュリティのために設計されたコンピュータアーキテクチャを提供する。実施形態では、アーキテクチャは、それぞれがそれら自体の処理ユニットおよびメモリを持つ、２つのサブシステムと、２つのサブシステムおよび外界と相互接続する規定されたセットのインターフェースとを備える。１つのサブシステムは、コンピュータアプリケーションを実行するお馴染みの環境を提供するように設計されている。もう一方のサブシステムは、入力および出力デバイスを介して、第１のサブシステムとユーザとの間に安全なブリッジを提供するように設計されている。
【００２０】
図１は、本発明の態様にしたがった例示的なシステムアーキテクチャ１００を図示しているブロックダイヤグラムである。
【００２１】
図１中に示しているように、２つのサブシステムのうちの１つは、好ましくは、今日のパーソナルコンピュータの大部分を実行するｘ８６のような、一般的なマイクロプロセッサアーキテクチャ周辺に構築され、アプリケーションプロセッササブシステム１０２として指定されている。このアーキテクチャは、幅広いさまざまなアプリケーションソフトウェアおよびそれに対して利用可能なオペレーティングシステムに対して選択され、ユーザがそれらの選択のアプリケーションソフトウェアをインストールする柔軟性を最大化することを狙っている。これもまたｘ８６アーキテクチャ周辺に設計されている従来のパーソナルコンピュータとは異なって、このアプリケーションプロセッサは、実際の外部または内部周辺機器の代わりに、他のサブシステムにルーティングされているその周辺機器接続のすべてを有する。したがって、ｘ８６上で実行できるソフトウェアは、仮想的に制限されていない一方、このソフトウェアまたはそのデータへの外部アクセスは、専用のシステムプロセッササブシステムにより厳しく制御されており、これにより、それらのアプリケーションおよびそれらのデータを安全に保つのに必要な保護を実施する。
【００２２】
この他のサブシステム、システムプロセッサ１０４は、好ましくは埋め込みシステムである。そのようにして、これは、プロセッサと一緒に備えられている指定されたソフトウェアシステムを実行し、どのような環境下においてもコンピュータのエンドユーザにより修正できず、代わりに、ファームウェアと呼ばれるべきである。埋め込みシステムであるので、エンドユーザも、何らかの第３者開発者もそのソフトウェアコンポーネントのうちのいずれに書き込む、または、修正することを許可されていないことから、システムプロセッサモジュールのプロセッサアーキテクチャのうちの特定のものは重要ではない。システムプロセッサ１０４は、本質的に、それ自体のハードウェアサブシステム１０２上で実行している本来安全ではないアプリケーションソフトウェア環境と外界との間の“ブリッジ”として機能する。
【００２３】
周辺機器１０６は、典型的に、システム１００の機能性とコンピュータユーザとの間のインターフェースを提供する何らかのタイプのデバイスを備える。このようなデバイスは、ディスプレイ、スピーカ、プリンタ等のような、出力デバイスと、キーボード、マウス、タッチパッド、タッチスクリーン等のような、入力デバイスとを含めることができる。周辺機器１０６の数およびタイプは、アプリケーションプロセッサ１０２および１０４をハウジングするデバイスの特定のフォームファクタに依存できる。例えば、フォームファクタが従来のデスクトップコンピュータのものである発明の実施形態では、周辺機器１０６は、外部にアタッチされているディスプレイ、キーボードおよびマウスを含めることができる。フォームファクタが従来のノートブックコンピュータのものである場合に、周辺機器１０６は、統合されたディスプレイ、キーボードおよびタッチパッドを含めることができる。フォームファクタがタブレットコンピュータまたはスマートフォンのものである場合に、周辺機器１０６は、統合されたディスプレイ／タッチスクリーンを含めることができる。システム１００に対する異なるタイプのフォームファクタ間の周辺機器１０６は、必ずしも相互に排他的ではなく、経時的に不変でもないことに留意すべきである。例えば、多くの従来のタッチパッドコンピュータシステムは、オプションの別々のキーボードおよびマウス（例えば、ＵＳＢまたはブルートゥース（登録商標）を通して接続されている）により動作されてもよい。同様に、多くの従来のデスクトップコンピュータシステムは、オプションのタッチスクリーンまたは音声コマンドデバイスにより動作されてもよい。
【００２４】
いくつかの実施形態では、システム１００は、その中に埋め込まれており、何気なく見る人にとっては容易に明らかではない、システムプロセッサ１０２の追加のセキュリティ機能を持つ普通のコンピュータシステムに見えるように設計されている。例えば、システム１００は、従来の折り畳みディスプレイならびに内蔵型のキーボード、スピーカおよびポインティングデバイスを持つ普通のラップトップコンピュータとして見えることができる。他の可能性ある実施形態では、システムプロセッサ１０２およびアプリケーションプロセッサ１０４は、周辺機器１０６の特定のものと一緒に、または、周辺機器１０６の特定のものからさらに離れて、別々にハウジングされている。しかしながら、追加のセキュリティ態様に対して、プロセッササブシステム１０２および１０４は、おそらく、同一のＡＳＩＣ、ＳＯＣまたはＦＰＧＡ上の２つの別々のプロセッサコアにもかかわらず、好ましくは、同一の格納装置内に、および、もっと言えば、同一の回路基板上で、できるだけ統合されていることに留意すべきである。例えば、本発明者は、これらのサブシステム間の何らかのタイプの露出した相互接続は、潜在的に、攻撃者により悪用されるかもしれないことを認識している。したがって、このような相互接続は、好ましくは、アクセスすることをできるだけ難しくするように（例えば、同一の集積回路および／または回路基板内で）できている。システムプロセッサ１０４への周辺１０６接続については、システム１００の特定のフォームファクタにしたがって、これらは、統合されるか、別々であることができる。
【００２５】
所定の何らかのシステム１００のすべての周辺機器が、システムプロセッサ１０４によって制御されたアクセスを必ずしも有する必要がないことに留意すべきである。しかしながら、典型的に、キーボードおよびマウスのようなすべての入力デバイスとともに、ディスプレイのような最も有用な出力デバイスのような、システム１００の少なくとも最も有用または重要な周辺機器は制御される。これに関して、これらの周辺機器は、典型的に、アプリケーションプロセッサ１０２の特定のインプリメンテーションが、それを通して、ヒューマンオペレータと、または、他のコンピュータと（例えば、ネットワークまたは他の通信リンクを介して）インターフェースし、その動作および／またはデータを制御あるいはアクセスできる、それらの入力／出力デバイスを備えることを、本発明者は認識する。そのようにして、データおよびアプリケーションプロセッサ１０２の動作を外界に実質的に露出するすべての周辺機器１０６は、好ましくは、システムプロセッサ１０４を通してルーティングされる。したがって、“周辺機器”という用語は、実際の周辺機器、および、プロセッサを周辺機器に接続する接続（例えば、ポート）の双方を含むものとして解釈されるべきである。システムプロセッサ１０４は、したがって、好ましくは、周辺機器１０６とプロセッサ１０２との間の通信を、それらの通信における最も安全な物理的ポイントにおいて、妨害する。言い換えると、アプリケーションプロセッサ１０２は、それに接続されている何らかの重要な周辺機器を有さず、あるいは、直接的な、または、露出したもしくは外部からアクセス可能な接続を通してのその動作環境を有しておらず、むしろ、それらの接続は、システムプロセッサ１０４を通して、または、システムプロセッサ１０４により制御されている。
【００２６】
おそらくタイプに依存して、周辺機器１０６は、通常アプリケーションプロセッサ１０２およびシステムプロセッサ１０４をハウジングしているデバイスに対して内部または外部であり得ることにさらに留意すべきである。下記でより詳細に説明されるが、限定するものとして考えられるべきではない、システム１００の１つの好ましい実施形態は、デスクトップまたはノートブックコンピュータのフォームファクタにおけるデバイスの実施形態である。このような実施形態では、周辺機器１０６は、アタッチされているディスプレイ、キーボードおよびポインティングデバイス（例えば、タッチパッドおよび／またはスティックマウス）、あるいは、内部スピーカおよびワイヤレスモデム（例えば、８０２．１１ａ／ｂ／ｇ／ｎ）を含む。このような実施形態における周辺機器１０６はさらに、ＵＳＢ、ＲＪ−４５、Ｆｉｒｅｗｉｒｅ（登録商標）、ｅＳＡＴＡ、ＶＧＡ、ＨＤＭＩ（登録商標）、ＤＶＩ、ディスプレイポート(DisplayPort)およびミニディスプレイポート(MiniDisplayPort）のような、従来のジャックまたはインターフェースを含むシステム１００上の、対応するジャックを介してアタッチされている何らかの入力または出力外部デバイスを含めることができる。当業者は、本事例を教示された後に、より少ないタイプの、または、追加のタイプのインターフェースおよび／または周辺機器１０６によって、どのように発明を実現させるかを認識するだろう。
【００２７】
システムプロセッサ１０４は、典型的に、各タイプの周辺接続に対して２つの接続を有しており、１つは、実際の周辺機器１０６に対してのものであり、もう一方は、アプリケーションプロセッササブシステム１０２に対してのものである。下記でより詳細に説明されるように、システムプロセッサ１０４ハードウェアにより提供されるファームウェアは、アプリケーションプロセッササブシステム１０２のために、システムプロセッサ１０４に実際に接続されている各タイプの周辺機器デバイス１０６をエミュレートする。ファームウェアはさらに、好ましくは、サポートされているタイプの周辺機器のそれぞれに適切であって、アプリケーションソフトウェアおよびそのデータに対する最高レベルの保護を常に維持するために必要な、ルールおよびメカニズムのセットを実施する。実施形態では、すべての内部および外部周辺機器１０６は、システムプロセッサ１０４に接続され、周辺エミュレーションファームウェア機能性により使用される。
【００２８】
図１中に詳細に示してはいないが、アプリケーションプロセッサ１０２およびシステム制御措置１０４はさらに、メモリ、メモリおよびＩ／Ｏアドレス指定スペース、オペレーティングシステムソフトウェア、アプリケーションソフトウェア、グラフィックプロセッサ、サウンドプロセッサ、あるいは、プロセッサバスを備えることができることに留意すべきである。例えば、システム１００のフォームファクタがデスクトップコンピュータまたはノートブックコンピュータである場合に、システム１００は、ＰＣＩバスのような従来のパーソナルコンピュータコンポーネントと、Ｗｉｎｄｏｗｓ（登録商標）７のようなオペレーティングシステムを記憶するＲＡＭおよびＲＯＭメモリと、Ｗｉｎｄｏｗｓ Ｏｆｆｉｃｅのような関係するＢＩＯＳソフトウェアおよびアプリケーションソフトウェアとを含めることができる。システム１００はさらに、ＸＧＡグラフィックプロセッサ（例えば、Ｉｎｔｅｌ（登録商標）ｘ８６、ｎＶｉｄｉａにより提供されたそれらのような、ＡＭＤ集積グラフィックまたは外部プロセッサ）、５．１オーディオプロセッサ、ＵＳＢ入力および出力、イーサネット（登録商標）インターフェース、シリアル／パラレルインターフェース等のような、これらのような従来のパーソナルコンピュータコンポーネントを備えることができる。システムプロセッサ１０４、および、アプリケーションプロセッサ１０２とのこれらの相互動作による、このようなコンポーネントの制御が本発明の態様である点から、これらの詳細が下記で提供される。しかしながら、アプリケーションプロセッサ１０２のさらなる追加のインプリメンテーションの詳細は、本発明の明瞭性のために省略される。さらに、当業者は、これらの事例によって教示された後、パッドコンピュータおよびスマートフォンのような、他のタイプのフォームファクタに対するプロセッサ１０２のさまざまな代替実施形態を正しく認識するだろう。
【００２９】
システムプロセッササブシステム１０４の例示的な実施形態が、これから、それがエミュレートおよびサポートする周辺機器タイプの例に加えて、システムレベルの動作論理およびセキュリティをサポートすることを狙ったさまざまな補助装置機能の観点から説明される。
【００３０】
図２に関連して図示されているもののような例示的な実施形態において、システムプロセッサ２０４は、アプリケーションプロセッサ２０２とともに、キーボード２０６、ビデオｍｕｘ２０８およびファームウェア２１４に結合されている。アプリケーションプロセッサ２０２は、上述したアプリケーションプロセッサ１０２に対応させることができる。システムプロセッサ２０４は、ｘ８６プロセッサ、カスタムＡＳＩＣもしくはＳＯＣ、ＡＲＭプロセッサ等のような、任意の従来の、プロプラエタリの、または、将来のプロセッサにより実現されることができる。ファームウェア２１４は、好ましくは、システムプロセッサ２０４に専用であり、システムプロセッサ２０４と、これから以下に説明するそれの機能性とを制御するために必要な、すべてのオペレーティングシステムおよびアプリケーションソフトウェアを含む、ＲＯＭ（例えば、フラッシュ）で実現される。当業者は、ファームウェア２１４を含むソフトウェアの言語および構造は、プロセッサ２０４および／または使用するオペレーティングシステムを実現するために使用するプロセッサのタイプに依存できることを認識するだろう。当業者はさらに、前述の説明により教示された後、プロセッサ２０４の機能性を実現するソフトウェアおよびファームウェアを、おそらく、従来のオペレーティングシステムおよびアプリケーションとともに、どのように実現するかを理解するだろう。システムプロセッサ２０４は、プロセッサバス、ＲＡＭ／アプリケーションメモリ、グラフィックプロセッサ機能性、入力／出力ポート等のような、示されていない追加の機能および／またはコンポーネントを含めることができることにさらに留意すべきである。
【００３１】
示されているように、ビデオマルチプレクサ２０８は、少なくとも２つの入力２１６、２１８、および、１つの出力２２０を備える。ビデオマルチプレクサの出力２２０は、コンピュータディスプレイ２１０に接続されている。ビデオマルチプレクサ２０８の入力２１８のうちの１つは、システムプロセッササブシステム２０４の内部にあるビデオグラフィックモジュールに接続されており、ビデオグラフィックモジュールは、動作およびセキュリティ関連情報、および、エンドユーザとの対話を通信するためとともに、システムプロセッサ２０４ファームウェア中に埋め込まれている任意のアプリケーションの目的のために使用される。アプリケーションにより発生されるグラフィックが、システムプロセッサ２０４および制御信号２２２の制御の下で、マルチプレクサ２０８に、およびに、条件付きでマルチプレクサを通してディスプレイ２１０に向けられるように、ビデオマルチプレクサ２０８のもう一方の入力２１６は、アプリケーションプロセッササブシステム２０２のビデオグラフィックモジュールの出力に接続されている。実施形態では、マルチプレクサ２０８は、解像度をスケーリングし、ビデオ入力が、望まれる表示モード、ならびに、実際の解像度およびディスプレイモニタ２１０のフレームレートに対して適切であるように、ビデオ入力のフレームレートを調節する。システムプロセッサ２０４により決定された、システムの動作およびセキュリティモードに依存して、アプリケーショングラフィック出力２１６は、ディスプレイから完全にブロックされる、小さなウィンドウとしてモニタ２１０上に表示される、または、ディスプレイモニタ２１０のフルサイズにパススルーされるかもしれない。システムプロセッサ２０４自体のグラフィック２１８もまた、動作の動作およびセキュリティモードに依存して、さまざまな方法で条件付きでモニタ２１０にルーティングされることができる。
【００３２】
実施形態では、初期のシステムスタートアップおよび認証の間に、ビデオｍｕｘ２０８は、信号２２２を介してのシステムプロセッサ２０４の制御の下で、ディスプレイ２１０全体をシステムプロセッサ２０４グラフィックに専用にする。システムプロセッサ２０４はさらに、キーボード２０６（および、おそらくタッチパッド等のような他の入力デバイス）と、ユーザを適切に認証し、このプロセスの進行および結果をディスプレイ２１０を介してユーザに知らせるのに必要な対話とを制御する。実施形態では、アプリケーションプロセッサ２０２のビデオ出力は、認証が成功するまで観覧することが許されていないが、オペレーティングシステムおよびアプリケーションソフトウェアは、アプリケーションプロセッサ２０２上で以前からアクティブであってもよい。いったん認証が成功して完了すると、システムプロセッサ２０４は、通常動作モードを宣言し、このことにより、ビデオｍｕｘ２０８に、信号２２２を介して、入力２１６からのアプリケーショングラフィックにスクリーン全体を占めさせることになる。
【００３３】
実施形態では、システムプロセッサ２０４のグラフィックは、認証が成功した後、システムレベル情報を伝送する必要がある、または、システムプロセッサ２０４との対話を必要とする特定のキーの組み合わせが押下げられるときを除いて、ほとんどの時間可視できない。このような時に、ビデオｍｕｘ２０８は、システムプロセッサ２０４のグラフィックが、アプリケーショングラフィックの上に、オーバーレイとして表示されるようにすることができる。特別な条件の下で、例えば、ユーザが認証されているが、アプリケーションプロセッサ２０２は、アクティブ化されている、または、再起動されているとき、あるいは、システムプロセッサ２０４のファームウェア中に埋め込まれているアプリケーションが実行しているとき、ビデオｍｕｘ２０８は、アプリケーショングラフィックビデオ２１６を、スクリーン２１０上で小さなスクリーンとして表示させるようにでき、ユーザは、システムプロセッサ２０４と対話する間に、その進行を監視できる。
【００３４】
マルチプレクサ２０８は、システムプロセッサ２０４からの信号２２２により制御される。これは、複数のソースからのビデオおよびグラフィックを混合するために、クロマキー、オーバーレイ、ウィンドウ処理のような、任意の従来の、プロプラエタリの、または、将来の技術を使用できる。そのようにして、２０８の実現の詳細は、使用される特定の多重化技術に依存し、このために、２０８のさらなる詳細は、発明の明瞭性のためにここでは省略される。実施形態では、アプリケーションプロセッサ２０２が、標準ＸＧＡグラフィック制御装置を備える場合、標準ＸＧＡインターフェースを使用してインターフェース２１６を実現する。マルチプレクサ２０８は、同時係属出願番号１３／２４１，０７３中に記載されている追加のビデオセキュリティ機能を使用してもよく、同出願のコンテンツは参照によりそれらすべてがここに組み込まれていることにさらに留意すべきである。
【００３５】
認証は、任意の従来の、プロプラエタリの、または、将来の技術を含むことができ、当業者は、多くの可能性ある代替実施形態を認識するだろう。１つの限定されない例では、システムプロセッサ２０４は、ユーザネーム、パスワード、セキュリティキー、バイオメトリクス（例えば、指紋）のような、身分証明を入力／供給するようにユーザを促すことができる。これらの身分証明は、局所的に記憶された身分証明と比較することができ、または、システムプロセッサ２０４は、比較のためにそれらを遠隔認証サーバに転送することができる。さらにまた、局所的に記憶された身分証明は、必要なときに、時間制限をつけることができ、および、リフレッシュでき、あるいは、外部ソースから無効にすることができる。
【００３６】
アプリケーションプロセッサグラフィック２１６のｍｕｘ２０８を介したディスプレイ２１０への供給と同様に、システムプロセッサ２０４は、認証が成功するまで、プロセッサ２０２のキーボード２０６および他の周辺機器へのアクセスを妨げる。以下により詳細に説明するように、認証が成功した後、プロセッサ２０４は、ファームウェア２１４により提供されるエミュレーション機能性により制御されている、プロセッサ２０２によりエミュレートされた、バス２２４を介してのキーボード２０６および他の周辺機器へのアクセスを許可する。
【００３７】
本発明の態様にしたがって、コンピュータシステム１００のデータネットワーキング機能を守る例示的なアプローチをこれから記述する。実施形態では、システム１００は、特定の従業員による使用のために、企業により購入された独立型のコンピュータである。図３中で図示されているように、これらのおよび他の実施形態では、企業はさらに、好ましくは、パブリックアクセスデータネットワーク３２２（例えば、インターネット）に相互接続されているプライベートネットワーク３２０（例えば、イントラネット）をさらに所有／維持する。プライベートネットワーク３２０は、好ましくは、ファイヤーウォール、侵入検出、ならびに、他の法医学的およびアーキテクチャレベルの保護メカニズムのような、従来のデバイスの集合により、安全で、すべての関連する脅威から十分保護されている。これは、したがって、それらの集中化した調達および管理から、それらの既存の保護手段および利得の利益すべてを得るための、本発明のそのような実施形態のある態様である。
【００３８】
図３中に図示されているもののような実施形態では、システムプロセッササブシステム２０４上に、少なくとも２つの物理ネットワーキングインターフェースが存在する。それらのネットワークインターフェースのうちの１つ、典型的には、ギガバイトイーサネット（登録商標）ポート３０４は、“バックトゥバック”構成のアプリケーションプロセッササブシステム２０２上の類似したポート３０２に接続されており、アプリケーションプロセッサ２０２に対する唯一の利用可能な物理ネットワーキング接続である。それゆえ、プロセッサ２０２上のアプリケーションにおいて生じるすべてのトラフィックは、システムプロセッサ２０４により妨害されることになり、アプリケーションに向けられている任意のパケットは、初めに、システムプロセッサ２０４を通り抜けなければならない。
【００３９】
システムプロセッサ２０４上の１つ以上の物理ネットワーキングインターフェース６０６のもう一方は、典型的に、別のギガバイトイーサネットである。他のタイプは、Ｗｉ−Ｆｉ（登録商標）のような、ワイヤレスネットワークインターフェースモジュールを含むことができる。これらのインターフェースのいずれかまたは双方は、自動的に検出できる利用可能な物理ネットワークに接続できる。システムプロセッサのネットワーク管理機能３３０（好ましくは、ファームウェア２１４中で実現される）は、その後、検出されたネットワークを識別し、認証できるか否かを決定する。例えば、ネットワーク管理機能３３０は、検出されたネットワークが、このコンピュータを購入した指定企業のイントラネット３２０であるか否かを検証できる。例えば、ネットワーク管理機能３３０は、企業内で使用されるアドレスの範囲を記憶でき、検出されたネットワークのアドレスをこの範囲と比較できる。ネットワーク管理機能３３０はさらに、既知のサーバのリストのうちの１つへの接続を試み、サーバ暗号化証明書を取り出して、局所的に記憶された証明書データベースに対して証明書を検証できる。認証がパスし、直接接続されているネットワークが安全であると考えられる場合、システムプロセッサ２０４は、その後、第１のネットワーキングインターフェース３０２／３０４とアクティブな外部インターフェース３０６との間で、すべてのパケットを転送する。
【００４０】
もしも認証プロセスが成功しない場合に、または、いくつかのケースでは、プロセスを完全にバイパスさせるように、高められた保護レベルが望まれるときに、利用可能なネットワークは安全ではないと考えられ、仮想プライベートネットワーク（“ＶＰＮ”）接続（別称、ＶＰＮトンネル３０８）が、システムプロセッサ２０４上のＶＰＮクライアント３３２（好ましくは、ファームウェア２１４中で実現される）と、企業イントラネット３２０上の指定ＶＰＮゲートウェイ３１０上のＶＰＮサーバ３３４との間で確立されることになる。いったんＶＰＮトンネル３０８が確立されると、アプリケーションプロセッサ２０２に接続されている第１のインターフェース３０４へのトラフィックおよび第１のインターフェース３０４からのトラフィックのすべては、ＶＰＮトンネル３０８を排他的に通り抜けることになり、これにより、アプリケーションソフトウェアおよびそのオペレーティングシステムは、コンピュータが、それを使用する従業員によりあちこちに移動される間に、他のパブリックまたはプライベートネットワーク３０８に接続されるときでさえも、コンピュータが企業安全ネットワーク３２０（例えば、イントラネット）に局所的に接続されているかのように振る舞うことになる。望ましい実施形態は、ＶＰＮクライアント３３２を介して、アプリケーションプロセッサ２０２への生イーサネットトラフィック、および、アプリケーションプロセッサ２０２からの生イーサネットトラフィックをＶＰＮトンネル３０８上でカプセル化するために、ＩＰプロトコル３１２／３１４（ここでは、ＥｏＩＰ３１２は、好ましくはファームウェア２１４中で実現される）を通してイーサネットを利用する。サーバ３３４側において、ＶＰＮゲートウェイ３１０は、パケットを解読し、検証した後、それらを企業イントラネット３２０上へ送ることになる。当業者は、ＶＰＮトンネル３０８は、暗号シグニチャを使用して、送信されたデータパケットの暗号化、および、これらのパケットの信頼性の検証を提供することを正しく認識するだろう。したがって、機密情報を含むデータパケットが、コンピュータ内のアプリケーションプロセッサ２０２上で実行するアプリケーションソフトウェアと、企業データサーバとの間で交換されるとき、このようなデータは、パブリックアクセスネットワーク３２２リンク上を通過する間に、傍受または途中でのデータ修正から保護される。
【００４１】
実施形態では、システムプロセッサ２０４のファームウェア２１４中に埋め込まれているアプリケーションは、同一のＶＰＮトンネル３０８へのアクセスとともに、局所的に利用可能なネットワーク３２２へ直接的なアクセスを有する。したがって、埋め込まれているアプリケーションが任意の敏感な情報を送信することになる場合、それは、そのトラフィックをＶＰＮトンネル３０８を介して実行することになるだろう。それでもなお、ビデオ会議エージェントのような、ある例示的な埋め込まれたアプリケーションにおいて、制御装置２０４は、ユーザが、ＶＰＮトンネル３０８から企業ネットワークへ、潜在的には、別のＶＰＮトンネルを介してそれ以降を進む安全な接続を選択することを可能にし、接続が安全であるというインジケータを表示させることが可能である。追加として、または、代替的に、（例えば、性能の理由のために）安全な接続が望まれないときには、制御装置２０４は、ユーザが、局所的に利用可能なネットワーク３２２に直接アクセスすることにより、ビデオ会議接続を確立することを可能にし、接続が安全ではないことをユーザに示すことができ、ユーザは、任意の敏感な情報を議論することを避けるべきである。
【００４２】
システムプロセッサ２０４のファームウェア２１４中に埋め込まれている他のアプリケーションは、仮想ディスク画像をバックアップおよび同期化するためのアプリケーション（以下により詳細に記述する）を含んでもよく、したがって、上記の同一のＶＰＮトンネル３０８を介して企業記憶サーバに通信するだろう。
【００４３】
今日のコンピュータにとって重要な周辺機器は、ディスクドライブであり、本発明にしたがって、この周辺機器へのアクセスを制御する例示的な方法を、図４に関連してこれから記述する。図４中に示されているように、傾向は、磁気媒体ベースの回転ディスクをフラッシュメモリベースのソリッドステートデバイス４１０と置換することである。知られているように、ドライブは、典型的に、従来のコンピュータがそのソフトウェアのすべておよびそのデータの重要部分を維持する場所である。コンピュータが電源投入されるとき、通常“ベーシック入力／出力システム”に対して、“ＢＩＯＳ”と呼ばれる、リードオンリーまたはフラッシュメモリから実行される小さな低レベルファームウェアが、メモリおよびディスクドライブを初期化することになり、ディスクドライブからメインメモリへオペレーティングシステムソフトウェアをロードするように進めることになり、プロセスは、“ブートストラッピング”または“ブーティング”と呼ばれる。いったんオペレーティングシステムが実行を開始すると、それは、継続的にディスクドライブにアクセスし、アプリケーションソフトウェアおよびソフトウェアライブラリ、デバイスドライバおよびコンフィグレーションファイルを読み取る。
【００４４】
オペレーティングシステムが、任意のセキュリティ関連メカニズムを実現するとき、それらの保護エレメント中で使用されるキーおよびパスワードも、同一のディスク上に記憶される。独立型の環境で動作する必要がある任意のソフトウェアアプリケーションは、ネットワーキングが利用可能でないときに、そのデータのすべてとともに、ディスクドライブ上の実行可能なコードおよびコンフィグレーションデータを記憶する必要がある。それらのおよび他の理由のために、ディスクドライブは、さまざまな潜在的な脅威からの保護を必要としており、さまざまな潜在的な脅威のうちの最も顕著なものは、ディスクドライブ自体の盗用、または、コンピュータ全体とともにディスクドライブの盗用、ならびに、後続するそれが含むデータの抜き取りの可能性である。現在のコンピュータが、そのディスクドライブ上に記憶されているデータを暗号化することがますます一般的になってきており、ここで、ディスクのコンテンツ全体は、単一のキーにより暗号化される。これは、この単一のキーが危険にさらされるケースでは、データを脆弱なものにし、同時に、これは、新たな潜在的な問題を生成する：コンピュータのユーザが、暗号化キーへのアクセスを忘れる、または、損失する場合に、このコンピュータを割り当てられた企業も従業員も、もはやディスク上の任意のデータを取り出すことができない。
【００４５】
ここで開示するコンピュータアーキテクチャのある態様は、ディスクドライブが実現される方法にある。図４に関連して図示されているそれのような実施形態では、アプリケーションソフトウェアおよびオペレーティングシステムを実行するアプリケーションプロセッサ２０２は、任意のセキュリティ保護手段を実現する必要がなく、コンピュータの実際のディスクドライブ４１０への直接的なアクセスを有していない。代わりに、アプリケーションプロセッサ２０２の大容量記憶周辺機器接続、典型的には、シリアルＡＴＡ（すなわち、“ＳＡＴＡ”）ホスト制御装置４０４は、システムプロセッサ２０４上の互換性のあるインターフェース、すなわち、シリアルＡＴＡターゲットインターフェース４０６に接続されている。このインターフェース４０６は、アプリケーションプロセッサ２０２により発行される標準的なＡＴＡコマンドに応答し、システムレベルファームウェア２１４と一緒に、アプリケーションプロセッサ２０２に、エミュレートされたディスクドライブ４１４を提供する。ファームウェア２１４により実現される、ディスクドライブをエミュレートするプロセスは、仮想化された環境において用いられる技術に類似している。エミュレートされたディスクドライブ４１４は、実際には、実際のディスクドライブ４１０上に特定のフォーマットで記憶されたファイルの集合である。システムプロセッサ２０４は、それゆえ、それをリアルディスクドライブ（例えば、磁気または他の媒体ＨＤＤ）に、または、好ましくは、ソリッドステートディスクドライブ（“ＳＳＤ”）４１０に接続する、第２の大容量記憶インターフェース４０８を備えるだろう。このようなＳＳＤ（例えば、フラッシュメモリ、または、強誘電体ＲＡＭおよび相変化ＲＡＭのような、他の非揮発性のメモリ技術により実現される）は、磁気ドライブにわたる改良された性能を提供し、本質的には、以下に記述するエミュレーションプロセスおよび暗号化が課するかもしれない何らかの性能劣化を覆い隠すことになる。
【００４６】
図示されている例示的なアーキテクチャでは、システムプロセッサ２０４のファームウェア２１４は、ファイルおよびメインインデックスファイルの集合として、１つ以上のエミュレートされたディスクドライブ４１４のマップを維持し、マップは、順に、ファイルシステムを通して、リアルディスクドライブ４１０上で特定のフォーマットで記憶される。エミュレートされたディスクドライブ４１４が複数のファイルにわたるべきであるいくつか理由が存在する。第１に、ディスクドライブは、めったにその全体を利用されず、それゆえ、使用されていない記憶スペースに対して、リアルディスクドライブ上に何らかの記憶スペースを割り振る必要がない。したがって、エミュレートされたドライブ４１４の準備されたスペースを、ファイルの集合の上で分けることにより、そのアドレススペースの希薄なハンディングと、使用されていないエリアに対する実際の記憶の省略とを可能にする。第２に、ある時期において、チェックポイントとして知られるある時点におけるそのコンテンツに対応する、エミュレートされたドライブの一定画像４１６を維持する必要性が存在し、すべての後に修正されるデータはその後、リアルドライブ上の新しい別々のファイルに書き込まれる。これにより、たとえエミュレートされたディスク４１４が継続的に使用されている間でも、チェックポイントの時間におけるそのコンテンツは利用可能なままである。チェックポインティングが必要であるさまざまな理由が存在する。理由の１つは、重要な企業データ保管金庫上のディスクのコンテンツをバックアップまたは同期化し、コンピュータが紛失される、または、破損されるイベントにおいて、データの紛失を防ぐ能力である。チェックポインティングおよびバックアップ機能は、システムプロセッサ２０４のファームウェア２１４により実現され、したがって、プロセッサ２０２のオペレーティングシステムまたはアプリケーションソフトウェアとは無関係である。さらに、システムプロセッサ２０４は、アプリケーションプロセッサ２０２より極めて少ない電力を消費することから、コンピュータがアクティブに使用されていないか、周期的なバックアッププロセスを実行する必要がある場合に、コンピュータは、企業バックアップサーバと通信する十分な能力があり、エミュレートされたディスク４１４の最新のエリアをサーバに独立して安全に送信するので、電力をアプリケーションプロセッサ２０２に適用する必要はない。
【００４７】
エミュレートされたディスク４１４のデータは、好ましくは、リアルディスクドライブ上に記憶されるときに暗号化される。混乱を避けるために、アプリケーションプロセッサ２０２とシステムプロセッサ２０４との間で交換されたデータブロックは、暗号化されておらず、クリアテキストで送信される。このデータはその後、リアルソリッドステートディスクドライブ４１０に書き込まれる前に、プロセッサ４１２（例えば、ＡＥＳ２５６を使用して）により暗号化される。エミュレートされたディスクデータの暗号化のために使用される暗号化キーは、好ましくは、アプリケーションプロセッサ２０２のメモリスペース中には決して存在せず、したがって、悪質なソフトウェアをコンピュータに埋め込むことによる、この暗号化キーを狙う何らかの攻撃は無効にされる。たとえシステムプロセッサ２０４内であっても、エミュレートされたディスク４１４の暗号化キーは、決してメインメモリ中に記憶されるべきではないが、代わりに、暗号化キーに向けられている別個のメモリスペースは、通常動作の間にそれらのキーを記憶するために使用されるべきである。特に保護されているキー記憶メモリも、好ましくは、非揮発性のメモリ技術により作られ、これにより、それらのキーは、リアルソリッドステートディスクドライブ４１０上に記憶される必要は決してなく、代わりに、システムプロセッサ２０４を補って、チップのうちの１つの中に保たれる。
【００４８】
エミュレートされたディスク保護レベルのさらなる改良に対して、エミュレートされたディスク４１４のデータは、複数のファイル中に記憶されていることから、それらのファイルのそれぞれに対して特定の暗号化キーを指定することが望ましく、これにより、リアルドライブが盗まれた場合に、ディスク全体を危険にさらすのに必要になる時間量が倍増する。通常動作の間に、エミュレートされたディスクを表すファイルのうちの任意のものにより使用されるすべての暗号化キーは、好ましくは、システムプロセッサ２０２指定セキュリティモジュールメモリ中に存在する。
【００４９】
バックアッププロセスの間に、ファームウェア２１４は、エミュレートされたディスクデータ４１４を解読し、それを圧縮して、ＶＰＮトンネル暗号化プロトコルと上述したキーとを使用して、送信のためにそれを再暗号化する。この方法で、エミュレートされたディスク暗号化キーをネットワークを通して送信する、または、企業サーバ上にそれらを記憶する必要は決してなく、したがって、それらのサーバの１つが危険にさらされているイベントにおいて、すべての企業コンピュータのデータを危機にさらすリスクを最小化する。しかしながら、コンピュータが紛失される、または、破損される場合に、そのエミュレートされたディスク４１４中に記憶されたデータは、企業サーバのうちの１つ上に安全に維持されている新たなコンピュータが同一のユーザに対して迅速に準備され、エミュレートされたディスク画像４１６を新たなコンピュータにコピーすることにより、完全な動作に復元されることができる。
【００５０】
アプリケーションプロセッサ２０２およびそのソフトウェアの性能における、ディスクエミュレーションの影響を最小化するために、システムプロセッサ２０４は、いくつかの大容量記憶コマンドを同時に実行できるべきである。これは、シリアルＡＴＡコマンドセットのコマンド待ち合わせ機能を使用して実現できる。したがって、すべて同時に起こるいくつかの記憶関連アクティビティが存在する：記憶コマンドは、ＳＡＴＡターゲットハードウェア４０６により、メモリ中に受信され；メモリ中の多数のデータブロックは、ブロック４１２により暗号化され、または、解読され；別の記憶コマンドは、リアルドライブに接続するＳＡＴＡホストインターフェース４０８において実行され、これらがすべて同時に実行される。それにより、システムプロセッサ２０４により同時に処理される記憶動作が、少なくとも３つ存在するかもしれない。これは、アプリケーションプロセッサ２０２と、それが実行しているオペレーティングシステムとが、最初の１つへの応答を受信する前に、追加の記憶コマンドを発行することが可能な限り、ディスクドライブ４１４をエミュレートする間に、それらのコマンドを取り扱う際の追加される複雑性において避けられない遅延を効率的に覆い隠すだろう。
【００５１】
上述したグループに属さない周辺機器、および、属しているオプション的ないくつかは、通常ユニバーサルシリアルバス（ＵＳＢ）を使用してインターフェースされる。本発明の態様にしたがった、それらの周辺機器への安全なアクセスを提供する例示的な方法を、図５に関連してこれから記述する。このような周辺機器は、キーボード、マウス、プリンタ、ワイヤレスモデム、カードリーダー、外部ディスクドライブ、および、さまざまな特定用途向けＩ／Ｏデバイスを含めることができる。知られているように、ＵＳＢを介して接続されることができる周辺機器は、多数のカテゴリに属しており、それぞれは、可能性として、コンピュータシステムのセキュリティ上のその一意的な意味合いを持つ。いくつかのＵＳＢ周辺機器は、妥当に安全であると考えることができる一方で、他のものは、デジタル情報の巧みな盗用および電子的なサボタージュを計画するのに、近年非常に一般的になってきている。したがって、ＵＳＢ周辺接続を全体として、少しネットワーク保護ファイヤーウォールに似て、保護の追加レイヤに従属させることが好ましい。このことは、いずれの周辺機器が許可されているか、いずれが禁止されているか、および、いずれが制限されたもしくは制御された方法で使用可能であるかを選択するポリシー５１２のセットを課することになる。例えば、いくつかの企業は、外部ＵＳＢ大容量記憶デバイス（フラッシュドライブのような）の使用を禁止するかもしれない。他のものは、それらが同じ企業により発行されたものである限り、あるいは、フラッシュドライブから読み込まれたファイルもしくはフラッシュドライブに書き込まれたファイルのすべてが、埋め込まれている可能性があるマルウェアに対する検査のために、または、監査の目的のために、企業のセキュリティチームに送られる限り、それらの使用を許可することを選択してもよい。
【００５２】
上記の考慮事項の観点から、図５中に図示されている発明の実施形態におけるシステムプロセッサ２０４は、好ましくは、２つのＵＳＢポートを備え、１つは増補されたターゲット５０４として機能し、もう一方は、通常ＵＳＢホスト５０２として機能する。ホストポート５０２は、実際のＵＳＢ周辺機器５０６に接続するために使用され、ＵＳＢ周辺機器５０６のうちのいくつかは、コンピュータに対して内部であってもよい。例えば、ビデオ会議カメラ、オーディオスピーカおよびマイクロフォン、キーボードおよびタッチパッド、ならびに、外部周辺機器を接続するために使用されるいくつかの標準化されたＵＳＢポート。
【００５３】
ＵＳＢターゲットポート５０４は、アプリケーションプロセッササブシステム２０２上に存在する標準ＵＳＢポート５０８と、直接“バックトゥバック”で接続し、複数のＵＳＢ周辺機器をエミュレートするために、限定的に設計されたファームウェア２１４により補完された適切なハードウェアリソースを含む。普通のＵＳＢターゲット制御装置は、単一のターゲットデバイスのみを実現するために十分なリソースを備えており、これは、このケースでは満足ではないだろう。ここで開示するコンピュータアーキテクチャの目的のために、ＵＳＢターゲットポート５０４は、好ましくは、より多くのハードウェアリソースおよび論理を実現し、それぞれがそれ自体のデバイスアドレスを持つ、複数の（例えば、少なくとも８個の）独立的なＵＳＢ周辺機器をエミュレートする能力がある５１４。それらが、実際に、ＵＳＢハブを介して、アプリケーションプロセッサ２０２に接続されているいくつかの独立的なＵＳＢデバイスであるかのように、それらは、アプリケーションプロセッサ２０２オペレーティングシステムＵＳＢソフトウェアスタックによりエミュレートされている。エミュレートされたＵＳＢデバイス５１４の機能性を提供するために依存することになる実際のデバイスのうちのいくつかは、アプリケーションプロセッサ２０２上のＵＳＢインターフェース５０８の最速スピードよりも遅いスピードであるかもしれないことから、ＵＳＢターゲットポート５０４は、それがＵＳＢハブに必要な論理を実現する場合に、システム性能全体に利益をもたらすだろう。言い換えると、増補されたＵＳＢターゲットポート５０４に必要とされるリソースは、ＵＳＢハブ５１０とともに、いくつかの独立的なＵＳＢターゲットデバイス５０６のリソースに対応する。
【００５４】
システムプロセッサ２０４のファームウェア２１４は、ハードウェア機能を補完し、エミュレートされたＵＳＢ周辺機器５１４のそれぞれを、そのＵＳＢホストポート５０２に接続されているリアルＵＳＢデバイス５０６の１つにマッピングするが、セキュリティポリシー５１２のセットと矛盾がない方法でそのようにする。これらのポリシー５１２は、ファームウェア２１４により局所的に記憶され、ユーザの介入なしで、企業サーバから時々自動的に取り出すことができる。これらのポリシー５１２は、本質的に無害であると考えられる、あるクラスのデバイスのマッピングおよび透過ブリッジングを可能にしてもよい。依然として、最も無害なＵＳＢデバイス（例えば、外部マウス）でさえも、それらのＵＳＢデータ構造の有効性に対してチェックされなければならず、これにより、アプリケーションオペレーティングシステムＵＳＢスタック中に存在するかもしれない、悪意を持って作られたＵＳＢパケットとともに悪用することが可能な何らかの虚弱性から、エンジン５１２により保護される。
【００５５】
他のＵＳＢデバイスは、それらのクラスおよびサブクラスに基づいて、エンジン５１２により禁止されてもよい。いくつかのＵＳＢデバイスは、製造業者およびモデルコードに基づいて、または、よりいっそう詳細には、それらのシリアル番号に基づいて、許可されてもよく、これにより、例えば、ＵＳＢフラッシュドライブは、通常禁止されることになる一方で、内蔵型セキュリティシールドを有し、企業により支給された極めて特定のフラッシュドライブは許可されるだろう。
【００５６】
いくつかのケースでは、許可されたデバイスが、ある特定のアクションによりエミュレートされる。例えば、コンピュータキーボードはＵＳＢデバイスであり、あるキーの組み合わせが、システムプロセッサ２０４により妨害されるべきであり、アプリケーションプロセッサ２０２に転送されるべきではないことを除いては、通常許可されるべきであり、呼び出されることになるあるシステムレベルの機能を要求するために使用されるべきである。別の例は、監査トレイルを保持するために、許可されたＵＳＢフラッシュドライブがポリシー５１２により必要とされるときである。このようなケースでは、データをＵＳＢフラッシュドライブから読み取って、データをＵＳＢフラッシュドライブに書き込むためのコマンドは、システムプロセッサの２つＵＳＢポート５０２、５０４にわたって転送されるだろうし、これらのコマンドとともに付随するデータは、局所的なドライブ上の特別なファイル中に記録されるだろうし、次に、記憶および次の監査のために、ＶＰＮトンネルを介して企業サーバに提示される。
【００５７】
ＵＳＢハブ５１０上の論理、すなわち、分割トランザクションのサポートにより増補されたＵＳＢターゲットポート５０４により、ブリッジングを透明に行うことができる。分割トランザクションサポートにより、システムプロセッサ２０４が、アプリケーションプロセッサ２０２ＵＳＢスタックからの任意のコマンドを、その同一の要求（許可されている場合）を実際のリアルＵＳＢデバイス５０６に転送することにより取り扱うことを可能にし、その後、準備ができたときに応答を送り返す。分割トランザクションサポートを使用しなければ、ファームウェアが、時間的に先に、任意の予期されるＵＳＢコマンドへの応答を準備し、それを適切なＵＳＢターゲットデバイスエンドポイントバッファ中に記憶させることが必要になるだろう。このことは、必ずしも、リアルＵＳＢデバイスとエミュレートされたＵＳＢデバイスとの間のブリッジングの際に、十分な透過性を提供しない。
【００５８】
上記に加えて、時々、純粋に動作目的のために必要なそれらの接続や、アプリケーションソフトウェアおよびオペレーティングシステム上に影響しないそれらの接続を含む、２つのサブシステム２０２および２０４の間で多数の接続を必要とする。１つのこのような接続は、システムプロセッササブシステム２０４が、アプリケーションプロセッササブシステム２０２の電力供給を制御し、標準コンピュータ電力供給をエミュレートする能力であるだろう。別の接続は、アプリケーションプロセッサ２０２上の“ＢＩＯＳ”低レベルの動作ソフトウェアを制御および監視でき、このことは、好ましくは、低速シリアルポートを介して行われる。これにより、動作監視機能を、システムプロセッサ２０４のファームウェア２１４とともに埋め込むことを可能にし、企業サーバファームによる遠隔コンフィグレーション、および、企業サーバファームへのオペレーティングシステムブートストラッププロセスの報告を可能する。
【００５９】
本発明の実施形態にしたがって、コンピュータシステム１００への安全なアクセスを提供する例示的なプロセスを、図６に関連してこれから記述する。
【００６０】
図６中で示されているように、処理は、例えば、システム電源投入／リセットボタンが押下げられるときに、初期のシステムスタートアップＳ６０２の間に開始する。初めに、ステップＳ６０４中に示されているように、システムプロセッサ２０４中の動作するファームウェア２１４は、システム１００の完全な制御を仮定し、すべてのシステム周辺機器に対するアプリケーションプロセッサ２０２のアクセスをブロックする。例えば、システムプロセッサ２０４は、キーボード２０６、および、マウスのような類似した入力デバイスへのアクセスをブロックする。言い換えると、たとえこのような周辺機器がシステム１００にアタッチされていても、それらからの信号は、システムプロセッサ２０４へのみ提供され、それらの信号は、アプリケーションプロセッサ２０２に中継されない。同様に、システムプロセッサ２０４は、ビデオｍｕｘ２０８に、ディスプレイ２１０上に示されることなる、アプリケーションプロセッサ２０２からの任意のビデオ出力をブロックさせる。その間に、システムプロセッサ２０４は、ビデオｍｕｘ２０８に、システムプロセッサ２０４による出力であるスタートアップスクリーンを表示させる。
【００６１】
ステップＳ６０６中で示されているように、システムプロセッサ２０４は、アプリケーションプロセッサ２０２がブートすることを可能にする。他の実施形態では、このステップは、ユーザが認証された後まで起こらない。いずれのイベントにおいても、アプリケーションプロセッサ２０２のスタートアップの間に、システムプロセッサ２０４は、ディスクドライブ４１０へのアプリケーションプロセッサ２０２のアクセスを制御し（例えば、プロセッサ２０２が、Ｗｉｎｄｏｗｓ７のようなオペレーティングシステムをロードするために）、エミュレートされたキーボードを提供し、そのような入力および出力は実際にはシステムプロセッサ２０４によりブロックされているけれども、アプリケーションプロセッサ２０２のためのＢＩＯＳ／オペレーティングシステムに対する接続を表示できる。
【００６２】
次のステップＳ６０８中では、システムプロセッサ２０４は、キーボード２０６（および、おそらく、タッチパッド等のような他の入力デバイス）、ならびに、ユーザを適切に認証するために必要な対話を排他的に制御し、そのプロセスの進行および結果をディスプレイ２１０を介してユーザに知らせる。上述したように、認証は、任意の従来の、プロプラエタリの、または、将来の技術を含むことができ、当業者は、多くの可能性ある代替実施形態を認識するだろう。１つの限定されない例では、システムプロセッサ２０４は、ユーザネーム、パスワード、セキュリティキー、バイオメトリクス（例えば、指紋）のような、身分証明を入力／供給するようにユーザを促すことができる。これらの身分証明は、局所的に記憶された身分証明と比較することができ、または、システムプロセッサ２０４は、比較のためにそれらを遠隔認証サーバに転送することができる。
【００６３】
ステップＳ６１０において、認証が失敗であると決定される場合に、ステップＳ６１２において、エラースクリーンが表示され、任意のアタッチされている周辺機器上で、ユーザからのすべてのさらなる入力が無視されることになる。
【００６４】
そうでなければ、ステップＳ６１０において、認証が成功したことが決定された場合に、システムプロセッサ２０４は、ステップ６１４において、通常動作モードを宣言し、ビデオｍｕｘ２０８に、アプリケーションプロセッサ２０２グラフィックにスクリーン全体を占めさせることを可能にする。同様に、認証が成功した後に、プロセッサ２０４は、ファームウェア２１４中にプログラムされているエミュレーション機能により提供されるように、バス２２４を介して、プロセッサ２０２によるキーボード２０６および他の周辺機器へのエミュレートされたアクセスを許可する。“認証”状態は永続的なものである必要がないことに留意すべきである。例えば、システムのインアクティビティまたは部分的なシャットダウンのイベントにおいて、システムは、ロックアップし、認証されていない状態に戻ることができる。このケースでは、アプリケーションプロセッサ２０２は、おそらく依然として実行しているが、おそらく、システムを動作状態に維持するために必要な特定の記憶装置およびネットワークを除く任意の周辺機器に、プロセッサ２０４によってアクセスすることからブロックする。この点において、システムプロセッサ２０４は、再認証するために、ログオンスクリーンを表示させ、ユーザと対話できる。
【００６５】
別の例として、たとえシステムが“認証”状態である間も、システムプロセッサ２０４は、“オーバーレイ”モードでメッセージまたはグラフィックをディスプレイ２１０上で表示させることにより、オペレータの注意を周期的に要求し、システムプロセッサ２０４ファームウェアの制御の下でメニューをポップアップさせることができる予め規定されたキーの組み合わせをキーボード上で入力することにより、オペレータとシステムプロセッサ２０４との間の対話を可能にすることができる。このような対話を使用して、ネットワーク設定を調節し、性能管理機能を実行し、または、安全な音声またはビデオ通信のような、システムプロセッサ２０４ファームウェア中に内蔵された他の任意の機能性を呼び出すことができる。
【００６６】
本発明は、その好ましい実施形態を参照して、特に記述されているが、本発明の精神および範囲から逸脱することなく、形式および詳細における変更および修正を行うことができることは当業者にとって容易に明らかであるべきである。付随の特許請求の範囲は、このような変更および修正を含むことが意図されている。
以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
コンピュータシステムにおいて、
アプリケーションを実行するように構成されている第１のプロセッサを備える第１のサブシステムと、
セキュリティファームウェアを実行するように構成されている第２の別個のプロセッサを備える第２のサブシステムと、
前記第２のサブシステムに接続されている周辺機器とを具備し、
前記アプリケーションによる前記周辺機器へのアクセスは、前記第１のサブシステムの対応する周辺接続をエミュレートする、前記第２のプロセッサ上で実行している前記セキュリティファームウェアにより制御されるコンピュータシステム。
［Ｃ２］
前記周辺機器は、ビデオディスプレイを備え、
前記コンピュータシステムは、前記第１のサブシステムに接続される第１の入力と、前記第２のサブシステムに接続される第２の入力と、前記ビデオディスプレイに接続される出力とを有するビデオマルチプレクサをさらに具備し、
前記出力を導出するための、前記第１の入力および前記第２の入力からのコンテンツの選択は、前記第２のプロセッサ上で実行している前記セキュリティファームウェアにより制御される［Ｃ１］記載のコンピュータシステム。
［Ｃ３］
前記周辺機器は、キーボードをさらに備え、前記セキュリティファームウェアは、スタートアップシーケンスを含み、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第２のプロセッサにより排他的に制御され、前記第１のプロセッサによる前記キーボードおよびビデオディスプレイへのアクセスは妨げられる［Ｃ２］記載のコンピュータシステム。
［Ｃ４］
前記周辺機器は、前記第１のプロセッササブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記システムは、前記セキュリティファームウェアにより維持されるエミュレートされたディスクドライブをさらに具備し、
前記第１のプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される［Ｃ１］記載のコンピュータシステム。
［Ｃ５］
前記セキュリティファームウェアは、前記エミュレートされたディスクドライブの１つ以上の時間特有な画像を維持する［Ｃ４］記載のコンピュータシステム。
［Ｃ６］
前記ディスクドライブは、ソリッドステートディスクドライブを含む［Ｃ４］記載のコンピュータシステム。
［Ｃ７］
前記セキュリティファームウェアは、前記ディスクドライブ上のすべてのデータを暗号化し、前記暗号化のためのキーは、前記セキュリティファームウェアにより排他的に維持される［Ｃ４］記載のコンピュータシステム。
［Ｃ８］
前記周辺機器は、ネットワーク接続を備え、前記セキュリティファームウェアは、前記第１のサブシステムによる外部ネットワークへのアクセスを制御する［Ｃ１］記載のコンピュータシステム。
［Ｃ９］
前記第１のサブシステムと前記外部ネットワークとの間のすべての通信のために、前記セキュリティファームウェアにより維持されているＶＰＮトンネルをさらに具備する［Ｃ８］記載のコンピュータシステム。
［Ｃ１０］
コンピュータシステムを守る方法において、
アプリケーションを実行する第１のプロセッサを備える、前記コンピュータシステムの第１のサブシステムを構成することと、
セキュリティファームウェアを実行する第２の別個のプロセッサを備える、前記コンピュータシステムの第２のサブシステムを構成することと、
周辺機器を前記第２のサブシステムに接続することと、
前記第１のサブシステムの対応する周辺接続をエミュレートする、前記第２のプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記アプリケーションによる前記周辺機器へのアクセスを制御することとを含む方法。
［Ｃ１１］
前記周辺機器は、ビデオディスプレイを備え、
前記方法は、
ビデオマルチプレクサを前記コンピュータシステム中に提供することと、
前記ビデオマルチプレクサの第１の入力を前記第１のサブシステムに接続することと、
前記ビデオマルチプレクサの接続されている第２の入力を前記第２のサブシステムに接続することと、
前記ビデオディスプレイの出力を前記ビデオディスプレイに接続することと、
前記第２のプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記出力を導出するための、前記第１の入力および前記第２の入力からのコンテンツの選択を制御することとをさらに含む［Ｃ１０］記載の方法。
［Ｃ１２］
前記周辺機器は、キーボードをさらに備え、
前記方法は、前記セキュリティファームウェアにより実行されるスタートアップシーケンスをさらに含み、
前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第２のプロセッサにより排他的に制御され、前記第１のプロセッサによる、前記キーボードおよびビデオディスプレイへのアクセスは妨げられる［Ｃ１１］記載の方法。
［Ｃ１３］
前記周辺機器は、前記第１のプロセッササブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記方法は、前記セキュリティファームウェアを使用して、エミュレートされたディスクドライブを維持することをさらに含み、
前記第１のプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される［Ｃ１０］記載の方法。
［Ｃ１４］
前記セキュリティファームウェアを使用して、前記エミュレートされたディスクドライブの１つ以上の時間特有な画像を維持することをさらに含む［Ｃ１３］記載の方法。
［Ｃ１５］
前記ディスクドライブは、ソリッドステートディスクドライブを含む［Ｃ１３］記載の方法。
［Ｃ１６］
前記セキュリティファームウェアを使用して、前記ディスクドライブ上のすべてのデータを暗号化することと、
前記暗号化のためのキーを、前記セキュリティファームウェアにより排他的に維持することとをさらに含む［Ｃ１３］記載の方法。
［Ｃ１７］
前記周辺機器は、ネットワーク接続を備え、
前記方法は、前記セキュリティファームウェアを使用して、前記第１のサブシステムによる外部ネットワークへのすべてのアクセスを制御することをさらに含む［Ｃ１０］記載の方法。
［Ｃ１８］
前記セキュリティファームウェアを使用して、前記第１のサブシステムと前記外部ネットワークとの間のすべての通信のために、ＶＰＮトンネルを維持することをさらに含む［Ｃ１７］記載の方法。
［Ｃ１９］
システムにおいて、
独立型コンピュータシステムと、
前記独立型コンピュータシステムを制御する組織によりホストされた安全なイントラネットとを具備し、
前記独立型コンピュータシステムは、
アプリケーションを実行するように構成されている第１のプロセッサを備える第１のサブシステムと、
セキュリティファームウェアを実行するように構成されている第２の別個のプロセッサを備える第２のサブシステムとを備え、
前記アプリケーションによる前記安全なイントラネットへのアクセスは、前記第１のサブシステムの対応する周辺ネットワーク接続をエミュレートする、前記第２のプロセッサ上で実行している前記セキュリティファームウェアにより制御されるシステム。
［Ｃ２０］
前記独立型コンピュータシステムは、ノートブックコンピュータを含む［Ｃ１９］記載のシステム。
【図１】
0005976564.tif 000002
【図２】
0005976564.tif 000003
【図３】
0005976564.tif 000004
【図４】
0005976564.tif 000005
【図５】
0005976564.tif 000006
【図６】
0005976564.tif 000007