(57)【要約】  機能を二層のオペレーティングシステムに分割してその二層から２つの別個の結果セットを生成するステップを含む、コンピューティング環境でのデータ転送を加速してデータストレージを改善する方法が提供される。二層からの結果セットは、より速いオペレーションを除き（ｓａｖｅ  ｆｏｒ）ユーザが感知できないように組み合わせられる。機能の分割は、マシン性能フィードバックに基づいて評価および最適化される。当該方法を行なう、ネットワークと通信するためのコンピューティングシステムが提供される。分岐したオペレーティングシステムは、機能分割の実施においてさらなる利点を与える。
2018513505.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境でのデータ転送を加速する方法であって、
機能を二層のオペレーティングシステムに分割して、前記の二層から２つの別個の結果セットを生成するステップ；
前記の二層からの前記の結果セットを組み合わせるステップ；および
マシン性能フィードバックに基づいて、前記の機能を分割するステップを評価および最適化するステップ、
を含む、
方法。
【請求項２】
請求項１の方法であって、
前記二層の一方は、カーネルである、
方法。
【請求項３】
請求項２の方法であって、
前記二層の他方は、ユーザスペースである、
方法。
【請求項４】
請求項１の方法であって、
前記機能は、暗号化プロトコルである、
方法。
【請求項５】
請求項１から４のいずれかの方法であって、
前記のデータの共有を行なうステップは、セキュア通信のためのプライベート鍵のセットを保持するステップに基づく、
方法。
【請求項６】
請求項１から４のいずれかの方法であって、
前記コンピューティング環境は、ホストＯＳおよび仮想ゲストＯＳを備える、分岐したオペレーティングシステム（ＯＳ）である、
方法。
【請求項７】
請求項１から４のいずれかの方法であって、
前記のデータの共有を行なうステップは、セキュア通信のためのプライベート鍵のセットを保持するステップに基づく、
方法。
【請求項８】
請求項７の方法であって、
共通の識別（ＩＤ）スキームおよび同一サイズのリアルパケットとハッシュパケットを用いるステップ、および、
前記二層の一方における前記リアルパケットを、前記二層の他方における前記リアルパケットに対する同時オペレーションとは別に、ハッシュするステップ、
をさらに含む、
方法。
【請求項９】
請求項１から４のいずれかの方法であって、
前記コンピューティング環境は、ネットワークである、
方法。
【請求項１０】
請求項１の方法であって、
前記の機能を分割するステップは、前記二層の両方にロードされた完全なアルゴリズムから、前記二層の間でアルゴリズムコードの無効化を相殺するステップによる、
方法。
【請求項１１】
請求項１から４のいずれかの方法であって、
前記コンピューティング環境は、データベースであり、
前記機能は、データのストレージおよび検索であり、
オブジェクトストレージ内に前記データを保存するステップをさらに含む、
方法。
【請求項１２】
請求項１の方法を行なうためのコンピューティングシステムであって、
分岐したホストオペレーティングシステムを備える、プリスチンマシン；
共用パーティションおよび隔離パーティションを有する、セキュリティ保護されたストレージ；
前記隔離パーティションにデータを保存する、多機能ゲストオペレーティングシステム；
前記隔離パーティションから前記データをダウンロードする、および、前記共用パーティションと読み書き通信している、セキュアゲストオペレーティングシステム；
前記多機能ゲストオペレーティングシステムと通信している、ネットワークコントローラー；および
データ上のコードオペレーションの際に、前記二層から２つの別個の結果セットを生成するために、二層の前記の分岐したホストオペレーティングシステム間で分割される、機能アルゴリズム、
を備える、
システム。
【請求項１３】
請求項１２のシステムであって、
前記の分岐したホストオペレーティングシステム上でハードウェア仮想化を行なう、ｓｌｉｒｐサブシステムをさらに備える、
システム。
【請求項１４】
請求項１２のシステムであって、
前記のセキュリティ保護されたストレージは、クラウドストレージである、
システム。
【請求項１５】
請求項１２のシステムであって、
前記のセキュリティ保護されたストレージは、前記ホストオペレーティングシステムに対してローカルである、
システム。
【請求項１６】
請求項１２のシステムであって、
前記ホストオペレーティングシステムは、ハイパーバイザーシステム上で作動する、
システム。
【請求項１７】
請求項１２から１６のいずれかのシステムであって、
前記多機能ゲストオペレーティングシステムと通信している、スナップショットシステムをさらに備える、
システム。
【請求項１８】
請求項１２から１６のいずれかのシステムであって、
前記多機能ゲストオペレーティングシステムと通信している真正性および周辺機器デバイスドライバーのためのパススルーをさらに備える、
システム。
【請求項１９】
請求項１２から１６のいずれかのシステムであって、
前記セキュアゲストオペレーションシステムまたは前記多機能ゲストオペレーティングシステムの少なくとも１つに対するアクセスを転送するための、サーバメッセージブロックサーバをさらに備える、
システム。
【請求項２０】
請求項１２のシステムであって、
前記共用パーティションおよび前記隔離パーティションをソースとして使用し、前記セキュアゲストオペレーションシステムに対するアクセスを制限する、前記の分岐したホストオペレーティングシステムのためのセキュアシェルサーバをさらに備える、
システム。
【請求項２１】
請求項２０のシステムであって、
前記セキュアシェルサーバは、前記多機能ゲストオペレーティングシステムに対するアクセスをさらに制限する、
システム。
【請求項２２】
請求項１２システムのシステムであって、
前記多機能ゲストオペレーションに対するセキュアなモードおよびセキュリティ保護されていないモードをさらに備え、
前記のセキュリティ保護されたモードは、前記ネットワークへの接続がセキュアである場合にのみ、前記ネットワークに対するアクセスを有する、
システム。
【請求項２３】
請求項２２のシステムであって、
前記のセキュアなモードは、セキュアシェルサーバを介したセキュアトンネルを介して、前記ネットワークに接続する、
システム。
【請求項２４】
請求項２３のシステムであって、
前記のセキュリティ保護されていないモードは、宛先に対するダイレクトポート転送トンネルを介して前記ネットワークに接続する、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１５年２月２０日に出願された米国仮出願番号６２／１１８，４７８の優先権の利益を主張するものであり；その内容は、参照によって本明細書中に援用される。
【０００２】
［本発明の分野］
本発明は、概してコンピューティングの分野に関し、より具体的には、安全および効率的なコンピューティングおよびデータ転送のための新規かつ有用な方法に関し、特に、組み合わされた結果が、スピードが減少せずに、従来のオペレーションが期待するのと同一であるように、機能を二層に分岐させるステップに関する。
【背景技術】
【０００３】
開放型システム間相互接続モデル（ＯＳＩモデル）は、電気通信またはコンピューティングシステムの通信機能を、それらの根本にある内部構造および技術を考慮せずに特徴付けて標準化する、概念モデルである。ＯＳＩモデルは、標準的なプロトコルによって、様々な通信システムの相互運用性を与える。モデルは、通信システムを７つの抽象化層のセットにパーティション化する。それぞれの層は、その上位層にサービスを提供し、その下位層によってサービスが提供される。例えば、ネットワーク上でエラーのない通信を提供する層は、その上のアプリケーションが必要とするパスを提供し、一方で、次のさらに下位層を呼んで、そのパスのコンテンツを含むパケットを送受信する。同一層における２つのインスタンスは、その層内で水平接続によって接続されたときに視覚化される。ＯＳＩモデルの７層は、７−アプリケーション、６−プレゼンテーション、５−セッション、４−トランスポート、３−ネットワーク、２−データリンク、および１−物理であり、ここで、層１（物理）は、最も下のレベルである。
【０００４】
物理層は：データ接続の電気的および物理的仕様；デバイスと物理的伝送メディア（例えば、銅または光ファイバーケーブル、無線周波数）との間の関係を規定し、ピンのレイアウト、電圧、ラインインピーダンス、ケーブル仕様、信号タイミング、および、接続されたデバイスに関する同様の特性およびワイヤレスデバイスに関する周波数（５ＧＨｚまたは２．４ＧＨｚなど）を含み；伝送モード（すなわち、単信方式、半二重、全二重）を規定し；バス、メッシュ、またはリングとしてのネットワークトポロジーを最も一般的なものと規定する。パラレルＳＣＳＩの物理層は、イーサネットおよび他のローカルエリアネットワーク、例えば、トークンリング、ＦＤＤＩ、ＩＴＵ−Ｔ  Ｇ．ｈｎ、および、ＩＥＥ  ８０２．１１（Ｗｉ−Ｆｉ）、ならびに、パーソナルエリアネットワーク、例えば、ＢｌｕｅｔｏｏｔｈおよびＩＥＥＥ  ８０２．１５．４の物理層と同じように、この層内で作動する。
【０００５】
データリンク層は、ノード間データ転送−２つの直接接続されたノード間のリンクを提供し、そして、物理層内で生じ得るエラーを検出し、場合により訂正する。データリンク層は、２つの物理的に接続されたデバイス間の接続を確立および終了させるためのプロトコルを規定し、および、デバイス間のフロー制御のためのプロトコルも規定する。ＩＥＥＥ  ８０２は、データリンク層を２つのサブレイヤーに分ける：メディアアクセス制御（ＭＡＣ）層−ネットワーク内のデバイスがどのようにして、データへのアクセスおよびそれを伝送する許可を取得するかを制御するのを担当、および、論理リンク制御（ＬＬＣ）層−ネットワーク層プロトコルを識別して、それからそれらをカプセル化するのを担当し、そして、エラーチェックおよびパケット同期を制御する。
【０００６】
ネットワーク層は、一方のノードから、同一ネットワークに接続された他方へ、可変の長さのデータ配列（データグラムと呼ばれる）を転送する機能上および手順上の手段を提供し、そして、論理ネットワークアドレスを物理マシンアドレスに変換する。ネットワークは、多くのノードが接続することのできるメディアであり、その上に、全てのノードはアドレスを有していて、それは、単にメッセージのコンテンツおよび宛先ノードのアドレスを提供すること、およびメッセージを宛先ノードに配送する道（「ルート」）をネットワークに探し出させることによって、ネットワークに接続されたノードが、ネットワークに接続された他のノードにメッセージを転送するのを許可する。メッセージルーティングに加えて、ネットワークは、メッセージをいくつかのフラグメントに分割し、それぞれのフラグメントを別個のルートによって配送し、そしてフラグメントをリアセンブルすることによって、メッセージ配送を実施し得て、配送エラーなどを報告し得る。
【０００７】
トランスポート層は、サービス品質機能を維持しながら、可変の長さのデータ配列を、１つまたは複数のネットワークを介してソースから宛先ホストに転送する機能上および手順上の手段を提供する。標準的なインターネットスタックにおけるトランスポート層プロトコルの例は、通常はインターネットプロトコル（ＩＰ）の上に構築される、伝送制御プロトコル（ＴＣＰ）である。トランスポート層は、フロー制御、セグメント化／脱セグメント化、およびエラー制御を通して、所定のリンクの信頼度を制御する。一部のプロトコルは、状態−および接続−指向である。これは、トランスポート層は、セグメントを追跡して、失敗したものを再伝送することができることを意味する。また、トランスポート層は、成功的なデータ伝送の受信確認も提供して、そして、エラーが発生しなければ、次のデータを送信する。トランスポート層は、アプリケーション層から受信したメッセージの外側にパケットを作る。パケット化は、長いメッセージをより小さなメッセージに分けるプロセスである。
【０００８】
セッション層は、コンピューター間のダイアログ（接続）を制御して、そして、ローカルおよびリモートアプリケーションの間の接続を、確立させ、管理し、および終了させる。セッション層は、全二重、半二重、または単信方式のオペレーションを提供して、および、チェックポイント、延期、終了、および再開の手順を確立する。セッション層は、リモート・プロシージャ・コールを使用するアプリケーション環境において、一般に、明示的に実装される。
【０００９】
プレゼンテーション層は、アプリケーション層エンティティ間のコンテキストを確立し、そこにおいて、アプリケーション層エンティティは、プレゼンテーションサービスがそれらの間に大きなマッピングを提供する場合、異なる構文および意味論を使用し得る。マッピングが利用可能である場合、プレゼンテーションサービスデータユニットは、セッションプロトコルデータユニットにカプセル化されて、プロトコルスタックに伝えられる。プレゼンテーション層は、アプリケーションおよびネットワークのフォーマット間を変換することによって、データ表現（例えば、暗号化）からの独立性を提供する。プレゼンテーション層は、データを、アプリケーションが受け付ける形式に変換する。この層は、ネットワーク上に送信されるデータをフォーマットおよび暗号化し、構文層と呼ばれることがある。
【００１０】
アプリケーション層は、エンドユーザに最も近いＯＳＩ層であり、それは、ＯＳＩアプリケーション層およびユーザの両方が、ソフトウェアアプリケーションと直接的に相互作用することを意味する。アプリケーション層は、通信コンポーネントを実装するソフトウェアアプリケーションと相互作用する。そのようなアプリケーションプログラムは、ＯＳＩモデルの範囲外である。アプリケーション層の機能は、典型的に、通信相手の識別、資源可用性の決定、および通信の同期を含む。通信相手を識別するときに、アプリケーション層は、伝送するデータを有するアプリケーションのための通信相手の同一性および可用性を決定する。資源可用性を決定するときに、アプリケーション層は、十分なネットワークまたは要求された通信が存在するかどうかを決定しなければならない。通信の同期では、アプリケーション間の全ての通信は、アプリケーション層によって管理される協調を必要とする。アプリケーション層は、アプリケーションおよびエンドユーザの処理をサポートする。通信相手が識別され、サービス品質が識別され、ユーザ認証およびプライバシーが考慮されて、そして、データ構文の任意の制約が識別される。アプリケーション層における全ては、アプリケーションに特有である。
【００１１】
ネットワークの入力および出力（Ｉ／Ｏ）は、しばしば、分散アプリケーション内のボトルネックである。Ｉ／Ｏボトルネックは、主に、開放型システム間相互接続（ＯＳＩ）モデルまたはイーサネット通信の多重の層に起因し、そこでは、それぞれのネットワークパケットは、レベル２、レベル３、およびレベル４通信の多重のエンベロープ内に内包される。また、通信モデルおよびスタンダードの多重の層は、さらなる中央処理装置（ＣＰＵ）オーバーヘッドも生じさせて、パケットの再パッケージングおよび通信暗号化を行なう。クラウドの使用は、重大なアジリティおよび柔軟性を提供し、ならびに、クラウドによって与えられる分離を通して高度に管理されやすいが、ここで、クラウドノード間の通信はしばしば、クラウドの外側のネットワークを通る必要さえないが、オーバーヘッドは依然として存在する。
【００１２】
Ｅｒｉｃ  Ｂｒｅｗｓｔｅｒ（カリフォルニア大学バークレー校）によって最初に提示されたＣＡＰ定理によって示されるように、一貫性、可用性、および分断耐性は、単一のタイプのデータストレージ内で利用可能でないので、データストレージは、典型的に異なる方法で最適化される。理論コンピューターサイエンスでは、ＣＡＰ定理は、Ｂｒｅｗｅｒの定理としても知られ、分散コンピューターシステムが以下の保証の３つを全て同時に提供するのは不可能であると述べる：一貫性（全てのノードが同一データを同時に見る）、可用性（成功したか、または失敗したのかについてのレスポンスを、全てのリクエストが受け取ることを保証する）、および、分断耐性（任意のメッセージ損失またはシステムの一部の障害にもかかわらず、システムが作動し続ける）。データストレージの最適化に関する制約であると証明されているさらなる特性は、拡張性である。したがって、Ｈａｄｏｏｐデータベースは、伝統的なトランザクションのデータベースとはかなり異なる。Ａｐａｃｈｅ  Ｈａｄｏｏｐは、コモディティハードウェアのクラスター上のビッグデータの分散処理および分散ストレージのためのオープンソースのソフトウェアフレームワークである。そのＨａｄｏｏｐ分散ファイルシステム（ＨＤＦＳ）は、ファイルを大きなブロック（デフォルト６４ＭＢまたは１２８ＭＢ）に分割し、そして、クラスター内のノード間にブロックを分散する。データを処理するために、Ｈａｄｏｏｐ  Ｍａｐ／Ｒｅｄｕｃｅは、コード（具体的にはＪａｒファイル）を、要求されたデータを有するノードに送り、ノードはそれから、データを並列で処理する。Ｈａｄｏｏｐのアプローチは、通常は並列ファイルシステム（計算とデータは分離されているが、高速ネットワークで接続されている）に頼っている従来の高並列コンピューティング（ＨＰＣ）アーキテクチャとは対照的に、データ局所性を利用する。コンピューターネットワーク内のエンドポイントは、ネットワーク内の最も脆弱で保護されていない部分であり、データ侵害の７０％よりも多くが、エンドポイントで発生する。標的型サイバー攻撃は、たった２５％〜５０％という十分ではない検出率でアンチウイルスソフトウェアを無効にして、伝統的な検出ベースのセキュリティ防御を回避する能力を有している。ウイルスおよびサイバー攻撃の低い検出率は、誤検出を追跡し、危険にさらし、ＰＣのイメージを再適用するという、決して終わらない、コストのかかるサイクルに企業を巻き込む。
【００１３】
現在のところ、企業を危険にさらさずに従業員がインターネット、ｅメールおよび取り外し可能なメディアを安全に使用することを可能にしながら、高度なマルウェア、ゼロデイ脅威およびドライブバイ攻撃から、ユーザエンドポイントを保護する、いくつかのコンピューターセキュリティ製品が利用可能である。
【００１４】
Ｂｕｆｆｅｒｚｏｎｅ（登録商標）は、ユーザによって設定されたアクセスを用いて、オペレーティングシステム（ＯＳ）内での分離を提供する。しかしながら、ユーザ設定は、ユーザが、間違いをするか、または、セキュリティ制御を意図的に弱めるかのいずれかの場合、セキュリティ侵害／データ漏洩を許し得る。Ｂｕｆｆｅｒｚｏｎｅ（登録商標）は、Ｗｉｎｄｏｗｓ  ＯＳカーネルとともに動作し、したがって、ＯＳ内の変更の対象となり、アンインストールされ得る。加えて、ＯＳに対する悪質なパッチは、ソフトウェア完全性を潜在的に妨げ得る。Ｂｕｆｆｅｒｚｏｎｅ（登録商標）アプローチは、識別を含み、全て１つのＯＳ内において、異なるコンテナ内に異なるアプリケーション機能を保持することにより、セキュリティ保護する。それぞれのセキュリティポイントは、セキュアコンテナまたはセキュアでないコンテナのいずれかに分類されなければならない。技術的観点から、管理される並べ替え（ｐｅｒｍｕｔａｔｉｏｎｓ）の数はかなり多い可能性が高く、特定の状況は、事前に規定された分類を有し得ない。分類は特定のユーザ環境に依存し得るので、ディスポジションは困難であり得る。加えて、Ｂｕｆｆｅｒｚｏｎｅ（登録商標）技術は、ユーザアプリケーションとして作動し、したがって、ユーザが見ることができ、完全に組み込まれて、透過的でない。
【００１５】
Ｂｒｏｍｉｕｍ（登録商標）は、マイクロ仮想化を通してエンドポイントコンピューターをセキュリティ保護し、それぞれのプロセスに関してマイクロ仮想マシン（ＶＭ）を使用し、ここで、マイクロ−ＶＭにおける作動プロセスを加速するためのテンプレートエンド−キャッシングは、プロセスの分離を保証し、仮に、特定のプロセスが影響を受けるとしても、システム全体は影響を受けない。例えば、ユーザが、ｅメールを開ける、または、ｗｅｂをブラウズする、または、ファイルを共有するたびに、Ｂｒｏｍｉｕｍ（登録商標）ソフトウェアは、マイクロ仮想マシン（マイクロ−ＶＭ）内のタスクを分離し、そして、タスクが完了した時点で、マイクロ−ＶＭは破棄され、マルウェアおよび全て。しかしながら、Ｂｒｏｍｉｕｍ（登録商標）アプローチは、全てのあり得る並べ替えに適用される必要があり、実装するのを極度に複雑にさせる。それぞれの新しいプラットフォームの扱いは、特殊化されたエンジニアリングおよび符号化を要求し得る。加えて、Ｂｒｏｍｉｕｍ（登録商標）方法は、著しいパフォーマンスヒットを生じ、さらなる資源（テンプレート＝マイクロＶＭをキャッシュするために、１ＧＢ）を必要とする。マイクロ仮想化プロセスを加速するために特定のモデルが必要とされる。ポリシーをセキュリティ保護するＢｒｏｍｉｕｍの独特な能力にもかかわらず、Ｂｒｏｍｉｕｍの最大の弱点は、マクロレベルでセキュリティポリシーを扱うことができないことであり、柔軟性およびユーザビリティに対するさらなる挑戦を与える。
【００１６】
仮想化に頼る、さらなるネットワークセキュリティアプローチは、Ｍｏｋａ５，ＩｎｃのＭｏｋａ５である。Ｍｏｋａ５は、ＯＳ内にあり、Ｗｉｎｄｏｗｓカーネルドライバーによって実際に有効化される。Ｍｏｋａ５は、ユーザアプリケーションのための層、ユーザ設定のための層、会社アプリケーションおよび設定のためなど、ＯＳ内の層を分割することによって作動する。Ｂｕｆｆｅｒｚｏｎｅ（登録商標）とは異なり、Ｍｏｋａ５の層化は、水平であり、垂直でない。Ｍｏｋａ５ソフトウェアの主なコンセプトは、多重のコンピューターノードにわたるユーザインターフェースの管理である。特定のユーザのパーソナライズされたデスクトップ（層）は、分離（ｄｅｃｏｕｐｌｅｄ）することができ、多重の環境中で作動する。ＯＳの層化は、ベース層の一貫した管理を可能にし、多くの機能を有効化する。しかしながら、インストールはＯＳ内なので、分離は完全なものではなく、Ｍｏｋａ５は、マクロレベルで完全な保証を与えることができない。加えて、Ｍｏｋａ５は、多重のコンピューティングノード上のエージェントのソフトウェア配布を必要とする。異なるプラットフォーム／環境／設定は、機能性を有効化するために、特殊化されたソフトウェア拡張（モジュール）を必要とする。
【００１７】
さらに、ＯＳＩネットワークモデルは、ネットワーク上のノードが、それらを保護するためのファイアウォールのみを用いて開かれるので、セキュアでないことが証明されている。現在のところ、ほとんどのネットワークは、ホワイトリスティングおよびブラックリスティング（物理的、インターネットプロトコル（ＩＰ）アドレス、ホストネーム、およびプロトコルのような、様々なレベル）と呼ばれる技術を利用したファイアウォール、ならびに、望まれていないネットワークアクティビティを検出してそれをリアルタイムで止めることによる侵入検知を通して保護される。しかしながら、これらの技術は、保証レベルと呼ばれるセキュリティレベルを提供せず、侵入者は、アドレス／ネームを複製する、ネットワークパケットをリプレイする、または、ユーザをだまして、内側から接続を開始するマルウェアをダウンロードさせることにより、他のデバイスになりすますことができる。セキュア・ソケット・レイヤー（ＳＳＬ）トンネルのような方法を利用してトラフィックをセキュリティ保護することが可能であるが、これらは、スループット、ＣＰＵおよびメモリ使用量の観点で、通常のネットワーク通信と比較して、著しいオーバーヘッドを追加する。攻撃のシグネチャは、たびたび、ソフトウェアを変更するので、時間計測をアップデートする方法が必要とされる。ソフトウェア構成の観点から、ソフトウェア構成はそれ自体、しばしば、無効化および改変の攻撃の対象となる。
【００１８】
分岐は、ホストおよびゲストと呼ばれる２つのオペレーティングシステム（ＯＳ）の組み合わせであり、分岐したオペレーティングシステムは、２０１４年９月２３日に発行された米国特許８，８４３，９２６号、表題「Ｇｕｅｓｔ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｕｓｉｎｇ  Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ」の主題であり、本出願の譲受人によって共有され、その全体で参照により本明細書中に援用される。ホストＯＳは、ハードウェアベースであり、ゲストＯＳを作動する仮想マシンプログラムを生成する。ゲストＯＳは、ユーザインターフェースレベルであり、全てのユーザインストラクション、および、ワードプロセッサ、スプレッドシート、プレゼンテーションソフトウェア、およびＷｅｂブラウザのような生産性プログラムを扱う。ユーザはホストＯＳの存在に気付いていないが、全てのプロセスはホストＯＳを通る。ホストＯＳは、読み取りのみとしてオペレーティングハードウェア内に事前インストールされている静的構造である。ユーザが行なう全てのアップデートは、ホストＯＳの元の設定の上に加えられた層として保存される。システム再起動の際、ハードウェアは、元々、事前インストールされたとおりに、ホストＯＳをロードし、アップデート層は、それから、元のホストＯＳの上に適用される。アルゴリズムは、アップデート層内の冗長性を識別して、それらを統合する。マルウェアがコンピューター上にロードされる場合、システムは、それ自体を自動的に復元し、マルウェアを含む１つまたは複数のアップデート層を削除する。分岐したＯＳは、ユーザによって開始されるシステムソフトウェアメンテナンスを必要としない、セキュアなコンピューターシステムを提供する。
【００１９】
ユーザコンテンツおよび制御オペレーティングシステムは物理的および論理的に分離されており、したがって、制御デバイスは、コンテンツプロバイダーネットワークを介した外部のセキュリティ攻撃によって危険にさらされ得ないので、分岐したＯＳは、コンピューターおよびネットワークにセキュリティの利点を提供する。中間者、スパイウェア、マルウェア、フィッシング、および、ユーザデバイス上の他の不正な攻撃からの、分岐の使用によるオペレーティングセキュリティのレベルの増大は、それ自体、コンテンツアグリゲーション観点からの豊富さを加えるためだけでなく、電子商取引に適用可能な新規の機能を有する新規のデバイスを提供することに役立つ。加えて、潜在的なデータ漏洩は、アンチブリッジングポリシーを通して防止される。電子商取引の現在の弱点は、クライアントおよびベンダーの両方の認証のレベルが弱いことであり、それは、多くの消費者が、アイデンティティが盗まれるのが怖いために電子トランザクションの使用を広く受け入れるのをやめさせる。ハードウェア分岐は、以下の三重の機能を提供する：１）認証においてさらなる因子を提供する（多重の認証チャンネルを通して認証を分散し、ハードウェアコンポーネントの静的位置を認証におけるアクターとして使用し、購入者の動きを監視し、ストアにおけるトランザクションを完了する能力）；２）トランザクションを分岐／分散させる、例えば、ユーザは、ｅ−トランザクションとして開始、およびインストアトランザクションとして完了することができ、それは、クレジットカード情報を電話にキャッシュする問題を解決することができる；および、３）認証情報および個人情報はインターネットと通信／インターフェース接続するハードウェア層内に保存されないので、認証情報および個人情報は、インターネットソースからのマルウェア／フィッシングから保護される。
【００２０】
しかしながら、分岐したオペレーティングシステムにおけるネットワークコントローラーの現在の実装は、以下の不利な点および欠点を有し、それは以下を含む：低速、セントラルプロセッサユニット（ＣＰＵ）使用の高い利用率−許された帯域幅の１０％未満；アウトバンド接続のみのサポート、ＩＰｖ４およびＴＣＰのみのサポート；および、セキュリティ制限（中間者攻撃が可能である）。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
したがって、認証されていないネットワークトラフィックに対して保護およびデータストレージを最適化しながら、ネットワークセキュリティを提供しながら、ネットワーク通信を加速する効果的、セキュア、高速、および効率的な方法およびシステムに関する必要性が存在する。単一層内で統一された機能として作動するそのような機能によって現在のところ作り出されるスピードボトルネック無しに、二層の間の計算を割り当ててデータ上で作動するような、二層の間の分岐した機能オペレーションに関する必要性がさらに存在する。
【課題を解決するための手段】
【００２２】
機能を二層のオペレーティングシステムに分割してその二層から２つの別個の結果セットを生成するステップを含む、コンピューティング環境でのデータ転送を加速してデータストレージを改善する方法が提供される。二層からの結果セットは、より速いオペレーションを除き（ｓａｖｅ  ｆｏｒ）ユーザが感知できないように組み合わせられる。機能の分割は、マシン性能フィードバックに基づいて評価および最適化される。
【００２３】
当該方法を行なう、ネットワークと通信するためのコンピューティングシステムが提供される。分岐したオペレーティングシステムは、機能分割の実施においてさらなる利点を与える。
【００２４】
本発明とみなされる要旨は、明細書の結末の特許請求の範囲に具体的に指摘されて明白に請求されている。本発明の前述および他の目的、特徴、および利点は、付随する図面とともに得られる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施態様に係る、分岐したＯＳを備えるプリスチンマシンとして実装された、コンピューティングシステムのブロック図である。
【図２】本発明の実施態様に係る、ネットワークコントローラーを備える多機能ゲストＯＳによって利用可能なネットワーク接続を示すブロック図である。
【図３】典型的な従来技術のプリスチンマシン（ＰＭ）、および、ホストおよびゲストのための関係があるネットワークインターフェースのブロック図を示す。
【図４】本発明の一実施態様に係る、プリスチンマシン（ＰＭ）、および、Ｓｌｉｒｐ実装に基づくホストおよびゲストのための関係があるネットワークインターフェースのブロック図を示す。
【図５】本発明の一実施態様に係る、プリスチンマシン（ＰＭ）、および、ＴＡＰ実装に基づくホストおよびゲストのための関係があるネットワークインターフェースのブロック図を示す。
【図６】本発明の一実施態様に係る、プリスチンマシン（ＰＭ）、および、ネットワークインターフェースコントローラー（ＮＩＣ）パススルーに基づくホストおよびゲストのための関係があるネットワークインターフェースのブロック図を示す。
【図７】本発明の実施態様に係る、プリスチンマシンのホストオペレーティングシステムの完全に内側で実装された、ネットワークコントローラーを示す。
【図８】本発明の一実施態様に係る、サブネット内のプリスチンノードと、サブネットの外部のプリスチンルーターとの間の通信を示す。
【図９】クリーンなパケットヘッダー、および、改変されたＬ４暗号化ペイロードを備える対応する暗号化されたヘッダーを示す。
【図１０】本発明の一実施態様に係る、プリスチンノードと、サブネット内のプリスチンルーターとの間の通信を示す。
【図１１】カーネルモジュールの一実施態様の機能ブロック図を示す。
【図１２】本発明の実施態様に係る、スナップショットシステムの機能ブロック図を示す。
【図１３】本発明の一実施態様に係る、プリスチンマシンに関するピアツーピアでのセキュアな通信の機能ブロック図である。
【図１４】本発明の実施態様に係る、名前解決サーバのブロック図である。
【図１５】分岐したオペレーティングシステムを備えるプリスチンマシンの一実施態様のクラウドベースの実装の略図である。
【図１６】本発明の実施態様に係る、分岐したオペレーティングシステムを備える、プリスチンマシンの図６のクラウドベースの実装の拡張である、プリスチンデータベースの一実施態様のブロック図を示す。
【図１７】本発明の実施態様に係る、論理データフローを示すブロック図である。
【発明を実施するための形態】
【００２６】
本発明は、２つの別個の層への機能の分岐を通して、パケットまたはデータパケットと本明細書において同義的に呼ばれるデジタルデータ上でのオペレーションの実施での有用性がある。アルゴリズムは、それぞれの層スペース内で作動される部分とのみ分割されて、結果は組み合わされる。このようにして、より大きなスピードが生じて、ユーザは、スピードの著しい増大を除き（ｓａｖｅ  ｆｏｒ）、従来の統一された機能オペレーションと比較して違いを感じない。分割は、２つの環境間の機能の構文解析方法を人が選択することにより判定され得て、または、マシンによってなされ得て、その後に、分割がされた時点で、それは、マシン性能フィードバックに基づいて最適化され得る（スピードは、初期の分割に基づいて正規化されて、それから、アルゴリズムの一部が層の間で移動されて、スピードが上がった場合は、それを維持し、そうでなければ元に戻して、そして、何か他のものを試す）。同一機能内に２つの相反するベクトルが存在する場合は、これらは自動的に分割されて、最大のスループットを得る。本発明は、二層の間の機能分岐に関して詳述されるが、所定の機能が三層または実に四層の間で割り当てられ得て、結果セットは、本明細書において詳述される二層の実施態様と同様の様式で再度組み合わせられることが理解されよう。
【００２７】
本明細書に開示される発明は、データ転送を加速する、および、コンピューティング環境内でのデータストレージを改善する、ならびに、ネットワークセキュリティを保証するための、システムおよび方法を記載する。コンピューティング環境における分岐したオペレーティングシステム（ＯＳ）は、いくつかの利点を提供することが理解されるが、層間の機能分岐は、慣習のオペレーティングシステムを用いて容易に達成される。また、本発明は、クラウド環境内での使用にも適用可能である。特定の実施態様では、ホストＯＳは、ホストＯＳが欲する様式で実際のデータ共有を実施し得て、一方で、ゲストＯＳにとっては、データ共有は伝統的な通信のように見える。したがって、例えば、同一の物理サーバ、ネットワーク通信内で通信するノードは、生データストリームに変換されて得て、それのために、ホストＯＳは、ソースデータが受信されているかのように、ソースデータを宛先に示す。実際に、データは、移動する必要はなく、または、メモリにコピーさえされて、それどころか、本発明の実施態様は、単一の優先度付きキューを提供し、それに関して、ホストＯＳは、ソースおよび宛先に異なる範囲を提供し、そして、ソースと宛先との間のセパレーターのみが移動する。また、本アプローチの実施態様は、仮想ネットワークＩ／Ｏに関して（ｆｏｒ）、ストレージノード（オブジェクトおよびブロックストレージ）にも適用され得る。新たなアプローチの実施態様は、ネットワークＩ／ＯおよびＩ／Ｏボトルネックを有さないシステムの生成を可能とする（これらのボトルネックは通常は存在する）。例えば書き込み速度が原因で、宛先がＩ／Ｏを十分に高速に処理することができない場合、Ｉ／Ｏは、キャッシュを介してスロットルされ得るが、インメモリ通信は、ほぼリアルタイムのままであることができる。さらに、本アプローチは、多重の物理サーバ上のノードにさえ拡張され得るが、ここで、ストリームは、共有されるメモリ相互接続内に存在し得る。加えて、たとえクラウドの一部が異なる物理的位置に位置するとしても、共有されるデータストリームは、ジャンボフレームを用いたバルク通信を介してシミュレートされて、多くのネットワークパケットのパッケージング、ルーティングおよび配送オーバーヘッドを最小限化および除去し得る。
【００２８】
機能アルゴリズムの一部を二層に割り当てるための機能の分岐は、統一された機能を作動する同一のコンポーネントと比較して、ほとんどのオペレーションをスピードアップさせる。具体的には、制御アルゴリズムは、データが送信される前のデータ監査のボトルネックを避けるために、データとは別に作動される。対照的に、制御を埋め込むことは現在では慣習的であり、データのチェックは、データが移動され得る前に完了されなければならないが、ボトルネックの原因となる。本発明は、並列処理されないが、類似性が存在する。具体的には、本発明の分岐は、単純化された実施態様において、完全な機能を二層に単純にロードして、下層では相補的にアルゴリズムコードを有効化しながら（ｗｉｔｈ）、上層からのアルゴリズムコードを選択的に無効化することによって行なわれる。アルゴリズムコードは、スピードを最適化するために層の間で変えることができる。割り当てられた、分割された機能処理は、並列処理コード、多重のＣＰＵ、および、並列処理と関連する他の制限に関する必要性をなくす。
【００２９】
本発明は、ネットワークデータ／データサービスに適用可能であり、ここで、使用され得るネットワーク制御は、パケット完全性、パケットセキュリティ、またはパケット認証を例示的に含む。加えて、本発明は、応答時間、同時に使用するデータの完全性、および、リアルタイムのデータアクセスを例示的に含むデータサービス制御にも適している。
【００３０】
さらに、本発明の方法およびシステムの実施態様は、顕著な性能低下なしに、分岐したオペレーティングシステム（ＯＳ）を使用してネットワークトラフィックの完全性を保証しながら、認証されていないネットワークトラフィックに対する保護も提供する。本発明の実施態様は、ネットワーク通信の真正性の保証を与えて、攻撃エンティティおよびハッカーによる他者のなりすまし、および偽装を防止する。本発明の方法の実施態様は、低いネットワークスタックレベル（Ｌ２）のセキュア・ソケット・レイヤー（ＳＳＬ）鍵を用いてネットワークパケットを埋め込み、ここで、Ｌ２フレームのデータ部分全体は、暗号化されてよく、より高いスタックのＴＣＰ／ＩＰルーティング情報を例示的に含む一部の共通のプロトコルについては、本発明の方法がレガシーネットワーク切り替えおよびファイアウォールを用いて作動するのを可能させるように、暗号化されないままであってよい。暗号化およびアップ暗号化は、分岐したＯＳ内のホストオペレーションシステムのカーネルスペースを用いて、ネットワークファイラー（ｎｅｔｗｏｒｋ  ｆｉｌｅｒ）として実装され得る。分岐したＯＳに関する性能ペナルティの除去は、ユーザおよび／またはマルウェアが暗号化ポリシーを無効にするのを許さない、ユーザモードデータ構造およびコンテキスト切り替えによって達成される。本発明の実施態様を用いることは、仮に、疑わしいパケットがネットワークに入るとしても、パケットは暗号化／復号をパスしないので、危険であるとは判明しない。
【００３１】
本発明の属性は、偽装（他者のなりすまし）を防止するための、真正性の保証である。閾値および物理的パケットの変更前のＳＳＬ鍵の交換を通して、高められたデータ伝送スピードとともにセキュリティが提供される。特定の本発明の実施態様では、プロトコル暗号化ＳＳＬは、ネットワークスタックＩＰレベル３、ＰＣＰレベル４、またはそれらの組み合わせに注入されて、ここで、レベル数は、従来のスタックアーキテクチャの七層スタックを指す。本発明の単純化された手順は、ＭＡＣ／ＩＰアドレス／ホストネームを識別するステップ、通信デバイス間で送信されるＳＳＬを署名（暗号化）するステップを含み、それぞれ、特有のアイデンティティが与えられる。ＳＳＬおよびアイデンティティ情報は、それから、交換される。本発明は、ソフト資産およびネットワークの保証を通して商業価値を提供する。本発明に係る手順またはシステムの利用は、売買または貸借に基づく金銭的報酬と引き換えにすることができる。
【００３２】
特定の本発明の実施態様では、分岐したＯＳを備える２つの別個のシステムは、当該方法を実装し得て、ここで、ネットワークトラフィックは暗号化されているが、パケットサイズは同一であり、コンテキスト切り替えに起因するさらなるメモリ割り当てまたは必要な割り込みはないので、ネットワークスループットは暗号化されていないトラフィックのものと等しいままである。第二の本発明のシステムの実施態様では、分岐した物理的システムは、通信ノードとして使用され得て、ここで、物理的ホストは、内部ネットワーク内のセキュアでないデバイスを、データトラフィック侵害から保護し得る。第三の本発明のシステムの実施態様では、共有される物理的コンポーネントを用いて、ダウンストリームゲストデバイスのアイデンティティを維持し、ここで、それぞれのゲストノードは、外部のノードと個々に通信するが、セキュリティポリシーは中央管理されていて（ｃｅｎｔｒａｌｌｙ  ｍａｉｎｔａｉｎｅｄ）、回避され得ない。
【００３３】
上述のように、パケット転送率を著しく低下させない、ウイルスおよびサイバー攻撃と対抗するための改善されたネットワークセキュリティツールに関する必要性が存在する。この文脈における「著しく」は、そのようなツールが存在しないものと比較して、たった２０％しかスピードを低減させないものとして定義される。
【００３４】
本発明は、慣習のＢＩＯＳ  ＯＳとともに作動することができるが、分岐したＯＳ内での利用によって、特定のさらなる利点が得られることが理解されよう。本出願の譲受人であるプリスチンマシンは、以前の解決策とは対照的に、改ざんすることのできないアクセス不可能なホストＯＳであるホストＯＳ内でポリシー保証層を配布する、マクロ仮想化を提供する。相互のカプセル化を通して、ホスト層におけるポリシー機能は、どのＯＳが配布／パッチされようとも、ゲスト層に気付かず、それは、下にある層は完全に見えない状態で（ｗｉｔｈ  ｔｈｅ  ｕｎｄｅｒｌｙｉｎｇ  ｌａｙｅｒ  ｃｏｍｐｌｅｔｅｌｙ  ｉｎｖｉｓｉｂｌｅ）、柔軟性および透過性を、生じたシステムが何であれ以前のものと同一である程度に有効化する。相互のカプセル化によって可能にされる妨害のレベルを通して、周辺機器ドライバーはゲスト層へ押されて物理的デバイスのような性能を獲得し得て、動的メモリ割り当て（ＤＭＡ）およびメモリ管理ユニットＭＭＵのような、ハードウェアベースの加速を活用する。プリスチンマシンの構築方法は、マクロレベルで、ポリシー（漏洩無しなど）を確保する。
【００３５】
さらに、本明細書において提供されるマイクロ仮想化方法の実施態様は、異なるプラットフォーム間（例えば、様々なＣＰＵアーキテクチャ、クラウドおよびネットワークデータベース）で、簡単に転送され得る。マイクロ仮想化方法の実施態様は、ホストおよびゲストの互いにカプセル化された組み合わせを提供し、ＣＡＰ定理において、ホストおよびゲストが、どちらも単独ではすることのできないことを、共にするのを有効化する。マイクロ仮想化方法の実施態様は、ユーザビリティまたは柔軟性を侵害せずに、初期の（ｐｒｉｓｔｉｎｅ）、有効なコンピューティング状態の保存および保護を有効化する。
【００３６】
上述のように理論コンピューターサイエンスでは、ＣＡＰ定理は、分散コンピューターシステムが以下の保証の３つを全て同時に提供するのは不可能であると述べる：一貫性（全てのノードが同一データを同時に見る）、可用性（成功したか、または失敗したのかについてのレスポンスを、全てのリクエストが受け取ることを保証する）、および、分断耐性（任意のメッセージ損失またはシステムの一部の障害にもかかわらず、システムが作動し続ける）。コンピューティング環境においてデータストレージを改善およびデータ転送を加速するための、本発明のシステムおよび方法の実施態様は、リレーショナルデータベース管理システム（ＲＤＢＭＳ）に見られる即時の一貫性を有しつつ、サイズはスケール可能だが特に良好な応答時間を有さないオブジェクトストレージの拡張性の平衡を保つことによって、ＣＡＰ定理の最適化の制約を克服しようとする。本発明の実施態様は、データアクセス技術を異なる強さおよび弱さで組み合わせて、１つのアプローチも克服することができないことを指図するＣＡＰ定理の制約を克服する。一実施態様では、ＲＤＢＭＳは、オブジェクトストレージを用いたクエリーに対する応答を扱うリスナーとして作用するフロント層として使用され、ここで、変換層（仮想化を用いる）は、データキューブ（部分）を、ＲＤＢＭＳストレージおよびオブジェクトストレージオブジェクトから動かし、ここで、オブジェクトは、高速な検索のためにＲＤＢＭＳの中に頻繁にキャッシュされる。
【００３７】
データ検索のためのディスクのキャッシュは、ＯＳマッチデータが最初にデータをメモリに動かす必要がある場合、および、ミスマッチが存在する場合でさえ、ディスク全体はサーチする必要があるので、一般にあまり効果的でない。オブジェクトストレージは、ＲＤＢＭＳよりもずっと遅いが、全てのオブジェクトデータは、ＨＴＴＰ  ＲＥＳＴ  ＡＰＩを介してアドレス指定される（ａｄｄｒｅｓｓｅｄ）。一貫して名前が与えられたスキームが存在する場合、コンピューターメモリにオブジェクトの全体をコピーさえもすることなく、オブジェクトはキャッシュされ得る。さらに、このキャッシュは、現在、周辺機器中にオフロードされ得る。したがって、ＤＭＡまたはメモリ管理ユニット（ＭＭＵ）のような他のハードウェア加速方法と同様に、ＲＥＳＴアドレスは周辺機器にまっすぐ結合され得るが、キャッシュおよびメモリアドレッシングは改善される。したがって、ＯＳブロック管理およびスケジューリング（非常に高価なオペレーション）に関する必要性が、メモリバスにまっすぐ接続されるそれら自体のオンボードメモリを備えるハードドライブとともに（ａｎｄ  ｗｉｔｈ）存在し、それにより、ＰＣＩの必要性を避ける。したがって、２つの必死な（ｄｅｓｐｅｒａｔｅ）データ技術ＲＤＢＭＳおよびオブジェクトストレージの組み合わせは、それらのいずれか一方単独よりも良いアクセススピードを産生し得る。一貫性の観点から、ＲＤＢＭＳは、全体のトランザクションの完全性および正確で一貫した予約を確保する最終的な一貫性チェックによって、トランザクションが発生した場合に、予約システムのユーザが正しい予約を得る高い可能性を有するように、地理的親和性が設定される場合、即時の局地性を提供する。
【００３８】
本発明の実施態様では、データは、多重のディスク上に散布されている、より小さなオブジェクトにパーティション化されて；動的ディスク（ｋｉｎｅｔｉｃ  ｄｉｓｋ）は、それらが保管するデータが用いられる場合にのみディスクがスピンするので、エネルギーを節約することができる。データが単一のディスク全体上にあること必要とするモノシリックデータベースでは、それは不可能である。より大きなオブジェクトは、より小さな入力／出力（Ｉ／Ｏ）およびネットワークＩ／Ｏオーバーヘッドを有するので（ネットワーク接続ストレージ（ＮＡＳ）に関して）、データベースデータをより大きなオブジェクトキューブ内に有することは、オブジェクトストレージと比較して、データの圧縮を増大させる。同様に、クラウド環境内のネットワーク最適化に関しては、それ自体で成立する（ｓｔａｎｄｓ  ｂｙ  ｉｔｓｅｌｆ）コンセプトではないが、コンピューターノード間のデータ転送における２つのアプローチの協同を通して、ネットワーク機能の分岐によって達成される。
【００３９】
データストレージの最適化を対処するために、本発明の実施態様は、二段構造のデータストレージを採用し、ここで、前の段は、必要とされる機能特性（一貫性、可用性および分断耐性）のために最適化されて、そして、後ろの段は、様々な前末端段の並べ替え、例えば関係データベース（すなわち、Ｐｏｓｔｇｒｅ、ＳＱＬなど）のために集められ得るバイナリ・ラージ・オブジェクト（ＢＬＯＢ）のオブジェクトストレージからなる。ＢＬＯＢは、データベース管理システム内に単一のエンティティとして保存されたバイナリ・データのコレクションである。バイナリ実行コードは、ときどき、ｂｌｏｂとして保存されるが、ＢＬＯＢは、典型的に、イメージ、オーディオ、または他のマルチメディアオブジェクトである。ＢＬＯＢのためのデータベースサポートは、普遍的でない。データのサブセットのみが、必要に応じて前の段にアップロードされて、タイムスタンプまたは体系化されていないデータのためのソースであり得るインデックスとしても知られる、共有される共通の論理特性によって隔離されたデータをＢＬＯＢが含む場合に、それは可能である。ＢＬＯＢネームは、リクエストに関連するＢＬＯＢのみが前の段へ引かれるように、このインデックスをそのネーム中に含む。あるいは、ＢＬＯＢは、リクエスト基準ごとにスライスされ得て、ＢＬＯＢの一部のみが、アセンブリのために前の段にロードされる。後ろの段は、拡張性、バックアップ、リテンション、および高い可用性を担当する。段間（ｉｎｔｒａ−ｔｉｅｒ）通信でのさらなる最適化は、ネットワークおよびストレージＩ／Ｏボトルネックを最小限するための、記載の方法を使用して達成され得る。
【００４０】
出願人の、米国特許８、８４３，９２６号、表題「Ｇｕｅｓｔ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｕｓｉｎｇ  Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ」に開示され、その全体で参照により含まれるように、分岐したＯＳは、重要なセキュアなデータが漏洩され得ないのを保証しながら完全なユーザビリティおよび柔軟性を保つパーソナルコンピューティングデバイスを作り出すために使用される。分岐したＯＳを使用したシステムは、それらの安定性およびプリスチン状態を保つ自己回復特性を有する。分岐したＯＳは、ゲストオペレーティングシステムが上にホストされる１つまたは複数の電子デバイスの使用に関連して、ゲストオペレーティングシステムのマスターイメージから繰り返しリフレッシュされるゲストオペレーティングシステムを備える。ゲストオペレーティングシステムは、仮想マシン上で実行されて、および、時々、仮想マシンが作動しながら、ゲストオペレーティングシステムは、ゲストオペレーティングシステムのマスターイメージからリロードされる。
【００４１】
予防解決フレームワークの形態でマルウェア脅威に対して防御するためにプリスチン状態が用いられ、ここで、マルウェア脅威は、以下を含む：
１）ウイルスおよびトロイの木馬（ファイルは、セキュアストレージ上に書き込む前にスキャンされる）
２）ワーム（本質的で弾力性のある、改ざんされ得ないネットワークサービスを用いるために、ホストは強化される）
３）ルートキット（最低レベルは、ルートキットのためのレポジトリになるのに利用可能でなく、ＯＳ変更がそれらを含むと認識された場合に、より高いレベルのルートキットが簡単に消去可能である）
４）バックドア（厳格な分離は、ソーシャルエンジニアリングを介してでさえ、バックドアを作り出すことを許さない）
５）スパイウェアおよびアドウェア（重要なデータは、全てのスパイウェアおよびアドウェアから分離され、重要でないデータは、従来のウイルス保護ソフトウェアのインストールを介して保護され得る）。
【００４２】
分岐したＯＳでは、ホストはゲストを制御するが、ゲストも他の何者も、ホストを制御または改変することができない。分岐したＯＳの実施態様は、ＯＳが使用されるそれぞれの環境にしたがって、最小限のオーバーヘッドおよび最大限の機能性を生産するように構築される。
【００４３】
特定の実施態様では、ハードウェア仮想化に対する２つのアプローチが採用される。第一のアプローチでは、ＯＳが、ホストＯＳの上部の仮想コンピューター上で作動する場合、ハードウェアエミュレーションが発生する。ゲストＯＳは、周辺機器のための同等の仮想ドライバーを備え、ホストＯＳは、ハードウェアを扱わなければならず、そして、ホスト層上の対応するハードウェアドライバーを配布しなければならない。これの例は、ＶＭｗａｒｅ（商標）である。このアプローチの挑戦は、ゲストＯＳドライバーは仮想のものと置き換える必要があるので、仮想環境内に配布されるときに、ゲストＯＳが改変される必要があることである。ホストＯＳは、互換性の制限を通して、ハードウェア選択を制限する。さらに、Ｉ／Ｏ性能のチューニングは、多重の層上でなされる必要があるので非常に困難であり、ホストＯＳはゲストＯＳアプリケーションの要求に気付かず、それは、例えば、モバイル機器上の仮想化展開によって発生する。
【００４４】
仮想ドライバーの不利な点は、ハードウェア加速の欠如である。ハードウェア加速の主なポイントは、メインコンピューターからのプロセスのオフロードである（動的メモリ割り当て（ＤＭＡ）は、メイン中央処理装置（ＣＰＵ）および一次またはメインメモリが関与せずに周辺機器がメモリを書き込む場合の例である。コンピューターＣＰＵおよび一次メモリ内に実装された、仮想化されたコンピューターは、ストレス状態が経験された場合に、失敗の対象となる。例えば、高いネットワークエラー率で（すなわち、プロミスキャスモードが有効化される場合、ＶＭｗａｒｅ（商標）ネットワークスイッチは失敗する可能性が高いが、一方で、ハードウェアベースのＣＩＳＣＯスイッチはとても良好に動作する）。
【００４５】
第二のアプローチでは、ＯＳ内の処理が別のもののように見える場合（Ｌｉｎｕｘ  ＶＩＮＥが例である）、ハードウェアエミュレーションが発生する。不利な点は、二重のメモリテーブルおよびハードウェア中への最適化ビルトインの欠如のため、メモリ処理スペースの分離の欠如（セキュリティおよび安定性）、ならびに、５００倍またはベースケースシナリオで２倍もの損失になり得る性能損失である。
【００４６】
例えば、準仮想化およびハードウェア加速のように、いくらかの性能を向上させる、他の最適化された仮想化（ハイパーバイザー）アプローチが存在する。準仮想化は、より低いレベルの平坦化仮想化スタックで、一部のホスト機能の作動を可能にする。ハードウェア加速は、仮想化されたシステム内で使用される共通のインストラクションセットをキャッシュする。準仮想化およびハードウェア加速の両方とも、複雑であり、プラットフォーム特有であり、移植する（ｐｏｒｔ）のが容易でない。
【００４７】
本発明の実施態様において採用される新規の仮想化アプローチの利点は、ポータビリティである。単一のホストＯＳは、様々なデバイス上および多くのゲストＯＳの派生版の下で展開され得る。新規の仮想化アプローチは、物理的デバイスドライバーを管理する必要がない。新規の仮想化アプローチは、パススルーおよび対応する初期化ルーチンを管理するだけである。ゲストＯＳは、損なわれていないままである。ホストＯＳは、任意の構成およびアプリケーション設定による事実の後にゲストＯＳの下でインストールされ得て、それは、携帯電話、タブレット、ＰＣ、クラウドなどを用いたポータビリティを可能にする。ハードウェアアーキテクチャの派生版が必要とされ得るが（Ｉｎｔｅｌ（登録商標）３２ｂｉｔ、Ｉｎｔｅｌ（登録商標）６４ｂｉｔ、ＡＲＭ）、他のコンポーネントがそのままで動作する。例えば、ある人がＳａｍｓｕｎｇ（登録商標）製の周辺機器を備えるＳａｍｓｕｎｇ（登録商標）フォンを持っている場合、提供されるドライバーは、バイナリである（仮想化されたドライバーは存在せず、または経済的に存在し得る）。また、ＯＳは、Ｓａｍｓｕｎｇ（登録商標）によってカスタマイズおよび暗号化もされる。しかしながら、新規のアプローチの実施態様を用いれば、ホストはパススルー仮想化およびｖｕａｌａによって注入されるので、これは問題とならない。この実装コンテキストでのＶｕａｌａは、ゲストＯＳアプリケーションが物理的ハードウェア上で直接的に作動した場合と同様に、ゲストＯＳアプリケーションはハードウェア加速の利益を受けることを意味する。さらに、ホストＯＳレベルでのＣＰＵおよびメモリの著しいオーバーヘッドがなく、および、ゲストＯＳ内のデバイスドライバーは、ホストＯＳ層内の１つまたは複数のデバイスドライバーに変換される仮想ドライバーと置き換えられる必要がない。インストールは、ゲストＯＳイメージは改変される必要がないので単純化され、および、物理とパーソナル間（ｐｈｙｓｉｃａｌ−ｔｏ−ｐｅｒｓｏｎａｌ）（Ｐ２Ｖ）での変換としてドライバーがスワップされる必要がないので、根底にあるハードウェアインフラストラクチャに非依存である。
【００４８】
ここで図面を参照し、図１は、分岐したＯＳを備えるプリスチンマシン１１を実装した、コンピューティングシステム１０のブロック図である。コンピューティングシステム１０の主なコンポーネントは、ホストオペレーティングシステム１２、多機能ゲストオペレーティングシステム１６、セキュアゲストオペレーティングシステム１４、セキュリティ保護されたストレージ１８、ネットワークコントローラー１３、スナップショットシステム１５、周辺機器デバイスドライバーのためのパススルー１７、および真正性を備える。
【００４９】
一実施態様では、ホストオペレーティングシステム１２は、プロセッサ、例えば、ｘ８６ＣＰＵまたは他の公知の適合するプロセッシングアーキテクチャによって実装され得る。ホストオペレーティングシステム１２は、ユーザによってアクセスされ得ない。ホストＯＳ１２は、仮想化システムのベースである。一実施態様では、ホスト上の２つのゲストオペレーションシステム：多機能ゲストＯＳ１６およびセキュアゲストＯＳ１４が存在する。
【００５０】
ホストＯＳ１２は、ＱＥＭＵおよびＫＶＭのようなハイパーバイザーシステムを、ハイパーバイザーシステムとして使用する。Ｘｅｎ、ＨｙｐｅｒＶ、または他の技術に基づく他のハイパーバイザーシステムは、本発明の実施態様において採用され得ることが理解されよう。ＱＥＭＵは、汎用およびオープンソースのマシンエミュレーターおよびバーチュアライザーである。ＫＶＭ（カーネルに基づく仮想マシン）は、カーネルを、ハイパーバイザーに変えるＬｉｎｕｘカーネルのための仮想化インフラストラクチャであり、それは、Ｌｉｎｕｘカーネルにマージされている。多機能ゲストＯＳ１６およびセキュアゲストＯＳ１４の両方とも、同時に作動して、ユーザによってアクティビティ化され得る（ディスプレイに示される）。換言すれば、コンテキスト切り替えは、セキュリティを提供するためにセキュアゲストＯＳ１４上にサービス提供されたファイルを備える単一のゲストＯＳの外観をユーザに与えるための、ハイド／ショーである。
【００５１】
多機能ゲストオペレーションシステム１６の実施態様は、仮想化ゲストとして作動する。多機能ゲストオペレーションシステム１６は、プリスチンマシンによらずにリアルハードウェア上にインストールされたオペレーションシステムのように用いられ得るユーザのシステムの一部である。多機能ゲストオペレーションシステム１６は、ホストＯＳ１２によって制御されるネットワーク接続を有し、全ての周辺機器１９はそこで利用可能である。また、多機能ゲストＯＳ１６は、ネットワーク利用の２つのモードも有する：セキュリティ保護されている（全てのインバウンド／アウトバウンド通信はセキュア・ソケット・レイヤー（ＳＳＬ）であり、トンネルされている）、および、セキュリティ保護されていない（モード間の切り替えは、ユーザによって有効化される）。特定の書き込みのみのアクセスは、マウントされた隔離フォルダ２１によって、セキュリティ保護されたストレージ１８に利用可能である。全ての変更は、ホストスナップショットシステム１５によって制御されるスナップショット上に保存される（回復機能のため）。
【００５２】
セキュリティ保護されたゲストＯＳ１４の実施態様は、別の仮想化ゲストである。セキュリティ保護されたゲストＯＳ１４は、典型的に、非改変イメージから起動される。セキュリティ保護されたゲストＯＳ１４は、ディスプレイおよびヒューマンインターフェースデバイス（ＨＩＤ）（すなわち、マウスおよびキーボード）を除き、周辺機器１９を備えない。また、セキュリティ保護されたゲストＯＳ１４は、セキュリティ保護されたストレージ１８−共用２３および隔離パーティション２１のアクセスを除き、ネットワークアクセスも有さない。セキュアゲストＯＳ１４は、一般モード（共用パーティション上に保存されたファイルにアクセスするため）および管理者モード（ファイルが安全であると判定された場合に隔離パーティションから共用パーティションにファイルをプロモートするため）の、２つの役割で使用され得る。デフォルトでは、セキュリティ保護されたゲストＯＳ１４は、一般モードである。管理者モードは、管理者認証情報を用いた特別なログインによって活性化され得る。一般モードＯＳおよび管理者モードＯＳの両方とも、セキュリティ保護されたストレージ１８の共用パーティション２３へのアクセスを有するが、管理者モードＯＳのみが、隔離パーティション２１への読み取りアクセスを有する。
【００５３】
セキュリティ保護されたストレージ１８の実施態様は、論理的に、２つのパーティション−共用２３および隔離２１を含む。共用パーティション２３および隔離パーティション２１は、ゲストオペレーティングシステム中にフォルダとしてマウントされる。クラウド内に存在し得るセキュリティ保護されたストレージ１８は、外部ネットワークストレージである。ホストオペレーティングシステム１２は、単純なファイル転送プロトコル（ＳＦＴＰ）によってこれらのフォルダに完全なアクセスを有する。ホストＯＳ１２は、それ自体のセキュアなシェル（ＳＳＨ）ＳＦＴＰサーバを開始し、それは、共用２３および隔離パーティション２１をソースとしてマウントしたネットワークを使用する。このＳＳＨ  ＳＦＴＰサーバ転送は、ゲストオペレーションシステムへのアクセスを制限する。ＳＳＨクライアントを有さない多機能ゲストＯＳ１６に関しては、ホストＯＳ１２は、サーバメッセージブロック（ＳＭＢ）サーバも開始して、そのようなシステムへのアクセスを転送する。
【００５４】
セキュリティ保護されたストレージの特定の実施態様は、以下の制限則を有し得る：
−一般モードおよび管理者モードのセキュアゲストは、共用パーティションへの完全な読み書きアクセスを取得する。
−管理者モードのセキュアゲストは、隔離パーティションへの読み取りのみのアクセスを取得する。
−多機能ゲストは、共用パーティションへのいかなるアクセスも取得しない。
−多機能ゲストは、隔離パーティションへの書き込みのみのアクセスを取得する。
−ホストは、ファイルを、それらが書き込まれる前に、マルウェアシグネチャと一致することをチェックすることができる。
−隔離パーティションは、ＳＦＴＰのバッファを介して、操作コールバックを書き込む。
【００５５】
図２は、ネットワークコントローラー１３を備える多機能ゲストＯＳ１６から利用可能な、ネットワーク接続を示すブロック図である。特定の実施態様では、ネットワーク伝送制御プロトコル（ＴＣＰ）接続は、多機能ゲストＯＳ１６からのみアクセス可能であり得る。特定の実施態様では、ネットワーク接続性の２つのモード−セキュリティ保護されたモード２０およびセキュリティ保護されていないモード２４が存在する。セキュリティ保護されたモード２０では、多機能ゲストＯＳ１６は、ネットワークまたはインターネット接続を、これらの接続がセキュアであると判断される場合のみアクセスし得る。一実施態様では、ゲストＯＳ１６は、まず、セキュアトンネルを介して接続を試みる。この接続に失敗したならば、ゲストＯＳ１６は、デフォルトＳＳＨサーバを介して接続を試みる。この接続が同様に失敗したならば、接続されない。ダイレクトのセキュリティ保護されたトンネルは、宛先ホストへのＳＳＨポート転送を用いて作られる。デフォルトサーバへのトンネルは、ホストＯＳ１２上で作動されるＳＯＣＫＳ５プロキシを使用する。
【００５６】
セキュリティ保護されていないモード２４では、多機能ゲストＯＳ１６は、宛先へのダイレクトポート転送トンネルを構築することを試みる。多機能ゲストＯＳ１６がダイレクトポート転送トンネルを失敗した場合、多機能ゲストＯＳ１６は、外部資源２６のような宛先への直接接続を作る。外部資源２６は、例示的に、ネットワーク２８またはインターネットを含むことが理解されよう。多機能ゲストＯＳ１６からのＴＣＰ接続の傍受は、ホストＯＳ１２上のＱｕｉｃｋ  ＥＭＵｌａｔｏｒ（ＱＥＭＵ）ｓｌｉｒｐサブシステム上に実装される。ＱＥＭＵは、ハードウェア仮想化を実行する、フリーおよびオープンソースのホストされたハイパーバイザーである。Ｓｌｉｒｐ（ＳＬｉＲＰと大文字で書かれることもある）は、シェルアカウントを介したインターネットへのＰＰＰ、ＳＬＩＰ、またはＣＳＬＩＰ接続をエミュレートする、ソフトウェアプログラムである。「ｔｃｐ＿ｃｏｎｎｅｃｔ」機能のコールは傍受される。システムは、それから、エグゼキューションｓｓｈ−Ｌポート転送ユーティリティ（ｅｘｅｃｕｔｉｏｎ  ｓｓｈ  −Ｌ  ｐｏｒｔ  ｆｏｒｗａｒｄｉｎｇ  ｕｔｉｌｉｔｙ）を用いて、ダイレクトトンネルを構築することを試みて、そして、パケットをローカルＳＳＨ  ＳＯＣＫＳ５プロキシに送り、それはホストブートプロセス中に開始される。
【００５７】
図２を続けて、特定の実施態様では、プリスチンマシン（商標）（ＰＭ）２９は、多機能ゲスト１６に関するネットワークアクセスを提供する。分岐したＯＳによって動作するプリスチンマシン２９は、２タイプのゲストＯＳ：セキュアゲストＯＳおよび多機能ゲストＯＳ（ＭＦ）１６を備え、ここで、ＭＦ１６のみが、セキュリティ保護されていないモード２４を介したネットワークアクセスを有し、セキュリティ保護されたＯＳ２０は、いかなるネットワークアクセスも有さない。ＭＦゲスト１６は、セキュリティ保護されたモード２０およびセキュリティ保護されていないモード２４において、ネットワークによって動作し得る。プリスチンマシン（商標）（ＰＭ）は、次のタイプのアウトバンド接続チェーンを使用し得る（全てのモードに関して）：
１．プリスチン２９−プリスチン２９（ＳＳＬ鍵による）
２．プリスチン２９−デフォルトサーバ３１（ＳＳＬ鍵による）−外部資源２６（オープン）
ここで、２つのプリスチンマシン（商標）２９の間、および、プリスチンマシン（商標）２９とデフォルトサーバ３１との間の接続は、暗号化されなければならない。デフォルトサーバ３１は、プリスチンマシン（商標）リクエストを外部ネットワークにリダイレクトするためのプロキシである。ＰＭ２９は、別のＰＭから、または、通常どおりにインターネット内の任意のホストから（もちろん、ローカルのファイアウォールがそれらにこのＰＭを許す場合）、インバウンド接続（暗号化されない、および暗号化される）を許可し得る。プリスチンマシン（商標）２９は、ハンドシェイクを実行するための証明書に基づく認証手順を有すること、および、エンドポイントを有効化することが可能であることが要求される。
【００５８】
図３は、典型的な従来技術のプリスチンマシン（ＰＭ）３３、および、ホストＯＳ３４およびゲストＯＳ３６のための関係があるネットワークインターフェースコントローラー（ＮＩＣ）３２のブロック図３０を示す。ＰＭ３３の現在の実装は、ハイパーバイザーとしてＱＥＭＵ−ＫＶＭを使用する。ＱＥＭＵ（Ｑｕｉｃｋエミュレーターの略称）は、ハードウェア仮想化を実行する、フリーおよびオープンソースのホストされたハイパーバイザーである。ＱＥＭＵは、ホストされた仮想マシンモニターであり、それは、動的バイナリ変換を通してＣＰＵをエミュレートし、一組のデバイスモデルを提供し、様々な非改変ゲストオペレーティングシステムを作動するのを可能にする。また、ＱＥＭＵは、カーネルに基づく仮想マシン（ＫＶＭ）とともに使用することもできる。ＫＶＭは、仮想マシンをネイティブに近いスピードで動作するために、Ｌｉｎｕｘオペレーティングシステムカーネルをハイパーバイザーに変える、仮想化ソリューションである（ｘ８６マシンでのハードウェア仮想化の拡張を必要とする）。また、ＱＥＭＵは、純粋に、ユーザ−レベルプロセスに関するＣＰＵエミュレーションのために使用することもでき、１つのアーキテクチャにコンパイルされたアプリケーションが互いに動作するのを可能にする。しかしながら、上述のとおり、ＰＭ内のネットワークコントローラーの現在の実装は、低速、セントラルプロセッサユニット（ＣＰＵ）使用の高い利用率−許された帯域幅の１０％未満；アウトバンド接続のみのサポート、ＩＰｖ４およびＴＣＰのみのサポート；および、セキュリティ制限（中間者攻撃が可能である）を例示的に含む問題に悩まされる。
【００５９】
本発明で使用されるプリスチンマシン（商標）（ＰＭ）は、米国８，８４３，９２６の従来技術において詳述されていて、本発明の理解を促し、ＰＭの詳細は以下の段落［００７７］〜［０２０２］に見られ、それは参照により援用される。
【００６０】
本明細書に記載されるシステムは、２つの別個のオペレーティングシステム（ホストおよびゲスト）のコンテキストで記載され、それぞれがそれ自体のフレームワークおよび機能性を有するが、本明細書に記載される技術は、そのような分岐した構造に制限されない。一部の実装では、オペレーティングシステムの両方とも、あたかもそれらが非依存性システムであるかのように互いに協調する２つのセクターを備える単一のコンピュータープログラム内にラップされ、ユーザと直接的にインターフェース接続するセクターは、コンピューターシステムの通信層およびハードウェアとだけインターフェース接続する第二のセクターの制御下で、定期的にリフレッシュされる。
【００６１】
例えば、一部のオペレーティングシステムは、オペレーションをカーネルスペースとユーザスペースとの間で分けるように設計される。カーネルスペースプログラムコードは、ユーザスペース内のアプリケーションによって使用されるコンピューティング資源を管理する。カーネルスペースプログラムコードに関する機能の例は、限定されないが、プロセッサ管理、メモリ管理、およびデバイス管理を含む。カーネル抽象化層は、ホストオペレーティングシステム資源が仮想マシンプログラムのようなゲストオペレーティングシステムユーザスペース処理によって損なわれるのを保護するために必要とされる分離のために提供され得る。次に、ゲストオペレーティングシステムは、カーネルとユーザスペースとの間でオペレーションを分けて、ゲストオペレーティングシステム内で実行するユーザスペース処理の分離を提供する。ゲストオペレーティングシステムとホストオペレーティングシステムとの間の仮想化層は、ゲストオペレーティングシステムがセキュアでなく、そして、ユーザスペース処理がカーネルスペースオブジェクトを直接的または間接的に改ざんするのを許す場合、分離のさらなる層を提供し得る。
【００６２】
プリスチンマシン（商標）（ＰＭ）、および、ＱＥＭＵ（汎用およびオープンソースマシンエミュレーターおよびバーチュアライザー）に基づく関係があるネットワークインターフェースの本発明の実施態様は、Ｓｌｉｒｐ（シェルアカウントを介したインターネットへのＰＰＰ、ＳＬＩＰ、またはＣＳＬＩＰ接続をエミュレートするソフトウェアプログラム）、ＴＡＰ（ネットワークタップ−リンク層デバイスをシミュレーションする、および、層２パケット、例えばイーサネットフレームで動作する）、および、ネットワークインターフェースコントローラー（ＮＩＣ）の１つの上に編成される。
【００６３】
本明細書において用いられるテストアクセスポイント（ＴＡＰ）は、リンク層デバイスをシミュレーションして層２パケットで動作する、仮想ネットワークカーネルデバイスとして定義される。カーネルは安定していなければならず単純に計算機能を走らせることが可能であるだけであるという従来の考えと対照的に、本発明によれば、カーネルは、分岐した機能の一部が割り当てられる層である。
【００６４】
図４は、本発明の一実施態様に係る、プリスチンマシン（商標）（ＰＭ）３３Ａ、および、Ｓｌｉｒｐ実装に基づくホストＯＳ３４およびゲストＯＳ３６のための関係があるネットワークインターフェース４２のブロック図４０を示す。このタイプの組織化は、仮想マシン（ＶＭ）の内部に仮想ネットワークインターフェースコントローラー（ＮＩＣ）４２を作り、低レベルデータを構文解析することによって全てのリクエストを外界に変換する。また、ホストＯＳ３４は、ネットワークアドレス変換（ＮＡＴ）をシミュレーションして、したがって、ゲストＯＳは、それ自体のサブネット内に存在する。ネットワークアドレス変換（ＮＡＴ）は、インターネットプロトコル（ＩＰ）データグラムパケットヘッダー内のネットワークアドレス情報を、それらがトラフィックルーティングデバイス上に転送されている間に改変することによって、１つのＩＰアドレススペースを別のものに再マッピングする方法論である。ＮＡＴは、ＱＥＭＵのポート転送機能を用いたＱＥＭＵによって明確に設定されたインバウンド接続を除き、任意のインバウンド接続を禁止する。
【００６５】
図５は、本発明の一実施態様に係る、プリスチンマシン（商標）（ＰＭ）３３Ｂ、および、ＴＡＰ５２実装に基づくホストＯＳ３４およびゲストＯＳ３６のための関係があるネットワークインターフェースコントローラー４２のブロック図５０を示す。ＰＭ３３Ｂでは、ホストＯＳ３４内に実装された仮想ネットワークインターフェースＴＡＰ５２は、物理的ネットワークインターフェースコントローラー（ＮＩＣ）デバイス４２を表わすインターフェースとＴＡＰインターフェース５２との間のブリッジを提供する。ＶＭはホストＯＳと同一サブネット内にＩＰアドレスを有するので、ＴＡＰインターフェース５２は、外界から仮想マシン（ＶＭ）への透過的接続を可能にし、逆も同様である。ＴＡＰインターフェース５２は、同様にして（ｉｎ  ｔｕｒｎ）、ホストＯＳ３４ネットワークインターフェースであり、そこで、直接接続はＮｅｔＦｉｌｔｅｒによって分離され得る。
【００６６】
図６は、本発明の一実施態様に係る、プリスチンマシン（商標）（ＰＭ）３３Ｃ、および、ＮＩＣパススルーに基づくホストＯＳ３４およびゲストＯＳ３６のための関係があるネットワークインターフェース４２のブロック図６０を示す。この実施態様では、ＶＭは、ホストＯＳ  ＮＩＣの下で完全な制御を有し、いかなるメディエータ―も伴わずにＮＩＣを操作する。他のタイプのホストＯＳとは異なり、ホストＯＳ  ＮＩＣ実装は、この組織化において、ネットワークアクセスを有さないことが理解されよう。したがって、このケースでは、制御は、ゲスト内部に完全に実装されなければならない。そのような配列は、より低いセキュリティに導き得るが、反対に、このアプローチは、セキュリティ管理にわたる、より高いレベルの制御をもたらす。
【００６７】
表１は、機能分岐に基づく、上述のリアル、パススルー、ＴＡＰ、およびＳｌｉｒｐ実装に関するベンチマーク性能テスト結果を提供する。全ての比較は、ベアメタルマシン上にインストールされた同一ＯＳ上のネイティブＮＩＣのスピード（「リアル」マーク）と比較された。
【００６８】
【表１】
2018513505.tif 000003
【００６９】
図７は、本発明の実施態様に係るプリスチンマシン（商標）３３Ｄのホストオペレーティングシステムの内部に完全に実装されたネットワークコントローラー７０を示す。ネットワークコントローラー７０は、以下の機能を備える：フィルタリングおよび暗号化；認証；およびプロキシ。ネットワークパケットフィルタリングは、規定された規則のセットに従ってアウトバウンドおよびインバウンドパケットの検出を可能にし、そして、特定のネットワーク層上のそれらのペイロードを変更する。システムは、２つの異なるフィルタリングレベル：Ｌ２フィルタリングおよびＬ４フィルタリング（Ｌ２−リンクまたはＬ４−トランスポート）、および、２つの対応する暗号化レベル：Ｌ２暗号化およびＬ４暗号化を有する。
【００７０】
図８に示されるように、サブネットワーク内で一方のプリスチンノードから他方のプリスチンノードに送られるパケットは、Ｌ２暗号化を有する。プリスチンルーターを介して、一方のプリスチンノードから他方のプリスチンノードに送られるパケットは、ルーターを通る前にＬ２暗号化を有し、その後にＬ４暗号化を有する。
【００７１】
［Ｌ２フィルタリング］
Ｌ２フィルタリングは、サブネットマスクに合うソースおよび宛先ＩＰアドレスを有する、一方のノードから他方に転送されるアウトバウンドＩＰパケットを扱う。イーサネットＭＡＣアドレスは、ソースおよび宛先として、このフィルタリングレベルで使用される。
【００７２】
アウトバウンドパケットは、使用されるＬ２フィルタリングに関する以下の基準を守らなければならない：
１．パケットは、ユニキャストの宛先を有する；ブロードキャストおよびマルチキャストパケットは無視される。
２．ルーターは、パケットの次のホップになることはできない。
３．パケット宛先は、有効な対称暗号化鍵が存在するプリスチンノードである。
全ての基準が満たされる場合は、パケットは、圧縮のためにＬ２暗号化システムに送信される。１つ目および２つ目の基準のみ満たされる場合は、すなわち、パケット宛先が公知のプリスチンノードのリスト上にない場合は、認証のために非同期リクエストが作られて、そして、宛先ポイントがプリスチンノードである場合は解析する。
１つ目の基準のみが満たされる場合は、パケットは、Ｌ４フィルタリングシステムに送信される。
【００７３】
インバウンドパケットは、使用されるＬ２フィルタリングに関する以下の基準を守らなければならない：
１．パケットソースは、有効な対称暗号化鍵が存在するプリスチンノードである。
基準が満たされる場合は、パケットは、解凍のためにＬ２暗号化システムに送信される。
【００７４】
［Ｌ４フィルタリング］
Ｌ４フィルタリングは、サブネットマスクに合わないソースおよび宛先ＩＰアドレスを有する、一方のノードから他方に転送されるアウトバウンドＩＰパケットを扱う。ＩＰ（ＩＰｖ６）アドレスは、宛先として、このフィルタリングレベルで使用される。インバウンドパケットに関するソースは、ペイロードを改変して、または改変せずに、選択されたＬ４暗号化方法に従って定義される。
【００７５】
アウトバウンドパケットは、使用されるＬ４フィルタリングに関する以下の基準を守らなければならない：
１．パケットは、ユニキャストの宛先を有する；ブロードキャストおよびマルチキャストパケットは無視される。
２．トランスポートプロトコルは、ＴＣＰまたはＵＤＰ（ＩＰｖ６／ＴＣＰ、ＩＰｖ６／ＵＤＰ）である；他のプロトコルは無視される。
３．プリスチンルーターは、パケットの次のホップである。
４．パケット宛先は、有効な対称暗号化鍵が存在するプリスチンノードである。
全ての基準が満たされる場合は、パケットはＬ４暗号化システムに送信される。
基準１〜３のみ満たされる場合、すなわち、パケット宛先が公知のプリスチンノードのリスト上に存在しない場合は、認証のために非同期リクエストが作られて、そして、宛先ポイントがプリスチンノードである場合は解析する。
１つ目および２つ目の基準のみ満たされる場合、すなわち、ルーターがプリスチンルーターでない場合は、パケットは、トンネルを介してデフォルトサーバに送信される。
他のパケットは、セキュリティ手順の要求に応じて、アクセプトされ（ＡＣＣＥＰＴ）、またはドロップされる（ＤＲＯＰ）。
【００７６】
インバウンドパケットは、使用されるＬ４フィルタリングに関する以下の基準を守らなければならない：
１．パケットソースは、有効な対称暗号化鍵が存在するプリスチンノードである。
基準が満たされる場合は、パケットは、解凍のためにＬ４暗号化システムに送信される。
【００７７】
［Ｌ２暗号化］
パケットコンテンツは、データサイズを変更しないブロック暗号を用いた対称暗号化アルゴリズムで暗号化される。パケットは、他のフィルター、コミュニケーター、およびデリバリーを通過するために、ネットワーク層（Ｌ３）ヘッダー内に残っている情報を有する。
【００７８】
［Ｌ４暗号化］
２つの暗号化の違いが可能である：ペイロードを改変する、および改変しない。
【００７９】
ペイロードを改変する暗号化−トランスポート層（Ｌ４）パケットコンテンツは、データサイズを変更する、または変更しない、ブロック暗号を使用した対称暗号化アルゴリズムによって暗号化される。暗号化されたペイロードの前に、プリスチンパケットヘッダー、暗号化されたコンテンツに関する情報を含む特定のヘッダーが存在する。それは、マジックマーカー、暗号化されるパケットおよび送信者識別のインディケーション（ｉｎｄｉｃａｔｉｏｎ）、暗号化アルゴリズムの方法および／または作業を検出するための補助データを含んでよい。ネットワークおよびトランスポート層ヘッダーは、チェックサムおよびアップデートされたペイロード長を有する。インバウンドパケットに関する送信者識別は、プリスチンパケットヘッダーデータの助けで実施される。図９は、クリーンであるパケットヘッダー、および、改変されたＬ４暗号化ペイロードを有する対応する暗号化されたヘッダーを示す。
【００８０】
ペイロードを改変しない暗号化−トランスポート層（Ｌ４）パケットコンテンツは、データサイズを変更しないブロック暗号を使用した対称暗号化アルゴリズムによって暗号化される。トランスポート層ペイロードは、いかなる追加のヘッダーも含まない。ネットワークおよびトランスポート層ヘッダーは、アップデートされたチェックサムのみ有する。インバウンドパケットに関する送信者識別は、ネットワークおよびトランスポート層ヘッダーデータの助けで実行される。ＩＰｖ４プロトコルによる前述の方法の実施態様の使用は、ＩＰヘッダー内のソースＩＰの助けのみでは送信者識別の実行を許さないことに注意が必要である。これは、これらのヘッダーを変更するＮＡＴシステムを使用するファイアウォールを備えるルーターを通るパケットにより、システムが不適切に動作する結果となる。
【００８１】
特定の本発明の実施態様では、プリスチンノード自体は、１つのサブネットワーク内の別のプリスチンノードを用いたダイレクト通信のための、アウトバウンドパケットのＬ２暗号化のみを実行することができる。パケットが別のサブネットワークに送信される場合は、プリスチンノードは、プリスチンルーターがルーティングテーブル内のデフォルトゲートウェイとして設定されているかチェックする。そうであれば、パケットは、通常のプリスチンノードに送信されるのと同様に、Ｌ２フィルタリングおよび暗号化とともにそれに送信される。このことは図１０に示される。ＦＯＲＷＡＲＤパケットクローズでは、プリスチンルーターは、アウトバウンドＬ４フィルタリングおよびＬ４暗号化システムを使用する。宛先プリスチンノード上で、インバウンドＬ４フィルタリングおよびＬ４暗号化システムは使用される。
【００８２】
デフォルトサーバ暗号化プロキシ（ＤＳＥＰ）−プロキシサブシステムは、プリスチン−デフォルトサーバ−外部通信を実装し−プリスチンマシンがセキュアなネットワーク内に存在しない場合、および／または、プリスチンルーターが次のホップでない場合に発生する。この場合、プリスチンマシン（ＰＭ）は、ＵＤＰトンネルをデフォルトサーバに開き、それを通って、別のサブネットワークに送信されることになっている全てのトラフィックを送信する。デフォルトサーバは、トンネルされたパケットのためにネットワークアドレス変換（ＮＡＴ）を実行し、それらを外部ホストに送信する。デフォルトサーバは、真正性サーバ認証手順を追わなければならない。
【００８３】
ホスト−ゲスト相互作用−プリスチンマシンゲストＯＳは、さらなるソフトウェアがゲストＯＳにインストールされることを要さない。全てのフィルタリング、暗号化、およびセキュアなトラフィックルーティング処理は、ホストＯＳ上で作動する。ゲストＯＳは、トラフィックが暗号化またはトンネルされるとは知らずに、透明性の高い方法でネットワークを使用する。ホスト側での相互作用を確実にするために、ＴＡＰ仮想マシンデバイス、ＴＵＮデバイス、および物理的イーサネットデバイスは、異なるネットワークネームスペース内のネットワークブリッジに合わさる。そのようなネームスペースのために、別個のルーティングテーブルが作られる。
【００８４】
図１１は、Ｌ２（リンク）レベルでネットワークパケットフィルタリングを実行するカーネルモジュールの一実施態様の機能ブロック図を示す。このモジュールは、ＬｉｎｕｘカーネルＮｅｔＦｉｌｔｅｒ（Ｘｔａｂｌｅｓ／ｉｐｔａｂｌｅｓ）フレームワークを使用して、生パケットを傍受してそのデータを暗号化する。暗号化は、ＡＥＳ２５６または類似のアルゴリズムおよび認証サブシステムを介してユーザスペースから受信した鍵を使用する。カーネルモジュールは、宛先ＩＰを「キー」として、および、対称鍵を「バリュー」として、キー−バリューのペアのテーブルを維持する。新たなパケットが傍受されて、鍵がまだ受信されていない場合は、パケットは空のままにされる。受信された鍵は、既定の期間のあいだ有効である。
【００８５】
認証は、ＳＳＬクライアントおよびサーバ機能を実装する、ユーザスペースデーモンである。サーバとして、このシステムは、インストール段階（真正性サーバに対する最初の接続）の間に受信されて（生成されて）、および、検証サーバ（証明書検証を実行することができ、真正性サーバの一部であり得るサーバ）によって署名された、その証明書を用いて、特定のポート上のＳＳＬソケットを待ち受ける（ｌｉｓｔｅｎｓ  ｔｏ）。
【００８６】
［プリスチン−真正性サーバ認証］
真正性サーバ（ＡＳ）へのプリスチンマシン（ＰＭ）接続の手順は、以下のステップに従う：
注意：サーバは、署名および検証するための、そのルート証明書およびそれに関するプライベート鍵を有する。
１．ＡＳは一時的なトークンおよび証明書ハッシュを生成する。ハッシュおよびトークンは、ＰＭユーザに与えられる。
２．インストール中のＰＭは、ＡＳ証明書を使用して、ＡＳに、セキュリティ保護された接続（ＳＳＬ接続）を作成する。ＳＳＬハンドシェイクの間、ＰＭは、ユーザによって入力されたハッシュを用いて証明書を検証する。結果として、ＰＭはＡＳを信用する。
３．このセキュリティ保護された接続を用いて、ＰＭは、ユーザによって入力されたトークンをサーバに送信する。ＡＳは、トークンがＡＳデータベース内に存在しかつ有効であるかどうかチェックする。結果として、ＡＳはＰＭを信用する。
４．ＰＭは証明書要求（ＣＲ）を作成する。この手順は、プライベート鍵（ＰＫ）も作成する。ＰＭは、ＣＲをサーバに送信して、証明書を作成し、そして、そのルート証明書を使用してそれに署名する。
５．ＡＳは、ＰＭに証明書を返送する。
６．ＡＳおよびＰＭは、セキュリティ保護されたストレージと通信するために別の認証手順を実行する。
この手順の結果として、ＰＭは、サーバルート証明書によって署名されたそれ自体の証明書およびそのためのＰＫを有し、信用されたエンドポイント間のセキュア接続を処理することが可能となる。
【００８７】
プリスチン−プリスチン認証
クライアントプリスチンマシン＃１（ＰＭクライアント）の、サーバプリスチンマシン＃２（ＰＭサーバ）への接続のための手順は、以下のステップに従う：
１．ＰＭクライアントは、ＰＭサーバの規定されたポートへのＳＳＬ接続を作成する。
２．ＳＳＬハンドシェイクの間、ＰＭサーバは、その証明書をＰＭクライアントに送信する。
３．ＰＭクライアントは、ＡＳ（または別個の検証サーバ）への接続を使用して、受信した証明書を検証する。結果として、ＰＭクライアントは、ＰＭサーバを信用する。
４．オプショナル。ＳＳＬハンドシェイクの間、ＰＭクライアントは、その証明書ＰＭサーバに送信して、ＡＳ（または別個の検証サーバ）への接続を使用して、受信した証明書を検証する。結果として、ＰＭサーバは、ＰＭクライアントを信用する。
５．ハンドシェイクが完了する。サーバ側は、対称鍵を作成して、それを別サイドに送信する。また、クライアントは、その識別情報を送信して、クライアントがサーバフィルトレーションシステムによって認識されるのを許可する。
【００８８】
図７を再度参照して、ネットワークコントローラー７０の実装は、異なるタイプのホスト−ゲスト間の接続での使用に対して、従来のシステムよりも柔軟であり、また、変更を適用する場合に、さらなる利点も提供する。ネットワークコントローラー７０は、フィルタリング７２、認証７４、およびプロキシ７６を備える。
【００８９】
フィルタリング７２は、Ｌ２（リンク）レベルで、ネットワークパケットのフィルタリングを備えるカーネルモジュール７８内で実行される。フィルタリングモジュール７２は、ＬｉｎｕｘカーネルＮｅｔＦｉｌｔｅｒ（Ｘｔａｂｌｅｓ／ｉｐｔａｂｌｅｓ）フレームワークを使用して、生パケットを傍受して、パケットからのデータを暗号化する。暗号化は、ＡＥＳ２５６−ＣＴＲまたは類似のアルゴリズム、および、認証サブシステム７４によってユーザスペースから得られた鍵を使用する。クライアント識別は、Ｌ４暗号化レベルにはＩＰを使用し、Ｌ２レベルにはＭＡＣを使用する。フィルタリングモジュール７２は、宛先識別を「キー」として、および、対称鍵として含まれるセキュリティ情報を関係がある「バリュー」として、キー−バリューのペアのテーブルを維持する。グレイ−リストされた（Ｇｒａｙ−ｌｉｓｔｅｄ）リクエストは、フィルタリングモジュール７２がより厳格なセキュリティ規則を要求する場合は、暗号化されないまま、またはドロップされてよい。新たなパケットが傍受されて、および、鍵が現状利用可能でない場合は、傍受されたパケットは、クリーンのままにされる。鍵のＴＴＬ（有効時間）は、永久に有効であってよく、または、有効期間がある。鍵が期限切れの場合は、システムは、新たな認証リクエストを真正性サーバに送信しなければならない。暗号化されたデータレベル−Ｌ２およびＬ４−の観点から、全てのＬ２ペイロードは、Ｌ２暗号化レベルに関するパケット内で暗号化されなければならず、および、Ｌ４ペイロードは、Ｌ４暗号化レベルに関するパケット内で暗号化されなければならない。
【００９０】
認証７４は、ＳＳＬクライアントおよびサーバ機能を実装する、ユーザスペースデーモンである。サーバとして、このシステムは、インストール段階（真正性サーバに対する最初の接続）で得られて（生成されて）、および、検証サーバ（証明書検証を実行することができ、真正性サーバの一部であり得るサーバ）によって署名された、その証明書を用いて、特定のポート上のＳＳＬソケットを待ち受ける（ｌｉｓｔｅｎ）。
【００９１】
真正性サーバ（ＡＳ）への、プリスチンマシン（商標）（ＰＭ）の接続のための本発明のプロセスは、署名および検証するためのサーバに関する固有のルート証明書およびプライベート鍵を真正性サーバが有することを前提とする、以下のステップを含んでよい。
１．ＡＳは、一時的なトークンおよび証明書ハッシュを生成する。ハッシュおよびトークンは、ＰＭユーザに提供される。
２．インストール中のＰＭは、ＡＳの証明書を用いて、ＡＳへのセキュリティ保護された接続（ＳＳＬ接続）を作成する。ＳＳＬハンドシェイクの間、ＰＭは、ユーザが入力したハッシュを用いて証明書を検証する。結果−ＰＭはＡＳを信用する。
３．このセキュリティ保護された接続を使用して、ＰＭは、ユーザによって入力されたトークンをサーバに送信する。ＡＳは、トークンがＡＳのデータベース内に存在するかどうか、および、トークンが有効であるかどうかをチェックする。結果−ＡＳはＰＭを信用する。
４．ＰＭは、証明書要求（ＣＲ）を生成する。この手順は、プライベート鍵（ＰＫ）も生成する。ＰＭは、ＣＲをサーバに送信して証明書を作成し、そして、そのルート証明書を使用して証明書を署名する。
５．ＡＳは、署名された証明書を、ＰＭに返送する。
６．ＡＳおよびＰＭは、セキュリティ保護されたストレージと通信するためのさらなる認証手順を実行する。
本発明の処理の結果は、ＰＭは、サーバのルート証明書によって署名されたそれ自体の証明書およびそのためのＰＫを有し、信用されたエンドポイントの間のセキュアな接続を処理することが可能であるということである。
【００９２】
第一のプリスチンマシン（商標）（ＰＭクライアント）から第二のプリスチンマシン（商標）（ＰＭサーバ）への接続のためのプリスチンマシン（商標）認証に対する、プリスチンマシン（商標）に関する本発明の処理は、以下のステップを含んでよい：
１．ＰＭクライアントは、ＰＭサーバの規定されたポートへのＳＳＬ接続を作成する。
２．ＳＳＬハンドシェイクの間、ＰＭサーバは、その証明書をＰＭクライアントに送信する。
３．ＰＭクライアントは、ＡＳ（または別個の検証サーバ）への接続を使用して、検証証明書を得る。結果−ＰＭクライアントはＰＭサーバを信用する。
４．オプショナル。ＳＳＬハンドシェイクの間、ＰＭクライアントは、その証明書をＰＭサーバに送信して、ＡＳ（または別個の検証サーバ）への接続を使用して証明書を検証する。結果−ＰＭサーバはＰＭクライアントを信用する。
５．ハンドシェイクが完了する。ＳＳＬのマスター鍵およびセッション−ＩＤは、その結果、対称鍵を計算するためのフィルターサブシステムに送信される。
【００９３】
プロキシサブシステムは、プリスチン−デフォルトサーバ−外部通信を実装する。
実装の実施態様は以下である：
１．ゲストＯＳユーザレベルにおける、ユーザレベルソケットセキュア（ＳＯＣＫＳ）プロキシ実装。ＳＯＣＫＳは、ネットワークパケットを、クライアントおよびサーバ間で、プロキシサーバを通してルーティングする、インターネットプロトコルである。ＳＯＣＫＳ５は、権限が与えられたユーザのみがサーバにアクセスし得るように、認証をさらに提供する。
利点：
・デフォルトサーバの簡潔性。
・動作可能のＳＯＣＫＳクライアント。
欠点：
・デフォルトサーバ上の「グレイーリストされた」プリスチンマシン（商標）−プリスチンマシン（商標）リクエストを継続することは不可能。
・異なるゲスト実装（Ｗｉｎｄｏｗｓ、Ｌｉｎｕｘなど）。
・全てのアプリケーションからの接続を傍受する問題。
・ゲスト上の傍受を避けることが容易。
・ＴＣＰのみ。
【００９４】
２．ホストのカーネルスペース内のＩＰトンネル実装。
利点：
・全てのＬ４プロトコルでの動作。
・プリスチンマシン（商標）通信に対するプリスチンマシン（商標）と、同一の認証および暗号化機能を使用。
・全てのゲストプラットフォームに関する単一の実装。
欠点：
・デフォルトサーバ内部のカーネルモジュール。
・プリスチンマシン（商標）に戻る、パケットに関するデフォルトサーバ上の実装ルーティングシステム。
【００９５】
図１とともに図１２は、図１で最初に説明したスナップショットシステム１５の機能ブロック図である。スナップショットシステム１５の目的は、任意の変更がＯＳ状態を破損させた場合に、ロールバック能力を保証することである。多機能ゲストＯＳ１６は、最初に、初期状態７３８から起動し、それから、全てのそのファイルを、デルタ７４０と呼ばれるスナップショット中に保存する。スナップショットシステム１５は、スペシャルサービスデルタデーモン７３６を用いてホストＯＳ１２によって制御される。多機能ゲストＯＳ１６からの全てのディスクＩ／Ｏオペレーションは、ネットワークブロックデバイス（ＮＢＤ）７３４仮想デバイスを経由して、デルタデーモンに行く。デルタデーモン７３６は、デルタファイル７４０を用いて、このオペレーションを処理する。スナップショットシステム１５は、バイナリのスナップショットを使用し、２つの状態の間の全てのデルタは、バイナリのオペレーションを用いて作られる。デルタデーモン７３６は、次の部分：Ｉ／Ｏプロセッサ、デルタマーカー、およびマージャーを含む。Ｉ／Ｏプロセッサは、ゲストＯＳからのＮＢＤ読み取りおよび書き込み操作を完了させるために使用される。当該システムが最初に開始する場合、最初のイメージのみが存在する。デルタマーカーは、新たなデルタファイル７４０を作成し、最初のイメージおよび以前のデルタ７４０からのデータを用いてリクエストされた全ての変更データを、そのファイルに書き込む。全ての読み取りリクエストは、最初のイメージおよび全ての以前のデルタを用いた処理結果である。データは、最新のデルタにのみ書き込む。最初のイメージおよびデルタの配列は、安定状態である。デルタマーカーは、タイマーによって新たなデルタを作成するサブシステムである。マージャーは、デルタファイル７４０が、それらの古さ（ａｇｅ）に起因して個々に維持する必要がもはやない場合に、２つの次のデルタを一緒に、新たな共通デルタファイル７４０内にマージするサブシステムである。
【００９６】
図１に示す周辺機器デバイスドライバーのためのパススルー１７サブシステムは、ホストオペレーティングシステム１２のみが周辺機器１９に直接的なアクセスを有するが、ゲストＯＳ１４は、ホストデバイスに変換される多重の個々の仮想デバイスを作成するためのユーザ機能を発揮する必要があり、性能および開発努力の観点から非効率である場合に、以下の問題を解決する。本発明の実施態様は、ゲストデバイスドライバーをホスト周辺機器メモリおよび割り込み要求シグナル（ＩＲＱ）へ直接的に指し示す、薄い中間レベルを作成することによって、解決策を提供する。
【００９７】
特定の実施態様では、多機能ゲストＯＳ１６は、搭載されている全ての周辺機器１９へのアクセスを有する（なぜならばそれは、ハードウェア上にインストールされたシステム内で使用されるので）。そのような周辺機器１９を使用するために、プリスチンマシン１１は、ハードウェアおよびゲストカーネル内部のデバイスドライバーの間の透過的な通信を可能にするパススルー特性を有する。３つの資源が、デバイスとドライバーとの間の通信に参加する−割り込み、ポートＩＯ、メモリマップ（ｍｅｍｏｒｙ  ｍａｐｐｅｄ）ＩＯ、および動的メモリ割り当て（ＤＭＡ）。割り込み、ポートＩＯ、およびメモリマップＩＯの転送は、ＱＥＭＵおよびカーネルに基づく仮想マシン（ＫＶＭ）内に実装される。ＤＭＡ転送は、ホストおよびゲストカーネル内の薄い汎用のリダイレクションドライバーを用いてなされる。ゲストカーネル内のドライバーは、ＤＭＡメモリ割り当てリクエストを傍受して、割り当てリクエストをホストＯＳ１２上のドライバーに送信する。ホストＯＳ１２上のドライバーは、リアルＤＭＡ割り当てを作成し、その結果、この新たなメモリエリアは、新たなメモリスロットとしてゲスト仮想マシンＯＳ１６内に再マッピングされる。これは、デバイス内および特定のデバイスのゲストドライバー内の同一のＤＭＡメモリの使用を可能にする。他の実施態様では、メモリ管理ユニット（ＭＭＵ）などのような代替の技術が用いられ得ることが理解されよう。
【００９８】
本発明の実施態様では、および例えば、モデルシステム１０の真正性は、セキュリティ保護された通信のためのプライベート鍵の維持に基づく。システム１０は、データ交換に非対称暗号化アルゴリズムを使用する。それぞれのプリスチンマシン１１は、それ自体のプライベート鍵を使用する。典型的に、プライベート鍵は一時的であり、鍵は定期的に再生成する。公開鍵は、セキュアストレージを用いてプリスチンマシン間に散布または配布される。
【００９９】
図１３は、本発明の一実施態様に係る、プリスチンマシン１１ＰＰのための、ピアツーピアでのセキュア通信に関する機能ブロック図である。プリスチンマシンピアツーピアシステム１１ＰＰの実施態様は、データ傍受およびセンシティブなデータ漏洩のリスクを取り除くために、モバイル機器間のセキュア通信に使用される。プリスチンマシンピアツーピアシステム１１ＰＰは、スマートフォン、タブレット、または任意の他のポータブルコンピューティングおよび通信デバイスのような、ユーザの通信デバイス上にインストールされ得る。プリスチンマシンピアツーピアシステム１１ＰＰの主なコンポーネントは、ホストオペレーティングシステム１２、多機能ゲストオペレーティングシステム１６、セキュアゲストオペレーティングシステム１４、ローカルセキュアストレージ１１８Ｌ、ネットワークコントローラー１３、スナップショットシステム１５、名前解決サーバ、および、ダイヤラーアプリケーションを備える。特定の実施態様では、ＡＲＭ中央処理装置は、ｘ８６  ＣＰＵまたは他の公知の適合するプロセッシングアーキテクチャに関するのと同一の、ホストＯＳ１２に関する機能を使用し得る。ＡＲＭ  ＣＰＵ上で動作する特定の実施態様に関して、ゲストオペレーティングシステム１６は、ハイパーバイザー上で作動し、そこは、ゲストは、ローカルセキュアストレージ１１８Ｌの隔離パーティション１２２Ｌへの書き込みのみアクセスを有する。
【０１００】
図１９に示されるピアツーピア実施態様について続けて、セキュアゲストオペレーションシステム１４は、多機能ゲストＯＳ１６の以前の利用可能なスナップショットから起動する。特定の実施態様では、セキュアゲストオペレーションシステム１４は、周辺機器１９およびネットワーク２８へのアクセスを有さない。セキュアゲストオペレーションシステム１４は、クローズドオペレーションシステムであり、ローカルセキュアストレージ１１８Ｌの隔離パーティション１２２Ｌへの読み取りのみアクセスを有する。このシステムを使用する主な目的は、データ漏洩を避けるために、ローカルセキュリティ保護されたストレージ１１８Ｌの隔離パーティション１２２Ｌからのプライベートデータを使用することである。示される実施態様では、多機能ゲストオペレーションシステムＯＳ１６は、ホストＯＳ１２によって制御されるローカルセキュリティ保護されたストレージ１１８Ｌへのアクセスを有する。ローカルストレージ１１８Ｌは、このノードのみをサポートし、いかなる他のデバイスにも接続され得ない。ローカルセキュアストレージ１１８Ｌは、ただ１つの隔離パーティション１２２Ｌのみ備える。ネットワークコントローラー１３およびスナップショットシステム１５は、上記の図１および図３の実施態様について説明したように作動する。図１４に示される名前解決サーバ１５２Ｎは、ピアツーピアエンドポイント１５０ＰＰ間でデータパケットをルーティングするために用いられ、そのオペレーションは図１３に示した。名前解決サーバ１５２Ｎは、それがルーティングする（ｒｏｕｔ）データパッケージ内のデータに関する情報を有さない。名前解決サーバ１５２Ｎは、ＴＣＰ／ＩＰスタックのトランスポート層のためのネットワークサーバアプリケーションである。名前解決サーバ１５２Ｎは、トラフィックをルーティングするだけであり、第三者ロガーに関するパケットを傍受する能力を有さない。ノードおよびサーバの間の通信は、ノードのみによって集められておよび処理される離散的で暗号化されたパケットからなる。名前解決サーバ１５２Ｎの使用は、ストリームセッションを維持する必要がないようにトンネルするよりも良いアプローチである。実施態様では、名前は、電話番号、ｅ−メール、または他のタイプのエイリアスであってよい。本発明の実施態様では、ダイヤラーアプリケーションは、ネットワーク上で同一プログラムに電話をかけるプログラムである。オーディオストリームは、小さな暗号化されたフラグメント（テキスティング／添付の転送など）に分割されて、これらのフラグメントは、名前解決サーバ１５２Ｎを通って受信者に送信される。
【０１０１】
図１５は、分岐したオペレーティングシステムを備えるプリスチンマシンの一実施態様のクラウドベースの実装８００の略図である。プリスチンクラウド８００の実施態様は、アクセス可能なノード内部で計算中のデータが蓄積および漏洩され得ないことを保証するクラウド内部のプライベートデータのセキュリティを制御する。また、プリスチンクラウド８００は、メモリスクレイピングのリスクを伴わずに資源の制御を保証する。
【０１０２】
プリスチンクラウド解決策８００は、クラウド資源が、権限のない方法で情報をシェアするリスクを含まないセキュアなプリスチンノードによってのみ蓄積可能であることを保証する。プリスチンクラウド８００の特定の実施態様は、状態−非依存性の計算ノードによってのみ動作する。プリスチンクラウド解決策８００の一実施態様の主なコンポーネントは、ホストノード１２Ｎ、セキュアゲストノード１４Ｎ、セキュアゲストノードのクローン１４Ｃ、セキュリティ保護されたクラウド資源、ネットワークコントローラー１３、および、クラウドプライベートネットワークコンポーネント８０２を備える。クラウドシステム８００の実施態様は、オープンスタック上で同時に動作する３つのコンピューティングノード：ホストノード１２Ｎ、セキュアゲストノード１４Ｎ、および、セキュアゲストのクローン１４Ｃを備える。ホストＯＳ  １２Ｎは、セキュアストレージに対するゲストアクセス１４Ｎの制御をとる。また、ホストＯＳ  １２Ｎは、プライベートネットワーク８０２を用いて、ゲスト１４Ｎおよびゲストのクローン１４Ｃネットワークを制御する。ホストノード１２Ｎは、プリスチンクラウド８００のユーザにアクセス不可能である。
【０１０３】
一実施態様では、プリスチンクラウド８００の使用のためのアルゴリズムは、以下のとおりである：ユーザは、ホスト１２Ｎによって制御されるネットワーク上にゲストノード１４Ｎへのデータリクエストを作成し、ホスト１２Ｎは、データリクエストを認証して、そのデータリクエストをゲストのクローン１４Ｃに送信し、ならびに、スタブデータリクエストをゲスト１４Ｎに送信する。続いて、ゲスト１４Ｎおよびクローン１４Ｃは、それらのデータを処理して、ホスト１２Ｎを通して結果を受信者に送信する。ホスト１２Ｎは、ゲスト結果をクローン結果と置き換える。ホスト１２Ｎは、そのボリューム（場合により、エンドポイントあたり）、コンテンツ、および他のポリシーに対する固執に従って、アウトバウンドトラフィックをレビューする。
【０１０４】
プリスチンクラウド８００の実施態様では、セキュリティ保護されたゲストＯＳ  １４Ｎは、メインのコンピューティングノードである。セキュリティ保護されたゲストＯＳ  １４Ｎは、ホスト１２Ｎによって与えられたセキュアストレージに対する完全なアクセスを有する。セキュリティ保護されたゲストＯＳ  １４Ｎは、ユーザデータおよびサービスを含む。セキュリティ保護されたゲストＯＳ  １４Ｎは、ホストプライベートネットワーク８０２上のネットワークに対するアクセスを有する。セキュリティ保護されたゲストのクローン１４Ｃは、セキュリティ保護されたゲスト１４Ｎと同一のイメージから開始されるノードであり、ユーザにとってアクセス可能でなく、ホストプライベートネットワーク８０２を使用してネットワークに接続される。
【０１０５】
プリスチンクラウド８００の実施態様では、セキュリティ保護されたクラウド資源の例は、オブジェクトストレージまたはブロックストレージであり得る。セキュリティ保護されたクラウド資源は、プリスチンノードへ通るその消費を制限する特別なトラックを備える。セキュリティ保護されたクラウド資源は、標準的なクラウド（オープンスタック）アプリケーションプログラムインターフェース（ＡＰＩ）を通して呼び出される。ホストオペレーティングシステム１２Ｎは、オープンスタックＡＰＩを用いて、この資源に対する完全なアクセスを有する。ホスト１２Ｎは、透過的に、このパーティションへのアクセスをセキュアゲストノード１４Ｎにリダイレクトする。プリスチンクラウド２００の実施態様で使用されるネットワークコントローラー１３は、データリクエストをゲスト１４Ｎおよびゲストノードのクローン１４Ｃにルーティングし、認証を実行し、そして、ゲスト１４Ｎおよびゲストのクローン１４Ｃからアウトバウンドデータをルーティングする、ホスト１２Ｎ上のソフトウェアであり得る。プリスチンクラウド８００の実施態様では、クラウドプライベートネットワーク８０２は、プリスチンクラウド８００において使用される様々なコンポーネント間でデータを共有するために使用される。
【０１０６】
図１６は、分岐したオペレーティングシステムを備える、プリスチンマシンの図１５のクラウドベースの実装８００の拡張である、プリスチンデータベース９００の一実施態様のブロック図を示す。プリスチンデータベース９００の主なコンポーネントは、ホストノード９０２Ｎ、セキュアゲストノード９０４Ｎ、データベースノード９０６、資源、および、移行ユーティリティである。
【０１０７】
ホストノードＯＳ  ９０２Ｎは、図２１に上述した同一の機能を有し、資源への認証アクセスおよびセキュリティ管理を担う。また、ホストノードＯＳ  ９０２Ｎは、クオータによって、データベースノード９０６からのアウトバウンドデータ転送も制御する。一実施態様では、セキュリティ保護されたゲストＯＳ  ９０４Ｎは、データベースソフトウェアおよび資源の間のサービスプロバイダーインターフェース（ＳＰＩ）アダプター、アセンブリ、およびディスアセンブリデータを提供する、ステートレスなコンピューティングノードである。セキュリティ保護されたゲストＯＳ  ９０４Ｎは、メインのコンピューティングノードであり、ホスト９０２Ｎによって提供されるセキュアストレージに対する完全なアクセスを有する。セキュリティ保護されたゲストＯＳ  ９０４Ｎは、ユーザデータおよびサービスを含み、ホストプライベートネットワーク上のネットワークへのアクセスを有する。また、セキュリティ保護されたゲストＯＳ  ９０４Ｎは、移行ツールも備える。データベースノード９０６は、コンピューターステートフルノードである。データベースノード９０６は、図１７にさらに説明される構造化照会言語（ＳＱＬ）ＡＰＩ  １００２を提供するデータベースソフトウェア（すなわち、ＰｏｓｔｇｒｅＳＱＬ）を備える。
【０１０８】
図１７は、論理フローを示すブロック図である。論理データフロー１０００は、データを一時的なデータベースキャッシュ１００４に転送して、サービスプロバイダーインターフェース（ＳＰＩ）アダプターを使用してデータを外部ストレージ１００６に転送するＳＱＬ  ＡＰＩ  １００２を備え、および、オブジェクトストレージ１００８に対するアセンブリ／ディスアセンブリ／セキュリティ管理１０１０を備える。特定の本発明の実施態様では、資源は、オープンスタックサービス（例えば、オブジェクトストレージＢＬＯＢ）によってサービス提供される資源である。この資源は、プリスチンクラウド実装の実施態様によってセキュリティ保護される（図２１）。資源インスタンスは、状態−非依存性アセンブリサービス（ブロック１０１０）によって、ＳＱＬテーブルのフラグメントに変換される。変更は、状態−非依存性ディスアセンブリサービス（ブロック１０１０）を用いて保存される。両方のサービスは、同一のゲストコンテナ内に存在することができ、または、性能向上の目的のために分割されることができる。セキュリティ管理（ブロック１０１０）は、ホスト９０２Ｎによって実行される外界との資源データの共有のための制約に関するポリシー施行を提供する。移行ユーティリティは、プリスチンデータベース９００の実施態様へ、およびそこから、バッチ移行データを提供し得るスクリプトのセットである。ネイティブ（ソースデータベースおよびＰｏｓｔｇｒｅ  ＤＢについて）バルク転送は、性能の理由のため可能であるときはいつでも使用されるべきであり、および、より高いレベルのデータベースオブジェクト、例えば、ビュー、トリガーおよびストアドプロシージャのロジックを維持するべきである。データベースコンピューティング環境では、ストレージの機能およびデータの検索は分岐していて、データストレージは、データベースのオブジェクトストレージ内にある。
【０１０９】
代替および拡張
特定の本発明の実施態様では、二層が１つの単純な分岐したＯＳでない場合でさえ、システム機能の実行が多重の層の間で分割される場合は、分岐したＯＳに加えて、システム機能の分岐が用いられ得る。例えば、ＣＡＰの克服は、分岐したＯＳによって主になされないが、コアのコンセプトをシステム機能の分岐に拡張することによってなされる。
【０１１０】
機能の分岐は、２つの別個の層にされる。アルゴリズムは、それぞれのスペース内で作動される部分とのみ分割されて、結果は組み合わされる。このようにして、より大きなスピードが生じて、ユーザには違いが見えない。分割は、２つの環境間の機能の構文解析方法を人が選択することにより判定され得て、または、マシンによってなされ得て、その後に、分割がされた時点で、機能分割は、マシン性能フィードバックに基づいて最適化され得る（スピードは、最初の分割に基づいて正規化されて、それから、アルゴリズムの一部が層の間に移動されて、スピードが上がった場合は、分割は維持されて、そうでない場合には戻されて、そして、何か他の方法を試す）。単純な分割機能の非限定的な例は、両方の層において機能をロードすることであり得て、第一の層内で単純に止める（ｔｕｒｎｉｎｇ  ｏｆｆ）態様と、第二の層内でのミラーイメージ（オン−オフ）態様である。同一の機能内に２つの矛盾するベクトルが存在する場合は、これらは自動的に分割されて最大のスループットを得る。
【０１１１】
特定の本発明の実施態様では、ネットワークＩ／Ｏ暗号化は、通常はシステムスペースまたはカーネルスペース内ではなくユーザシステム内で実行されるが、カーネルスペース内で実行される。分割暗号化プロトコルは、ユーザスペースが認証されてプロトコルが確立された時点で提供されて、それから、選択された全てのパケットは、カーネルスペース内で認証され得る。特定の実施態様では、リアルパケットおよびハッシュパケットは同一サイズであり、そして、もし識別（ＩＤ）スキームが同一であるならば、その結果、リアルパケットは、既存のプロトコルによってハッシュされ得る。結果として、暗号化に起因する著しい速度低下は存在しない。
【０１１２】
暗号化分割は、ゲスト分割がされるか、または、暗号化をするためにマシンが分割を実行するかのいずれかの場合に、上記と同様に最適化されて、それから、マシン性能に基づいて微調整（ｔｗｅａｋ）がされる。
【０１１３】
少なくとも１つの例示的な実施態様が前述の詳細な説明に示されているが、膨大な数の変型が存在することが理解されるべきである。また、例示的な実施態様（単数または複数）は単なる例示であり、説明された実施態様の範囲、適用性、または構成を限定することを決して意図しないことも理解されるべきである。むしろ、前述の詳細な説明は、例示的な実施態様（単数または複数）を実施するための便利な手引きを当業者に提供する。添付の請求項に記載の範囲およびその法律的な同等物を逸脱せずに、様々な変更が機能およびエレメントの配置においてなされ得ることが理解されるべきである。
【図１】
2018513505.tif 000004
【図２】
2018513505.tif 000005
【図３】
2018513505.tif 000006
【図４】
2018513505.tif 000007
【図５】
2018513505.tif 000008
【図６】
2018513505.tif 000009
【図７】
2018513505.tif 000010
【図８】
2018513505.tif 000011
【図９】
2018513505.tif 000012
【図１０】
2018513505.tif 000013
【図１１】
2018513505.tif 000014
【図１２】
2018513505.tif 000015
【図１３】
2018513505.tif 000016
【図１４】
2018513505.tif 000017
【図１５】
2018513505.tif 000018
【図１６】
2018513505.tif 000019
【図１７】
2018513505.tif 000020
【国際調査報告】
2018513505.tif 000021