(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5976564
(24)【登録日】2016年7月29日
(45)【発行日】2016年8月23日
(54)【発明の名称】セキュリティ強化されたコンピュータシステムおよび方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20160809BHJP
G06F 21/82 20130101ALI20160809BHJP
G06F 21/83 20130101ALI20160809BHJP
G06F 21/84 20130101ALI20160809BHJP
【FI】
G06F21/57
G06F21/82
G06F21/83
G06F21/84
【請求項の数】14
【外国語出願】
【全頁数】25
(21)【出願番号】特願2013-26487(P2013-26487)
(22)【出願日】2013年2月14日
(65)【公開番号】特開2013-178764(P2013-178764A)
(43)【公開日】2013年9月9日
【審査請求日】2016年1月28日
(31)【優先権主張番号】13/396,582
(32)【優先日】2012年2月14日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】513035955
【氏名又は名称】ジャヌス・テクノロジーズ,インコーポレイテッド
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100088683
【弁理士】
【氏名又は名称】中村 誠
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100095441
【弁理士】
【氏名又は名称】白根 俊郎
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(72)【発明者】
【氏名】チェン−ファ・ワン
(72)【発明者】
【氏名】ソフィン・ラスキン
(72)【発明者】
【氏名】レオニド・ロゼンボイム
【審査官】
平井 誠
(56)【参考文献】
【文献】
米国特許出願公開第2011/0199308(US,A1)
【文献】
米国特許出願公開第2009/0254986(US,A1)
【文献】
特開2000−285025(JP,A)
【文献】
米国特許第05896499(US,A)
【文献】
米国特許出願公開第2004/0268147(US,A1)
【文献】
特開2003−122640(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/50−57
G06F 21/82−85
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムにおいて、
アプリケーションを実行するように構成されている第1のハードウェアプロセッサを備える第1のハードウェアサブシステムと、
セキュリティファームウェアを実行するように構成されている第2の別個のハードウェアプロセッサを備える第2のハードウェアサブシステムと、
前記第2のハードウェアサブシステムに接続されている周辺機器と、ここにおいて、前記アプリケーションによる前記接続されている周辺機器へのアクセスは、前記第1のハードウェアサブシステムの対応する周辺接続をエミュレートする、前記第2のハードウェアプロセッサ上で実行している前記セキュリティファームウェアにより選択的に妨げられる、
を具備し、
前記周辺機器は、ビデオディスプレイとキーボードとを備え、
前記コンピュータシステムは、前記第1のハードウェアサブシステムに接続される第1の入力と、前記第2のハードウェアサブシステムに接続される第2の入力と、前記ビデオディスプレイに接続される出力とを有するビデオマルチプレクサをさらに具備し、
前記出力を導出するための、前記第1の入力および前記第2の入力からのコンテンツの選択は、前記第2のハードウェアプロセッサ上で実行している前記セキュリティファームウェアにより制御され、前記セキュリティファームウェアは、スタートアップシーケンスを含み、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第2のハードウェアプロセッサにより排他的に制御され、前記第1のハードウェアプロセッサによる前記キーボードおよびビデオディスプレイへのアクセスは妨げられる、コンピュータシステム。
【請求項2】
前記周辺機器は、前記第1のハードウェアサブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記コンピュータシステムは、前記セキュリティファームウェアにより維持されるエミュレートされたディスクドライブをさらに具備し、
前記第1のハードウェアプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される請求項1記載のコンピュータシステム。
【請求項3】
前記セキュリティファームウェアは、前記エミュレートされたディスクドライブの1つ以上の時間特有な画像を維持する請求項2記載のコンピュータシステム。
【請求項4】
前記ディスクドライブは、ソリッドステートディスクドライブを含む請求項2記載のコンピュータシステム。
【請求項5】
前記セキュリティファームウェアは、前記ディスクドライブ上のすべてのデータを暗号化し、前記暗号化のためのキーは、前記セキュリティファームウェアにより排他的に維持される請求項2記載のコンピュータシステム。
【請求項6】
前記周辺機器は、ネットワーク接続を備え、前記セキュリティファームウェアは、前記第1のハードウェアサブシステムによる外部ネットワークへのアクセスを制御する請求項1記載のコンピュータシステム。
【請求項7】
前記第1のハードウェアサブシステムと前記外部ネットワークとの間のすべての通信のために、前記セキュリティファームウェアにより維持されているVPNトンネルをさらに具備する請求項6記載のコンピュータシステム。
【請求項8】
コンピュータシステムを守る方法において、
アプリケーションを実行する第1のハードウェアプロセッサを備える、前記コンピュータシステムの第1のハードウェアサブシステムを構成することと、
セキュリティファームウェアを実行する第2の別個のハードウェアプロセッサを備える、前記コンピュータシステムの第2のハードウェアサブシステムを構成することと、
周辺機器を前記第2のハードウェアサブシステムに接続することと、
前記第1のハードウェアサブシステムの対応する周辺接続をエミュレートする、前記第2のハードウェアプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記アプリケーションによる前記接続されている周辺機器へのアクセスを選択的に妨げることと、
含み、
前記周辺機器は、ビデオディスプレイとキーボードとを備え、
前記方法は、
ビデオマルチプレクサを前記コンピュータシステム中に提供することと、
前記ビデオマルチプレクサの第1の入力を前記第1のハードウェアサブシステムに接続することと、
前記ビデオマルチプレクサの接続されている第2の入力を前記第2のハードウェアサブシステムに接続することと、
前記ビデオマルチプレクサの出力を前記ビデオディスプレイに接続することと、
前記第2のハードウェアプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記出力を導出するための、前記第1の入力および前記第2の入力からのコンテンツの選択を制御することと、
前記セキュリティファームウェアにより実行されるスタートアップシーケンスと、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第2のハードウェアプロセッサにより排他的に制御され、前記第1のハードウェアプロセッサによる、前記キーボードおよびビデオディスプレイへのアクセスは妨げられる、
をさらに含む、方法。
【請求項9】
前記周辺機器は、前記第1のハードウェアサブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記方法は、前記セキュリティファームウェアを使用して、エミュレートされたディスクドライブを維持することをさらに含み、
前記第1のハードウェアプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される請求項8記載の方法。
【請求項10】
前記セキュリティファームウェアを使用して、前記エミュレートされたディスクドライブの1つ以上の時間特有な画像を維持することをさらに含む請求項9記載の方法。
【請求項11】
前記ディスクドライブは、ソリッドステートディスクドライブを含む請求項9記載の方法。
【請求項12】
前記セキュリティファームウェアを使用して、前記ディスクドライブ上のすべてのデータを暗号化することと、
前記暗号化のためのキーを、前記セキュリティファームウェアにより排他的に維持することと、
をさらに含む請求項9記載の方法。
【請求項13】
前記周辺機器は、ネットワーク接続を備え、
前記方法は、前記セキュリティファームウェアを使用して、前記第1のハードウェアサブシステムによる外部ネットワークへのすべてのアクセスを制御することをさらに含む請求項9記載の方法。
【請求項14】
前記セキュリティファームウェアを使用して、前記第1のハードウェアサブシステムと前記外部ネットワークとの間のすべての通信のために、VPNトンネルを維持することをさらに含む請求項13記載の方法。
【発明の詳細な説明】
【0001】
本発明は、一般的に、コンピュータに関連し、さらに詳細には、情報セキュリティがさらに重要である企業および政府機関において使用されるコンピュータに関連している。
【0002】
従来、個人的なおよび法人のデータセキュリティ機能は、手が届く価格になるように設計された消費者級のパーソナルコンピュータと本質的に同一のハードウェアアーキテクチャ上のアドオンソフトウェアモジュールの形態で実現されている。時に、例えば、より安全にユーザを認証する目的のために、セキュリティ特有なアドオンハードウェアモジュール(例えば、スマートカード、バイオメトリクス)も実現されている。たとえこれらのケースであっても、セキュリティ機能性の大部分は、アドオンソフトウェアコンポーネントとして実現されている。アドオンソフトウェアコンポーネントは、時にオペレーティングシステム中に統合されているが、たいていはメモリ中に存在し、他の任意のソフトウェアアプリケーションと同然に実行される。
【0003】
この従来のアプローチによる著しい課題は、セキュリティ機能性がソフトウェア上で実現されるときに、これが多数の異なる方法で危険にさらされるかもしれないことである。コンピュータを動作させる通常のコースでは、ユーザはいくつかのソフトウェアコンポーネントを時折追加し、または、修正する。これは、ソフトウェアコンポーネントを追加および置換する能力であり、汎用コンピューティングアーキテクチャに、幅広い種類のタスクおよび割り当てにおけるその柔軟性および有用性を提供する。攻撃者がコンピュータシステムのセキュリティを危険にさらす好機を開くソフトウェアモジュールを修正または追加するのもこの同一の能力である。
【0004】
新しいソフトウェアコンポーネントが導入されるとき、それが攻撃をもたらすように向けられた機能を含むリスク、または、それが、攻撃を促進するために外部で悪用され得るプログラミングエラーを含むリスクがある。また、セキュリティソフトウェアは、アプリケーションソフトウェアと同様に分配およびインストールされることから、これも同じリスクを受けやすい。
【0005】
従来の汎用コンピュータでは、ランダムアクセスメモリ(RAM)全体が、単一の大きな均一バンク中に編成されており、単一の大きな均一バンクは、プロセッサにより物理的にアクセスでき、または、システムが複数のプロセッサを備える場合に、すべてのプロセッサによりアクセスできる。メモリアクセスの均一性は、コンピュータにおける重要なリソースの1つであるRAMの使用における最大の柔軟性を提供し、RAMは、オペレーティングシステムおよびアプリケーションソフトウェアによるRAMの最も最適な利用につながる。コスト効率に対して効率的である一方で、均一RAMアーキテクチャは、継続的に実行しているプログラムが、互いのメモリ領域にアクセスできること、または、オペレーティングシステムもしくはそのコンポーネントにより占有されているメモリにアクセスできることも意味する。そのようにして、均一RAMアーキテクチャのこの機能は、コンピュータのセキュリティを危険にさらすのに最も使用されている手段である。
【0006】
現代のコンピュータシステムは、“仮想メモリ”と呼ばれるメカニズムも用いる。ここで、メモリ管理ユニット(“MMU”)と呼ばれる、プロセッサに埋め込まれているハードウェアコンポーネントが、メモリアドレス翻訳の機能を実行する。仮想メモリの追加により、RAMをセクションに分割することができるようになり、各セクションは、特定のソフトウェアコンポーネントまたはそのグループに専用である。仮想メモリはまた、異なるソフトウェアコンポーネントまたはオペレーティングシステムに属するメモリへの故意ではないアクセスを妨げる。仮想メモリメカニズムは、異常なソフトウェアの振る舞いが、全体としてのシステムの安定性に影響を与えることを妨げるのに非常に効率的であることが分かっているが、これは、悪質なサボタージュを妨げることは意図しておらず、すべてのオペレーティングシステム中には、診断目的を意図するMMUにより提供されている保護を回避するための文書化されたメカニズムが存在する。これらのメカニズムは悪用されて、コンピュータのセキュリティおよびコンピュータに含まれるデータを危険にさらすことが多い。
【0007】
高められたレベルのセキュリティを達成するための1つの従来のアプローチでは、セキュリティメカニズムのいくつかの部分は、個々のおよび専用のハードウェアモジュールで実現され、これは、さらなる耐タンパの機能を持つように設計されており、それにより、潜在的な侵入者に対して難易度を追加する。おそらく、ハードウェア強化されたコンピュータセキュリティ機能の最も早い機密扱いされていない例の一つは、IBM(登録商標)HSM(ハードウェアセキュリティモジュール)であった。これは、オフィスの金庫と同様に設計された堅牢な格納装置中に構築されたそれ自体のメモリおよび記憶サブシステムを持つ小さな独立型コンピュータであった。銀行カードの個人識別番号は、銀行員でさえもクリアテキスト形態のそれらのコードへのアクセスを持たないように、HSM中に記憶されていた。現金自動預け払い機がカード保持者の身元を検証する必要があったときには、PINが決してそのまま通信リンクを通して送信されないように、暗号化チャレンジレスポンスシーケンスが開始され、HSMが検証プロセスを安全に実行した。
【0008】
(GSM(登録商標)に基づく)世界水準のセルラ電話機システムのスマートカードアプローチのユーザ認証メカニズムは、ハードウェアセキュリティモジュールが指の爪のサイズに小型化されていることを除いて、同様なメカニズムを持ち、各ユーザはそのようなデバイスを提供されている。SIMカード構造は、組み込まれたメモリチップに損害を与えることなしに分解することを困難にしている。
【0009】
別の従来のアプローチは、現在製造されているパーソナルコンピュータのうちのいくつかの中に構築された信頼プラットフォームモジュールである。TPMは、これが、制限されたアクセスを有する小さいメモリチップであり、いくつかのセキュリティ関連の識別情報およびいくつかの暗号化キーを含む点で、SIMカードにいくぶん類似している。TPMの中枢の考えは、誤ってコンピュータまたはそのユーザを識別し、それゆえに、システム中のどこかに存在するセキュリティメカニズムを回避するように、この識別情報を攻撃者が修正することを妨げることである。しかしながら、その欠点は、TPM中に含まれるキーおよび数字は保護の1つのパートに過ぎず、残りのパートは、オペレーティングシステムおよびアプリケーションソフトウェアコンポーネント中で従来通りに実現されることである。したがって、TPMは、認証されていないユーザによっていくつかのキー保護関連の情報トークンを修正することを不可能にする、追加の保護のレイヤを提供する。しかしながら、TPMは、攻撃を成功させるために悪用できる、システムソフトウェアの他のパートおよびその通信における著しい虚弱性を残している。
【0010】
したがって、コンピュータシステムセキュリティへの向上したアプローチに対する必要性が残っている。
【発明の概要】
【0011】
本発明は、強化されたデータセキュリティのために設計されたコンピュータアーキテクチャに関連する。実施形態では、アーキテクチャは、それぞれがそれら自体の処理ユニットおよびメモリを持つ、2つのサブシステムと、2つのサブシステムおよび外界を相互接続するインターフェースの明瞭に規定されたセットとを備える。
【0012】
ある態様にしたがうと、2つのサブシステムのうちの1つは、今日のパーソナルコンピュータの大部分を実行するx86のような、一般的なプロセッサアーキテクチャ周辺に構築され、アプリケーションプロセッササブシステムとして指定されている。このアーキテクチャは、幅広いさまざまなアプリケーションソフトウェアおよびそれに対して利用可能なオペレーティングシステムに対して選択され、ユーザがそれらの選択のアプリケーションソフトウェアをインストールする柔軟性を最大化することを狙っている。これもまたx86アーキテクチャ周辺に設計されている従来のパーソナルコンピュータとは異なって、このアプリケーションプロセッサは、実際の外部または内部周辺機器の代わりに、他のサブシステムにルーティングされているその周辺機器接続のすべてを有する。それにより、x86上で実行できるソフトウェアは、仮想的に制限されていない一方、このソフトウェアまたはそのデータへの外部アクセスは、専用のシステムプロセッササブシステムにより厳しく制御されており、専用のシステムプロセッササブシステムは、それらのアプリケーションおよびそれらのデータを安全に保つのに必要な保護を実施する。
【0013】
あるさらなる態様にしたがうと、システムプロセッサとして指定されている他のサブシステムは、本質的に、埋め込みシステムである。それは、プロセッサと一緒に備えられている埋め込まれたソフトウェアシステムを実行し、どのような環境下においてもコンピュータのエンドユーザにより修正できず、代わりに、ファームウェアと呼ばれるべきである。埋め込みシステムであるので、エンドユーザも、何らかの第3者開発者もそのソフトウェアコンポーネントのうちのいずれに書き込む、または、修正することを許可されていないことから、システムプロセッサモジュールのプロセッサアーキテクチャのうちの特定のものは重要ではない。システムプロセッサは、本質的に、それ自体のハードウェアサブシステム上で実行している本来安全ではないアプリケーションソフトウェア環境と外界との間の“ブリッジ”として機能する。システムプロセッサ104は、典型的に、各タイプの周辺接続に対して2つの接続を有しており、1つは、実際の周辺機器106に対してのものであり、もう一方は、アプリケーションプロセッササブシステム102に対してのものである。システムプロセッサハードウェアとともにファームウェアは、サポートされているタイプの周辺機器のそれぞれに適切であって、アプリケーションソフトウェアおよびそのデータに対する最高レベルの保護を常に維持するために必要な、ルールおよびメカニズムのセットを実施しつつ、アプリケーションプロセッササブシステムのために、システムプロセッサに実際に接続されている各タイプの周辺機器デバイスをエミュレートする。すべての内部および外部周辺機器は、システムプロセッサに接続され、周辺エミュレーションファームウェア機能性により使用される。
【0014】
これらおよび他の実施形態にしたがうと、本発明の実施形態にしたがったコンピュータシステムは、アプリケーションを実行するように構成されている第1のプロセッサを備える第1のサブシステムと、セキュリティファームウェアを実行するように構成されている第2の別個のプロセッサを備える第2のサブシステムと、第2のサブシステムに接続されている周辺機器とを具備し、アプリケーションによる周辺機器へのアクセスは、第1のサブシステムの対応する周辺接続をエミュレートする、第2のプロセッサ上で実行しているセキュリティファームウェアにより制御される。
【0015】
これらのおよび他の態様にさらにしたがうと、本発明の実施形態にしたがった、コンピュータシステムを守る方法は、アプリケーションを実行する第1のプロセッサを備える、コンピュータシステムの第1のサブシステムを構成することと、セキュリティファームウェアを実行する第2の別個のプロセッサを備える、コンピュータシステムの第2のサブシステムを構成することと、周辺機器を第2のサブシステムに接続することと、第1のサブシステムの対応する周辺接続をエミュレートする、第2のプロセッサ上で実行しているセキュリティファームウェアを使用して、アプリケーションによる周辺機器へのアクセスを制御することとを含む。
【0016】
これらのおよび他の態様のさらなる推進において、本発明の実施形態にしたがったシステムは、アプリケーションを実行するように構成されている第1のプロセッサを備える第1のサブシステムと、セキュリティファームウェアを実行するように構成されている第2の別個のプロセッサを備える第2のサブシステムとを備える独立型コンピュータシステムと、独立型コンピュータシステムを制御する組織によりホストされた安全なイントラネットとを具備し、アプリケーションによる安全なイントラネットへのアクセスは、第1のサブシステムの対応する周辺ネットワーク接続をエミュレートする、第2のプロセッサ上で実行しているセキュリティファームウェアにより制御される。
【図面の簡単な説明】
【0017】
本発明のこれらおよび他の態様ならびに特徴は、付随した図面と組み合わせて、本発明の特定の実施形態の以下の説明をレビューする際に、当業者にとって明らかになるだろう。
【
図1】
図1は、本発明の実施形態にしたがった安全なコンピュータアーキテクチャを図示しているトップレベルのダイヤグラムである。
【
図2】
図2は、本発明の原理にしたがったコンピュータシステムの機能ブロックダイヤグラムである。
【
図3】
図3は、本発明の実施形態にしたがって、コンピュータシステムのディスプレイおよびスタートアップ機能を守る例示的な態様を図示しているダイヤグラムである。
【
図4】
図4は、本発明の実施形態にしたがって、コンピュータシステムのネットワーク接続機能を守る例示的な態様を図示しているダイヤグラムである。
【
図5】
図5は、本発明の実施形態にしたがって、コンピュータシステムの周辺機器へのアプリケーションアクセスを守る例示的な態様を図示しているダイヤグラムである。
【
図6】
図6は、本発明の実施形態にしたがって、コンピュータシステムを守る例示的なプロセスを図示しているフローチャートである。
【0018】
これから、本発明を図面を参照して詳細に説明する。図面は、当業者が本発明を実施できるようにするための、本発明の実例となる例として提供されている。特に、以下の図面および例は、本開示の範囲を単一の実施形態に限定することを意図しておらず、記述または図示したエレメントのうちのいくつかまたはすべての置換として、他の実施形態も可能性がある。さらに、既知のコンポーネントを使用して、本発明の特定のエレメントを部分的にまたは完全に実現できる場合、本発明の理解に必要なそのような既知のコンポーネントのうちのそれらの部分のみを記述し、本発明を曖昧にしないように、そのような既知のコンポーネントのうちの他の部分の詳細な説明は省略する。ソフトウェアで実現されるように記述された実施形態は、それに限定されるべきではなく、当業者にとって明らかなように、そうでないことがここに規定されていない限り、ハードウェアで、または、ソフトウェアおよびハードウェアの組み合わせで実現される実施形態を含めることができ、逆もまた同じである。本明細書中では、単一コンポーネントを示す実施形態は、限定するものとして考えられるべきではなく、むしろ、本発明は、そうでないことがここに明白に言及されていない限り、複数の同一コンポーネント含む他の実施形態を包含することが意図されており、逆もまた同じである。さらに、出願人は、そのように明白に述べられていない限り、明細書または特許請求の範囲中の任意の用語が、稀なまたは特別な意味であるとみなされることを意図していない。さらに、本発明は、ここで事例として参照される既知のコンポーネントとの現在および将来の既知の均等物を含む。
【0019】
一般的に、本発明は、強化されたデータセキュリティのために設計されたコンピュータアーキテクチャを提供する。実施形態では、アーキテクチャは、それぞれがそれら自体の処理ユニットおよびメモリを持つ、2つのサブシステムと、2つのサブシステムおよび外界と相互接続する規定されたセットのインターフェースとを備える。1つのサブシステムは、コンピュータアプリケーションを実行するお馴染みの環境を提供するように設計されている。もう一方のサブシステムは、入力および出力デバイスを介して、第1のサブシステムとユーザとの間に安全なブリッジを提供するように設計されている。
【0020】
図1は、本発明の態様にしたがった例示的なシステムアーキテクチャ100を図示しているブロックダイヤグラムである。
【0021】
図1中に示しているように、2つのサブシステムのうちの1つは、好ましくは、今日のパーソナルコンピュータの大部分を実行するx86のような、一般的なマイクロプロセッサアーキテクチャ周辺に構築され、アプリケーションプロセッササブシステム102として指定されている。このアーキテクチャは、幅広いさまざまなアプリケーションソフトウェアおよびそれに対して利用可能なオペレーティングシステムに対して選択され、ユーザがそれらの選択のアプリケーションソフトウェアをインストールする柔軟性を最大化することを狙っている。これもまたx86アーキテクチャ周辺に設計されている従来のパーソナルコンピュータとは異なって、このアプリケーションプロセッサは、実際の外部または内部周辺機器の代わりに、他のサブシステムにルーティングされているその周辺機器接続のすべてを有する。したがって、x86上で実行できるソフトウェアは、仮想的に制限されていない一方、このソフトウェアまたはそのデータへの外部アクセスは、専用のシステムプロセッササブシステムにより厳しく制御されており、これにより、それらのアプリケーションおよびそれらのデータを安全に保つのに必要な保護を実施する。
【0022】
この他のサブシステム、システムプロセッサ104は、好ましくは埋め込みシステムである。そのようにして、これは、プロセッサと一緒に備えられている指定されたソフトウェアシステムを実行し、どのような環境下においてもコンピュータのエンドユーザにより修正できず、代わりに、ファームウェアと呼ばれるべきである。埋め込みシステムであるので、エンドユーザも、何らかの第3者開発者もそのソフトウェアコンポーネントのうちのいずれに書き込む、または、修正することを許可されていないことから、システムプロセッサモジュールのプロセッサアーキテクチャのうちの特定のものは重要ではない。システムプロセッサ104は、本質的に、それ自体のハードウェアサブシステム102上で実行している本来安全ではないアプリケーションソフトウェア環境と外界との間の“ブリッジ”として機能する。
【0023】
周辺機器106は、典型的に、システム100の機能性とコンピュータユーザとの間のインターフェースを提供する何らかのタイプのデバイスを備える。このようなデバイスは、ディスプレイ、スピーカ、プリンタ等のような、出力デバイスと、キーボード、マウス、タッチパッド、タッチスクリーン等のような、入力デバイスとを含めることができる。周辺機器106の数およびタイプは、アプリケーションプロセッサ102および104をハウジングするデバイスの特定のフォームファクタに依存できる。例えば、フォームファクタが従来のデスクトップコンピュータのものである発明の実施形態では、周辺機器106は、外部にアタッチされているディスプレイ、キーボードおよびマウスを含めることができる。フォームファクタが従来のノートブックコンピュータのものである場合に、周辺機器106は、統合されたディスプレイ、キーボードおよびタッチパッドを含めることができる。フォームファクタがタブレットコンピュータまたはスマートフォンのものである場合に、周辺機器106は、統合されたディスプレイ/タッチスクリーンを含めることができる。システム100に対する異なるタイプのフォームファクタ間の周辺機器106は、必ずしも相互に排他的ではなく、経時的に不変でもないことに留意すべきである。例えば、多くの従来のタッチパッドコンピュータシステムは、オプションの別々のキーボードおよびマウス(例えば、USBまたはブルートゥース(登録商標)を通して接続されている)により動作されてもよい。同様に、多くの従来のデスクトップコンピュータシステムは、オプションのタッチスクリーンまたは音声コマンドデバイスにより動作されてもよい。
【0024】
いくつかの実施形態では、システム100は、その中に埋め込まれており、何気なく見る人にとっては容易に明らかではない、システムプロセッサ102の追加のセキュリティ機能を持つ普通のコンピュータシステムに見えるように設計されている。例えば、システム100は、従来の折り畳みディスプレイならびに内蔵型のキーボード、スピーカおよびポインティングデバイスを持つ普通のラップトップコンピュータとして見えることができる。他の可能性ある実施形態では、システムプロセッサ102およびアプリケーションプロセッサ104は、周辺機器106の特定のものと一緒に、または、周辺機器106の特定のものからさらに離れて、別々にハウジングされている。しかしながら、追加のセキュリティ態様に対して、プロセッササブシステム102および104は、おそらく、同一のASIC、SOCまたはFPGA上の2つの別々のプロセッサコアにもかかわらず、好ましくは、同一の格納装置内に、および、もっと言えば、同一の回路基板上で、できるだけ統合されていることに留意すべきである。例えば、本発明者は、これらのサブシステム間の何らかのタイプの露出した相互接続は、潜在的に、攻撃者により悪用されるかもしれないことを認識している。したがって、このような相互接続は、好ましくは、アクセスすることをできるだけ難しくするように(例えば、同一の集積回路および/または回路基板内で)できている。システムプロセッサ104への周辺106接続については、システム100の特定のフォームファクタにしたがって、これらは、統合されるか、別々であることができる。
【0025】
所定の何らかのシステム100のすべての周辺機器が、システムプロセッサ104によって制御されたアクセスを必ずしも有する必要がないことに留意すべきである。しかしながら、典型的に、キーボードおよびマウスのようなすべての入力デバイスとともに、ディスプレイのような最も有用な出力デバイスのような、システム100の少なくとも最も有用または重要な周辺機器は制御される。これに関して、これらの周辺機器は、典型的に、アプリケーションプロセッサ102の特定のインプリメンテーションが、それを通して、ヒューマンオペレータと、または、他のコンピュータと(例えば、ネットワークまたは他の通信リンクを介して)インターフェースし、その動作および/またはデータを制御あるいはアクセスできる、それらの入力/出力デバイスを備えることを、本発明者は認識する。そのようにして、データおよびアプリケーションプロセッサ102の動作を外界に実質的に露出するすべての周辺機器106は、好ましくは、システムプロセッサ104を通してルーティングされる。したがって、“周辺機器”という用語は、実際の周辺機器、および、プロセッサを周辺機器に接続する接続(例えば、ポート)の双方を含むものとして解釈されるべきである。システムプロセッサ104は、したがって、好ましくは、周辺機器106とプロセッサ102との間の通信を、それらの通信における最も安全な物理的ポイントにおいて、妨害する。言い換えると、アプリケーションプロセッサ102は、それに接続されている何らかの重要な周辺機器を有さず、あるいは、直接的な、または、露出したもしくは外部からアクセス可能な接続を通してのその動作環境を有しておらず、むしろ、それらの接続は、システムプロセッサ104を通して、または、システムプロセッサ104により制御されている。
【0026】
おそらくタイプに依存して、周辺機器106は、通常アプリケーションプロセッサ102およびシステムプロセッサ104をハウジングしているデバイスに対して内部または外部であり得ることにさらに留意すべきである。下記でより詳細に説明されるが、限定するものとして考えられるべきではない、システム100の1つの好ましい実施形態は、デスクトップまたはノートブックコンピュータのフォームファクタにおけるデバイスの実施形態である。このような実施形態では、周辺機器106は、アタッチされているディスプレイ、キーボードおよびポインティングデバイス(例えば、タッチパッドおよび/またはスティックマウス)、あるいは、内部スピーカおよびワイヤレスモデム(例えば、802.11a/b/g/n)を含む。このような実施形態における周辺機器106はさらに、USB、RJ−45、Firewire(登録商標)、eSATA、VGA、HDMI(登録商標)、DVI、ディスプレイポート(DisplayPort)およびミニディスプレイポート(MiniDisplayPort)のような、従来のジャックまたはインターフェースを含むシステム100上の、対応するジャックを介してアタッチされている何らかの入力または出力外部デバイスを含めることができる。当業者は、本事例を教示された後に、より少ないタイプの、または、追加のタイプのインターフェースおよび/または周辺機器106によって、どのように発明を実現させるかを認識するだろう。
【0027】
システムプロセッサ104は、典型的に、各タイプの周辺接続に対して2つの接続を有しており、1つは、実際の周辺機器106に対してのものであり、もう一方は、アプリケーションプロセッササブシステム102に対してのものである。下記でより詳細に説明されるように、システムプロセッサ104ハードウェアにより提供されるファームウェアは、アプリケーションプロセッササブシステム102のために、システムプロセッサ104に実際に接続されている各タイプの周辺機器デバイス106をエミュレートする。ファームウェアはさらに、好ましくは、サポートされているタイプの周辺機器のそれぞれに適切であって、アプリケーションソフトウェアおよびそのデータに対する最高レベルの保護を常に維持するために必要な、ルールおよびメカニズムのセットを実施する。実施形態では、すべての内部および外部周辺機器106は、システムプロセッサ104に接続され、周辺エミュレーションファームウェア機能性により使用される。
【0028】
図1中に詳細に示してはいないが、アプリケーションプロセッサ102およびシステム制御措置104はさらに、メモリ、メモリおよびI/Oアドレス指定スペース、オペレーティングシステムソフトウェア、アプリケーションソフトウェア、グラフィックプロセッサ、サウンドプロセッサ、あるいは、プロセッサバスを備えることができることに留意すべきである。例えば、システム100のフォームファクタがデスクトップコンピュータまたはノートブックコンピュータである場合に、システム100は、PCIバスのような従来のパーソナルコンピュータコンポーネントと、Windows(登録商標)7のようなオペレーティングシステムを記憶するRAMおよびROMメモリと、Windows Officeのような関係するBIOSソフトウェアおよびアプリケーションソフトウェアとを含めることができる。システム100はさらに、XGAグラフィックプロセッサ(例えば、Intel(登録商標)x86、nVidiaにより提供されたそれらのような、AMD集積グラフィックまたは外部プロセッサ)、5.1オーディオプロセッサ、USB入力および出力、イーサネット(登録商標)インターフェース、シリアル/パラレルインターフェース等のような、これらのような従来のパーソナルコンピュータコンポーネントを備えることができる。システムプロセッサ104、および、アプリケーションプロセッサ102とのこれらの相互動作による、このようなコンポーネントの制御が本発明の態様である点から、これらの詳細が下記で提供される。しかしながら、アプリケーションプロセッサ102のさらなる追加のインプリメンテーションの詳細は、本発明の明瞭性のために省略される。さらに、当業者は、これらの事例によって教示された後、パッドコンピュータおよびスマートフォンのような、他のタイプのフォームファクタに対するプロセッサ102のさまざまな代替実施形態を正しく認識するだろう。
【0029】
システムプロセッササブシステム104の例示的な実施形態が、これから、それがエミュレートおよびサポートする周辺機器タイプの例に加えて、システムレベルの動作論理およびセキュリティをサポートすることを狙ったさまざまな補助装置機能の観点から説明される。
【0030】
図2に関連して図示されているもののような例示的な実施形態において、システムプロセッサ204は、アプリケーションプロセッサ202とともに、キーボード206、ビデオmux208およびファームウェア214に結合されている。アプリケーションプロセッサ202は、上述したアプリケーションプロセッサ102に対応させることができる。システムプロセッサ204は、x86プロセッサ、カスタムASICもしくはSOC、ARMプロセッサ等のような、任意の従来の、プロプラエタリの、または、将来のプロセッサにより実現されることができる。ファームウェア214は、好ましくは、システムプロセッサ204に専用であり、システムプロセッサ204と、これから以下に説明するそれの機能性とを制御するために必要な、すべてのオペレーティングシステムおよびアプリケーションソフトウェアを含む、ROM(例えば、フラッシュ)で実現される。当業者は、ファームウェア214を含むソフトウェアの言語および構造は、プロセッサ204および/または使用するオペレーティングシステムを実現するために使用するプロセッサのタイプに依存できることを認識するだろう。当業者はさらに、前述の説明により教示された後、プロセッサ204の機能性を実現するソフトウェアおよびファームウェアを、おそらく、従来のオペレーティングシステムおよびアプリケーションとともに、どのように実現するかを理解するだろう。システムプロセッサ204は、プロセッサバス、RAM/アプリケーションメモリ、グラフィックプロセッサ機能性、入力/出力ポート等のような、示されていない追加の機能および/またはコンポーネントを含めることができることにさらに留意すべきである。
【0031】
示されているように、ビデオマルチプレクサ208は、少なくとも2つの入力216、218、および、1つの出力220を備える。ビデオマルチプレクサの出力220は、コンピュータディスプレイ210に接続されている。ビデオマルチプレクサ208の入力218のうちの1つは、システムプロセッササブシステム204の内部にあるビデオグラフィックモジュールに接続されており、ビデオグラフィックモジュールは、動作およびセキュリティ関連情報、および、エンドユーザとの対話を通信するためとともに、システムプロセッサ204ファームウェア中に埋め込まれている任意のアプリケーションの目的のために使用される。アプリケーションにより発生されるグラフィックが、システムプロセッサ204および制御信号222の制御の下で、マルチプレクサ208に、およびに、条件付きでマルチプレクサを通してディスプレイ210に向けられるように、ビデオマルチプレクサ208のもう一方の入力216は、アプリケーションプロセッササブシステム202のビデオグラフィックモジュールの出力に接続されている。実施形態では、マルチプレクサ208は、解像度をスケーリングし、ビデオ入力が、望まれる表示モード、ならびに、実際の解像度およびディスプレイモニタ210のフレームレートに対して適切であるように、ビデオ入力のフレームレートを調節する。システムプロセッサ204により決定された、システムの動作およびセキュリティモードに依存して、アプリケーショングラフィック出力216は、ディスプレイから完全にブロックされる、小さなウィンドウとしてモニタ210上に表示される、または、ディスプレイモニタ210のフルサイズにパススルーされるかもしれない。システムプロセッサ204自体のグラフィック218もまた、動作の動作およびセキュリティモードに依存して、さまざまな方法で条件付きでモニタ210にルーティングされることができる。
【0032】
実施形態では、初期のシステムスタートアップおよび認証の間に、ビデオmux208は、信号222を介してのシステムプロセッサ204の制御の下で、ディスプレイ210全体をシステムプロセッサ204グラフィックに専用にする。システムプロセッサ204はさらに、キーボード206(および、おそらくタッチパッド等のような他の入力デバイス)と、ユーザを適切に認証し、このプロセスの進行および結果をディスプレイ210を介してユーザに知らせるのに必要な対話とを制御する。実施形態では、アプリケーションプロセッサ202のビデオ出力は、認証が成功するまで観覧することが許されていないが、オペレーティングシステムおよびアプリケーションソフトウェアは、アプリケーションプロセッサ202上で以前からアクティブであってもよい。いったん認証が成功して完了すると、システムプロセッサ204は、通常動作モードを宣言し、このことにより、ビデオmux208に、信号222を介して、入力216からのアプリケーショングラフィックにスクリーン全体を占めさせることになる。
【0033】
実施形態では、システムプロセッサ204のグラフィックは、認証が成功した後、システムレベル情報を伝送する必要がある、または、システムプロセッサ204との対話を必要とする特定のキーの組み合わせが押下げられるときを除いて、ほとんどの時間可視できない。このような時に、ビデオmux208は、システムプロセッサ204のグラフィックが、アプリケーショングラフィックの上に、オーバーレイとして表示されるようにすることができる。特別な条件の下で、例えば、ユーザが認証されているが、アプリケーションプロセッサ202は、アクティブ化されている、または、再起動されているとき、あるいは、システムプロセッサ204のファームウェア中に埋め込まれているアプリケーションが実行しているとき、ビデオmux208は、アプリケーショングラフィックビデオ216を、スクリーン210上で小さなスクリーンとして表示させるようにでき、ユーザは、システムプロセッサ204と対話する間に、その進行を監視できる。
【0034】
マルチプレクサ208は、システムプロセッサ204からの信号222により制御される。これは、複数のソースからのビデオおよびグラフィックを混合するために、クロマキー、オーバーレイ、ウィンドウ処理のような、任意の従来の、プロプラエタリの、または、将来の技術を使用できる。そのようにして、208の実現の詳細は、使用される特定の多重化技術に依存し、このために、208のさらなる詳細は、発明の明瞭性のためにここでは省略される。実施形態では、アプリケーションプロセッサ202が、標準XGAグラフィック制御装置を備える場合、標準XGAインターフェースを使用してインターフェース216を実現する。マルチプレクサ208は、同時係属出願番号13/241,073中に記載されている追加のビデオセキュリティ機能を使用してもよく、同出願のコンテンツは参照によりそれらすべてがここに組み込まれていることにさらに留意すべきである。
【0035】
認証は、任意の従来の、プロプラエタリの、または、将来の技術を含むことができ、当業者は、多くの可能性ある代替実施形態を認識するだろう。1つの限定されない例では、システムプロセッサ204は、ユーザネーム、パスワード、セキュリティキー、バイオメトリクス(例えば、指紋)のような、身分証明を入力/供給するようにユーザを促すことができる。これらの身分証明は、局所的に記憶された身分証明と比較することができ、または、システムプロセッサ204は、比較のためにそれらを遠隔認証サーバに転送することができる。さらにまた、局所的に記憶された身分証明は、必要なときに、時間制限をつけることができ、および、リフレッシュでき、あるいは、外部ソースから無効にすることができる。
【0036】
アプリケーションプロセッサグラフィック216のmux208を介したディスプレイ210への供給と同様に、システムプロセッサ204は、認証が成功するまで、プロセッサ202のキーボード206および他の周辺機器へのアクセスを妨げる。以下により詳細に説明するように、認証が成功した後、プロセッサ204は、ファームウェア214により提供されるエミュレーション機能性により制御されている、プロセッサ202によりエミュレートされた、バス224を介してのキーボード206および他の周辺機器へのアクセスを許可する。
【0037】
本発明の態様にしたがって、コンピュータシステム100のデータネットワーキング機能を守る例示的なアプローチをこれから記述する。実施形態では、システム100は、特定の従業員による使用のために、企業により購入された独立型のコンピュータである。
図3中で図示されているように、これらのおよび他の実施形態では、企業はさらに、好ましくは、パブリックアクセスデータネットワーク322(例えば、インターネット)に相互接続されているプライベートネットワーク320(例えば、イントラネット)をさらに所有/維持する。プライベートネットワーク320は、好ましくは、ファイヤーウォール、侵入検出、ならびに、他の法医学的およびアーキテクチャレベルの保護メカニズムのような、従来のデバイスの集合により、安全で、すべての関連する脅威から十分保護されている。これは、したがって、それらの集中化した調達および管理から、それらの既存の保護手段および利得の利益すべてを得るための、本発明のそのような実施形態のある態様である。
【0038】
図3中に図示されているもののような実施形態では、システムプロセッササブシステム204上に、少なくとも2つの物理ネットワーキングインターフェースが存在する。それらのネットワークインターフェースのうちの1つ、典型的には、ギガバイトイーサネット(登録商標)ポート304は、“バックトゥバック”構成のアプリケーションプロセッササブシステム202上の類似したポート302に接続されており、アプリケーションプロセッサ202に対する唯一の利用可能な物理ネットワーキング接続である。それゆえ、プロセッサ202上のアプリケーションにおいて生じるすべてのトラフィックは、システムプロセッサ204により妨害されることになり、アプリケーションに向けられている任意のパケットは、初めに、システムプロセッサ204を通り抜けなければならない。
【0039】
システムプロセッサ204上の1つ以上の物理ネットワーキングインターフェース606のもう一方は、典型的に、別のギガバイトイーサネットである。他のタイプは、Wi−Fi(登録商標)のような、ワイヤレスネットワークインターフェースモジュールを含むことができる。これらのインターフェースのいずれかまたは双方は、自動的に検出できる利用可能な物理ネットワークに接続できる。システムプロセッサのネットワーク管理機能330(好ましくは、ファームウェア214中で実現される)は、その後、検出されたネットワークを識別し、認証できるか否かを決定する。例えば、ネットワーク管理機能330は、検出されたネットワークが、このコンピュータを購入した指定企業のイントラネット320であるか否かを検証できる。例えば、ネットワーク管理機能330は、企業内で使用されるアドレスの範囲を記憶でき、検出されたネットワークのアドレスをこの範囲と比較できる。ネットワーク管理機能330はさらに、既知のサーバのリストのうちの1つへの接続を試み、サーバ暗号化証明書を取り出して、局所的に記憶された証明書データベースに対して証明書を検証できる。認証がパスし、直接接続されているネットワークが安全であると考えられる場合、システムプロセッサ204は、その後、第1のネットワーキングインターフェース302/304とアクティブな外部インターフェース306との間で、すべてのパケットを転送する。
【0040】
もしも認証プロセスが成功しない場合に、または、いくつかのケースでは、プロセスを完全にバイパスさせるように、高められた保護レベルが望まれるときに、利用可能なネットワークは安全ではないと考えられ、仮想プライベートネットワーク(“VPN”)接続(別称、VPNトンネル308)が、システムプロセッサ204上のVPNクライアント332(好ましくは、ファームウェア214中で実現される)と、企業イントラネット320上の指定VPNゲートウェイ310上のVPNサーバ334との間で確立されることになる。いったんVPNトンネル308が確立されると、アプリケーションプロセッサ202に接続されている第1のインターフェース304へのトラフィックおよび第1のインターフェース304からのトラフィックのすべては、VPNトンネル308を排他的に通り抜けることになり、これにより、アプリケーションソフトウェアおよびそのオペレーティングシステムは、コンピュータが、それを使用する従業員によりあちこちに移動される間に、他のパブリックまたはプライベートネットワーク308に接続されるときでさえも、コンピュータが企業安全ネットワーク320(例えば、イントラネット)に局所的に接続されているかのように振る舞うことになる。望ましい実施形態は、VPNクライアント332を介して、アプリケーションプロセッサ202への生イーサネットトラフィック、および、アプリケーションプロセッサ202からの生イーサネットトラフィックをVPNトンネル308上でカプセル化するために、IPプロトコル312/314(ここでは、EoIP312は、好ましくはファームウェア214中で実現される)を通してイーサネットを利用する。サーバ334側において、VPNゲートウェイ310は、パケットを解読し、検証した後、それらを企業イントラネット320上へ送ることになる。当業者は、VPNトンネル308は、暗号シグニチャを使用して、送信されたデータパケットの暗号化、および、これらのパケットの信頼性の検証を提供することを正しく認識するだろう。したがって、機密情報を含むデータパケットが、コンピュータ内のアプリケーションプロセッサ202上で実行するアプリケーションソフトウェアと、企業データサーバとの間で交換されるとき、このようなデータは、パブリックアクセスネットワーク322リンク上を通過する間に、傍受または途中でのデータ修正から保護される。
【0041】
実施形態では、システムプロセッサ204のファームウェア214中に埋め込まれているアプリケーションは、同一のVPNトンネル308へのアクセスとともに、局所的に利用可能なネットワーク322へ直接的なアクセスを有する。したがって、埋め込まれているアプリケーションが任意の敏感な情報を送信することになる場合、それは、そのトラフィックをVPNトンネル308を介して実行することになるだろう。それでもなお、ビデオ会議エージェントのような、ある例示的な埋め込まれたアプリケーションにおいて、制御装置204は、ユーザが、VPNトンネル308から企業ネットワークへ、潜在的には、別のVPNトンネルを介してそれ以降を進む安全な接続を選択することを可能にし、接続が安全であるというインジケータを表示させることが可能である。追加として、または、代替的に、(例えば、性能の理由のために)安全な接続が望まれないときには、制御装置204は、ユーザが、局所的に利用可能なネットワーク322に直接アクセスすることにより、ビデオ会議接続を確立することを可能にし、接続が安全ではないことをユーザに示すことができ、ユーザは、任意の敏感な情報を議論することを避けるべきである。
【0042】
システムプロセッサ204のファームウェア214中に埋め込まれている他のアプリケーションは、仮想ディスク画像をバックアップおよび同期化するためのアプリケーション(以下により詳細に記述する)を含んでもよく、したがって、上記の同一のVPNトンネル308を介して企業記憶サーバに通信するだろう。
【0043】
今日のコンピュータにとって重要な周辺機器は、ディスクドライブであり、本発明にしたがって、この周辺機器へのアクセスを制御する例示的な方法を、
図4に関連してこれから記述する。
図4中に示されているように、傾向は、磁気媒体ベースの回転ディスクをフラッシュメモリベースのソリッドステートデバイス410と置換することである。知られているように、ドライブは、典型的に、従来のコンピュータがそのソフトウェアのすべておよびそのデータの重要部分を維持する場所である。コンピュータが電源投入されるとき、通常“ベーシック入力/出力システム”に対して、“BIOS”と呼ばれる、リードオンリーまたはフラッシュメモリから実行される小さな低レベルファームウェアが、メモリおよびディスクドライブを初期化することになり、ディスクドライブからメインメモリへオペレーティングシステムソフトウェアをロードするように進めることになり、プロセスは、“ブートストラッピング”または“ブーティング”と呼ばれる。いったんオペレーティングシステムが実行を開始すると、それは、継続的にディスクドライブにアクセスし、アプリケーションソフトウェアおよびソフトウェアライブラリ、デバイスドライバおよびコンフィグレーションファイルを読み取る。
【0044】
オペレーティングシステムが、任意のセキュリティ関連メカニズムを実現するとき、それらの保護エレメント中で使用されるキーおよびパスワードも、同一のディスク上に記憶される。独立型の環境で動作する必要がある任意のソフトウェアアプリケーションは、ネットワーキングが利用可能でないときに、そのデータのすべてとともに、ディスクドライブ上の実行可能なコードおよびコンフィグレーションデータを記憶する必要がある。それらのおよび他の理由のために、ディスクドライブは、さまざまな潜在的な脅威からの保護を必要としており、さまざまな潜在的な脅威のうちの最も顕著なものは、ディスクドライブ自体の盗用、または、コンピュータ全体とともにディスクドライブの盗用、ならびに、後続するそれが含むデータの抜き取りの可能性である。現在のコンピュータが、そのディスクドライブ上に記憶されているデータを暗号化することがますます一般的になってきており、ここで、ディスクのコンテンツ全体は、単一のキーにより暗号化される。これは、この単一のキーが危険にさらされるケースでは、データを脆弱なものにし、同時に、これは、新たな潜在的な問題を生成する:コンピュータのユーザが、暗号化キーへのアクセスを忘れる、または、損失する場合に、このコンピュータを割り当てられた企業も従業員も、もはやディスク上の任意のデータを取り出すことができない。
【0045】
ここで開示するコンピュータアーキテクチャのある態様は、ディスクドライブが実現される方法にある。
図4に関連して図示されているそれのような実施形態では、アプリケーションソフトウェアおよびオペレーティングシステムを実行するアプリケーションプロセッサ202は、任意のセキュリティ保護手段を実現する必要がなく、コンピュータの実際のディスクドライブ410への直接的なアクセスを有していない。代わりに、アプリケーションプロセッサ202の大容量記憶周辺機器接続、典型的には、シリアルATA(すなわち、“SATA”)ホスト制御装置404は、システムプロセッサ204上の互換性のあるインターフェース、すなわち、シリアルATAターゲットインターフェース406に接続されている。このインターフェース406は、アプリケーションプロセッサ202により発行される標準的なATAコマンドに応答し、システムレベルファームウェア214と一緒に、アプリケーションプロセッサ202に、エミュレートされたディスクドライブ414を提供する。ファームウェア214により実現される、ディスクドライブをエミュレートするプロセスは、仮想化された環境において用いられる技術に類似している。エミュレートされたディスクドライブ414は、実際には、実際のディスクドライブ410上に特定のフォーマットで記憶されたファイルの集合である。システムプロセッサ204は、それゆえ、それをリアルディスクドライブ(例えば、磁気または他の媒体HDD)に、または、好ましくは、ソリッドステートディスクドライブ(“SSD”)410に接続する、第2の大容量記憶インターフェース408を備えるだろう。このようなSSD(例えば、フラッシュメモリ、または、強誘電体RAMおよび相変化RAMのような、他の非揮発性のメモリ技術により実現される)は、磁気ドライブにわたる改良された性能を提供し、本質的には、以下に記述するエミュレーションプロセスおよび暗号化が課するかもしれない何らかの性能劣化を覆い隠すことになる。
【0046】
図示されている例示的なアーキテクチャでは、システムプロセッサ204のファームウェア214は、ファイルおよびメインインデックスファイルの集合として、1つ以上のエミュレートされたディスクドライブ414のマップを維持し、マップは、順に、ファイルシステムを通して、リアルディスクドライブ410上で特定のフォーマットで記憶される。エミュレートされたディスクドライブ414が複数のファイルにわたるべきであるいくつか理由が存在する。第1に、ディスクドライブは、めったにその全体を利用されず、それゆえ、使用されていない記憶スペースに対して、リアルディスクドライブ上に何らかの記憶スペースを割り振る必要がない。したがって、エミュレートされたドライブ414の準備されたスペースを、ファイルの集合の上で分けることにより、そのアドレススペースの希薄なハンディングと、使用されていないエリアに対する実際の記憶の省略とを可能にする。第2に、ある時期において、チェックポイントとして知られるある時点におけるそのコンテンツに対応する、エミュレートされたドライブの一定画像416を維持する必要性が存在し、すべての後に修正されるデータはその後、リアルドライブ上の新しい別々のファイルに書き込まれる。これにより、たとえエミュレートされたディスク414が継続的に使用されている間でも、チェックポイントの時間におけるそのコンテンツは利用可能なままである。チェックポインティングが必要であるさまざまな理由が存在する。理由の1つは、重要な企業データ保管金庫上のディスクのコンテンツをバックアップまたは同期化し、コンピュータが紛失される、または、破損されるイベントにおいて、データの紛失を防ぐ能力である。チェックポインティングおよびバックアップ機能は、システムプロセッサ204のファームウェア214により実現され、したがって、プロセッサ202のオペレーティングシステムまたはアプリケーションソフトウェアとは無関係である。さらに、システムプロセッサ204は、アプリケーションプロセッサ202より極めて少ない電力を消費することから、コンピュータがアクティブに使用されていないか、周期的なバックアッププロセスを実行する必要がある場合に、コンピュータは、企業バックアップサーバと通信する十分な能力があり、エミュレートされたディスク414の最新のエリアをサーバに独立して安全に送信するので、電力をアプリケーションプロセッサ202に適用する必要はない。
【0047】
エミュレートされたディスク414のデータは、好ましくは、リアルディスクドライブ上に記憶されるときに暗号化される。混乱を避けるために、アプリケーションプロセッサ202とシステムプロセッサ204との間で交換されたデータブロックは、暗号化されておらず、クリアテキストで送信される。このデータはその後、リアルソリッドステートディスクドライブ410に書き込まれる前に、プロセッサ412(例えば、AES256を使用して)により暗号化される。エミュレートされたディスクデータの暗号化のために使用される暗号化キーは、好ましくは、アプリケーションプロセッサ202のメモリスペース中には決して存在せず、したがって、悪質なソフトウェアをコンピュータに埋め込むことによる、この暗号化キーを狙う何らかの攻撃は無効にされる。たとえシステムプロセッサ204内であっても、エミュレートされたディスク414の暗号化キーは、決してメインメモリ中に記憶されるべきではないが、代わりに、暗号化キーに向けられている別個のメモリスペースは、通常動作の間にそれらのキーを記憶するために使用されるべきである。特に保護されているキー記憶メモリも、好ましくは、非揮発性のメモリ技術により作られ、これにより、それらのキーは、リアルソリッドステートディスクドライブ410上に記憶される必要は決してなく、代わりに、システムプロセッサ204を補って、チップのうちの1つの中に保たれる。
【0048】
エミュレートされたディスク保護レベルのさらなる改良に対して、エミュレートされたディスク414のデータは、複数のファイル中に記憶されていることから、それらのファイルのそれぞれに対して特定の暗号化キーを指定することが望ましく、これにより、リアルドライブが盗まれた場合に、ディスク全体を危険にさらすのに必要になる時間量が倍増する。通常動作の間に、エミュレートされたディスクを表すファイルのうちの任意のものにより使用されるすべての暗号化キーは、好ましくは、システムプロセッサ202指定セキュリティモジュールメモリ中に存在する。
【0049】
バックアッププロセスの間に、ファームウェア214は、エミュレートされたディスクデータ414を解読し、それを圧縮して、VPNトンネル暗号化プロトコルと上述したキーとを使用して、送信のためにそれを再暗号化する。この方法で、エミュレートされたディスク暗号化キーをネットワークを通して送信する、または、企業サーバ上にそれらを記憶する必要は決してなく、したがって、それらのサーバの1つが危険にさらされているイベントにおいて、すべての企業コンピュータのデータを危機にさらすリスクを最小化する。しかしながら、コンピュータが紛失される、または、破損される場合に、そのエミュレートされたディスク414中に記憶されたデータは、企業サーバのうちの1つ上に安全に維持されている新たなコンピュータが同一のユーザに対して迅速に準備され、エミュレートされたディスク画像416を新たなコンピュータにコピーすることにより、完全な動作に復元されることができる。
【0050】
アプリケーションプロセッサ202およびそのソフトウェアの性能における、ディスクエミュレーションの影響を最小化するために、システムプロセッサ204は、いくつかの大容量記憶コマンドを同時に実行できるべきである。これは、シリアルATAコマンドセットのコマンド待ち合わせ機能を使用して実現できる。したがって、すべて同時に起こるいくつかの記憶関連アクティビティが存在する:記憶コマンドは、SATAターゲットハードウェア406により、メモリ中に受信され;メモリ中の多数のデータブロックは、ブロック412により暗号化され、または、解読され;別の記憶コマンドは、リアルドライブに接続するSATAホストインターフェース408において実行され、これらがすべて同時に実行される。それにより、システムプロセッサ204により同時に処理される記憶動作が、少なくとも3つ存在するかもしれない。これは、アプリケーションプロセッサ202と、それが実行しているオペレーティングシステムとが、最初の1つへの応答を受信する前に、追加の記憶コマンドを発行することが可能な限り、ディスクドライブ414をエミュレートする間に、それらのコマンドを取り扱う際の追加される複雑性において避けられない遅延を効率的に覆い隠すだろう。
【0051】
上述したグループに属さない周辺機器、および、属しているオプション的ないくつかは、通常ユニバーサルシリアルバス(USB)を使用してインターフェースされる。本発明の態様にしたがった、それらの周辺機器への安全なアクセスを提供する例示的な方法を、
図5に関連してこれから記述する。このような周辺機器は、キーボード、マウス、プリンタ、ワイヤレスモデム、カードリーダー、外部ディスクドライブ、および、さまざまな特定用途向けI/Oデバイスを含めることができる。知られているように、USBを介して接続されることができる周辺機器は、多数のカテゴリに属しており、それぞれは、可能性として、コンピュータシステムのセキュリティ上のその一意的な意味合いを持つ。いくつかのUSB周辺機器は、妥当に安全であると考えることができる一方で、他のものは、デジタル情報の巧みな盗用および電子的なサボタージュを計画するのに、近年非常に一般的になってきている。したがって、USB周辺接続を全体として、少しネットワーク保護ファイヤーウォールに似て、保護の追加レイヤに従属させることが好ましい。このことは、いずれの周辺機器が許可されているか、いずれが禁止されているか、および、いずれが制限されたもしくは制御された方法で使用可能であるかを選択するポリシー512のセットを課することになる。例えば、いくつかの企業は、外部USB大容量記憶デバイス(フラッシュドライブのような)の使用を禁止するかもしれない。他のものは、それらが同じ企業により発行されたものである限り、あるいは、フラッシュドライブから読み込まれたファイルもしくはフラッシュドライブに書き込まれたファイルのすべてが、埋め込まれている可能性があるマルウェアに対する検査のために、または、監査の目的のために、企業のセキュリティチームに送られる限り、それらの使用を許可することを選択してもよい。
【0052】
上記の考慮事項の観点から、
図5中に図示されている発明の実施形態におけるシステムプロセッサ204は、好ましくは、2つのUSBポートを備え、1つは増補されたターゲット504として機能し、もう一方は、通常USBホスト502として機能する。ホストポート502は、実際のUSB周辺機器506に接続するために使用され、USB周辺機器506のうちのいくつかは、コンピュータに対して内部であってもよい。例えば、ビデオ会議カメラ、オーディオスピーカおよびマイクロフォン、キーボードおよびタッチパッド、ならびに、外部周辺機器を接続するために使用されるいくつかの標準化されたUSBポート。
【0053】
USBターゲットポート504は、アプリケーションプロセッササブシステム202上に存在する標準USBポート508と、直接“バックトゥバック”で接続し、複数のUSB周辺機器をエミュレートするために、限定的に設計されたファームウェア214により補完された適切なハードウェアリソースを含む。普通のUSBターゲット制御装置は、単一のターゲットデバイスのみを実現するために十分なリソースを備えており、これは、このケースでは満足ではないだろう。ここで開示するコンピュータアーキテクチャの目的のために、USBターゲットポート504は、好ましくは、より多くのハードウェアリソースおよび論理を実現し、それぞれがそれ自体のデバイスアドレスを持つ、複数の(例えば、少なくとも8個の)独立的なUSB周辺機器をエミュレートする能力がある514。それらが、実際に、USBハブを介して、アプリケーションプロセッサ202に接続されているいくつかの独立的なUSBデバイスであるかのように、それらは、アプリケーションプロセッサ202オペレーティングシステムUSBソフトウェアスタックによりエミュレートされている。エミュレートされたUSBデバイス514の機能性を提供するために依存することになる実際のデバイスのうちのいくつかは、アプリケーションプロセッサ202上のUSBインターフェース508の最速スピードよりも遅いスピードであるかもしれないことから、USBターゲットポート504は、それがUSBハブに必要な論理を実現する場合に、システム性能全体に利益をもたらすだろう。言い換えると、増補されたUSBターゲットポート504に必要とされるリソースは、USBハブ510とともに、いくつかの独立的なUSBターゲットデバイス506のリソースに対応する。
【0054】
システムプロセッサ204のファームウェア214は、ハードウェア機能を補完し、エミュレートされたUSB周辺機器514のそれぞれを、そのUSBホストポート502に接続されているリアルUSBデバイス506の1つにマッピングするが、セキュリティポリシー512のセットと矛盾がない方法でそのようにする。これらのポリシー512は、ファームウェア214により局所的に記憶され、ユーザの介入なしで、企業サーバから時々自動的に取り出すことができる。これらのポリシー512は、本質的に無害であると考えられる、あるクラスのデバイスのマッピングおよび透過ブリッジングを可能にしてもよい。依然として、最も無害なUSBデバイス(例えば、外部マウス)でさえも、それらのUSBデータ構造の有効性に対してチェックされなければならず、これにより、アプリケーションオペレーティングシステムUSBスタック中に存在するかもしれない、悪意を持って作られたUSBパケットとともに悪用することが可能な何らかの虚弱性から、エンジン512により保護される。
【0055】
他のUSBデバイスは、それらのクラスおよびサブクラスに基づいて、エンジン512により禁止されてもよい。いくつかのUSBデバイスは、製造業者およびモデルコードに基づいて、または、よりいっそう詳細には、それらのシリアル番号に基づいて、許可されてもよく、これにより、例えば、USBフラッシュドライブは、通常禁止されることになる一方で、内蔵型セキュリティシールドを有し、企業により支給された極めて特定のフラッシュドライブは許可されるだろう。
【0056】
いくつかのケースでは、許可されたデバイスが、ある特定のアクションによりエミュレートされる。例えば、コンピュータキーボードはUSBデバイスであり、あるキーの組み合わせが、システムプロセッサ204により妨害されるべきであり、アプリケーションプロセッサ202に転送されるべきではないことを除いては、通常許可されるべきであり、呼び出されることになるあるシステムレベルの機能を要求するために使用されるべきである。別の例は、監査トレイルを保持するために、許可されたUSBフラッシュドライブがポリシー512により必要とされるときである。このようなケースでは、データをUSBフラッシュドライブから読み取って、データをUSBフラッシュドライブに書き込むためのコマンドは、システムプロセッサの2つUSBポート502、504にわたって転送されるだろうし、これらのコマンドとともに付随するデータは、局所的なドライブ上の特別なファイル中に記録されるだろうし、次に、記憶および次の監査のために、VPNトンネルを介して企業サーバに提示される。
【0057】
USBハブ510上の論理、すなわち、分割トランザクションのサポートにより増補されたUSBターゲットポート504により、ブリッジングを透明に行うことができる。分割トランザクションサポートにより、システムプロセッサ204が、アプリケーションプロセッサ202USBスタックからの任意のコマンドを、その同一の要求(許可されている場合)を実際のリアルUSBデバイス506に転送することにより取り扱うことを可能にし、その後、準備ができたときに応答を送り返す。分割トランザクションサポートを使用しなければ、ファームウェアが、時間的に先に、任意の予期されるUSBコマンドへの応答を準備し、それを適切なUSBターゲットデバイスエンドポイントバッファ中に記憶させることが必要になるだろう。このことは、必ずしも、リアルUSBデバイスとエミュレートされたUSBデバイスとの間のブリッジングの際に、十分な透過性を提供しない。
【0058】
上記に加えて、時々、純粋に動作目的のために必要なそれらの接続や、アプリケーションソフトウェアおよびオペレーティングシステム上に影響しないそれらの接続を含む、2つのサブシステム202および204の間で多数の接続を必要とする。1つのこのような接続は、システムプロセッササブシステム204が、アプリケーションプロセッササブシステム202の電力供給を制御し、標準コンピュータ電力供給をエミュレートする能力であるだろう。別の接続は、アプリケーションプロセッサ202上の“BIOS”低レベルの動作ソフトウェアを制御および監視でき、このことは、好ましくは、低速シリアルポートを介して行われる。これにより、動作監視機能を、システムプロセッサ204のファームウェア214とともに埋め込むことを可能にし、企業サーバファームによる遠隔コンフィグレーション、および、企業サーバファームへのオペレーティングシステムブートストラッププロセスの報告を可能する。
【0059】
本発明の実施形態にしたがって、コンピュータシステム100への安全なアクセスを提供する例示的なプロセスを、
図6に関連してこれから記述する。
【0060】
図6中で示されているように、処理は、例えば、システム電源投入/リセットボタンが押下げられるときに、初期のシステムスタートアップS602の間に開始する。初めに、ステップS604中に示されているように、システムプロセッサ204中の動作するファームウェア214は、システム100の完全な制御を仮定し、すべてのシステム周辺機器に対するアプリケーションプロセッサ202のアクセスをブロックする。例えば、システムプロセッサ204は、キーボード206、および、マウスのような類似した入力デバイスへのアクセスをブロックする。言い換えると、たとえこのような周辺機器がシステム100にアタッチされていても、それらからの信号は、システムプロセッサ204へのみ提供され、それらの信号は、アプリケーションプロセッサ202に中継されない。同様に、システムプロセッサ204は、ビデオmux208に、ディスプレイ210上に示されることなる、アプリケーションプロセッサ202からの任意のビデオ出力をブロックさせる。その間に、システムプロセッサ204は、ビデオmux208に、システムプロセッサ204による出力であるスタートアップスクリーンを表示させる。
【0061】
ステップS606中で示されているように、システムプロセッサ204は、アプリケーションプロセッサ202がブートすることを可能にする。他の実施形態では、このステップは、ユーザが認証された後まで起こらない。いずれのイベントにおいても、アプリケーションプロセッサ202のスタートアップの間に、システムプロセッサ204は、ディスクドライブ410へのアプリケーションプロセッサ202のアクセスを制御し(例えば、プロセッサ202が、Windows7のようなオペレーティングシステムをロードするために)、エミュレートされたキーボードを提供し、そのような入力および出力は実際にはシステムプロセッサ204によりブロックされているけれども、アプリケーションプロセッサ202のためのBIOS/オペレーティングシステムに対する接続を表示できる。
【0062】
次のステップS608中では、システムプロセッサ204は、キーボード206(および、おそらく、タッチパッド等のような他の入力デバイス)、ならびに、ユーザを適切に認証するために必要な対話を排他的に制御し、そのプロセスの進行および結果をディスプレイ210を介してユーザに知らせる。上述したように、認証は、任意の従来の、プロプラエタリの、または、将来の技術を含むことができ、当業者は、多くの可能性ある代替実施形態を認識するだろう。1つの限定されない例では、システムプロセッサ204は、ユーザネーム、パスワード、セキュリティキー、バイオメトリクス(例えば、指紋)のような、身分証明を入力/供給するようにユーザを促すことができる。これらの身分証明は、局所的に記憶された身分証明と比較することができ、または、システムプロセッサ204は、比較のためにそれらを遠隔認証サーバに転送することができる。
【0063】
ステップS610において、認証が失敗であると決定される場合に、ステップS612において、エラースクリーンが表示され、任意のアタッチされている周辺機器上で、ユーザからのすべてのさらなる入力が無視されることになる。
【0064】
そうでなければ、ステップS610において、認証が成功したことが決定された場合に、システムプロセッサ204は、ステップ614において、通常動作モードを宣言し、ビデオmux208に、アプリケーションプロセッサ202グラフィックにスクリーン全体を占めさせることを可能にする。同様に、認証が成功した後に、プロセッサ204は、ファームウェア214中にプログラムされているエミュレーション機能により提供されるように、バス224を介して、プロセッサ202によるキーボード206および他の周辺機器へのエミュレートされたアクセスを許可する。“認証”状態は永続的なものである必要がないことに留意すべきである。例えば、システムのインアクティビティまたは部分的なシャットダウンのイベントにおいて、システムは、ロックアップし、認証されていない状態に戻ることができる。このケースでは、アプリケーションプロセッサ202は、おそらく依然として実行しているが、おそらく、システムを動作状態に維持するために必要な特定の記憶装置およびネットワークを除く任意の周辺機器に、プロセッサ204によってアクセスすることからブロックする。この点において、システムプロセッサ204は、再認証するために、ログオンスクリーンを表示させ、ユーザと対話できる。
【0065】
別の例として、たとえシステムが“認証”状態である間も、システムプロセッサ204は、“オーバーレイ”モードでメッセージまたはグラフィックをディスプレイ210上で表示させることにより、オペレータの注意を周期的に要求し、システムプロセッサ204ファームウェアの制御の下でメニューをポップアップさせることができる予め規定されたキーの組み合わせをキーボード上で入力することにより、オペレータとシステムプロセッサ204との間の対話を可能にすることができる。このような対話を使用して、ネットワーク設定を調節し、性能管理機能を実行し、または、安全な音声またはビデオ通信のような、システムプロセッサ204ファームウェア中に内蔵された他の任意の機能性を呼び出すことができる。
【0066】
本発明は、その好ましい実施形態を参照して、特に記述されているが、本発明の精神および範囲から逸脱することなく、形式および詳細における変更および修正を行うことができることは当業者にとって容易に明らかであるべきである。付随の特許請求の範囲は、このような変更および修正を含むことが意図されている。
以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータシステムにおいて、
アプリケーションを実行するように構成されている第1のプロセッサを備える第1のサブシステムと、
セキュリティファームウェアを実行するように構成されている第2の別個のプロセッサを備える第2のサブシステムと、
前記第2のサブシステムに接続されている周辺機器とを具備し、
前記アプリケーションによる前記周辺機器へのアクセスは、前記第1のサブシステムの対応する周辺接続をエミュレートする、前記第2のプロセッサ上で実行している前記セキュリティファームウェアにより制御されるコンピュータシステム。
[C2]
前記周辺機器は、ビデオディスプレイを備え、
前記コンピュータシステムは、前記第1のサブシステムに接続される第1の入力と、前記第2のサブシステムに接続される第2の入力と、前記ビデオディスプレイに接続される出力とを有するビデオマルチプレクサをさらに具備し、
前記出力を導出するための、前記第1の入力および前記第2の入力からのコンテンツの選択は、前記第2のプロセッサ上で実行している前記セキュリティファームウェアにより制御される[C1]記載のコンピュータシステム。
[C3]
前記周辺機器は、キーボードをさらに備え、前記セキュリティファームウェアは、スタートアップシーケンスを含み、前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第2のプロセッサにより排他的に制御され、前記第1のプロセッサによる前記キーボードおよびビデオディスプレイへのアクセスは妨げられる[C2]記載のコンピュータシステム。
[C4]
前記周辺機器は、前記第1のプロセッササブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記システムは、前記セキュリティファームウェアにより維持されるエミュレートされたディスクドライブをさらに具備し、
前記第1のプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される[C1]記載のコンピュータシステム。
[C5]
前記セキュリティファームウェアは、前記エミュレートされたディスクドライブの1つ以上の時間特有な画像を維持する[C4]記載のコンピュータシステム。
[C6]
前記ディスクドライブは、ソリッドステートディスクドライブを含む[C4]記載のコンピュータシステム。
[C7]
前記セキュリティファームウェアは、前記ディスクドライブ上のすべてのデータを暗号化し、前記暗号化のためのキーは、前記セキュリティファームウェアにより排他的に維持される[C4]記載のコンピュータシステム。
[C8]
前記周辺機器は、ネットワーク接続を備え、前記セキュリティファームウェアは、前記第1のサブシステムによる外部ネットワークへのアクセスを制御する[C1]記載のコンピュータシステム。
[C9]
前記第1のサブシステムと前記外部ネットワークとの間のすべての通信のために、前記セキュリティファームウェアにより維持されているVPNトンネルをさらに具備する[C8]記載のコンピュータシステム。
[C10]
コンピュータシステムを守る方法において、
アプリケーションを実行する第1のプロセッサを備える、前記コンピュータシステムの第1のサブシステムを構成することと、
セキュリティファームウェアを実行する第2の別個のプロセッサを備える、前記コンピュータシステムの第2のサブシステムを構成することと、
周辺機器を前記第2のサブシステムに接続することと、
前記第1のサブシステムの対応する周辺接続をエミュレートする、前記第2のプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記アプリケーションによる前記周辺機器へのアクセスを制御することとを含む方法。
[C11]
前記周辺機器は、ビデオディスプレイを備え、
前記方法は、
ビデオマルチプレクサを前記コンピュータシステム中に提供することと、
前記ビデオマルチプレクサの第1の入力を前記第1のサブシステムに接続することと、
前記ビデオマルチプレクサの接続されている第2の入力を前記第2のサブシステムに接続することと、
前記ビデオディスプレイの出力を前記ビデオディスプレイに接続することと、
前記第2のプロセッサ上で実行している前記セキュリティファームウェアを使用して、前記出力を導出するための、前記第1の入力および前記第2の入力からのコンテンツの選択を制御することとをさらに含む[C10]記載の方法。
[C12]
前記周辺機器は、キーボードをさらに備え、
前記方法は、前記セキュリティファームウェアにより実行されるスタートアップシーケンスをさらに含み、
前記キーボード、および、前記ビデオディスプレイのための前記出力は、前記第2のプロセッサにより排他的に制御され、前記第1のプロセッサによる、前記キーボードおよびビデオディスプレイへのアクセスは妨げられる[C11]記載の方法。
[C13]
前記周辺機器は、前記第1のプロセッササブシステムのためのオペレーティングシステムおよびアプリケーションソフトウェアを含むディスクドライブを備え、
前記方法は、前記セキュリティファームウェアを使用して、エミュレートされたディスクドライブを維持することをさらに含み、
前記第1のプロセッサによる、前記ディスクドライブ上の前記オペレーティングシステムおよびアプリケーションソフトウェアへのアクセスは、前記エミュレートされたディスクドライブを介して制御される[C10]記載の方法。
[C14]
前記セキュリティファームウェアを使用して、前記エミュレートされたディスクドライブの1つ以上の時間特有な画像を維持することをさらに含む[C13]記載の方法。
[C15]
前記ディスクドライブは、ソリッドステートディスクドライブを含む[C13]記載の方法。
[C16]
前記セキュリティファームウェアを使用して、前記ディスクドライブ上のすべてのデータを暗号化することと、
前記暗号化のためのキーを、前記セキュリティファームウェアにより排他的に維持することとをさらに含む[C13]記載の方法。
[C17]
前記周辺機器は、ネットワーク接続を備え、
前記方法は、前記セキュリティファームウェアを使用して、前記第1のサブシステムによる外部ネットワークへのすべてのアクセスを制御することをさらに含む[C10]記載の方法。
[C18]
前記セキュリティファームウェアを使用して、前記第1のサブシステムと前記外部ネットワークとの間のすべての通信のために、VPNトンネルを維持することをさらに含む[C17]記載の方法。
[C19]
システムにおいて、
独立型コンピュータシステムと、
前記独立型コンピュータシステムを制御する組織によりホストされた安全なイントラネットとを具備し、
前記独立型コンピュータシステムは、
アプリケーションを実行するように構成されている第1のプロセッサを備える第1のサブシステムと、
セキュリティファームウェアを実行するように構成されている第2の別個のプロセッサを備える第2のサブシステムとを備え、
前記アプリケーションによる前記安全なイントラネットへのアクセスは、前記第1のサブシステムの対応する周辺ネットワーク接続をエミュレートする、前記第2のプロセッサ上で実行している前記セキュリティファームウェアにより制御されるシステム。
[C20]
前記独立型コンピュータシステムは、ノートブックコンピュータを含む[C19]記載のシステム。