(57)【要約】  ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・アーキテクチャが、開示される。メインフレーム・コンピュータ、パーソナル・コンピュータ、スマートフォン、又はネットワーク通信に適した他の任意のコンピューティング・デバイスとすることができる、コンピューティング・デバイスは、第１のパーティションと、第２のパーティションを備える。第２のパーティションは、インターネットなどのネットワーク上で通信することができる。対照的に、第１のパーティションは、インターネットに接続することはできず、第２のパーティションと、又は第１のパーティションに直接的に接続された入力／出力デバイスとだけ直接的に通信することができる。さらに、第１のパーティションは、プログラム・コード用のそれのメモリ・アドレッシングを区分し、それを改変からハードウェア的に保護する。第２のパーティションは、第１のパーティションのメモリ・アドレッシングを読み取ること、又はそれに書き込むことを、ハードウェア的に制限される。結果として、第１のパーティション上に記憶された重要なデータ・ファイル及びプログラム・コードは、第２のパーティションに悪影響を及ぼす悪意あるコードから保護される。
2020508499.tif 000002
【特許請求の範囲】
【請求項１】
第１のパーティションであって、
第１のＣＰＵと、
第１のメモリ・モジュールであって、
プログラム・コード用の少なくとも１つのメモリ・アドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲が、ハードウェア回路によって改変から保護されるように構成される、プログラム・コード用の少なくとも１つのメモリ・アドレス範囲と、
第２のパーティションから読み取られたデータを含む、他のデータ用の少なくとも１つのメモリ・アドレス範囲と
を備える第１のメモリ・モジュールと
からなり、
前記第１のＣＰＵが、プログラム・コード用の前記メモリ・アドレス範囲内の前記コンピュータ実行可能コードだけを実行するようにハードウェア的に構成される、
第１のパーティションと、
第２のパーティションであって、
第２のＣＰＵと、
第２のメモリ・モジュールと、
ネットワークに結合するように構成された少なくとも１つの通信モジュールと
からなる第２のパーティションと
からなり、
前記第１のＣＰＵが、前記第２のＣＰＵ及び前記第２のメモリ・モジュールにアクセスすることができ、
前記第２のＣＰＵが、前記第１のＣＰＵ又は前記第１のメモリ・モジュールにアクセスすることを制限される、
コンピュータ・システム。
【請求項２】
メモリ・アドレッシング構造が、
プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲のための第１のメモリ・ユニットと、
他のデータ用の前記少なくとも１つのメモリ・アドレス範囲のための第２のメモリ・ユニットと
からなる、請求項１に記載のコンピュータ・システム。
【請求項３】
プログラム・コード用の前記メモリ・アドレッシング構造をマッピングする前記ハードウェア回路が、少なくとも１つのフィールド・プログラマブル・ゲート・アレイからなる、請求項１に記載のコンピュータ・システム。
【請求項４】
他のデータ用の前記少なくとも１つのメモリ・アドレス範囲が、
前記第２のパーティションから読み取られたデータ用の少なくとも１つのメモリ・アドレス範囲と、
他の第１のパーティション・データ用の少なくとも１つのメモリ・アドレス範囲と
を備える、請求項１に記載のコンピュータ・システム。
【請求項５】
前記メモリ・アドレッシング構造が、
プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲のための第１のメモリ・ユニットと、
前記第２のパーティションから読み取られたデータ用の第２のメモリ・ユニットと、
他の第１のパーティション・データ用の第３のメモリ・ユニットと
からなる、請求項１に記載のコンピュータ・システム。
【請求項６】
オン又はオフにすることができる少なくとも１つの外部物理スイッチを備え、前記外部物理スイッチがオンのときだけ、前記第１のＣＰＵが、プログラム・コード用の前記少なくとも１つのアドレス範囲内に記憶されたデータを変更することができる、請求項１に記載のコンピュータ・システム。
【請求項７】
オン又はオフにすることができる少なくとも１つの外部物理スイッチを備え、
前記外部物理スイッチがオンのときだけ、前記第１のＣＰＵが、プログラム・コード用の前記少なくとも１つのアドレス範囲内に記憶されたデータを変更することができ、
前記少なくとも１つの外部物理スイッチがオンの間、前記第１のＣＰＵが前記第２のＣＰＵ及び前記第２のメモリ・モジュールにアクセスする能力が、無効化される、
請求項１に記載のコンピュータ・システム。
【請求項８】
前記第１のパーティションに直接的に接続された外部デバイスを利用するハードウェア機能が、ユーザが、前記第２のパーティションの１つ又は複数の入力／出力デバイスの制御を行うように、前記第１のＣＰＵに命令することを可能にするように構成される、請求項１に記載のコンピュータ・システム。
【請求項９】
プログラム・コード用の前記少なくとも１つのアドレス範囲が、オペレーティング・システムを含む、請求項１に記載のコンピュータ・システム。
【請求項１０】
少なくとも１つのデータ・ストアを備える、請求項１に記載のコンピュータ・システム。
【請求項１１】
複数の入力／出力デバイスが、少なくとも１つのＩ／Ｏモジュールに結合される、請求項１に記載のコンピュータ・システム。
【請求項１２】
前記第１のパーティション及び第２のパーティションからなるチップをさらに備える、請求項１に記載のコンピュータ・システム。
【請求項１３】
前記第１のパーティションからなる第１のチップと、前記第２のパーティションからなる第２のチップとをさらに備える、請求項１に記載のコンピュータ・システム。
【請求項１４】
前記第１のＣＰＵが前記第２のメモリ・モジュール及び前記第２のＣＰＵにアクセスする前記能力が、ハードウェア回路によって実施され、
前記第１のＣＰＵが、前記第２のパーティションから他のデータ用の前記少なくとも１つのメモリ・アドレス範囲内だけに読み取ることができ、
前記第１のＣＰＵ又は前記第１のメモリ・モジュールへのアクセスについての前記第２のＣＰＵに対する制限が、ハードウェア回路によって実施される、
請求項１に記載のコンピュータ・システム。
【請求項１５】
バスをさらに備え、
前記第１のパーティションが、前記バスを通して、前記第２のパーティションに相互接続され、
前記第１のパーティションが、前記バスを通して、プル・コマンドを実行して、データを前記第２のパーティションから読み取り、前記データを前記第２のパーティションから読み取られたデータに適用可能な前記少なくとも１つのメモリ・アドレス範囲だけに書き込むように構成され、
前記第１のパーティションが、前記バスを通して、プッシュ・コマンドを実行して、デ
ータを前記第２のパーティションに書き込むように構成される、
請求項１に記載のコンピュータ・システム。
【請求項１６】
ハードウェア・ユニットを備え、
前記ユニットが、インターネットを通して、１つ又は複数の事前に定められたサービスだけに接続されて、新しい重要なアプリケーションをダウンロードするように、又は既存の重要なアプリケーションを更新するように構成され、
前記ユニットが、前記第１のパーティションに接続するように、又は更新データを不揮発性メモリ上に書き込むように構成され、
前記第１のパーティションが、ハードウェア・スイッチがオンのときだけ、前記ユニット又は前記不揮発性メモリからデータを受け入れるように構成される、
請求項１に記載のコンピュータ・システム。
【請求項１７】
前記システムに組み込まれたハードウェア・ユニットを備え、
前記ユニットが、インターネットを通して、１つ又は複数の事前に定められたサービスだけに接続するように構成された、固定されたハードウェア又はファームウェアを備え、
前記第１のパーティションが、ハードウェア・スイッチがオンのときだけ、前記ユニットからデータを受け入れるように構成される、
請求項１に記載のコンピュータ・システム。
【請求項１８】
インターネットなどのネットワーク上で、又は限定することなく、Ｂｌｕｅｔｏｏｔｈ及びＲＦＩＤ送信を含む、ローカル無線通信を通して、通信することができるデバイスに接続され、前記デバイス又は前記コンピュータ・システムが、流通前に、製造業者によって、保護されたメモリ内に１つ又は複数のセキュリティ・キーを入れて準備される、請求項１に記載のコンピュータ・システム。
【請求項１９】
２つ以上の第１のパーティション、又は２つ以上の第２のパーティション、又は２つ以上の第１及び第２のパーティションを備えるように構成され、
各第２のパーティションの前記ＣＰＵが、各第１のパーティションの前記ＣＰＵ又はメモリ・モジュールにアクセスすることをハードウェア的に制限される、
請求項１に記載のコンピュータ・システム。
【請求項２０】
前記第１のパーティションが、１つ又は複数の仮想サブパーティションからなり、
前記第２のパーティションが、１つ又は複数の仮想サブパーティションからなる、
請求項１に記載のコンピュータ・システム。
【請求項２１】
第１の仮想パーティション・ファミリであって、
少なくとも１つのパーティションと、
少なくとも１つのＣＰＵと、
少なくとも１つのメモリ・モジュールであって、
プログラム・コード用の少なくとも１つのアドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも１つのアドレス範囲が、通常の動作状態では、読み取り専用として構成される、プログラム・コード用の少なくとも１つのアドレス範囲と、
第２のパーティションから読み取られたデータを含む、他のデータ用の少なくとも１つのメモリ・アドレス範囲と
を備える少なくとも１つのメモリ・モジュールと
からなり、
前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが、プログラム・コード用の前記少なくとも１つのアドレス範囲内に記憶された前記コンピュータ実
行可能コードだけを実行するように構成される、
第１の仮想パーティション・ファミリと、
第２の仮想パーティション・ファミリであって、
少なくとも１つのパーティションと、
少なくとも１つのＣＰＵと、
少なくとも１つのメモリ・モジュールと、
ネットワークに結合することが可能な少なくとも１つの通信モジュールと
からなる第２の仮想パーティション・ファミリと
からなり、
前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが、前記第２の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵ及び前記少なくとも１つのメモリ・モジュールにアクセスすることができるように構成され、
前記第２の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが、前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵ又は前記第１の仮想パーティション・ファミリの前記少なくとも１つのメモリ・モジュールにアクセスすることができないように構成される、
コンピュータ・システム。
【請求項２２】
前記コンピュータに接続された少なくとも１つのデバイスを利用し、オン又はオフにすることができるハードウェア機能を備え、前記ハードウェア・デバイスがオンでない限り、前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが、プログラム・コード用の前記第１の仮想パーティション・ファミリ・アドレス範囲内のデータを変更することはできない、請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記コンピュータに接続された少なくとも１つのデバイスからなり、オン位置及びオフ位置を含むハードウェア機能
を備え、
前記ハードウェア・デバイスが前記オン位置にない限り、前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが、プログラム・コード用の前記第１の仮想パーティション・ファミリ・アドレス範囲内のデータを変更することはできず、
前記少なくとも１つのハードウェア・デバイスが前記オン位置にある間、前記第１の仮想パーティション・ファミリの前記少なくとも１つのＣＰＵが前記第２の仮想パーティション・ファミリにアクセスする能力が、無効化される、
請求項２１に記載のコンピュータ・システム。
【請求項２４】
ハードウェア・デバイスが、仮想サーバをホストするサーバ・バンクと、インターネットなどのネットワークに接続するために使用されるルータとの間に配置され、
前記第１のパーティションによって開始された場合、又はハードウェア・スイッチによって許可された場合を除いて、コード又はデータが前記第１のパーティションに書き込まれ得ないように、前記デバイスが、前記パーティション間、又は前記パーティションに接続された外部ユニットもしくはコンピュータ間のすべてのトラフィックを管理し、
前記デバイス自体が、それの構成スイッチがオン位置にあるときだけ、トラフィックをそれの３つの別個の進路（読み取り及び書き込み、読み取り専用、ならびに接続なし／要求の拒否）に向かわせるように構成されてよい、
請求項２１に記載のコンピュータ・システム。
【請求項２５】
前記コンピュータに接続された少なくとも１つのハードウェア・デバイスを備え、前記少なくとも１つのハードウェア・デバイスは、オン又はオフにすることができ、前記少なくとも１つのハードウェア・デバイスがオンでない限り、前記第１の仮想パーティション・ファミリの仮想構成が、変更され得ない、請求項２１に記載のコンピュータ・システム。
【請求項２６】
第１のコンピュータであって、
ＣＰＵと、
メモリ・モジュールであって、
プログラム・コード用の少なくとも１つのメモリ・アドレス範囲であって、前記プログラム・コードが、コンピュータ実行可能コードを含み、プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲が、ハードウェア回路によって改変から保護されるように構成される、プログラム・コード用の少なくとも１つのメモリ・アドレス範囲と、
第２のコンピュータから読み取られたデータを含む、他のデータ用の少なくとも１つのメモリ・アドレス範囲と
を備えるメモリ・モジュールと
からなり、
前記少なくとも１つのＣＰＵが、プログラム・コード用の前記メモリ・アドレス範囲内の前記コンピュータ実行可能コードだけを実行するようにハードウェア的に構成される、
第１のコンピュータと、
第２のコンピュータであって、
ＣＰＵと、
ネットワークに結合するように構成された少なくとも１つの通信モジュールと
からなる第２のコンピュータと、
バスと
からなり、
前記第１のコンピュータと前記第２のコンピュータとが、前記バスを通してだけ相互接続され、
前記第１のコンピュータが、前記バスを通して、プル・コマンドを実行して、データを前記第２のコンピュータから読み取り、前記データを前記第２のコンピュータから読み取られたデータに適用可能な前記少なくとも１つのメモリ・アドレス範囲だけに書き込むように、前記バスが、構成され、
前記第１のコンピュータが、前記バスを通して、プッシュ・コマンドを実行して、データを前記第２のコンピュータに送るように、前記バスが、構成され、
前記バスが、前記第２のコンピュータからのプッシュ・コマンド、又は前記第２のコンピュータからのプル・コマンドを受け入れることはできず、
前記バスのハードウェア回路が、前記第２のコンピュータが、前記第１のコンピュータの前記ＣＰＵ又は前記メモリ・モジュールにアクセスすることを許可しない、
コンピュータ・システム。
【請求項２７】
メモリ・アドレッシング構造が、
プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲のための第１のメモリ・ユニットと、
他のデータ用の前記少なくとも１つのメモリ・アドレス範囲のための第２のメモリ・ユニットと
からなる、請求項２６に記載のコンピュータ・システム。
【請求項２８】
プログラム・コード用の前記メモリ・アドレッシング構造をマッピングする前記ハードウェア回路が、少なくとも１つのフィールド・プログラマブル・ゲート・アレイからなる、請求項２６に記載のコンピュータ・システム。
【請求項２９】
他のデータ用の前記少なくとも１つのメモリ・アドレス範囲が、
前記第２のコンピュータから読み取られたデータ用の少なくとも１つのメモリ・アドレ
ス範囲と、
他の第１のコンピュータ・データ用の少なくとも１つのメモリ・アドレス範囲と
を備える、請求項２６に記載のコンピュータ・システム。
【請求項３０】
前記メモリ・アドレッシング構造が、
プログラム・コード用の前記少なくとも１つのメモリ・アドレス範囲のための第１のメモリ・ユニットと、
前記第２のコンピュータから読み取られたデータ用の第２のメモリ・ユニットと、
他の第１のコンピュータ・データ用の第３のメモリ・ユニットと
からなる、請求項２６に記載のコンピュータ・システム。
【請求項３１】
オン又はオフにすることができる少なくとも１つの外部物理スイッチを備え、前記外部物理スイッチがオンのときだけ、前記第１のコンピュータの前記ＣＰＵが、プログラム・コード用の前記少なくとも１つのアドレス範囲内に記憶されたデータを変更することができる、請求項２６に記載のコンピュータ・システム。
【請求項３２】
プログラム・コード用の前記少なくとも１つのアドレス範囲が、オペレーティング・システムを含む、請求項２６に記載のコンピュータ・システム。
【請求項３３】
少なくとも１つのデータ・ストアを備える、請求項２６に記載のコンピュータ・システム。
【請求項３４】
前記第１のコンピュータが、少なくとも１つの入力／出力モジュールを備え、
複数の入力／出力デバイスが、少なくとも１つのＩ／Ｏモジュールに結合される、
請求項２６に記載のコンピュータ・システム。
【請求項３５】
２つのコンピュータを接続するように設計されたバスであって、
第１のコンピュータが、前記バスを通して、プル・コマンドを実行して、データを第２のコンピュータから読み取り、それを前記第１のコンピュータに配送するように、前記バスが、構成され、
前記第１のコンピュータが、前記バスを通して、プッシュ・コマンドを実行して、データを前記第２のコンピュータに送るように、前記バスが、構成され、
前記バスが、前記第２のコンピュータからのプッシュ・コマンド、又は前記第２のコンピュータからのプル・コマンドを許可せず、
前記バスのハードウェア回路が、前記第２のコンピュータが、前記第１のコンピュータのＣＰＵ又はメモリ・モジュールにアクセスすることを許可しない、
バス。
【発明の詳細な説明】
【技術分野】
【０００１】
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・アーキテクチャが、開示される。
【背景技術】
【０００２】
コンピュータに侵入するための一般的な方法は、インターネット又は他のネットワーク接続を通して、悪意のあるコンピュータ実行可能コード（マルウェア）をコンピュータに入れることによる。そのようなハッキングは、大きな脅威になっており、ハッキングの重大な事例が、広く報告されている。そのようなハッキングを阻止するための広く普及している手法は、マルウェアを識別し、無効化又は除去するためのソフトウェアに依存している。しかしながら、ハッカは、ますます巧妙になっており、一般に行われている保護は、十分ではない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、当技術分野には、ハードウェア手法を利用するハッキング耐性のあるコンピュータ・システム・アーキテクチャに対する必要性が存在する。そのようなハードウェア手法は、様々なアプリケーションのために様々なコンピュータから利用可能である。例えば、本明細書で開示されるようなハードウェア手法を使用する銀行、企業、政府機関、又は個人は、それらのコンピュータの制御権を握って、コンピュータ上に記憶された機密データ、個人情報、又はパスワードを盗み、又は改ざんしようと試みることがあるハッカからかなりよく保護される。本明細書で開示されるハードウェア手法は、現在のソリューションでは可能でない程度まで、ハッカを防御する。
【課題を解決するための手段】
【０００４】
ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャが、開示される。コンピュータ・システム・アーキテクチャは、インターネットから受け取った悪意あるコンピュータ実行可能コードが、重要なデータ・ファイルにアクセスすること、又は悪影響を及ぼすことを、重要なデータ・ファイルのインターネットへの直接アクセスをハードウェア的に制限することによって防止する。メインフレーム・コンピュータ、パーソナル・コンピュータ、スマートフォン、又はネットワーク通信に適した他の任意のコンピューティング・デバイスとすることができる、コンピューティング・デバイスは、第１のパーティションと、第２のパーティションとを備える。第２のパーティションは、インターネットなどのネットワーク上で通信することができる。対照的に、第１のパーティションは、第２のパーティションと、又は第１のパーティションに直接的に接続された入力／出力デバイスと直接的に通信することができる。結果として、第１のパーティションは、インターネット、及びインターネットに接続されたサーバなどの他の任意のデバイスに接続することをハードウェア的に制限される。第１のパーティションによるインターネットへのすべてのアクセスは、第１のパーティションと第２のパーティションとの間のハードウェア接続に限定され、その後、第２のパーティションが、インターネットに接続することができる。
【０００５】
さらに、第１のパーティションは、オペレーティング・システムを利用して、第１のパーティションのメモリ・アドレスをセクションに区分する、ハードウェア回路を含む。コンピュータ実行可能コード及び関連する非常に重要なデータを含む、プログラム・コードのためのメモリ・アドレッシングは、区分され、改変からハードウェア的に保護される。この手法は、第１のパーティション内の別個のメモリ・ユニットを使用することによって
も、達成され得る。重要なデータ・ファイルを保護するために、第２のパーティションは、第１のパーティションのメモリ・アドレッシングから読み取る、又は第１のパーティションのメモリ・アドレッシングに書き込むことを、ハードウェア的に制限される。第２のパーティションのデータは、第１のパーティションのオペレーティング・システムによって実行される「プル」コマンドを通して、第１のパーティションに転送される。さらに、第２のパーティションは、第１のパーティションにデータを「プッシュ」すること、又は「プル」コマンドを送るように第１のパーティションを制御することはできない。第１のパーティションによって第２のパーティションからプルされるすべてのデータは、ハードウェア設計によって、第２のパーティションから読み取られたデータ・ファイル専用の第１のパーティションのメモリ・セクション内に記憶される。さらに、第１のパーティションは、ハードウェア制限によって、第２のパーティションから読み取られたデータ・ファイルが実行されることを防止する。結果として、第１のパーティション上に記憶された重要なプログラム及び重要なデータ・ファイルは、第２のパーティションに悪影響を及ぼすインターネット又は他の任意のソースからの悪意あるコードから保護される。
【０００６】
詳細な説明は、添付の図を参照する。
【図面の簡単な説明】
【０００７】
【図１】例示的なネットワーク図。
【図２Ａ】本明細書で提示される様々な実施形態による、ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャを示すブロック図。
【図２Ｂ】本明細書で提示される様々な実施形態による、ハッキング耐性のあるコンピューティング・デバイスを実施するためのコンピュータ・システム・アーキテクチャを示すブロック図。
【図２Ｃ】本明細書で提示される様々な実施形態による、コンピュータ・システム・アーキテクチャを示すブロック図。
【図３Ａ】好適な実施形態による、コンピューティング・デバイスのメモリ・アドレッシングを示す図。
【図３Ｂ】好適な実施形態による、コンピューティング・デバイスのメモリ・アドレッシングを示す図。
【図４】好適な実施形態による方法を示すフローチャート。
【図５】既存のコンピュータ・アーキテクチャを利用するコンピューティング・デバイスとともに使用するために適合させられた、実施形態を示すブロック図。
【図６Ａ】既存のコンピュータ・アーキテクチャを利用するコンピューティング・デバイスとともに使用するために適合させられた、ソフトウェア実施形態を示すブロック図。
【図６Ｂ】既存のコンピュータ・アーキテクチャを利用するコンピューティング・デバイスとともに使用するために適合させられた、ソフトウェア実施形態を示すブロック図。
【図７】コンピューティング・デバイス上で仮想パーティションを実施する実施形態を示すブロック図。
【発明を実施するための形態】
【０００８】
他の目的、特徴、及び特性、ならびに構造及び部分の組み合わせの関連要素の動作及び機能の方法は、添付の図面を参照して以下の詳細な説明を検討することでより明らかになるであろう。添付の図面のすべては、本明細書の一部を形成する。
【０００９】
詳細で説明的な実施形態が、本明細書で開示される。しかしながら、開示される原理による技法、方法、工程、システム、及び動作構造は、多種多様な形態及び様式で具体化さ
れてよく、それらのいくつかは、開示された実施形態におけるそれらと全く異なってよい。結果として、本明細書で開示される特定の構造的及び機能的詳細は、代表的なものにすぎないが、それでも、その点において、それらは、開示の目的で最良の実施形態を提供すると見なされる。
【００１０】
文脈が明らかに別のことを要求していない限り、本説明及び特許請求の範囲のどこにおいても、「ｃｏｍｐｒｉｓｅ（含む／備える）」及び「ｃｏｍｐｒｉｓｉｎｇ（含む／備える）」などの語は、排他的又は網羅的ではなく、包含的な意味に、すなわち、「ｉｎｃｌｕｄｉｎｇ，  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ（限定することなく、〜を含む）」の意味に解釈されるべきである。本明細書で使用される場合、「ｃｏｎｎｅｃｔｅｄ（接続される）」、「ｃｏｕｐｌｅｄ（結合される）」という用語、又はそれらのいずれの変化形も、２つ以上の要素間の、直接的又は間接的な、電子的又は非電子的な、任意の接続又は結合を意味し、要素間の接続の結合は、物理的、論理的、又はそれらの組み合わせとすることができる。加えて、「ｈｅｒｅｉｎ（本明細書で）」、「ａｂｏｖｅ（上で）」、「ｂｅｌｏｗ（下で）」という語、及び同様の趣旨の語は、本明細書で使用される場合、本明細書のいずれか特定の部分ではなく、本明細書を全体として参照するものとする。文脈が許す場合、単数形又は複数形で使用される「発明を実施するための形態」内の語は、それぞれ、複数又は単数を含んでもよい。２つ以上の項目からなるリストに関する「ｏｒ（又は）」という語は、この語についての以下の解釈のすべて、すなわち、リスト内の項目のいずれか、リスト内の項目のすべて、及びリスト内の項目の任意の組み合わせを包含する。以下に、図を参照する、詳細な説明を提示する。
【００１１】
最初に図１を参照すると、ハッキング耐性のあるコンピューティング・デバイスの例示的なネットワーク図が、示されている。コンピューティング・デバイス３００は、任意の大規模商用又は政府コンピュータ又は「メインフレーム」、タンデムで動作する１組のリンクされたコンピュータ、限定することなく、モバイル電話、セルラ電話、スマート電話、ラップトップ・コンピュータ、ネットブック、パーソナル・デジタル・アシスタント（ＰＤＡ）、家電、住宅用もしくは商用建物コントローラ、又はネットワーク通信に適した他の任意のコンピューティング・デバイスを含む、単一のパーソナル・コンピュータ（ＰＣ）又はモバイル通信デバイスを含むことができる。コンピューティング・デバイス３００は、第１のパーティション１００と、第２のパーティション２００とを備える。第１のパーティション１００は、キーボード、データ記憶デバイス、及びプリンタなどの、入力／出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、第１のパーティションは、コンピューティング・デバイスのユーザの制御下にある物理的ロケーション内に存在する、より小型のコンピュータ又はＰＣに直接的な配線によって接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はＰＣが、ワイヤ、ケーブル、又はＷｉ−Ｆｉを含む任意の形態のインターネット接続を行えないようにすることができる。第２のパーティション２００は、ネットワーク５００上で端末６００と通信する。図２Ａを参照して以下で詳細に説明されるように、第１のパーティション１００は、バスを使用して、第２のパーティション２００と直接的に通信することができるが、第１のパーティション１００は、ネットワーク５００と通信することを、ハードウェア的に制限される。好適な実施形態では、第１のパーティションのＣＰＵは、第２のパーティションのメモリ及び第２のパーティションのＣＰＵに直接的にアクセスすることができるが、第２のパーティションのＣＰＵは、第１のパーティションのメモリ及び第１のパーティションのＣＰＵにアクセスすることを、ハードウェア的に制限される。例えば、第２のパーティションのＣＰＵは、バスのインターフェースに結合される。インターフェースは、第１のパーティションのＣＰＵを第２のパーティションのＣＰＵ及びメモリに相互接続するための物理的ワイヤを備える、物理的ポートである。しかしながら、いくつかの実施形態では、インターフェースは、第２のパーティションのＣＰＵが、第１のパーティションのメモリ又は第１のパーティションのＣＰＵにアクセスするための、物理的ワイヤを含まない
。
【００１２】
ネットワーク５００は、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、セルラ・ネットワーク、衛星ネットワーク、それらの組み合わせ、又はコンピューティング・デバイス３００へのデータの転送、及び／もしくはコンピューティング・デバイス３００からのデータの受信を可能にする他の任意のネットワークとすることができる。ネットワーク５００を通してコンピューティング・デバイス３００に送信されたデータ、又はコンピューティング・デバイス３００又は端末６００に送信されたデータは、標準的な電気通信プロトコル又は標準的なネットワーキング・プロトコルを利用して、送信及び／又は受信され得る。好適な実施形態では、システムは、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）を利用し、ネットワーク５００は、インターネット及び／又はイントラネットである。データを送信及び／又は受信するためのプロトコルの他の例は、限定することなく、ボイス・オーバ・インターネット（ＶＯＩＰ）プロトコル、ショート・メッセージ・サービス（ＳＭＳ）、Ｂｌｕｅｔｏｏｔｈ無線送信、及び移動体通信用グローバルシステム（ＧＳＭ）を含む。ネットワーク５００は、コンピューティング・デバイス３００及び端末６００の１つ又は複数のプロトコルを利用することが可能である。さらに、ネットワーク５００は、他のプロトコルに変換すること、又は他のプロトコルから端末６００の１つもしくは複数のプロトコルに変換することができる。いくつかの状況では、第２のパーティション２００は、コンピューティング・デバイス３００上に記憶された重要なデータ・ファイルにアクセスしようと、又は悪影響を及ぼそうと試みる、悪意あるコンピュータ実行可能コードにさらされる。図２Ａ及び図３Ａを参照して以下で説明されるように、好適な実施形態は、そのようなマルウェアが、第１のパーティション１００の重要なデータ・ファイル及びメモリにアクセスすること、又は悪影響を及ぼすことを防止する。
【００１３】
ここで図２Ａを参照すると、インターネットからの、及びネットワーク５００を通して通信することができる他の任意のソースからの悪意あるコンピュータ実行可能コードの感染からハードウェア的に保護された、コンピューティング・デバイス３００を実施するための、コンピュータ・システム・アーキテクチャを示すブロック図が、示されている。コンピューティング・デバイス３００は、第１のパーティション１００を備える。第１のパーティション１００は、第１のパーティションのバス１０２に相互接続されたコンピュータ処理ユニット（ＣＰＵ）１０４を備える。第１のパーティションのメモリ１０６が、第１のパーティションのバス１０２を通して、ＣＰＵ１０４に相互接続される。図１を参照して上で説明されたように、第１のパーティション１００は、入力／出力モジュール１１０を通して、１つ又は複数の入力／出力デバイスに相互接続される。好適な実施形態では、パーティション１００は、データ・ストア１０７、１０８をさらに備える。重要なデータ・ファイルは、メモリ１０６及び／又はデータ・ストア１０７上に記憶される。データ・ストア１０８は、第１のパーティションが処理した第２のパーティション２００からのデータを含む、他のデータを記憶するために、第１のパーティションによって使用される。第１のパーティション１００は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図３Ａを参照して以下で詳細に説明されるように、ＣＰＵ１０４は、メモリ１０６のプログラム・コード用アドレス範囲上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、（この実施形態によって、それ自体がマルウェアから保護された）ＣＰＵ１０４のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。現在のコンピュータ・システム・アーキテクチャの根本的な弱さは、インターネットを通してコンピュータに達した悪意あるコンピュータ実行可能コードに、しばしば実行制御が引き渡されることである。本実施形態は、インターネットから第２のパーティションにダウンロードされた悪意あるコンピュータ実行可能コードのいかなる実行も制限する。
【００１４】
コンピューティング・デバイス３００は、第２のパーティション２００をさらに備える。第２のパーティション２００は、第２のパーティションのバス２０２に相互接続されたＣＰＵ２０４を備える。少なくとも１つのメモリ２０６が、第２のパーティションのバス２０２を通して、ＣＰＵ２０４に相互接続される。通信モジュール２１０は、第２のパーティション２００が、ネットワークを通して端末と通信することを可能にする。コンピュータ・システム・アーキテクチャは、少なくとも１つのデータ・ストア２０８をさらに含む。データ・ストア２０８は、重要であると見なされないデータ・ファイルの記憶用である。第２のパーティション２００は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。図３Ａを参照して以下で詳細に説明されるように、ＣＰＵ２０４は、メモリ２０６のアドレス範囲全体及びデータ・ストア２０８からのコンピュータ実行可能コードを実行することができる。
【００１５】
図２Ａに示されるように、第１のパーティション１００は、バス３０２を通して、第２のパーティション２００に直接的に相互接続される。バス３０２は、制御線３０４、アドレス線３０６、及びデータ線３０８を含む、複数の物理的ワイヤを備える。データ線３０８は、バス３０２を通して、パーティション間で送信される情報を運ぶ。アドレス線３０６は、データのアドレス、及びデータを送るアドレスを含む。最後に、制御線３０４は、限定することなく、転送の方向を含む、アドレス及びデータの転送を管理する。例示的な制御線は、限定することなく、読み取り、書き込み、クロック、肯定応答、及びリセットを含む。そのような実施形態では、ＣＰＵ１０４からバス３０２への制御線は、単方向である。さらに、ＣＰＵ２０４からバス３０２への制御線は、もっぱらデータを受け取るように構成され、それによって、ＣＰＵ１０４がＣＰＵ２０４を制御することを可能にするが、ＣＰＵ２０４は、ＣＰＵ１０４を制御することはできない。図２Ａに示されるように、メモリ１０６及びデータ・ストア１０７、１０８は、バス３０２に直接的に接続されない。したがって、ＣＰＵ２０４は、第１のパーティション１００のメモリを制御することはできない。対照的に、第２のパーティションのメモリ２０６及びデータ・ストア２０８は、バス３０２に接続される。好適な実施形態では、ＣＰＵ１０４は、制御線３０４、アドレス線３０６、及びデータ線３０８を利用して、第２のパーティション２００のメモリ２０６及びデータ・ストア２０８のアドレス範囲全体に書き込むことができる。この設計の１つの利点は、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第２のパーティション２００のオペレーティング・システム及びデータ・ファイルを、第１のパーティション１００が回復できることである。加えて、ＣＰＵ１０４は、メモリ２０６のアドレス範囲全体及びデータ・ストア２０８からデータを読み取ることができるが、ＣＰＵ１０４による「読み取り」コマンド（プル）だけによって、それを行うことができる。ＣＰＵ１０４からバス３０２への制御線は、単方向であるので、ＣＰＵ１０４は、ハードウェア制限によって、第２のパーティション２００によってそれにプッシュされたいかなるデータ又は他のファイルも受け入れることはできない。加えて、ＣＰＵ２０４は、ＣＰＵ１０４の制御線に接続されないので、第２のパーティション２００は、いかなるデータも第１のパーティション１００からプルすることはできない。さらに、第１のパーティション１００のオペレーティング・システム及びサポーティング・プログラムは、ＣＰＵ１０４が第２のパーティション２００から受け入れるデータのフォーマット及び他のファイル特性を定義する。適切な予想された形式を取らないファイルを第１のパーティション１００に提供しようとする、第２のパーティション２００によるいずれの試みも、ＣＰＵ１０４によって拒否される。図３Ａを参照して以下で詳細に説明されるように、ＣＰＵ１０４によって第２のパーティション２００から読み取られるすべてのデータ・ファイルは、メモリ１０６の第２のパーティション用アドレス範囲及び／又はデータ・ストア１０８に書き込まれる。ＣＰＵ１０４は、メモリ１０６のプログラム・コード用アドレス範囲上に記憶されたコンピュータ実行可能コードだけしか実行できないので、第１のパーティション１００は、第２のパーティション２００上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。
【００１６】
図２Ｂは、メモリ・コントローラ４１０を利用して、第２のパーティションの第１のパーティションのメモリ及びデータ・ストアへのアクセスを制限する、ハードウェアの例示的なブロック図を示している。示されるように、第１のパーティション４００のＣＰＵ４０４は、バス４１６を通して、第２のパーティション４１８のＣＰＵ４２２、メモリ４２４、及びデータ・ストア４２６を直接的に制御することができる。第１のパーティション４００は、メモリ・コントローラ４１０を備える。メモリ・コントローラ４１０は、第１のパーティション４００のメモリ４０６及びデータ・ストア４０７、４０８へのデータの流れ、ならびにそれらからのデータの流れを管理する。この実施形態では、メモリ・コントローラ４１０は、フロントエンド４１２と、バックエンド４１４とを備える。フロントエンド４１２は、第１のパーティションのバス４０２と、バス４１６とに結合される。フロントエンド４１２は、第２のパーティション４１８から発生したアドレスを有する、読み取り及び書き込み制御線を無視するように構成されたハードウェアである。フロントエンド４１２は、発生アドレスを、リード・オンリ・メモリ（ＲＯＭ）又は消去可能プログラム可能リード・オンリ・メモリ（ＥＥＰＲＯＭ）内に記憶されたアドレスと比較する、比較器を備える。ＲＯＭ又はＥＥＰＲＯＭは、第１のパーティション４００のメモリ４０６及びデータ・ストア４０７、４０８にアクセスすることを制限された、デバイスのアドレスを含む。フロントエンド４１２は、制限されていない要求を、バックエンド４１４に渡す。この実施形態では、バックエンド４１４は、要求を、メモリ４０６及びデータ・ストア４０７、４０８に送信する。メモリ・コントローラ４１０は、別個のコンポーネントとして示されているが、それは、ＣＰＵ４０４を有するメモリ・コントローラと統合されてもよい。
【００１７】
また別の実施形態では、第１のパーティションは、比較器を利用して、第２のパーティションによって伝達されたメッセージをハードウェア的に制限する。第１のパーティションは、第２のパーティションのＣＰＵのアドレスを含む、リード・オンリ・メモリ（ＲＯＭ）を含む。好適には、ＲＯＭは、再プログラム可能ではない。この実施形態では、第２のパーティションのＣＰＵは、送信先アドレス、ＣＰＵのアドレス、及びメッセージとして送られるデータのバイトを含むメッセージ・フレームを有するメッセージを、バスを通して送る。例示的なメッセージは、情報に対するプッシュ又はプル要求である。第１のパーティションのＣＰＵ及び第１のパーティションのメモリは、比較器を含む。比較器は、バスを通して送られるメッセージの送信元のアドレスとＲＯＭとを比較する。比較器は、送信元のアドレスがＲＯＭ内のアドレスと一致した場合、制御信号を送って、第１のパーティションのＣＰＵ及びメモリが、メッセージ・フレームの実行を行えないようにする。したがって、第１のパーティションのＣＰＵは、第２のパーティションのＣＰＵからのプッシュ又はプル・コマンドを受け入れることを、ハードウェア的に制限される。
【００１８】
図２Ｃは、バス・コントローラを利用して、第２のパーティションが第１のパーティションにアクセスすることを制限する、ハードウェアの例示的なブロック図を示している。第１のパーティションと第２のパーティションとを相互接続するために汎用バスを利用する、図２Ａ及び図２Ｂに示された実施形態とは異なり、バス・コントローラ５１２が、バス５１０に結合された第１のパーティションのコンポーネントと、バス５１０に結合された第２のパーティションのコンポーネントとの間の、要求及びデータの流れを管理する。示されるように、第１のパーティション５０２のＣＰＵ５０４が、バス５１０に結合され、一方、第２のパーティションのＣＰＵ５１８、メモリ５２０、及びデータ・ストア５２２が、バス５１０に結合される。バス・コントローラ５１２は、少なくとも１つのメッセージ待ち行列５１４を備える。メッセージ待ち行列５１４は、第２のパーティション５１６に送る、第１のパーティション５０２からの複数のメッセージを含む。この実施形態では、バス・コントローラ５１２は、第１のパーティション５０２上に存在するコンポーネントの識別アドレスを有する、リード・オンリ・メモリ内に記憶されたルックアップ・テ
ーブルを含む。したがって、バス・コントローラ５１２は、比較器を利用して、バス５１０を通してメッセージを送るコンポーネントのアドレスを比較して、メッセージの発生元を決定することができる。第１のパーティション５０２から発生したことが認証されたメッセージだけが、メッセージ待ち行列５１４内に記憶される。バス・コントローラ５１２は、メッセージ待ち行列５１４内に待ち行列化されたメッセージを送信するように構成される。結果として、バス・コントローラ５１２は、第２のパーティション５１６のコンポーネントが、メッセージ待ち行列５１４にメッセージを追加することを防止するので、バス・コントローラ５１２のハードウェア回路は、第２のパーティション５１６のコンポーネントが、第１のパーティション５０２のコンポーネント（例えば、ＣＰＵ５０４及びメモリ５０６）と通信すること、又はそれらにアクセスすることを制限する。
【００１９】
図２Ａで説明されたコンピュータ・システム・アーキテクチャは、限定することなく、大型メインフレーム・コンピュータ、パーソナル・コンピュータ、パッド、タブレット、及びスマートフォンを含む、様々なコンピューティング・デバイスに適用され得る。さらに、コンピュータ・システム・アーキテクチャは、新しい製品に適用され得、又は既存のコンピュータ設計に適合させ得る。図２Ａで説明されたコンピュータ・アーキテクチャは、１組のチップとして開示されるが、その技法は、コンピュータ・システムが、本明細書で開示される原理に従って設計されるならば、２つの別個のコンピュータ・システムを有するシステムに適用されてよい。２つの別個のコンピュータ・システムを有する実施形態では、（第１のパーティションのそれと同様の役割を有する）第１のコンピュータ・システムは、悪意あるコードから保護される重要なデータ・ファイルを記憶し、一方、（第２のパーティションのそれと同様の役割を有する）第２のコンピュータ・システムは、リモート端末と通信する。さらに、第１のコンピュータ・システムは、第２のコンピュータ・システムに直接的に接続される。
【００２０】
次に図３Ａを参照すると、第１のパーティション及び第２のパーティションのメモリ・アドレッシングが、示されている。（図２Ａに示されるメモリ１０６における）第１のパーティションのメモリ・アドレッシング７００は、少なくとも１つのプログラム・コード用アドレス・ブロック７０２と、少なくとも１つの第１のパーティション・データ用アドレス・ブロック７０４と、少なくとも１つの第２のパーティション・データ用アドレス・ブロック７０６とを含む。好適な実施形態では、第１のパーティションのメモリ・アドレッシング７００の各アドレス・ブロックに対するデータの書き込み及び読み取りは、使用可能なメモリ・アドレッシング空間を物理的に限定するように、第１のパーティションのＣＰＵを設計することによって制限される。例えば、３２ビット又は６４ビット・アドレッシングをサポートするＣＰＵは、コンピュータ実行可能コードを実行するためのオペレーティング・システムのアクセスを、プログラム・コード用アドレスにマッピングされたビットに限定することができる。結果として、第１のパーティション・データ用アドレス・ブロック７０４及び第２のパーティション・データ用アドレス・ブロック７０６上に配置された悪意あるコンピュータ実行可能コードは、そのようなデータ・ファイルのいくつかに、有効なコンピュータ実行可能コードであることを示すフラグが立てられていることがあっても、オペレーティング・システムによって実行されない。さらに、第１のパーティションのＣＰＵは、第２のパーティションから読み取られたいかなるデータも、第２のパーティション・データ用アドレス・ブロック７０６にだけ書き込み、それは、実行のために使用され得ない。この設計は、第２のパーティション内の悪意あるコンピュータ実行可能コードが、第１のパーティションのメモリ・アドレッシング７００のプログラム・コード用アドレス・ブロック７０２に書き込まれることを防止する。ハードウェア設計のさらなる利点は、書き込みコマンド及び読み取りコマンドのアドレス範囲が、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされ得ないことであるが、その理由は、メモリ・アドレス範囲に悪影響を及ぼすためには、第１のパーティションのＣＰＵが、物理的に変更される必要があるからである。第１のパーティションのアドレッシングを分離す
るために、３つの別個のメモリを利用することも可能であることは、当業者に明らかである。
【００２１】
また別の程度のハードウェア保護が、プログラム・コード用アドレス・ブロック７０２内のプログラムに対して実施され得る。これは、頻繁には更新されず、プログラム・コード用アドレス・ブロック７０２内のプログラムと関連付けられた、非常に重要なデータ・ファイルを含むことができる。プログラム・コード用アドレス・ブロック７０２の内容を更新するためのアクセスは、第１のパーティション１００に直接的に接続されたデバイスに限定される。ＣＰＵ１０４、バス１０２、及びＩ／Ｏモジュール１１０の組み合わせは、オプションのハードウェア・スイッチを用いて、プログラム・コード用アドレス・ブロック７０２の内容を変更できるようになるには、権限を与えられた人員によってスイッチをオンにする必要があるように、制御され得る。結果として、プログラム・コード用アドレス・ブロック７０２に対するいかなる更新も、更新を提供する直接的に接続されたデバイスにおける権限を与えられた人員によるアクセスと、スイッチをオンにする権限を与えられた人員による独立したアクションとの両方を必要とする。非常に安全なシステムのために、この設計は、権限を与えられた直接的に接続されたユーザであっても、プログラム・コード用アドレス・ブロック７０２内に記憶されたプログラム又は非常に重要なデータを変更しようと不適切に（不注意から、又は意図的に）試みる場合には、それを防止する、より高い程度の保護を提供する。
【００２２】
対照的に、第２のパーティションのＣＰＵは、第２のパーティションのメモリ・アドレス８００を対象にした読み取り及び書き込みに限定される。例示的なハードウェア制限は、第２のパーティションのＣＰＵの物理的制御ワイヤを、第２のパーティションのメモリ・アドレス８００を備える物理的メモリ・コンポーネントに制限することを含む。図３Ａに示されるように、データ又はプログラム・コードは、当技術分野において知られた技法を利用して、第２のパーティションのメモリ・アドレス８００のアドレス範囲全体を対象にして読み取られ得、又は書き込まれ得る。しかしながら、第２のパーティションのＣＰＵは、第１のパーティションのメモリ・アドレスにアクセスすること、又はそれを変更することを、ハードウェア的に制限される。上で説明されたように、第２のパーティションのＣＰＵは、メモリ・コントローラを利用して、ハードウェア的に制限され得る。メモリ・コントローラは、メモリ内に記憶された第１のパーティションのメモリにアクセスすること、又はそれを変更することを制限された、デバイスのアドレスを含む。例えば、第２のパーティションのＣＰＵのデバイス・アドレスが、記憶され得る。結果として、メモリ・コントローラは、比較器又は当技術分野において知れた他の技法を使用して、第１のパーティションのメモリが、制限されたデバイス・アドレスからの要求に応答できないようにすることができる。この設計は、第２のパーティションのＣＰＵが、インターネットを通してリモート端末から来た第２のパーティションに悪影響を及ぼした悪意あるコンピュータ実行可能コードを、第１のパーティションに書き込むことを防止する。さらに、第１のパーティションのＣＰＵは、第２のパーティションのメモリ・アドレス８００に直接的にアクセスすることができ、それは、第１のパーティションと第２のパーティションとを相互接続するバス上でのアクティビティによって引き起こされる遅延を回避することによって、第１のパーティションのＣＰＵの読み取り及び書き込み性能を向上させる。第１のパーティションのＣＰＵは、メモリ・アドレス８００から読み取って、第２のパーティションから読み取られたデータに専用される第２のパーティション・データ用アドレス・ブロック７０６にだけ入れることができる。
【００２３】
図３Ａに関して、アドレス範囲は、１つ又は複数のメモリ・ユニットの一部に割り当てられ得、又はメモリ・ユニットの全体を含むことができる。プログラム・コード７０２は、コンピュータ実行可能コードと、関連する非常に重要なデータとを含む。プログラム・コード７０２へのアクセスは、メモリ・コントローラを利用して、制限され得る。メモリ
・コントローラは、制限された動作の送信先メモリ・アドレスへのマッピングを用いて、送信元アドレスと要求された動作（読み取り、書き込み、読み取り、リセット）とを比較することができる。結果として、メモリ・コントローラは、制限された動作が要求された場合、プログラム・コード・アドレスにマッピングするメモリ・ユニット又はメモリ・ユニットの一部を無効化することができる。プログラム・コード・アドレスが、単一のメモリ・ユニットにマッピングされる、実施形態では、メモリ・ユニットの書き込み制御線は、その線をグランド又はスイッチに接続することによって、無効化され得る。
【００２４】
図３Ａは、３つのアドレス範囲を含む、第１のパーティションのメモリ・アドレスを示しているが、２つ以上のアドレス範囲が、使用されてよい。図３Ｂは、第１のパーティションのメモリ・アドレッシング７０８が、プログラム・コード用アドレス範囲７１０と、第１のパーティション・データ用アドレス・ブロック７１２との、２つのアドレス・ブロックを含む、構成を示している。この構成では、プログラム・コード用アドレス・ブロック７１０は、第１のパーティションのＣＰＵによって実行されてよいコードを記憶するために使用される。第１のパーティション・データ用アドレス・ブロック７１２は、第１のパーティションのＣＰＵによる実行用ではない他のデータを記憶するために使用される。第１のパーティション・データ用アドレス・ブロック７１２は、第２のパーティションから第１のパーティション上に読み取られるデータを記憶するためにも使用される。
【００２５】
図４は、第１のパーティション上に配置されたデータ・ファイルを獲得する、第２のパーティションの方法を表す、フローチャートを示している。最初に、工程９０２において、第１のパーティションのＣＰＵは、第２のパーティションのＣＰＵを用いて、現在のデータ要求を定期的にチェックする。データ要求は、データのアイテムを獲得するための要求、データのアイテムを更新するための要求、又は第１のパーティションによるアクション、例えば、１つの口座から別の口座への資金の送金、もしくは建物内における温度設定の変更を要求するための要求とすることができる。次に、工程９０４において、第１のパーティション上に存在するプログラムが、データ要求の正当性を検証する。上で説明されたように、第１のパーティション上に存在するプログラムは、インターネット及び他の任意のネットワークからの悪意あるコンピュータ実行可能コードによる感染から、ハードウェア的に保護される。第１のパーティション上に存在するプログラムによって検証されたデータ要求の場合、方法は、工程９１０に進む。そうではなく、検証が失敗した場合、方法は、工程９０６に進む。工程９０６において、第１のパーティションのＣＰＵは、工程９０４において検出されたいずれかの疑わしいアクティビティに起因して、第１のパーティションに直接的に接続された権限を与えられた個人による確認を要求することができる。第１のパーティションに直接的に接続された権限を与えられた個人が、データ要求を確認した場合、方法は、工程９１０に進む。そうではない場合、方法は、工程９０８に進む。工程９０８において、第１のパーティションのＣＰＵは、データ要求が拒否されたことを、権限を与えられた個人に警告し、別のデータ要求に着手する。検証及び／又は確認に続いて、工程９１０において、第１のパーティションのＣＰＵは、データ・ファイルにアクセスし、データの適用可能な要素を第２のパーティションに提供する。この設計下では、第２のパーティションは、第１のパーティション上のいかなる重要なデータ・ファイルに対する直接アクセスも獲得することはできない。上で説明されたように、好適な実施形態において開示されるコンピュータ・システム・アーキテクチャのハードウェアは、データ・ファイルを第１のパーティションから送るためのコマンドが、第２のパーティションによって制御され得ないように構築される。結果として、第２のパーティション上に配置されたいかなる悪意あるコードも、悪意あるコードを第１のパーティションの実行可能コード内に入れることはできず、したがって、いかなる重要なデータ・ファイルにもアクセスすることができず、又はそれらに悪影響を及ぼすことができない。
【００２６】
第１のパーティションを保護するのに加えて、好適な本実施形態は、第１のパーティシ
ョンが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた第２のパーティションのデータ・ファイルを回復することを可能にすることができる。悪意あるコンピュータ実行可能コードは、第２のパーティション、ならびにスクリーン及びキーボードに対するそれの制御を混乱させることができ、それによって、ユーザが、第２のパーティションを通してリモート端末にアクセスすることを妨げる。１実施形態では、第１のパーティションは、キーストローク・シーケンスを利用して、第１のパーティションに直接的に接続されたユーザが、悪意あるコンピュータ実行可能コードによって悪影響を及ぼされたセカンダリ・パーティションのスクリーン及びキーボードの制御ならびにプログラム制御を行うように、第１のパーティションのＣＰＵに命令することを可能にする、ハードウェア機能を含む。第１のパーティションに直接的に接続された権限を与えられたユーザは、第１のパーティションを通して、第２のパーティション上の保護ソフトウェアを開始することができる。ユーザは、第２のパーティションのメモリ及び／もしくはデータ・ファイルを完全に消去して、悪意あるコンピュータ実行可能コードを削除するように、又は第２のパーティションを、そのような悪意あるコードのない以前にセーブされた状態に回復するように、第１のパーティションに命令することもできる。この実施形態では、第２のパーティションのオペレーティング・システム及びアプリケーションは、第１のパーティションによって記録される。結果として、第１のパーティションは、悪意あるコンピュータ実行可能コードを削除した後、第２のパーティションのオペレーティング・システム及びアプリケーションを回復することができる。第２のパーティションは、悪意あるコードの削除後、動作可能になり、それによって、コンピューティング・デバイスのための、リモート端末へのアクセスを可能にする。
【００２７】
加えて、好適な実施形態は、様々なタイプの保護ソフトウェアを導入することを現実的にする。上で説明されたように、好適な実施形態は、悪意あるコンピュータ実行可能コードが、第１のパーティションのプログラム・コード又はデータ・ファイルにアクセスし、悪影響を及ぼすことを防止するために、様々なハードウェア方法を利用する。そのような方法は、限定することなく、第１のパーティションのインターネットを通したリモート端末への直接アクセスを防止すること、及び第１のパーティションのメモリ・アドレッシングを制限することを含む。この設計は、第２のパーティションからの第１のパーティションのデータ・ファイルを求める要求を制限するが、コンピューティング・デバイスの他の態様は、当技術分野において知られた通常のコンピュータ・システムのように動作する。例えば、第１のパーティションのＣＰＵが、第２のパーティションからデータを読み取ったとき、第１のパーティションのＣＰＵは、データの個々のアイテムが第２のパーティションに送り戻されることを求める要求をしばしば受け取る。この要求された情報は、その後、第２のパーティションによって、ネットワーク上でリモート端末に転送され得る。好適な実施形態は、そのようなデータ要求が、個別に、又はある期間にわたるまとまりとして、疑わしくないかどうかをチェックするために、保護プログラムが第１のパーティションのＣＰＵによって実行されることを可能にする。例示的な疑わしいデータ要求は、第１のパーティション上のソフトウェアによって財務情報にマッピングされた重要なデータ・ファイルを第２のパーティション上のプログラムが要求するものである。結果として、第１のパーティションのＣＰＵは、疑わしいアクティビティが検出された場合、第１のパーティションに直接的に接続された権限を与えられた個人の介入を求める要求を含む、適切な検証の手段を開始することができる。さらなる例では、第１のパーティションのハードウェア保護されたプログラム・コードは、ファイル全体又は重要なデータ・ファイルのフル・セットの代わりに、データの特定のアイテムだけを第２のパーティションに送るようにプログラムされる。例示的なプログラムは、パスワード及びクレジットカードのセキュリティ・コードなどの機密データを第２のパーティションに送ることを、拒否することもできる。知られたシステムでは、悪意あるコンピュータ実行可能コードは、重要なデータ・ファイルに直接的にアクセスすることができ、保護プログラムを改変することができるので、そのようなプログラムは、現実的ではない。
【００２８】
本明細書で開示される原理は、アプリケーションのためのハードウェア「サンドボックス」を生成することによって、モバイル・デバイスのアーキテクチャに組み込まれてもよい。現在、いくつかのセルフォン用オペレーティング・システム上で使用されている、ソフトウェア「サンドボックス」と同様に、これは、他の重要なメモリへのアクセスを制限しながら、いくつかの機能及びデータへのアクセスをアプリケーションに許可する。それら既存の方法とは異なり、この実施形態は、悪意あるコンピュータ実行可能コードのアクセスに対するハードウェア制限を提供する。すべての補助プログラムは、セカンダリ・パーティション内にロードされるので、重要なデータ及びオペレーティング・システム自体は、いかなるアプリケーションによる改変からも保護され得る。
【００２９】
加えて、本明細書で開示される原理は、それのプライマリ・インターフェースが、コンピューティング以外の機能用である、ネットワーク接続されたデバイスを保護するために使用され得る。冷蔵庫及びエアコンなどの家電は、インターネットに接続するように設計されることが増えている。そのようなデバイスも、インターネット上で、又はネットワークを通して受け取られた、悪意あるコンピュータ実行可能コードから、プライマリ・パーティションの機能を遮蔽するために、好適な実施形態のコンピュータ・システム・アーキテクチャを用いるように設計され得る。他の「スマート・ホーム」及び「スマート・ビルディング」デバイス、ならびに乗物内のコンピュータ対応のコンソールも、対応するコンピュータ・システム・アーキテクチャの使用を行ってよい。
【００３０】
好適な実施形態は、統合された新しいコンピュータ・システム・アーキテクチャに関連して説明されたが、本明細書で開示される原理は、好適な実施形態の主要な機能を利用するハードウェア及びソフトウェアの組み合わせと併せて、既存のアーキテクチャを利用する、コンピューティング・デバイスに適合され得る。そのような実施形態は、既存のコンピュータに大きな投資を行っており、それらを使用し続けたいが、ハッキングに対する改善された保護を望んでいるユーザに対して、有益なことがある。１実施形態では、統合されたシステムの第１のパーティションは、重要なファイル及びプログラムのほとんどを保有することができる、既存のコンピュータに接続され得る。結果として、そのコンピュータは、統合されたシステムの第１のパーティションについて上で説明されたように、インターネット及び他の外部ソースから隔離される。第１のパーティションは、バス又はＩ／Ｏモジュールを通して、コンピュータと通信し、それに対する読み取り及び書き込みを行うことができ、コンピュータは、ハードウェア及びオペレーティング・システムによって、マルウェアから保護される。
【００３１】
第１のコンピュータ１３００及び第２のコンピュータ１４００を備える、別の代替的実施形態が、図５に示されている。第１のコンピュータ１３００及び第２のコンピュータ１４００は、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、ｘ８６、ＡＲＭ、及びＰｏｗｅｒＰＣを利用する。そのため、第１のコンピュータ１３００及び第２のコンピュータ１４００は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。上で説明されたように、これらの知られたアーキテクチャの不都合は、第１のコンピュータ１３００及び第２のコンピュータ１４００のプロセッサが、重要なデータ・ファイルにアクセスし、悪影響を及ぼすことができる、インターネットから受け取った悪意あるコンピュータ実行可能コードの実行を許しやすいことである。さらに、そのような悪意あるコンピュータ実行可能コードは、知られたソフトウェア・ソリューションの裏をかくことができる。本実施形態では、第２のコンピュータ１４００は、インターネットに接続することができる。結果として、第２のコンピュータ１４００は、インターネットからの悪意あるコンピュータ実行可能コードの影響を受けやすい。しかしながら、第１のコンピュータ１３００は、インターネットに接続されず、コンピューティング・デバイス１０００を通して、第２のコンピュータ１４００に相互接続される。第１
のコンピュータ１３００は、図６Ａを参照して以下で詳細に説明されるように、オペレーティング・システム手法の使用を通して、ある程度の保護を達成することができる。しかしながら、そのような保護は、限定的であり、巧妙なハッカによるセキュリティ侵害を受けやすい。好適な本実施形態のハードウェア設計及び技法を使用して、第２のコンピュータ１４００に悪影響を及ぼすいかなる悪意あるコンピュータ実行可能コードからも第１のコンピュータ１３００を保護する、コンピューティング・デバイス１０００も利用したほうが、はるかに高度な保護が得られる。コンピューティング・デバイス１０００は、上で説明された完全に統合されたシステムのアーキテクチャの多くを具体化して、第１のコンピュータ１３００が、第２のコンピュータ１４００によってインターネットから受け取られたデータ及び要求を、第１のコンピュータ１３００上でのハッキングの試みに耐える方法で、取り扱うことを可能にする。
【００３２】
図５に示されるように、コンピューティング・デバイス１０００は、第１のパーティション１１００と、第２のパーティション１２００とを備える。第２のパーティション１２００は、ＣＰＵ１２０４と、メモリ１２０６と、データ・ストア１２０８と、Ｉ／Ｏモジュール１２１２とを備え、それらは、バス１２０２によって相互接続される。ＣＰＵ１２０４は、データ・ストア１２０８及び／又はメモリ１２０６上に配置されたオペレーティング・システムを実行して、Ｉ／Ｏモジュール１２１２を通して、第２のコンピュータ１４００と通信する。Ｉ／Ｏモジュール１２１２は、ＵＳＢポート、ｅＳＡＴＡ、ＷｉＦｉ、又はコンピューティング・デバイス１０００を第２のコンピュータ１４００に接続するための他の任意の知られた通信インターフェースとすることができる。この実施形態では、ソフトウェアは、第２のコンピュータ１４００上で動作しており、それは、ＣＰＵ１２０４が、第２のコンピュータ１４００からデータを受け取ることを可能にする。ＣＰＵ１２０４によって第２のコンピュータ１４００から読み取られたデータ・ファイルは、メモリ１２０６及び／又はデータ・ストア１２０８上に記憶される。ＣＰＵ１２０４は、第１のコンピュータ１３００と直接的に通信することを、ハードウェア的に制限される。１実施形態では、バス１００２は、図３Ｃを参照して上で説明されたバス・コントローラ技法を利用して、第２のコンピュータ１４００が、第１のコンピュータ１３００のＣＰＵ及びメモリにアクセスすることを制限することができる。第２のパーティション１２００は、通信モジュール１２１０をさらに備える。通信モジュール１２１０は、第２のパーティション１２００が、インターネットなどのネットワークを通して通信することを可能にする。結果として、通信モジュール１２１０は、インターネットからのデータにアクセスするために、第２のコンピュータ１４００を利用する代わりに、インターネットからのデータにアクセスするために、第１のコンピュータ１３００によって利用され得る。
【００３３】
コンピュータ１３００及びコンピューティング・デバイス１０００は、キーボード、データ記憶デバイス、及びプリンタなどの入力／出力デバイスに直接的に相互接続される。大規模使用のための実施形態では、コンピュータ１３００及びコンピューティング・デバイス１０００は、直接的な配線によって、コンピューティング・デバイスのユーザの制御下にある物理的ロケーションに存在する、より小型のコンピュータ又はＰＣに接続され得る。この実施形態では、ユーザは、より小型のコンピュータ又はＰＣが、ワイヤ、ケーブル、又はＷｉ−Ｆｉを含む任意の形態のインターネット接続を行えないようにすることができる。コンピューティング・デバイス１０００は、ネットワーク上でリモート端末と通信することを、ハードウェア的に制限される。コンピュータ１３００は、好適には、他の手段によって、例えば、コンピュータ１３００のオペレーティング・システムにおいてリモート接続を行えないようにすることによって、ネットワーク上でリモート端末と通信することを制限される。
【００３４】
第１のコンピュータ１３００は、第１のパーティション１１００のＩ／Ｏモジュール１１１０に直接的に接続される。Ｉ／Ｏモジュール１１１０は、ＵＳＢポート、ｅＳＡＴＡ
、又はコンピューティング・デバイス１０００を第１のコンピュータ１３００に接続するための任意の知られた通信インターフェースとすることができる。第１のパーティション１１００は、ＣＰＵ１１０４と、メモリ１１０６と、少なくとも１つのデータ・ストア１１０８とをさらに備え、それらは、バス１１０２によって相互接続される。図３Ａを参照して上で詳細に説明されたように、ＣＰＵ１１０４は、メモリ１１０６のプログラム・コード用アドレス範囲、及びデータ・ストア１１０８上に記憶されたコンピュータ実行可能コードだけを実行することができる。これは、（本実施形態によって、それ自体がマルウェアから保護された）ＣＰＵ１１０４のオペレーティング・システムによる、及びハードウェア回路による制御を通して達成される。
【００３５】
この実施形態では、ソフトウェアは、第１のコンピュータ１３００上で動作しており、それは、ＣＰＵ１１０４が、データを送り、第１のコンピュータ１３００からデータを受け取ることを可能にする。ソフトウェアは、第１のコンピュータ１３００のユーザが、第１のコンピュータ１３００のためのメモリのエリアを、重要なプログラムと、重要なデータ・ファイルと、コンピューティング・デバイス１０００から受け取ったデータ及び要求とに区分することを可能にする。加えて、ソフトウェアは、第１のコンピュータ１３００のＣＰＵが、コンピューティング・デバイス１０００から受け取ったファイルを有するメモリ・セグメントに対する実行制御を引き渡すことを防止する。実行制御からメモリ・セグメントを分離するためのコンピュータ・セキュリティの１例は、サンドボックス・セキュリティ・メカニズムの使用である。第１のパーティション１１００は、バス１００２を通して、第２のパーティション１２００に直接的に相互接続される。ＣＰＵ１１０４は、第２のパーティション１２００のメモリ１２０６のアドレス範囲全体及びデータ・ストア１２０８に書き込むことができる。加えて、ＣＰＵ１１０４は、メモリ１２０６のアドレス範囲全体及びデータ・ストア１２０８からデータを読み取ることができるが、ＣＰＵ１１０４による「読み取り」コマンド（プル）だけによって、それを行うことができる。ＣＰＵ１１０４は、ハードウェア制限によって、第２のパーティション１２００によってそれにプッシュされた、いかなるデータ又は他のファイルも受け入れることはできない。この実施形態では、第１のパーティション１１００に直接的に接続された第１のコンピュータ１３００上で動作するソフトウェアは、第２のパーティション１２００からいずれかのデータをプルするように、ＣＰＵ１１０４に要求することができる。ＣＰＵ１１０４は、メモリ１１０６のプログラム・コード用アドレス範囲及びデータ・ストア１１０８上に記憶されたコンピュータ実行可能コードだけしか実行できないので、コンピューティング・デバイス１０００の第１のパーティション１１００は、第２のコンピュータ１４００又はメモリ１２０６上に記憶されたいかなる悪意あるコンピュータ実行可能コードからも保護される。
【００３６】
この実施形態では、第１のパーティション１１００は、書き込みモジュール１１１２を利用して、コンピューティング・デバイス１０００から受け取ったデータ・ファイルのための、第１のコンピュータ１３００上で動作するソフトウェアによって選択されたメモリのセグメントに、データを書き込む。書き込みモジュール１１１２は、コンピューティング・デバイス１０００から受け取ったデータ・ファイルとして区分された、第１のコンピュータ１３００のメモリのセグメントをマッピングするための、ハードウェア回路を備える。例示的なハードウェア回路は、コンピューティング・デバイス１０００に直接的に接続された権限を与えられたスタッフの制御によってプログラムされ得る、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）を含む。この実施形態では、コンピューティング・デバイス１０００は、イネーブル更新スイッチ１００４を備える。イネーブル更新スイッチ１００４は、オン位置と、オフ位置とを含む。イネーブル更新スイッチ１００４のオン位置は、コンピューティング・デバイス１０００から受け取ったデータ・ファイルのためのメモリのセグメントについての、書き込みモジュール１１１２のハードウェア回路のプログラミングを可能にする。加えて、イネーブル更新スイッチ１００４のオン位置
は、コンピューティング・デバイス１０００が、データを第１のコンピュータ１３００に送ることを防止する。対照的に、イネーブル更新スイッチ１００４のオフ位置は、コンピューティング・デバイス１０００が、第１のコンピュータ１３００上で動作するソフトウェアにデータを送ることを許可する。イネーブル更新スイッチ１００４のオフ位置は、書き込みモジュール１１１２のハードウェア回路に対する権限なしの変更を防止する。コンピューティング・デバイス１０００及びコンピュータ１３００は、上で説明された追加の保護スイッチ及び保護ソフトウェアも利用することができる。
【００３７】
いくつかの実施形態では、図５を参照して上で説明された機能に加えて、更新中に第１のパーティションを第２のパーティションのデータから保護するためのさらなる安全機能を開始するために、スイッチが使用される。スイッチがアクティブ化されると、第１のパーティションが、更新工程中に、第２のパーティション上のデータへのアクセスを行わず、第１のパーティションが、第２のパーティションにデータを送ること、又は第２のパーティションからデータを読み取ることができないように、２つのパーティション間の接続が、やはり無効化され得る。通常の動作状態にある通常の動作中、第１のパーティションは、第１のパーティションから第２のパーティションへのフローに対するコマンドを許可するように設定された、論理ゲート又はトランジスタを利用するスイッチを使用し、ハードウェア回路を用いて実施される直接接続を通して、又はバスを通して、第２のパーティションにアクセスすることができる。しかし、更新モード中は、そのアクセスは、（トライステート・ゲート又は任意の種類の切り換え可能バスなどの）スイッチ又はバスを選択し、それを「オフ」位置に動かすことによって、行えないようにされ、したがって、更新工程中、第１のパーティションに追加の保護を提供する。「ＡＮＤ」ゲートは、それの論理条件が満たされた場合、通信を許可する（「ＴＲＵＥ」を読み取る）スイッチ位置によって、トリガされ得る。加えて、第１のパーティションのＣＰＵが、モニタ、キーボード、入力デバイス、プリンタ、及び他の周辺機器などの、任意の接続されたデバイスを制御することを可能にするために、第１のパーティションに直接的に接続された外部デバイスが、利用され得る。これは、「ＫＶＭ」スイッチの形態を通して実施され得、２つのパーティションが周辺デバイスの使用を共有している場合に、特に有益なことがあり、例えば、第２のパーティション内にマルウェア問題が存在する場合、アクションが第１のパーティション上で独立に行われ得るように、ユーザは、イネーブリング・デバイスをオンにして、第１のパーティションが、マルウェアを避けて、モニタ及びキーボードの制御を行うことを可能にする。
【００３８】
多くの使用について、図５を参照して上で説明されたスイッチは、更新システムにとって重要であり、スイッチがオンでない限り、プログラム・コード・メモリに書き込むことが可能でないように、プログラム・コード用メモリは、論理ゲートなどのデジタル回路を利用して、そのメモリを読み取り専用にする。しかしながら、更新が予想されない、いくつかの使用が存在することがあるが、プログラム・コード用メモリ・アドレス範囲は、改変からハードウェア的に保護されるべきである。代替的実施形態が、利用され得、その中では、スイッチは、省かれ得る。プログラム・コード用メモリ範囲は、製造の工程においてロードされ、その後、ハードウェア回路を用いて、改変から永遠に制限され得る。これは、ハードウェア回路内の論理ゲートなど、当技術分野において知られた様々な技法を通して達成され得る。したがって、基本的な実施形態は、スイッチを参照することなく、プログラム・コード用メモリ・アドレス範囲をハードウェア的に保護し、スイッチを追加する能力は、潜在的な追加機能とすることができる。
【００３９】
第１のパーティションのためのオペレーティング・システム及び／又は主要なアプリケーションを更新する際の便利さ及び安全を促進するために、別個のユニットが使用され得る。このユニットは、物理的に別個であることができ、又はそれは、異なる別個のハードウェア回路を有して、システムのための全体的な筐体内に組み込まれ、第１のパーティシ
ョンに接続され得る。ユニットは、新しい重要なアプリケーションのダウンロード、又は既存のアプリケーションの更新という特定の目的のために、イーサネット・ケーブル、Ｗｉ−Ｆｉ、又は類似の手段を通して、インターネットに接続されることが可能である。ユニットは、それが、この目的のために、１つ又は複数の事前に定められたサービスだけにインターネットを通して接続することを可能にする、固定されたハードウェア又はファームウェアを有することができる。そのような事前に設定されたアドレスは、例えば、コンピュータ及びソフトウェアの主要なサプライヤの公式な更新アドレスを含んでよい。インターネット・アドレスがタイプ入力されること、又はソフトウェアによって設定されることを許可する、通常のコンピュータと対照的に、このデバイスは、それのハードウェア又はファームウェアで事前に設定されたもの以外の、いかなるインターネット・アドレスに対しても、接続要求を送ることはできない。これは、デバイスによるアクセスを、事前に承認されたアドレスだけに制限する。
【００４０】
通常の動作では、第１のパーティションは、この方式では、いかなるデータを受け入れることも可能にされない。更新時に、ユーザは、図５を参照して上で説明されたスイッチをオンにして、ユニットをインターネットに接続し、ユニットは、この目的のために、事前に定められたインターネット・アドレスだけに直接的に接続して、適用可能な更新をダウンロードする。
【００４１】
ユニットが、スタンドアロンである場合、それは、更新データを、フラッシュ・ドライブなどの不揮発性メモリ上に書き込むことができる。図５を参照して説明されたスイッチは、第１のパーティションが、第１のパーティションに接続されたＵＳＢドライブ又は類似の設備を通して、そのような更新データを受け入れることを可能にする。その場合、フラッシュ・ドライブ又は類似のデバイスは、ＵＳＢドライブ内に挿入され得、更新が、完了され得、ユーザは、デバイスを取り外し、スイッチをオフにし、通常の動作に着手することができる。
【００４２】
ユニットが、全体的なシステム筐体内に組み込まれる場合、図５で説明されたスイッチは、スイッチがオンにされた場合に、それの使用を可能にする。更新が、完了され得、ユーザは、スイッチをオフにし、通常の動作に着手することができる。
【００４３】
本明細書で開示される原理は、いずれのコンピューティング・デバイスにも製造時に、又はそのようなデバイスがサプライヤによって出荷準備されるときにインストールされるものである、セキュリティ・キーを保護することによって、リモート・ロケーションからの安全な更新を可能にするために使用されてもよい。ほとんどの現代の暗号化システムは、実際的に安全であり続ける数学的アルゴリズムを使用するが（ＡＥＳ−２５６規格は、一般に、破るのに標準的な処理能力で数百万年を必要とすると見なされている）、理論的には依然として破られ得、暗号学会は、ある者達が２０４８ビット長までのキーを破ることができると主張している。ランダムな数字からなるセキュリティ・キーは、キーを所有する任意の２つの当事者間で完全に安全なメッセージについてのより高い標準を提供する。２回以上の通信を望んでいる当事者は、第２次世界大戦においてスパイがしたように、複数のバージョンの使い捨てキーを持っていることができ、コンピューティング・デバイスは、メモリ内に多くのバージョンを保持することができる。しかし、本明細書で開示されるハードウェア保護を用いなければ、そのようなキーのいかなるファイルも、それ自体が、改ざんに対して脆弱である。そのようなファイルを第１のパーティションの保護されたメモリ内に置くことによって、離れた当事者どうしが、安全に繰り返し通信することができる。
【００４４】
図６Ａは、ソフトウェア・ソリューションとともに既存のアーキテクチャを利用するコンピューティング・デバイスに適合された、実施形態を示している。ソフトウェア・ソリ
ューションは、悪意ある実行可能コンピュータ・コードの影響を受けやすいことがあるが、それは、重要なデータ・ファイルへのアクセスを制限すること、第１のコンピュータへのプログラム実行アクセスを制限すること、及び第２のコンピュータからのいかなる入力にもプログラム制御を与えないようにすることを含む、上で説明されたハードウェア・ソリューションの有益性のいくつかを提供することができる。この実施形態では、第１のコンピュータ１５００は、知られた通信インターフェース、例えば、ＵＳＢ、ｅＳＡＴＡ、ＷｉＦｉ、又はイーサネットを利用して、第２のコンピュータ１６００に接続される。第１のコンピュータ１５００及び第２のコンピュータ１６００は、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、ｘ８６、ＡＲＭ、及びＰｏｗｅｒＰＣを利用する。そのため、第１のコンピュータ１５００及び第２のコンピュータ１６００は、コンピュータ実行可能コードを実行するためのオペレーティング・システムを含む。重要なファイル及びシステムは、第１のコンピュータ１５００上に存在し、一方、第２のコンピュータ１６００は、インターネットに接続するために使用される。この設計は、第１のコンピュータ１５００のソフトウェアが、第１のコンピュータ１５００のハッキングのリスクを低減する方法で、第２のコンピュータ１６００と対話することを可能にする。第２のコンピュータ１６００によってインターネットから受け取られることがあるマルウェアは、第１のコンピュータ１５００上で動作するソフトウェアによって、第１のコンピュータ１５００上の実行可能コードのポイントに達することを阻止される。
【００４５】
第１のコンピュータ１５００は、第１のコンピュータ１５００上で動作する仮想パーティション１５１０を備える。仮想パーティション１５１０は、第１のコンピュータ１５００のコンピューティング・リソース（すなわち、ＣＰＵ及びストレージ）のいくつかを利用することができるが、仮想パーティション１５１０は、当技術分野において知られた技法、例えば、ソフトウェア「サンドボックス」を使用して、第１のコンピュータ１５００のオペレーティング・システムにアクセスすることから隔離される。結果として、仮想パーティション１５１０は、仮想パーティション１５１０が、第２のコンピュータ１６００の仮想パーティション１６０６から受け取った悪意あるコンピュータ実行可能コードによって悪影響を及ぼされた場合に、第１のコンピュータ１５００のオペレーティング・システムに悪影響を及ぼすことを制限される。さらに、仮想パーティション１５１０は、第１のコンピュータ１５００に直接的に接続された入力デバイス、及び第２のコンピュータ１６００の仮想パーティション１６０６からのデータだけにアクセスするように制限される。結果として、仮想パーティション１５１０は、ネットワーク上でリモート端末に接続することができる、第１のコンピュータ１５００のコンピューティング・リソースにアクセスすることを制限される。
【００４６】
この実施形態では、第１のコンピュータ１５００のオペレーティング・システムは、第１のコンピュータ１５００のメモリの一部を、仮想パーティション１５１０に割り当てる。仮想パーティション１５１０のオペレーティング・システム１５０２は、仮想パーティション１５１０のプログラム・コード用アドレス・ブロック１５０４に配置されたプログラム・コードだけを実行するようにプログラムされる。第２のコンピュータ１６００の仮想パーティション１６０６から受け取られたすべてのデータは、第２のパーティション・データ用アドレス・ブロック１５０８に記憶される。最後に、仮想パーティション１５１０の重要なデータ・ファイルは、第１のパーティション・データ用アドレス・ブロック１５０６内に記憶される。この設計では、第１のコンピュータ１５００の重要なデータ・ファイルは、第２のコンピュータ１６００内に配置されることがあるマルウェアによるアクセスから保護される。仮想パーティション１５１０は、図４を参照して上で詳細に説明された方法を使用して、第１のコンピュータ１５００上に記憶されたデータ・ファイルにアクセスするように、第１のコンピュータ１５００のオペレーティング・システムに要求することができる。第１のコンピュータ１５００のオペレーティング・システムは、仮想パーティション１５１０に割り当てられたメモリのアドレス範囲全体にアクセスすることが
できる。しかしながら、第２のコンピュータ１６００から読み取られたいかなるデータも、第１のコンピュータ１５００の第２のパーティション・データ用アドレス・ブロック１５０８内に記憶され、第１のコンピュータ１５００のオペレーティング・システムは、第２のパーティション・データ用アドレス・ブロック１５０８上に記憶されたデータ・ファイルを実行することを制限されるので、第１のコンピュータ１５００は、第２のコンピュータ１６００から転送されたいかなる悪意ある実行可能コードも実行しない。
【００４７】
第２のコンピュータ１６００は、第２のコンピュータ１６００上で動作する常駐ソフトウェアによって生成された、仮想パーティション１６０６を備える。この実施形態では、第２のコンピュータ１６００は、ネットワークを通して、リモート端末に接続される。仮想パーティション１６０６は、第２のコンピュータ１６００のコンピューティング・リソース（すなわち、ＣＰＵ及びストレージ）のいくつかを利用することができる。第２のコンピュータ１６００のオペレーティング・システムは、第２のコンピュータ１６００のメモリの一部を、仮想パーティション１６０６に割り当てる。さらに、第２のコンピュータ１６００のオペレーティング・システムは、仮想パーティション１６０６が、ネットワークを通してリモート端末と通信するためのリソースにアクセスすることを可能にする。仮想パーティション１６０６は、オペレーティング・システム１６０２を備え、それは、第２のコンピュータ１６００のオペレーティング・システムによって仮想パーティション１６０６に割り当てられた、プログラム・コード／データ用アドレス・ブロック１６０４のアドレス範囲全体にアクセスし、実行することができる。仮想パーティション１５１０のオペレーティング・システム１５０２は、プログラム・コード／データ用アドレス・ブロック１６０４のアドレス範囲全体から、プル・コマンドを使用して、データを読み取るようにプログラムされる。しかしながら、オペレーティング・システム１５０２は、ソフトウェア制限によって、第２のコンピュータ１６００の仮想パーティション１６０６によって、それにプッシュされたいかなるデータ又は他のファイルも受け入れることはできない。第２のコンピュータ１６００内のソフトウェアは、第１のコンピュータ１５００によって読み取られるデータを、オペレーティング・システム１５０２によって必要とされる形式でフォーマットする。第２のコンピュータ１６００は、インターネット・ハッカによって侵入され得る。マルウェアが、第１のコンピュータ１５００に提供されるデータのフォーマットを改変した場合、オペレーティング・システム１５０２は、不適切にフォーマットされたデータを受け入れない。加えて、ソフトウェアは、第１のコンピュータが第２のコンピュータからデータを獲得するための、図４を参照して上で詳細に説明された方法を利用することができる。
【００４８】
図６Ａは、３つのアドレス・ブロックを含む、第１のコンピュータを示しているが、２つ以上のアドレス・ブロックが、使用されてよい。図６Ｂは、第１のコンピュータ１５２０が、プログラム・コード用アドレス・ブロック１５２４と、第１のパーティション・データ用アドレス・ブロック１５２６との、２つのアドレス・ブロックを含む、構成を示している。この構成では、プログラム・コード用アドレス・ブロック１５２４は、オペレーティング・システム１５２２によって実行されてよいコードを記憶するために使用される。第１のパーティション・データ用アドレス・ブロック１５２６は、オペレーティング・システム１５２２による実行用ではない他のデータを記憶するために使用される。第１のパーティション・データ用アドレス・ブロック１５２６は、第２のコンピュータ１６２０から第１のコンピュータ１５２０上に読み取られるデータを記憶するためにも使用される。
【００４９】
図６Ａ及び図６Ｂで開示された実施形態は、第１のコンピュータのプログラム及びデータを、悪意あるコンピュータ実行可能コードから保護するために、仮想パーティションを利用するが、開示された技法（すなわち、重要なデータ・ファイルへのアクセスを制限し、第１のコンピュータへのプログラム実行アクセスを制限し、第２のコンピュータからの
いかなる入力にもプログラム制御を与えないようにするソフトウェア）は、仮想パーティションを使用せずに、第１及び第２のコンピュータのオペレーティング・システムに直接的に適用されてよい。いずれのケースでも、そのような実施形態は、ハッキングのリスクを低減することができるが、ソフトウェア保護ばかりでなくハードウェアも利用することができる、好適な実施形態における完全に統合されたシステムによって与えられる、より高度な保護を提供することはできない。
【００５０】
図２Ａを参照して上で説明されたコンピュータ・システム・アーキテクチャは、第１のパーティション及び第２のパーティションの各々の上で、仮想環境を利用することもできる。これらのパーティションは、様々なオペレーティング・システム及びプログラムのアクティビティを分割する目的で、使用され得る。図６Ａを参照して上で説明されたソフトウェア・ソリューションとは異なり、第１のパーティション上で実施される仮想環境は、図２Ａを参照して上で説明されたように、第２のパーティションからハードウェア的に保護される。
【００５１】
別の実施形態では、既存のアーキテクチャを利用するコンピューティング・デバイスは、広範な本発明の開示の趣旨から逸脱することなく、２つの物理的に別個のパーティションの代わりに、仮想パーティションを利用することができる。仮想パーティションを利用するそのような実施形態は、インターネット・ハッキングを妨げること、重要なデータ・ファイルへのアクセスを制限すること、プログラム実行アクセスを制限すること、及びプログラム制御を制限することを含む、上で説明されたハードウェア・ソリューションの有益性のいくつかを提供することができる。
【００５２】
そのような実施形態は、仮想マシン能力を有する、当技術分野において知られたコンピュータ・アーキテクチャ、例えば、ｘ８６、ＡＲＭ、及びＰｏｗｅｒＰＣを利用することができ、仮想パーティション・システム内で仮想パーティショニング及び処理の主要な態様を管理するための「ハイパーバイザ」（又は変更された「カーネル」もしくは「コンテナ」システム）を備える。第１の仮想パーティションと、第２の仮想パーティションとの、２つの主要な仮想パーティションが存在し、それらは、上で詳細に説明された、物理的に別個の第１のパーティションと、第２のパーティションとに対応する。仮想パーティションは、通常の動作の前に、ハイパーバイザ又は同等物を用いて作業する、仮想パーティショニング構成工程を使用して、管理者によって構成される。各仮想パーティションは、コンピュータの能力に応じて、メモリ、ネットワーク接続性、入力／出力接続性、ＣＰＵ、及び様々な他の特徴を含む、コンピュータのハードウェア・リソースに対するアクセス可能性を割り当てられる。さらに、ハイパーバイザは、仮想パーティションを再割り当てすること、又は動的に変更することができる。
【００５３】
第１の仮想パーティション（ＦＶＰ）は、コンピュータ実行可能コードを実行するための、ＣＰＵと、少なくとも１つのオペレーティング・システムとを備え、ＦＶＰに属する仮想パーティションのサブパーティションを有してよい。参照を容易にするため、ＦＶＰ及びそれのサブパーティションは、仮想パーティションのＦＶＰ「ファミリ」と呼ばれる。
【００５４】
少なくとも１つの第２の主要な仮想パーティション（ＳＶＰ）は、コンピュータ実行可能コードを実行するための、ＣＰＵと、少なくとも１つのオペレーティング・システムとを備え、少なくとも１つのサブパーティションを有してよい。参照を容易にするため、ＳＶＰ及びそれのサブパーティションは、仮想パーティションのＳＶＰ「ファミリ」と呼ばれる。
【００５５】
ＦＶＰファミリ及びＳＶＰファミリは、ともに、メモリ及びＩ／Ｏモジュールを含む、
コンピュータにとって一般的な追加の機能性を有してよい。重要なファイル及びシステムは、ＦＶＰファミリ内に存在し、一方、ＳＶＰファミリは、インターネットなどのネットワーク上で通信することができる。対照的に、ＦＶＰファミリは、ＳＶＰファミリ、又はＦＶＰファミリに直接的に接続されたＩ／Ｏデバイスとだけ、直接的に通信することができる。仮想パーティショニングは、ＦＶＰファミリが、インターネット、又はインターネットに接続されたサーバなどの他の任意のデバイスに接続されないように構成される。重要なデータ・ファイルを保護するために、ＳＶＰファミリ全体は、ＦＶＰファミリのいかなるメモリからの読み取りも、又はそれへの書き込みも禁止されるように構成される。
【００５６】
この設計は、ＦＶＰファミリが、ＦＶＰファミリのインターネット・ハッキングのリスクを低減する方法で、ＳＶＰファミリと対話することを可能にする。ＳＶＰファミリの任意の部分によってインターネットから受け取られることがあるマルウェアは、ＦＶＰファミリ上で実行されることを妨げられる。さらに、ＦＶＰファミリの重要なファイルは、ＳＶＰファミリ上に存在すること、又はＳＶＰファミリに書き込まれていることがあるマルウェアによって、改変されること、又は読み取られることを妨げられる。
【００５７】
ＦＶＰファミリは、それのメモリ・アドレスが、コンピュータ実行可能コード及び非常に重要なデータのための１つを含む、少なくとも２つのセクションに区分されるように構成される。他の構成は、少なくとも３つのメモリ範囲又はパーティション、すなわち、コンピュータ実行可能コード及び非常に重要なデータのための１つと、ＳＶＰファミリから読み取られたデータのための１つと、他のＦＶＰファミリ・データのための少なくとも１つとを含んでよい。
【００５８】
図７は、コンピューティング・デバイス上で仮想パーティションを実施する例示的な実施形態を示す、簡略ブロック図である。コンピューティング・デバイス１９００は、ＣＰＵ１９０２と、メモリ１９０４と、ネットワーク・アダプタ１９０６と、入力／出力１９０８とを備え、既存のコンピュータ・アーキテクチャを利用する。さらに、コンピューティング・デバイス１９００は、オペレーティング・システム・レベルの仮想化、又はＩｎｔｅｌ  ＶＴ−ｘもしくはＡＭＤ−Ｖを利用するハードウェア仮想化を用いて、仮想パーティションを生成する能力を有する。ハイパーバイザ１９１０は、複数の仮想パーティションを生成し、構成し、管理するために利用される。示されるように、ハイパーバイザ１９１０は、仮想パーティションのＣＰＵ１９０２、メモリ１９０４、ネットワーク・アダプタ１９０６、及び入力／出力１９０８との通信を管理する。ハイパーバイザ１９１０は、ホスト・オペレーティング・システム内で動作するアプリケーションとすることができる。この実施形態では、ハイパーバイザ１９１０は、コンピューティング・デバイス１９００上で直接的に動作する（「タイプ−１」ハイパーバイザ）。ハイパーバイザ１９１０は、商用に利用可能な仮想ソリューションの１つであり得る。オペレーティング・システム・レベルの仮想化は、本明細書で開示される原理から逸脱することなく、仮想パーティションを隔離し、コンピューティング・デバイスのリソースを管理するために使用され得る。
【００５９】
図７に示されるように、ハイパーバイザ１９１０は、サブパーティションのファミリを含む、ＦＶＰ１７００を生成及び構成してあり、ハイパーバイザ１９１０は、やはりサブパーティションのファミリを含む、ＳＶＰ１８００を構成してある。さらに、ハイパーバイザ１９１０は、ＦＶＰ１７００とＳＶＰ１８００との間の通信を管理する。この実施形態では、ハイパーバイザ１９１０は、ＳＶＰ１８００にネットワーク・アダプタ１９０６へのアクセスを割り当ててあり、ＦＶＰ１７００がネットワーク・アダプタ１９０６にアクセスすることを制限してある。結果として、ＦＶＰ１７００は、インターネット、及びネットワーク・アダプタ１９０６を通して通信することができる他の任意のソースからの、悪意あるコンピュータ実行可能コードの感染から保護される。ＦＶＰ１７００ファミリ
は、ＦＶＰ１７０１と、ＦＶＰ１７０２と、ＦＶＰ１７０３とを含む。ＦＶＰ１７０１は、実行可能コード及び非常に重要なデータを含み、ＦＶＰ１７０２は、ＳＶＰ１８００から読み取られたデータを含み、ＦＶＰ１７０３は、他のＦＶＰデータを含む。ＦＶＰ１７００のオペレーティング・システムは、ＦＶＰ１７０１内のプログラム・コード・アドレスに配置されたプログラム・コードだけを実行するように構成される。ＳＶＰ１８０１は、ＳＶＰ１８００によって利用されるデータを含む。ＳＶＰ１８０１からＦＶＰ１７００によって読み取られるすべてのデータは、サブパーティションＦＶＰ１７０２内に記憶される。この実施形態では、ハイパーバイザ１９１０は、ＳＶＰ１８０１のコンピューティング・デバイス１９００のＣＰＵ１９０２へのアクセスを制限してある。
【００６０】
ＦＶＰ１７００の主要なデータ・ファイルは、ＦＶＰ１７０１内に記憶され得る。ハイパーバイザ１９１０は、ＦＶＰ１７００及びＳＶＰ１８００に割り当てられたメモリ１９０４のアドレス範囲全体にアクセスするように、ＦＶＰ１７００を構成する。さらに、ハイパーバイザ１９１０は、ＳＶＰ１８００からＦＶＰ１７０２に割り当てられたメモリにデータを送るように求める、ＦＶＰ１７００による要求を送るように構成される。ＦＶＰ１７００のオペレーティング・システムは、ＦＶＰ１７０１内のプログラム・コード・アドレスに配置されたプログラム・コードを実行するように制限されるので、ＦＶＰ１７００は、ＳＶＰ１８００から転送されたいかなる悪意ある実行可能コードの実行からも保護される。
【００６１】
この実施形態では、ハイパーバイザ１９１０は、ＦＶＰ１７００に割り当てられたＣＰＵリソースが、ＦＶＰ１７００ファミリに割り当てられたいずれかのメモリ又はＣＰＵだけから読み取ること、又はそれらに書き込むことができるように、仮想パーティションを構成してある。ＳＶＰ１８００ファミリ内のソフトウェアは、ＦＶＰ１７００ファミリによって読み取られるデータを、データに応じた特定の形式及び長さにフォーマットする。上で説明されたように、ハイパーバイザ１９１０は、ネットワーク・アダプタ１９０６へのアクセスをＳＶＰ１８００に割り当ててある。したがって、ＳＶＰ１８００は、インターネット・ハッカによって侵入され得る。ハイパーバイザ１９１０は、ＦＶＰ１７００によって受け入れられるデータ・フォーマットのリストを含む。ＦＶＰ１７００によって要求されたデータをＳＶＰ１８００から転送する前に、ハイパーバイザ１９１０は、受け入れられるデータ・フォーマットのリストを用いて、データをチェックする。ＳＶＰ１８００に悪影響を及ぼすマルウェアが、ＦＶＰ１７００に提供されるデータのフォーマット又は長さを改変した場合、ハイパーバイザ１９１０は、不適切にフォーマットされたデータをＦＶＰ１７００に転送することを拒否することができる。別の実施形態では、ＦＶＰ１７００が、データのフォーマットをチェックし、不適切にフォーマットされたデータを受け入れることを拒否することができる。
【００６２】
セキュリティを向上させるため、ハイパーバイザは、ＦＶＰ及びそれのサブパーティションのファミリを、他の仮想パーティションから隔離するように、仮想パーティションを構成することができる。したがって、ＦＶＰファミリの外部の仮想パーティションは、ＦＶＰファミリに割り当てられたＣＰＵ、メモリ、及び任意のファイルにアクセスすることを制限される。さらに、ハイパーバイザは、ＦＶＰファミリを最初に生成及び構成するとき、又は仮想パーティションのリソース及びサイズを動的に割り当てる工程中を含む、任意の時間に、アクセスを制限することができる。多くのシステムは、仮想パーティションに対する動的調整を使用するので、またパーティショニング構成は、メモリの共用エリアを生成し得るので、ＦＶＰファミリとＦＶＰファミリの外部の他の任意のパーティションとの間の基本的な分離が、仮想パーティションに対する動的調整によって侵犯されないようにする配慮が、払われなければならない。
【００６３】
通常の動作中、ハイパーバイザは、ＦＶＰ１７０１上に実行可能コード用に割り当てら
れたメモリを、読み取り専用として構成する。ＦＶＰ１７０１上において重要なプログラムがインストール又は更新される、更新モードの場合、ハイパーバイザは、ＦＶＰファミリの動作を一時的に中断することができる。その後、ハイパーバイザは、ＦＶＰ１７０１上において重要なプログラムをインストール又は更新するために、書き込みを許可するように、ＦＶＰ１７０１を再構成する。重要なプログラムの更新が完了した後、ハイパーバイザは、ＦＶＰ１７０１を読み取り専用として再構成し、ＦＶＰ１７００が通常の動作を再開することを可能にする。代替として、更新モードを可能にするために、ＦＶＰ１７０１に書き込むことができるかどうかを制御するスイッチの形態を取るハードウェア変更が、システム内に導入され得る。このスイッチは、ＳＶＰファミリにアクセスするＦＶＰファミリの能力も、オン又はオフにすることができる。加えて、そのスイッチ又は別個のスイッチは、ＦＶＰファミリに関して改変される仮想構成の能力を制限することができる。そのようなスイッチは、図５を参照して上で説明されたスイッチと同様に、論理ゲート、ファームウェア、フィールド・プログラマブル・ゲート・アレイ、又は他の類似の既存の技術を利用することができる。
【００６４】
ＳＶＰパーティション内に構成されるいかなる仮想サーバも、本明細書で開示される原理によるハードウェア実施形態を、入力及び出力のためのゲートキーパとして用いて、さらに保護され得る。別個のユニットが、ルータとサーバ・バンクとの間の仮想サーバに接続する。１つのそのようなユニットが、著しい地理的距離によって隔てられていても、仮想パーティション内で使用される任意の１組のサーバの中に配置されてよい。
【００６５】
すべてのトラフィックは、他のコンピュータもしくはユニットへのすべての情報、又は他のコンピュータもしくはユニットからのすべての情報が、インターネット上などでは、ルータを通って流れなければならないのと全く同様に、ユニットを通って流れる。仮想パーティションの初期セットアップ中、ユニットは、トラフィックをＦＶＰ及びＳＶＰに向けるようにも構成される。例えば、ユニットが、それを許可しないので、情報は、リモート・コンピュータからＦＶＰに書き込まれ得ず、すべての到来したデータ及びコードは、ＳＶＰパーティションだけに行くことができる。
【００６６】
同様に、ＳＶＰが、ＦＶＰと情報を共有することを望む場合、それが、転送を開始することはできず、そのようないかなる要求も、ユニットよって許可されることはない。ＳＶＰからのデータは、ＳＶＰ１８０１だけに行くことができ、それは、ＦＶＰ１７００が開始することで、アクセスされ得る。ＦＶＰ１７０３内のデータは、ＳＶＰ１８００にプッシュされ得ない。
【００６７】
したがって、ユニットは、ハードウェア保護の実施形態及びそれの追加のセキュリティを適用して、それの監督機能がオペレーティング・システムのインストールに先立つ、タイプ−１・ハイパーバイザの機能を実行する。それのアーキテクチャは、いくつかのパス（ネットワークからＳＶＰ１８００）については、直接アクセスを許可し、他のパス（ＦＶＰ１７０２からＳＶＰ１８００）については、読み取り専用接続を許可し、その他（ＦＶＰ１７０３からＳＶＰ１８００）については、アクセスを全く許可しない。デバイスは、仮想パーティションのセットアップ時に、どのアドレス範囲がどのパーティションに対応するかを知るように構成される。ユニットは、図５を参照して上で説明されたスイッチと同様に、読み取り／書き込みスイッチの使用によって、権限のない再構成から保護され得る。そのようなスイッチは、手動とすること、又はトランジスタを用いるなど、電気的とすることができる。スイッチの使用を現地でのアクティブ化に限定することによって、ユニットの構成は、リモート・ロケーションから改変され得ない。
【００６８】
システムは、１つの第２のパーティションと組み合わされる２つ以上の第１のパーティション、又は１つの第１のパーティションと組み合わされる２つ以上の第２のパーティシ
ョン、又は２つ以上の第２のパーティションと組み合わされる２つ以上の第１のパーティションを用いても構成され得る。第１のパーティションの各々は、保護された実行可能コード及び非常に重要なデータを含む、メモリ構造を含む、単一の第１のパーティションの実施形態の基本的な特性を有し、各第１のパーティションは、論理ゲートなどのハードウェア回路を使用して、第２のパーティションのいずれによるアクセスからも、ハードウェア的に制限される。これは、例えば、単一のシステム上で複数のクライアントを動作させ、各クライアントの重要なファイルが、別個の保護された第１のパーティション上に保持されることを可能にする。それは、システムが、２つ以上の第２のパーティションを通して通信することも可能にし、それは、１つの第２のパーティションが、マルウェアによって悪影響を及ぼされた場合に、特に役立ち得る。
【００６９】
本明細書で開示された原理は、主に好適な実施形態を参照して説明され、その説明は、本発明の完全な開示を行うことを目的として、かなり詳細に行われたが、説明された実施形態は、例示的なものにすぎず、限定的であること、又は本明細書で開示された原理のすべての態様の網羅的な列挙を表すことは意図されていない。さらに、本明細書で開示された趣旨及び原理から逸脱することなく、数々の変更がそのような詳細に施されてよいことが、当業者には明らかであろう。これらの原理は、それらの必須の特性から逸脱することなく、他の形態でも具体化されることが可能であることを理解されたい。
【図１】
2020508499.tif 000003
【図２Ａ】
2020508499.tif 000004
【図２Ｂ】
2020508499.tif 000005
【図２Ｃ】
2020508499.tif 000006
【図３Ａ】
2020508499.tif 000007
【図３Ｂ】
2020508499.tif 000008
【図４】
2020508499.tif 000009
【図５】
2020508499.tif 000010
【図６Ａ】
2020508499.tif 000011
【図６Ｂ】
2020508499.tif 000012
【図７】
2020508499.tif 000013
【国際調査報告】
2020508499.tif 000014
2020508499.tif 000015
2020508499.tif 000016