(57)【要約】マルチレベルセキュリティシステムは、複数のパーティションに分割可能な記憶媒体と、前記複数のパーティションに結合可能なファイルシステムと、複数のエンクレーブとを含む。各エンクレーブにはセキュリティ分類レベルが割り当てられる。各エンクレーブは、記憶媒体の異なる記憶パーティションに存在する。記憶媒体に記憶されたデータは、エンクレーブ毎に暗号的に分離されて蓄積される。ディスクブロックレベルで暗号化分離が行われることによって、個々のブロックの読み取りと復号が可能になる。システムには、エンクレーブ間での情報へのアクセスを管理するシステムセキュリティポリシーを実施するリファレンスモニタも含まれる。リファレンスモニタは、第１の分類レベルを有するエンクレーブを、第１の分類レベルよりも低い第２の分類レベルを有するエンクレーブへと安全に読みおろすことおよび第１の分類レベルを有する別のエンクレーブに書き込むことを可能にする。
2017537381.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティションに分割可能な記憶媒体と、
前記複数のパーティションに結合可能なファイルシステムと、
各々にセキュリティ分類レベルが割り当てられた複数のエンクレーブであって、前記複数のエンクレーブの各々は、前記記憶媒体の異なる記憶パーティションに存在し、前記記憶媒体に記憶されたデータは、エンクレーブごとに暗号的に分離されて蓄積されており、ディスクブロックレベルで暗号化分離が行われることによって個々のブロックの読取りおよび復号化が可能になる、前記複数のエンクレーブと、
前記複数のエンクレーブ間での情報へのアクセスを管理するシステムセキュリティポリシーを実施するリファレンスモニタであって、前記複数のエンクレーブのうち第１の分類レベルを有するエンクレーブを、前記複数のエンクレーブのうち前記第１の分類レベルよりも低い第２の分類レベルを有する別のエンクレーブへと安全に読みおろすことおよび前記複数のエンクレーブのうち前記第１の分類レベルを有する別のエンクレーブに書き込むことを可能にする前記リファレンスモニタと
を備える、マルチレベルセキュリティシステム。
【請求項２】
データ処理装置によって実行するためのプログラム命令を具現化する非一時的なコンピュータ読み取り可能媒体であって、前記プログラム命令は、複数の異なるセキュリティ分類レベルに分類された情報を、当該情報のデータ分離を維持しながら、送信するように前記データ処理装置を適合させるものであり、前記プログラム命令が、
記憶媒体に記憶された情報を複数の重なり合わないパーティションに分割することにより、複数の異なるセキュリティドメインを規定する複数のエンクレーブを形成すること、
前記複数のエンクレーブの各々にセキュリティ分類レベルを割り当てること、
各セキュリティ分類レベル用の固有鍵を用いて前記複数の重なり合わないパーティションの各々を暗号化すること、
前記複数のエンクレーブ間での情報の流れを管理するシステムセキュリティポリシーであって、第１の分類レベルを有する第１のエンクレーブを、前記第１の分類レベルよりも低い第２の分類レベルを有する第２のエンクレーブへ安全に読みおろすことおよび前記第１の分類レベルを有する第３のエンクレーブに書き込むことを可能にする前記システムセキュリティポリシーを実施すること
を備える、非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マルチレベルの安全な情報取得システムに関する。より詳細には、本開示は、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするためのマルチレベルセキュリティシステムおよびその方法に関する。
【背景技術】
【０００２】
企業や政府には、守秘性、完全性および／またはリリース性を保護しなければならない分類済のまたは他の高価値情報を管理するための高保証のマルチレベルセキュリティ（ＭＬＳ）システムを構築するための検証可能な安全なプラットフォームが必要である。
【０００３】
米国国防総省（ＤｏＤ）は、グローバルインフォメーショングリッド（ＧＩＧ）に、米国のネットワーク中心戦争やネットワーク中心作戦を支援するための主要な技術的枠組みとなることを委任している。この指令の下で、先進的な兵器プラットフォーム、センサーシステム、指揮統制センターはすべて最終的にはＧＩＧを介してリンクされることになっている。ネットワーク中心作戦（ＮＣＯ）は、ＧＩＧ内の新しいシステムと従前のシステムとの間のすべてのセキュリティレベルでの情報共有によって特徴付けられる。これらのシステム間で及びシステム内でやりとりされる情報は、軍事要員を保護するとともに任務を危険にさらさないよう安全に共有する必要がある。商業分野では、有力な競合企業が情報優位性を発達させ、ネットワーク中心作戦へ移行することで競争上の優位性に転換している。
【０００４】
ＤｏＤに関する現在及び新興のドクトリンに基づくと、ネットワーク中心戦争（ＮＣＷ）機能は、情報技術によって部分的に実現される情報の優位性を、地理的に分散した部隊の堅牢なネットワーキングを通じて戦闘力の強化に結び付けようとする。ＮＣＷはネットワークよりもネットワーキングに関することであり、これはネットワーク中心部隊によって生じ得る増強戦闘力に関することである。堅牢にネットワーク化された部隊では情報共有が向上し、ひいては、情報の質と状況の共有認識が高まる。状況の共有認識は協調と自己同期を可能にし、命令の持続可能性および速度を向上させ、ひいては、任務の有効性を劇的に向上させる可能性を秘めている。これらの機能は、ネットワーク化戦闘空間内のすべてのプレイヤーに共通の作戦イメージ、より正確には共通の作戦の理解を高めるのに役立つ。本質的に、ＮＣＷは戦闘空間内の知識のある実体を効果的に結び付けることによって情報優位性を戦闘力に変換する。
【０００５】
米国空軍（ＵＳＡＦ）および他の国防総省労務および部局は、分類されたデータの保護と国家安全に関する機密情報の確保のためにＭＬＳソリューションを必要としている。例えば、ＭＬＳ動作は、搭載式の航空機プラットフォームネットワーク接続性を提供するための前提条件である。政府のセキュリティレベルには、機密（ＴＳ）、極秘（Ｓ）、秘（Ｃ）、区分外（Ｕ）がある。これらのＭＬＳセキュリティレベルには、（例えば特別アクセス必要（ＳＡＲ）等の）「必知事項」分類ラベルや、（例えば、陸軍、海軍、国防総省等の）組織制限、および／または時間制限が追補されることがある。区分外カテゴリには取扱注意区分情報（Ｓｅｎｓｉｔｉｖｅ  Ｃｏｍｐａｒｔｍｅｎｔｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ：ＳＣＩ）と特別アクセスプログラム（ＳＡＰ）が含まれる。
【０００６】
ネットワーク中心戦争およびネットワーク中心作戦においてセキュリティ分類レベルの異なるネットワーク間で情報を効率的に転送することは困難である。コンピュータセキュリティポリシーの一例は、Ｂｅｌｌ−ＬａＰａｄｕｌａ（ＢＰＬ）セキュリティモデルである。このＢＰＬモデルは、プロセスとサブジェクト（データオブジェクト）の両方に対するＭＬＳセキュリティレベルの支配といった概念を使用する。ＢＰＬモデルのプロセスルールのいくつかの例には、ＮＲＵ（Ｎｏ  Ｒｅａｄ  Ｕｐ、すなわち、より低いセキュリティレベルのものがより高いセキュリティレベルの文書を読むことを禁止）と、ＮＷＤ（Ｎｏ  Ｗｒｉｔｅ  Ｄｏｗｎ、すなわち、上位レベルが低いＭＬＳレベルに書き込むことを禁止）がある。この方法は、メモリ管理ユニットをしばしば含む専用マイクロプロセッサハードウェア機能を、正しく実装された専用オペレーティングシステムカーネルに結合することに基づく。所定の重要部分が設計され正しく実装されれば、敵対的な要素による侵入が絶対に不可能であることを保証する、安全なオペレーティングシステムの土台を形成する。この機能は、構成がセキュリティポリシーを課すだけでなく、理論上はそれ自体を完全に腐敗から保護するために有効にされる。一方、通常のオペレーティングシステムでは、この最大レベルのセキュリティを保証する機能がない。通常のオペレーティングシステムを含むシステムアーキテクチャの例を図１に示す。
【０００７】
情報セキュリティ評価のためのコモンクライテリア（コモンクライテリアまたはＣＣと略記）は、コンピュータセキュリティ認証についての国際標準（ＩＳＯ／ＩＥＣ１５４０８）である。コモンクライテリアは、コンピュータシステムのユーザがセキュリティ機能と保証要件を指定できるフレームワークである。情報技術（ＩＴ）製品またはシステムの評価保証レベル（ＥＡＬ１〜ＥＡＬ７）は、コモンクライテリアセキュリティ評価の完了後に割り当てられる数値等級である。より高いＥＡＬは特定の認証を得るために満たさなければならない追加の保証要件を反映している。ＥＡＬレベルは、システム自体のセキュリティを測定するものではなく、システムがどのレベルでテストされたかを簡単に記述する。
【０００８】
特定のＥＡＬを達成するためには、コンピュータシステムは一般的に特定の保証要件を満たさなければならない。これらの要件のほとんどは、設計文書化、設計分析、機能テスト、および／または侵入テストを含む。認証されたシステムに割り当てられたＥＡＬ数値は、そのシステムがそのレベルのすべての要件を完了したことを示す。場合によっては、評価は特定のＥＡＬに対して必要とされる最低要件を超える保証要件を含むように拡張することができる。正式には、これはＥＡＬ数値の後に付される単語によって示され、通常は付加的要件を示すコードのリストで示される。省略形として、ベンダーはしばしば拡張された要件を示すために「プラス」記号（ＥＡＬ４＋のように）を単に追加することがある。
【０００９】
上位ＥＡＬには、下位のＥＡＬよりも詳細な文書化、分析、およびテストが含まれる。したがって、一般に、より高いＥＡＬ認証を取得するには低いＥＡＬを達成するよりも多くの金銭と時間がかかる。一部の組込みアビオニクスシステムは、システム上に存在するすべてのデータをすべてのシステム常駐データの集合分類レベルで分類されたものとして扱わなければならないことを意味する「システムハイ（ｓｙｓｔｅｍ  ｈｉｇｈ）」分類プロトコルで動作する。システムハイで動作することは、システムハイよりも低レベルの出力を生成することが難しいという欠点を有し、この欠点により、システムが同じレベルではない他のシステムと協調して動作することが阻害される。これは、他のネットワークシステムとのデータ共有を制限および／または遅延させることによってシステムパフォーマンスに悪影響を及ぼし、情報共有の改善という目標と直接対立する。システムハイで動作することは、システム運用者がシステムに接触するすべての人員をホストされているすべてのデータの集約分類に対してクリアする必要があることによって、システムを所持するための総コストも増加させる。複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするもう１つのアプローチは、セキュリティエンクレーブごとに複数の分離したファイルストアを維持し、各ファイルストアにそれ自身のデータに加えて下位エンクレーブの完全なコピーを持たせることである（例えば、秘密ファイルストアが区分外ファイルストアの完全なコピーを持つ）。これは、重量要件及び電力要件と各エンクレーブでのデータの冗長コピーのための無駄なディスクスペースとにおける欠点である。別のアプローチでは、ファイルシステムは、個々のディスクブロックの代わりに全ファイルを暗号化するように構成される。この方法の欠点は、全ファイルのどこかの部分を読めるようにする前に、全ファイルをディスクから読み出して復号化する必要があることである。より高度な論理抽象化でセキュリティソフトウェアを実行すると、リークやカバートチャネルの排除が難しくなる。
【００１０】
分離カーネルとして知られるＭＩＬＳ（複数の独立したレベルのセキュリティ）オペレーティングシステムが、完全なデータ分離ひいてはＭＬＳ動作を提供すべく開発された。ＭＩＬＳは分離と情報フロー制御の概念に基づいたコンポーネントベースの高保証セキュリティコンピュータアーキテクチャである。分離カーネルを使用するオペレーティングシステムを含むシステムアーキテクチャの例を図２に示す。ＭＩＬＳは、未信頼コンポーネントと信頼できるコンポーネントの両方をサポートする分離メカニズムを利用して実装されるため、トータルのセキュリティソリューションが、バイパス不可で、評価可能で、常に呼び出され、改ざんされないことを確実にする。あるＭＩＬＳソリューションは、セキュリティコンポーネントと信頼できる構成とを独立に評価できるようにする。ＭＩＬＳシステムと呼ばれることもあるＭＩＬＳソリューション組込みシステムは、１つまたは複数の分離メカニズム（分離カーネル、分離通信システム、物理的分離など）を採用してデータとプロセスの確実な分離を維持する。ＭＩＬＳシステムは、同じセキュリティドメイン内でのまたは信頼できるセキュリティモニタ（アクセス制御ガード、ダウングレード、暗号デバイスなど）を介するコンポーネント間のみで情報フローを許可することによって、１つまたは複数のアプリケーション／システム固有のセキュリティポリシーの実施をサポートする。この種のシステムの中には、組み込みアビオニクスシステムまたは複数のネットワークシステムで一般的に見られる複数のプロセッサ間ではなく、単一プロセッサ上の異なる仮想アドレス空間の間でデータ分離が達成されるものもある。
【００１１】
ガロア社のトラステッドサービスエンジン（ＴＳＥ）は、ＭＩＬＳ分離カーネルにおいて読みおろし（ｒｅａｄ−ｄｏｗｎ）式ＭＬＳアクセス制御を提供する。このＴＳＥは、物理的に分離した複数のディスクを使用し、各ディスクの内容は平文で記憶され、それらのブロックアクセスコントローラが分離メカニズムである。ＭＬＳオペレーティングシステムには、高い信頼性のソフトウェアを多く必要とするトラステッドソラリスやＳＥ（Ｓｅｃｕｒｉｔｙ−Ｅｎｈａｎｃｅｄ）リナックスなどの低堅牢性から中堅牢性のシステムを含め、多数のＭＬＳファイルシステムがある。デスクトップ型システム上で動作するように開発されたＧｅｍｉｎｉ  Ｓｅｃｕｒｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＧＥＭＳＯＳ）のような堅牢性の高いオペレーティングシステムがいくつかある。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図３は、従来技術において知られている、単一のプロセッサ内での情報分離用の分離カーネルの抽象図を示す。図３に示すように、分離カーネルは、矢印によって示される情報フローのみが実際に発生することを確実にするように構成される。さらに、分離カーネルは、重要なタスクがバイパスされないことを保証するように構成される。分離カーネルのもう１つの目的は、各タスクのプライベートデータがプライベートのままであることを保証することであり、つまり、別のパーティションによるデータの受け取りおよび処理を他のパーティションが推論（ｄｅｄｕｃｔｉｏｎ）によってでさえ検出できないことを保証する。一パーティションが他のパーティションに気付かず、かつ、当該一パーティションが他のパーティションに対して透明であるように、当該一パーティションは設定される。
【００１３】
図３に示すように、分離カーネル（３００として示す）は、暗号化されていないデータ（すなわちレッドデータ）を例えばプロセッサまたはコンピュータの内部のパーティションから受信するように構成されたレッドプロトコルマシン（ＲＰＭ）３１０を含む。レッドプロトコルマシン３１０は、レッド検証手段（ＲＶ）３２１から前記プロセッサまたはコンピュータに送信されている情報も受信することができる。レッドデータがレッドプロトコルマシン３１０によって受信されると、そのレッドデータは、レッド情報の受信と、その情報を適切な暗号化アルゴリズム（Ｅ１、Ｅ２、Ｅ３）３３０、３３１、３３２にそれぞれルーティングすることが信頼されている、信頼できるレッドスイッチ（ＴＲＳ）３２０に転送される。ある構成例では、分離カーネル３００は、特定の情報機密度に一意的に関連する暗号化アルゴリズムを含むことができる。さらに、信頼できるレッドスイッチ３２０は、特定の機密度を有するデータを正しい関連する暗号化アルゴリズムにルーティングするように構成され得る。そのデータに適切な暗号化アルゴリズム３３０、３３１、３３２が適用されると、そのデータはブラック検証手段（ＢＶ）３４０に出力されるが、当該ブラック検証手段３４０は、暗号化アルゴリズムから出力されたデータが適切に暗号化されるように構成され得る。次に、ブラック検証手段３４０は、そのデータをブラックプロトコルマシン（ＢＰＭ）３５０に渡すことができる。ブラックプロトコルマシン３５０は、ブラック検証手段３４０から、及び、例えば記憶装置などのプロセッサまたはコンピュータ内の他の位置から、暗号化データ（すなわちブラックデータ）を受信するように構成され得る。ブラックプロトコルマシン３５０は、このデータを受信し、それをブラックスイッチ（ＢＳ）３４０に送る。ブラックスイッチ３４０は、ブラックプロトコルマシン３５０から暗号化データを受信し、さらなる処理のためにそのデータを適切な復号アルゴリズムにルーティングするように構成され得る。復号アルゴリズム（Ｄ１、Ｄ２、Ｄ３）３３３、３３４、３３５は、システムにおいて利用され得る特定タイプの分類化データと関連するものであり得る。さらに、復号アルゴリズム３３３、３３４、３３５は、関連する暗号化アルゴリズム３３０、３３１、３３２で暗号化されたデータを復号するように構成され得る。復号アルゴリズム３３３、３３４、３３５によってデータが復号された後、そのデータはレッド検証手段（ＲＶ）３２１に渡される。当該レッド検証手段３２１は、データが適切に復号されることを確実にするように構成されるとともに、データを例えば、さらなる処理のための、プロセッサ内の適切なパーティションに入力されるように、レッドプロトコルマシン３１０に送るように構成される。
【００１４】
分離カーネルは、異なる機密度の情報が所与のプロセッサ内でどのように流れることが許されるかの一例である。分離カーネルを使用することによって、オペレーティングシステムは、プロセッサ内の情報フローが、分類化情報へのアクセスを不適切に許可しないように信頼できるものであることを保証するように構成され得る。しかし、従来、分離カーネルはシングルプロセッサシステムに限定されていた。従来技術では、情報が異なる許可を有するコンピュータ間の共通のネットワーク上を流れ、所定の機密度または情報の分類にアクセスするように構成されている場合に、同じレベルの信頼が維持され得ることを証明できなかった。
【００１５】
したがって、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするためのマルチレベルセキュリティシステムが必要とされている。
【課題を解決するための手段】
【００１６】
本開示の一態様によれば、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするマルチレベルセキュリティシステムが提供される。前記システムは、複数のパーティションに分割可能な記憶媒体と、前記複数のパーティションに結合可能なファイルシステムと、各々にセキュリティ分類レベルが割り当てられた複数のエンクレーブとを含む。複数のエンクレーブの各々は、記憶媒体の異なる記憶パーティションに存在する。記憶媒体に記憶されたデータは、エンクレーブごとに暗号的に分離されて蓄積されている。ディスクブロックレベルで暗号化分離が行われることによって、個々のブロックの読み取り及び復号化が可能になる。システムは前記複数のエンクレーブ間での情報へのアクセスを管理するシステムセキュリティポリシーを実施するリファレンスモニタも含む。リファレンスモニタは、前記複数のエンクレーブのうち第１の分類レベルを有するエンクレーブを、前記複数のエンクレーブのうち前記第１の分類レベルよりも低い第２の分類レベルを有する別のエンクレーブへと安全に読みおろすことおよび前記複数のエンクレーブのうち前記第１の分類レベルを有する別のエンクレーブに書き込むことを可能にする。
【００１７】
本開示の別の態様によれば、データ処理装置によって実行するためのプログラム命令を具現化する非一時的なコンピュータ可読媒体が提供される。プログラム命令は、情報のデータ分離を維持しながら、異なるセキュリティ分類レベルで分類された情報を送信するためにデータ処理装置を適合させる。前記プログラム命令は、複数の異なるセキュリティ分類レベルに分類された情報を、当該情報のデータ分離を維持しながら送信するように前記データ処理装置を適合させるものである。プログラム命令は、記憶媒体に記憶された情報を複数の重なり合わないパーティションに分割することにより、複数の異なるセキュリティドメインを規定する複数のエンクレーブを形成すること、前記複数のエンクレーブの各々にセキュリティ分類レベルを割り当てること、前記複数のエンクレーブ間での情報の流れを管理するシステムセキュリティポリシーを実施することを含む。このシステムセキュリティポリシーは、第１の分類レベルを有する第１のエンクレーブを、前記第１の分類レベルよりも低い第２の分類レベルを有する第２のエンクレーブに安全に読みおろすことおよび前記第１の分類レベルを有する第３のエンクレーブに書き込むことを可能にする。
【００１８】
これらの特徴および利点および本明細書に開示された様々な実施形態の他の特徴および利点は、以下の説明および図面に関してより良く理解されるであろう。
【図面の簡単な説明】
【００１９】
【図１】通常のオペレーティングシステムを含むシステムアーキテクチャのブロック図である。
【図２】複数の独立したレベルのセキュリティ（ＭＩＬＳ）分離カーネルを含むシステムアーキテクチャのブロック図である。
【図３】従来技術において知られている単一のプロセッサ内での情報分離用の分離カーネルのブロック図である。
【図４】本開示の一実施形態によるマルチレベルセキュリティ（ＭＬＳ）システムアーキテクチャの概略図である。
【図５】本開示の一実施形態による複数のセキュリティレベルをまたぐ安全なファイル共有の方法を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするためのマルチレベルセキュリティシステム及びその方法の実施形態を説明する。同様の参照番号は、図中の説明を通じて類似のまたは同一の要素を指すことがある。
【００２１】
この説明は、「一実施形態では」、「実施形態では」、「いくつかの実施形態では」、または「他の実施形態では」という語句を使用することがあるが、これらは本開示に従う同一または異なる１以上の実施形態を参照することがある。
【００２２】
本明細書で使用されるように、用語「コンピュータ」は、一般に、目的に応じた方法で情報を変換する任意のものを指す。本説明において、「ソフトウェア」および「コード」という用語は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアの組み合わせに適用可能である。本明細書での目的のために、用語「データ処理装置」は、用語「コンピュータ」と交換可能である。
【００２３】
本説明で使用されているように、「リファレンスモニタ」は、一般に、アクセス決定が小さいソフトウェアのまたはハードウェアおよびソフトウェアのモニタを通過するようにすることという概念を指す。セキュリティ提供に効果的であるためには、リファレンスモニタの実装は一般的に以下のようなものである必要がある：非バイパスであること、つまり、システムのセキュリティポリシーの対象となる操作をシステムが実行するときに常に呼び出されること；改ざん防止性であること、つまり、セキュリティを実施する方法に影響する可能性のある変更から保護されていること；分析するのに十分に単純であること、つまり、独立した評価者達がそれを検査してセキュリティを正しく実施していることを確証を持って判断できるように小さく単純であること。これらの原則を満たすリファレンスモニタを実装するソフトウェアまたはハードウェアとソフトウェアは、セキュリティカーネルとして定義される。リファレンスモニタの概念は、システム全体のセキュリティを担うとともに保証できる、システム中の小さく単純なサブセットを特定するための基礎を提供する。このサブセットは、トラステッドコンピューティングベース（ＴＣＢ）と呼ばれる。ＴＣＢは、リファレンスモニタを実装し、物理的リソースだけでなく「信頼できるサブジェクト」を管理するセキュリティカーネルを含み得る。
【００２４】
本開示のマルチレベルセキュリティシステムまたはその要素についての一以上の実施形態は、示された方法ステップを実行するためのコンピュータ使用可能プログラムコードを有するコンピュータ可読記憶媒体を含むコンピュータ製品の形態で実装することができる。本明細書で使用する「コンピュータ可読媒体」は、一般に、コンピュータによってアクセス可能なデータを格納するために使用される任意の記憶装置を指す。
コンピュータ可読媒体の例は、磁気ハードディスク、フロッピーディスク（登録商標）、ＣＤ−ＲＯＭやＤＶＤ等の光ディスク、磁気テープ、フラッシュリムーバブルメモリ、メモリチップ、および／または機械可読命令を格納することができる他のタイプの媒体を含む。「非一時的な」コンピュータ可読媒体は、一時的な伝播信号であるもののみを除外したすべてのコンピュータ可読媒体を含む。
【００２５】
本開示の様々な実施形態は、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にし、蓄積データの分離を提供するように構成されたマルチレベルセキュリティシステムを提供する。
本開示のマルチレベルセキュリティシステムの実施形態は、一度に複数のレベルの複数のユーザを可能にするネットワークデバイスを提供する。
【００２６】
本開示の様々な実施形態は、複数のプロセッサにわたる複数の独立したセキュリティレベル（ＭＩＬＳ）モデルにおいて完全なデータ分離を提供する組み込みシステム、例えば埋め込みアビオニクスシステムでの使用に適したシステムアーキテクチャおよびネットワークソフトウェアアプリケーションを提供する。本開示のシステムアーキテクチャおよびネットワークソフトウェアアプリケーションにより、クライアントが引き続き、エンドユーザが既に訓練を受けており操作に慣れている、例えばマイクロソフトウィンドウズ（登録商標）、リナックス（登録商標）およびインテルなどのＣＯＴＳ（Ｃｏｍｍｅｒｃｉａｌ  Ｏｆｆ−Ｔｈｅ−Ｓｈｅｌｆ）のおよび／またはＧＯＴＳ（Ｇｏｖｅｒｎｍｅｎｔ  Ｏｆｆ−Ｔｈｅ−Ｓｈｅｌｆ）のオペレーティングシステムおよびアプリケーションを使用できるようになる。
【００２７】
本開示のマルチレベルセキュリティシステムおよびネットワークソフトウェアアプリケーションの実施形態は、複数レベルの蓄積データの高堅牢性分離を維持し、エンクレーブあたりの冗長ストレージハードウェアを排除し、タイムリーな読みおろしを可能にし、データを最低の固有レベルに保ち、および／または、データの重複コピー（例えば、区分外画像データベースのコピーを極秘レベルにて複製）の必要性を排除する。
【００２８】
本開示のネットワークソフトウェアアプリケーションの様々な実施形態は、クライアントが標準ネットワークファイルシステムを使用できるように、オープン標準インターフェイスを利用する。本開示のシステムアーキテクチャおよびネットワークソフトウェアアプリケーションの実施形態は、設計上の柔軟性を可能にするモジュール層を有する。たとえば、１つのファイルサーバを最小限の労力で別のファイルサーバに置き換えることができる。本開示のネットワークソフトウェアアプリケーションの実施形態は、様々なプロセッサアーキテクチャを使用して実装することができる。本開示の様々な実施形態は、クライアントが低セキュリティレベルに安全に「読みおろす」ことおよび同じセキュリティレベルで書き込むことを可能にするリファレンスモニタを実装する。低セキュリティレベルに安全に「読みおろす」この能力は、セキュリティレベル間の「エアギャップ」または「データダイオード」転送方法を排除し、最新で未複製の情報をユーザに提供する。本開示のネットワークソフトウェアアプリケーションは、任意の適切な数のエンクレーブに拡張可能である。
【００２９】
本開示のネットワークソフトウェアアプリケーションの実施形態は、トラステッドコンピューティングベース（ＴＣＢ）を最小化し、高保証環境（ＨＡＥ）パーティションで動作する複数の独立レベルのセキュリティ（ＭＩＬＳ）アプリケーションとしてそれを実行することによって認証可能なものとなる。ネットワークソフトウェアアプリケーションの非高保証部分は、標準的リナックスパーティションで実行されてよい。実施形態は、Ｎｏ  Ｒｅａｄ  Ｕｐ動作という「単純な」セキュリティプロパティと、Ｎｏ  Ｗｒｉｔｅ  ＤｏｗｎまたはＷｒｉｔｅ  Ｕｐ動作という「強力な」セキュリティプロパティとからなる修正Ｂｅｌｌ−ＬａＰａｄｕｌａポリシーモデルを実施することができる。
様々な実施形態は、読みおろし動作を可能にすることで、データ複製を回避し、スワップを減少させ、および／または各ドメインに対する並列データ記憶アーキテクチャを排除する。
【００３０】
本開示のネットワークソフトウェアアプリケーションの様々な実施形態は、データの暗号化および認証のためにガロアカウンターモード（ＧＣＭ）付き高度暗号化規格（ＡＥＳ）を利用することができ、および／または蓄積データのタイプ１暗号化を提供するインラインメディア暗号化装置（ＩＭＥ）に頼ることができる。ＡＥＳは、電子データを保護するために使用できる連邦情報処理規格（ＦｌＰＳ）で承認された暗号アルゴリズムを規定している。ＡＥＳアルゴリズムは、情報を暗号化（ｅｎｃｒｙｐｔ、ｅｎｃｉｐｈｅｒ）および復号化（解読）できる対称ブロック暗号である。暗号化は、データを暗号文と呼ばれる理解できない形式に変換し、暗号文の復号化は、そのデータを平文と呼ばれる元の形式に戻す。
ＩＭＥは、ハードドライブに格納されるものがすべて暗号化されるとともにハードドライブから取得されるものがすべて復号化されるようにコンピュータプロセッサとハードドライブとの間に「インライン」で配置されるメディア暗号化デバイスである。ＩＭＥは、コンピュータのＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）ハードドライブにタイプ１暗号化を提供する。ＩＭＥは、オペレーティングシステム（ＯＳ）を含むすべての物理セクタを暗号化する。コンピュータシステムとそのハードドライブの間にＩＭＥを物理的に配置すると、すべてのデータがＩＭＥを通過しなければならず、ＩＤＥハードドライブに暗号化されて格納される。ハードドライブから「呼び出された」ファイルのみが復号化される。ハードドライブは常に暗号化されたままである。
【００３１】
本開示のマルチレベルセキュリティシステムおよびネットワークソフトウェアアプリケーションを組み込みプラットフォームで使用する利点には、マルチレベルアーキテクチャに永続的ストレージを提供するために必要な重量および電力の節約が含まれる。本開示のマルチレベルセキュリティシステムおよびネットワークソフトウェアアプリケーションは、ＭＬＳアーキテクチャの一部として、データを固有の最も低いセキュリティレベルに保つことによって、組み込みプラットフォームがデータを処理することおよび複数のセキュリティレベルで通信することも可能にする。例えば、機密データを知るあるプラットフォームは依然として区分外チャネルにある区分外データを処理して出力することができる。
【００３２】
図１には、様々なアプリケーションとともに使用されるマルチレベルセキュリティ（ＭＬＳ）ファイルストア（ここではＭＦＳ５０と呼称する）のシステムアーキテクチャ１００の実施形態が示されている。ＭＦＳ５０は、複数のセキュリティレベルをまたぐ安全なファイル共有を可能にするネットワークソフトウェア機器であり、一般に、個別に異なる製品と交換可能な４つの層が含まれる。ＭＦＳ５０は一ファイルのブロックに対する暗号化およびアクセスを提供し、データベースなどの大きなファイルにとって重要なランダムアクセスをサポートする。ＭＦＳ５０は、ＮＦＳを使用してブロックレベルでアクセスされ、ディスク上の異なるパーティションにファイルを分離させる。ＭＦＳ５０には書き込み機能があり、ディスクパーティション全体に対するアクセスを透過的に提供する。いくつかの実施形態では、ＭＦＳ５０は単一の共有ディスクを使用する。
【００３３】
図１に示すように、システムアーキテクチャ１００は、ネットワークファイルシステム層１０、ファイルシステムおよびキャッシュコヒーレンシ層２０、ネットワークブロックデバイス層３０、およびＩＭＥおよびディスク層４０を含む。ネットワークファイルシステム層１０は、同じセキュリティレベルの複数のクライアントが共用ファイルシステムに読取りアクセスおよび書込みアクセスでアクセスできるようにする。ネットワークファイルシステム層１０は、一般的に使用されるネットワークファイルシステムであるが、航空機作戦システムで必要とされる冗長性とフェイルオーバーはサポートしていない。各ネットワークファイルシステムは、ドメインごとにそのクライアントがアクセス可能な１つの仮想ディスクを提供（たとえば、エクスポート）することとなり、そのディスクを除くクライアントレベルの全ては読み取り専用としてエクスポートされる。セキュリティポリシーは、読み取り専用のエクスポートによってこの層では実施されるものとして信頼されていないが、ソフトウェアスタックの中でハイのままで書きおろす試みを緩和する利点がある。
【００３４】
ファイルシステムおよびキャッシュコヒーレンシ層２０の一実施形態では、パーティションファイルシステムは標準的なリナックスｅｘｔ２ファイルシステムを実行し、それが「ローカル」ディスクへの唯一のアクセスを有すると仮定する。このデータレベルでのファイルシステムは、それに書き込むことができる。他のファイルシステムは、セキュリティポリシーに従ってそれから読み取るように構成することができる。リナックスはパフォーマンスを向上させるためにファイルシステムに組み込まれたキャッシュを有するが、複数のクライアントによる並列アクセス間でのコヒーレンシを維持するための別途の対策が行われなければならない。いくつかの実施形態では、このデータのレベルで書き込み可能とされたファイルシステムは、ファイルを更新するたびに、（例えば、ハブによってすべての読み取り専用ファイルシステムに転送される）一方向メッセージを送信する。このメッセージは、読み取り専用ファイルシステムに、それらのキャッシュが古く、ディスクからの読み取りの代わりに使用することはできないことを伝える。このファイルシステムおよびキャッシュコヒーレンシ層２０は、ファイルコンテキストオペレーションをブロック読み取りおよび書き込みに変換する。
【００３５】
ネットワークブロックデバイス層３０において、ネットワークブロックデバイスは、同じハードウェア上の異なるＭＩＬＳパーティションに位置し得るリモートディスクにブロックレベルの動作を移送する。ネットワークブロックデバイス（ＮＢＤ）クライアントとＮＢＤサーバとの間のリクエストは、セキュリティポリシーに関して監査され、データはドメインによって暗号化的に分離される。ＭＬＳ分離及びアクセス制御（ＭＳＡＣ）コンポーネントは、上位レベルパーティションの読み取り専用アクセスを実施し、認証済みソース由来の書き込まれたデータを暗号化／署名し、読み取りデータブロックを検証／復号して、正しいレベルの認証されたデータだけが読み戻されることを保証する「ｂｕｍｐ  ｉｎ  ｔｈｅ  ｗｉｒｅ」として働く。個々のディスクブロックは、各セキュリティドメイン用の固有鍵を用いて暗号化される。このプロセスは、ディスクブロックの復号化と検証に必要な、認証タグおよび初期化ベクトルを作成する。本開示によれば、暗号化と認証のこの組み合わせが分離メカニズムとして使用される。当該タグと初期化ベクトルは、暗号化されたディスクブロックとともに送信され、ＮＢＤサーバによって制御されるディスク上の一分離領域に書き込まれる。ＮＢＤサーバは、未信頼のリナックスゲストＯＳで動作し、物理ハードディスクに読み書きコマンドを送信する。
【００３６】
ＩＭＥおよびディスク層４０の一実施形態では、物理ディスクがＭＦＳ５０に取り付けられ、Ｉ／Ｏリナックスパーティションには分離カーネル構成を介して排他的アクセスが許可される。いくつかの実施形態では、ＩＭＥは、処理ボードとディスクとの間においてＭＦＳ５０の外部にある。ディスク全体の内容は、ＩＭＥが提供するタイプ１暗号化で保護される。ＩＭＥの存在は、ＭＦＳ５０の分離動作に対して透過的である。ＩＭＥは、蓄積データを保護するために使用される。
【００３７】
複数のシングルレベルファイルシステムを使用し、そのうちの１つが書き込みを行い他のいくつかが読み出す場合、それらファイルシステム全体にわたってキャッシュコヒーレンシを維持する必要がある。通常、リナックスファイルシステムはディスクの完全な制御を有しており、この目的のために構築されていない。図１に示すように、ファイルシステムおよびキャッシュコヒーレンシ層２０は、「ＦＳ  Ｍｏｄ」を含む。リナックスが使用されるＭＦＳ５０の一実施形態では、ＦＳ  Ｍｏｄは、ファイルが書き込まれると、全ての高レベル読み取り専用ファイルシステムにそのファイルのキャッシュの無効を知らせるために分離カーネルの単方向のセキュアプロセス間通信（ＳＩＰＣ）機能を使用してメッセージを送信するようにリナックスカーネルを修正することを含む。
【００３８】
＜ＭＬＳファイルストア（ＭＦＳ）駆動要件＞
ＭＦＳ５０の実施形態は、１つまたは複数の駆動要件を実装することができる。ＭＦＳ５０の駆動要件の例には、標準のリナックス仮想ファイルシステム（ＶＦＳ）インターフェイスを提供すること、異なる分類レベルのデータの分離を維持すること（例えば、区分外から機密／ＳＡＲ）、複数の異なるセキュリティレベルまたはパーティションをサポートすること、Ｎｏ  Ｒｅａｄ  Ｕｐ動作という「単純な」セキュリティプロパティと、Ｎｏ  Ｗｒｉｔｅ  ＤｏｗｎまたはＷｒｉｔｅ  Ｕｐ動作という「強力な」セキュリティプロパティとからなる修正Ｂｅｌｌ−ＬａＰａｄｕｌａポリシーモデルを実施し、サブジェクトのセキュリティレベルがオブジェクトのセキュリティレベルを卓越していれば、サブジェクトがオブジェクトを読むことができる（つまり、サブジェクトが読みおろし可能である）ようにすることが含まれる。いくつかの実施形態では、ＭＦＳ５０は、少なくとも５つの異なるセキュリティレベルまたはパーティションをサポートすることができる。
【００３９】
いくつかの実施形態では、ＭＦＳ５０は、ブロックレベルでデータを管理することが必要とされ得る。いくつかの実施形態では、そのファイルの全体が検証前に読まれる必要はない。ＭＦＳ５０は、ＥＡＬ６でまたは同等のもので評価可能であることが必要とされ得る。ＭＦＳ５０は、３２８メガビット／秒の持続速度でデータを転送することが必要とされ得る。ＭＦＳ５０は、所定の時間期間内にデータを損失せずに自律的にフェイルオーバーことが必要とされ得る。ＭＦＳ５０は、セキュリティ関連イベントの監査ログを作成することが必要とされ得、当該イベントには、ディスクフル；ディスクハードウェアエラーメッセージ；無効ブロックへのアクセスの試み；書きおろし（ｗｒｉｔｅ−ｄｏｗｎ）の試み；検証失敗が含まれる。ＭＦＳ５０とそのクライアントは、同じファイルシステムをマウントするすべてのノードに対するキャッシュを同期することが必要とされ得る。
【００４０】
＜ネットワークファイルサーバ駆動要件＞
ネットワークファイルシステムは、所定の時間期間内にデータを損失せず自律的フェイルオーバーをサポートすることが必要とされ得る。
ネットワークファイルシステムクライアントは、ソフトウェアを変更する必要がなく、または、クライアントと連携するように再コンパイルする必要がないように、リナックス仮想ファイルシステムインターフェイスをサポートするように供給されることがある。
ネットワークファイルシステムクライアントは、所定の時間期間内に、クライアント同士のおよび物理ディスクとのコヒーレンシを維持することが必要とされ得る。ネットワークファイルシステムに単一障害点がないことが必要とされ得る。
【００４１】
＜Ｉ−ノードおよびバッファキャッシュコヒーレンシ駆動要件＞
このモジュールは、同じファイルシステムをマウントしているすべてのノードに対するバッファとｉノードキャッシュを同期させることが必要とされ得る。ファイルが書き込まれると、ライター内のモジュールはＳＩＰＣ転送ハブに通知する。読み取り専用ファイルシステムノード内のモジュールは、ＳＩＰＣハブからの通知を受け取ると、指定されたファイルのｉノードおよびバッファキャッシュを無効にする。
【００４２】
＜セキュアプロセス間通信（ＳＩＰＣ）転送ハブ駆動要件＞
このハブは、１つのＳＩＰＣポートでデータを受信し、分離カーネルに設定された複数のＳＰＩＣポートに送信することが必要とされ得る。
【００４３】
＜ネットワークブロックデバイス（ＮＢＤ）駆動要件＞
ＮＢＤクライアントは、マウント可能なデバイスをリナックスＶＦＳに提供することが必要とされ得る。ＮＢＤクライアントは、すべてのブロックアクセスを処理用のＮＢＤサーバに送信することが必要とされ得る。ＮＢＤクライアントとサーバは、それらのメッセージに対し、オープンな共通標準インターフェイスを使用することが必要とされ得る。
ＮＢＤサーバは、１つの読み取り／書き込みクライアントおよび複数の読み取り専用ＮＢＤクライアントから同じデータストアへの同時アクセスをサポートすることが必要とされ得る。ＮＢＤは、毎秒８００メガビットの持続データ転送速度をサポートすることが必要とされ得る。
【００４４】
＜ＭＳＡＣ駆動要件＞
ＭＳＡＣは、レベルごとに別々の鍵で書き込まれたデータを暗号化することが必要とされ得、および／または、ＦｌＰＳ承認されたアルゴリズムを使用することが必要とされ得る。いくつかの実施形態では、システムはＦＩＰＳ１４０−２を使用してレベル４で認証され得る。ＭＳＡＣは、書き込まれた各ブロックを認証することが必要とされ得る。認証データは、ディスク上の分離パーティションに格納され得る。ＭＳＡＣは、高保証パーティションで動作するように開発される必要があり得る。
ＭＳＡＣは、ディスクから読み取られたデータのブロックがそのブロックに書き込まれた同じデータであることを検証することが必要とされ得る。ＭＳＡＣは、少なくとも５つの異なるセキュリティレベルまたはパーティションをサポートすることが必要とされ得る。ＭＳＡＣは、毎秒８００メガビットの持続データ転送速度をサポートすることが必要とされ得る。
ＭＳＡＣは、読み取り専用クライアントによるデータ書き込みを防止することが必要とされ得る。監査ログエントリは、その後にディスク上の一パーティションに書き込むことができる一パーティションにＳＩＰＣを介して送信され得る。監査可能イベントには、ディスクフル；単一パーティションであればハイサイドアプリケーションによる資源使用カバートチャネルを防止すること；多パーティションであれば低レベルディスクドライバおよび／またはハードウェアによる資源使用カバートチャネルを防止すること；ディスクハードウェア／ドライバからの他のエラーメッセージ；読みあげ（または範囲外のブロック）または書きさげの試み；検証失敗（不正な署名）；不正なブロック読み取りが含まれる。
【００４５】
＜ディスクドライバ駆動要件＞
いくつかの実施形態では、ディスクドライバはウインドリバーＳＫ上で動作するウインドリバーゲストＯＳパーティションで動作する。このゲストＯＳパーティションは未信頼のものである可能性がある。ディスクドライバは、毎秒８００メガビットの持続データ転送速度をサポートすることが必要とされ得る。いくつかの実施形態では、ディスクドライバは、ＩＭＥに取り付けられたディスクとインターフェイスすることができる。
【００４６】
読みおろし式ファイルシステムへの読取り専用アクセスはＭＦＳ５０の設計と機能にとって不可欠なので、すべての分散ファイルシステムがＭＦＳ５０のファイルシステムコンポーネントに対する機能要件を満たしているとは限らない。
【００４７】
＜ファイルシステム＞
ファイルシステムは、ディスク上のファイルを管理し、それらをブロックに書き込むが、オープンな共通標準に基づくものであってよい。ファイルシステムは、１つまたは複数のＭＦＳ５０要件、すなわち、ファイルの作成、追加、変更における迅速なコヒーレンシをサポートし得る。
ファイルシステムは、遅延なしで書き込みコマンドを発行するように構成されてよく、そうでなければ他のファイルシステムはどんな変更にも気づかないであろう。
【００４８】
ファイルシステムは、安定性および読み取り専用アクセスなどの付加的基準を満たすことが必要とされ得る。
ファイルシステムの論理層は、ハードリセット、接続損失、または他のサービス中断の場合にデータ破損を軽減するように構成され得る。
ファイルシステムは、ディスクの内容を変更しない読み取り専用としてマウントすることをサポートするように構成され得る。
【００４９】
＜ネットワークブロックデバイス（ＮＢＤ）サーバ＞
様々なＣＯＴＳネットワークブロック装置が、ＭＦＳ５０での使用に適する。本説明のために、一般化されたネットワークブロックデバイスをＮＢＤと呼ぶことがあり、ネットワークブロックデバイスと呼ばれる実装をＮＢＤ−１と呼ぶことがある。
【００５０】
ネットワークブロックデバイス（ＮＢＤ）は、ネットワーク接続を横断してハードウェアデバイスをエクスポートする。ＮＢＤを介してデバイスにアクセスするリモートシステムは、そのデバイスがローカルに接続されているかのように、それを利用することができる。ＮＢＤデバイスは、ファイルではなく固定サイズのデータブロックを操作する。ＭＦＳ５０のプロトタイプにおいて、ＮＢＤは、ネットワークファイルサーバとディスクコントローラとの間のデータプロトコルである。ＮＢＤクライアントは、ネットワークファイルサーバパーティション内で実行され、ブロックデバイスをカーネルに公開し、ブロックＩ／ＯリクエストをＳＩＰＣ経由でＭＳＡＣに転送する。ＭＳＡＣパーティションは、ＮＢＤサーバにリクエストを転送する前にデータに対するセキュリティ操作を実行し、その後に、そのディスクを表す実際のブロックデバイスに対する操作を実行する。
【００５１】
ＮＢＤは、１つまたは複数のＭＦＳ５０要件をサポートすることが必要とされ得る。ＭＦＳ５０のＮＢＤ要件の例には、ＮＢＤクライアントがリナックスＶＦＳにマウント可能なデバイスを提供すること；ＮＢＤクライアントがすべてのブロックアクセスを処理用のＮＢＤサーバに送信すること；ＮＢＤクライアントとサーバが、それらのメッセージに対しオープンな共通標準インターフェイスを使用すること；ＮＢＤサーバが、１つの読み取り／書き込みクライアントおよび複数の読み取り専用ＮＢＤクライアントから同じデータストアへの同時アクセスをサポートすること；ＮＢＤが毎秒８００メガビットの持続データ転送速度をサポートすること；ファイルの作成、追加、変更における迅速なコヒーレンシが含まれる。データはＮＢＤを通過して複数レベル間を流れる。ＮＢＤが書き込みを遅らせるかまたはデータキャッシュを試みると、レベル間パフォーマンスとデータ整合性が損なわれることとなる。
【００５２】
ＮＢＤは、プロトコルの単純さなどの他の基準をサポートすることが必要とされ得る。よりシンプルなＮＢＤプロトコルは、ＭＳＡＣをよりシンプルにし、信頼できるパーティションで実行する必要があるコードの量を削減する。ＵＤＰネットワークプロトコルを使用することによって、必要なハンドシェイクがないためにパフォーマンスが向上し、システムがシンプルになる。
【００５３】
ＮＢＤ（ここではＮＢＤ−１と呼ばれる）の実装は、ほとんどの主要なリナックスディストリビューションに含まれている。ＮＢＤ−１は、ウィンドリバーリナックス３．０におけるロード可能モジュールとして含まれている。ＭＦＳ５０と共に使用するのに適したＮＢＤ−１の例には、ｘＮＢＤ、ＡＴＡ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ、ＥＮＢＤ、およびＧＮＢＤが含まれる。
【００５４】
＜スケジューリング＞
この節では、ＭＦＳ５０パーティションのスケジュール方法について説明する。シンプルで固定されたスケジュール、すなわち、各パーティションが１つのサイクル中に１つのタイムスライスを取得する。例外：ＭＳＡＣはＩ／Ｏパーティションの前後に２回進む。交互の固定スケジュール、すなわち、ＭＳＡＣとＩ／Ｏパーティションが各ファイルシステムサーバ（ＦＳＳ）パーティションに従うことを除いて、固定スケジュールと同じである。時間寄付（Ｔｉｍｅ−ｄｏｎａｔｉｎｇ）、すなわち、ＭＳＡＣは、寄付された時間を使用して、必要に応じてＦＳＳおよびＩ／Ｏパーティションによって呼び出されるサービスパーティションである。
【００５５】
固定された単純なスケジュールは、構成が最も単純である。しかし、固定された単純なスケジュールは、ファイルシステムによって実行される書き込み操作と物理媒体へのコミットとの間の最長レイテンシとなる可能性がある。
さらに、固定されたスケジュールは、処理リソースの非効率的な使用をもたらす可能性がある。というのは、動作させるデータがないパーティションが固定されたウィンドウ期間にＣＰＵをアイドル状態にするからである。次のオプションは、固定された交互のスケジュールを使用することである。このスケジュールには、各ＦＳＳパーティションの後にＭＳＡＣまたは別々のＭＳＡＣパーティションを繰り返し呼び出すことが含まれる。これにより、ＳＫスケジュールを使用して、ＦＳＳリクエストのラウンドロビンサービスを実行できる。ただし、固定スケジューリングのアプローチは、ＭＳＡＣのアイドル呼び出しを引き起こす可能性がある。
【００５６】
時間寄付スケジュールでは、ＭＳＡＣはＳＫによって直接スケジューリングされない。代わりに、ＭＳＡＣは他のパーティションによって呼び出されるサービスパーティションとして動作する。そのパーティションの時間をＭＳＡＣサービスに寄付する時間寄付ＳＩＰＣメッセージを他のコンポーネントが使用することが必要とされ得る。ＭＳＡＣがリクエストの処理を終了するまでは、アプリケーションのパーティションが通常スケジュールされるたびにＭＳＡＣがスケジュールされることとなる。その結果、リクエストがすぐにアドレッシングされるため、ＳＩＰＣバッファが小さくなる。ＭＳＡＣは必要なときにのみ呼び出されるため、専用の（および潜在的に未使用の）タイムスライスが少なくなる。ネットワーク接続されたファイルシステムサーバパーティションおよびＩ／Ｏパーティションは、依然として固定スケジュールでスケジュールされる。このアプローチは最低レイテンシを有する。我々は２つの理由から時間寄付スケジュールを指定した。第１に、ＳＩＰＣはバッファリングをあまり必要としないため、すなわち、データが時間寄付可能とされたチャネルで直ちに転送及び処理されるため、ＲＡＭをより効率的に使用可能である。第２に、ＭＳＡＣがパーティションごとに取るべき時間の見積もりに基づいて静的なＭＳＡＣスケジュールを決定する必要がない。これにより、ＭＳＡＣがスケジュールされずアイドル状態にならないので、ＣＰＵ時間の使用がより効率的になる。
【００５７】
＜システム初期化＞
実際のシステムの初期化は本説明の範囲外である。以下の説明は、ハードウェアチェックアウトやソースコード認証などの標準的なセキュア初期化を無視しており、その代わりにＭＦＳ５０に固有の要素に焦点を当てている。初期化のためにＭＦＳ５０が必要とする主要機能は、ＭＳＡＣパーティションの各々に対する鍵を管理および配布し、ＭＳＡＣパーティションにおける読み取り／書き込みアクセス許可を設定し、ハブパーティションを設定することである。初期起動ソフトウェアを実装する１つの方法は、専用のＨＡＥ起動パーティションを用意することである。このパーティションは、最初は実行中の唯一のパーティションとしてスケジュールされる。一旦設定が完了すると、スケジュールを通常の定常状態の動作に変更し、スケジュールからそれ自体を削除することができる。
【００５８】
＜ＭＦＳ初期化＞
ハードウェアのチェックアウトやソースコード認証などの標準的なセキュア初期化手順は、このデモンストレーションの範囲外である。代わりに、我々の実装は、ＭＦＳ５０に固有の要素に焦点を当てている。初期化のためにＭＦＳ５０が必要とする主要機能は、ＭＳＡＣパーティションの各々に対する鍵を管理および配布し、ハブパーティションを初期化することである。これを達成するために、小さなＨＡＥパーティションを初期スケジュールの唯一のパーティションとして使用することができる。専用のＳＩＰＣキューを使用して複数のＭＳＡＣに複数のキーを送信し、構成情報をハブと監査パーティションに送信する。すべてのランタイム構成データがＳＩＰＣキューで待機となると、初期化パーティションは、ファイルシステムとＩ／Ｏパーティションがプロセッサ時間を共有する通常の実行モードにスケジュールを変更する。
初期化パーティションは、ＭＩＬＳ・ＡＰＩでスケジュール変更ルーチンを使用することがＸＭＬ設定によって許可されている。
【００５９】
＜監査＞
システムは、ＭＩＬＳカーネル、ＭＳＡＣおよび他の高保証コンポーネントから監査ログを収集する必要がある。監査サブシステムの完全な実装はこのデモンストレーションの範囲外であるが、デモンストレーションＭＦＳ５０は監査可能なイベントを収集して表示できる。監査可能なイベントは、監査サブシステムデバイスによる分析または収集のために、ＭＦＳ５０によってシリアルポートへと外部に報告される。このような監査サブシステムの作成は本開示の範囲外であり、そのようなシリアル出力はコンソールに表示される。
【００６０】
コアセキュリティ機能を実施するオープンでモジュラーな高保証設計を実装したＭＦＳ５０のプロトタイプ実装は、パワーＰＣ（ＰＰＣ）で始まりｘ８６に移植された。本明細書で使用されるように、用語「ｘ８６」は、一般にインテルｘ８６ＣＰＵアーキテクチャを指す。ＰＰＣとｘ８６アーキテクチャの両方でウィンドリバー（登録商標）の複数の独立したセキュリティレベル（ＭＩＬＳ）プラットフォームを使用することで、システム開発者がソフトウェアを開発する際にハードウェアに依存することがなくなった。
【００６１】
ＭＦＳ５０プロトタイプは、ＥＡＬ６認証要件を満たすために将来構築することができるように、高保証設計コンセプトに適合するように設計されている。ＭＦＳ５０のプロトタイプ実装のパフォーマンスを評価し、および／または、潜在的な性能向上を決定するためのセキュリティテストには、ＭＦＳ５０を使用して複数のシングルレベルセンサから生成された追跡データを格納する組み込み型の融合アプリケーションが含まれていた。閲覧の許可された追跡データを表示するのに複数のシングルレベルのグーグルアースアプリケーションが使用された。
【００６２】
ＭＦＳ５０のプロトタイプ実装のセキュリティテストでは、読みおろし機能、読みあげ障害、書きおろし障害、データ整合性のエラー、潜在的カバートチャネルとしてのディスクメッセージフィールドの使用不能、さまざまなＭＦＳ５０障害モードが実証された。このセキュリティテストでは、異なる追跡データを２つの異なるレベルで表示する能力を成功裏に実証できた。ｘ８６プロセッサは３つのネットワークインターフェイスしか持たず、そのうちの１つがディスクへのアクセスに使用されるため、ＭＦＳ５０のプロトタイプの実装は２つのレベルに制限された。ＭＦＳ５０のプロトタイプの実装は、パーティションが下位レベルでのデータを読める一方で、そのパーティションが当該下位レベルへのデータの書き込みができないように構成された。
【００６３】
ＭＦＳ５０のプロトタイプの実装は、リナックスのｅｘｔ２ファイルシステムを使用し、すべてのディスクブロックアクセスを直列化した。ブロックをグループ化し、それらをチャンクとして送信すると、パフォーマンスが大幅に向上すると考えられる。ＭＦＳ５０のプロトタイプ実装のｅｘｔ２ｆｓファイルシステムは、ｓｙｎｃマウントオプションが使用されたときに多数のブロックレベルの書き込みを生成することによって、ＭＦＳ５０内のスループットを大幅に制限するように見えた。ＭＦＳ５０のプロトタイプ実装のリナックス  ｅｘｔ２ファイルシステムをｅｘｔ３ファイルシステムに置き換えると、例えば２０倍の改善といった、大幅な改善がもたらされ得る。ＭＦＳ５０のプロトタイプの実装では、ファイルサーバからディスクへ通信するのにネットワークブロックデバイス（ＮＢＤ）プロトコルを使用した。ＮＢＤをＡｏＥ（ＡＴＡ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に置き換えると、パフォーマンスの向上が得られるであろう。ＭＦＳ５０のプロトタイプの実装は、ソフトウェアの暗号化を使用した。ハードウェア暗号化に切り替えることもパフォーマンスを向上させるであろう。より大きなＳＩＰＣポートを使用できるようにウインドリバーＭＩＬＳ・ｘ８６・ＥＡＲを改良することも、パフォーマンスを向上させるであろう。
【００６４】
より良いネットワークパフォーマンスとより大きなＳＩＰＣポートを持つパワーＰＣ・ＭＩＬＳ上で動作するようにＭＦＳ５０を移植することも、パフォーマンスをいくらか向上させる可能性がある。ｘ８６ＭＩＬＳ・ＥＡＲ用にビルドする場合、タイムスライスが２０ｍｓより短いとリナックスゲストＯＳパーティションは安定しない。これは、必然的にパーティションスイッチレートを制限し、ＭＦＳ５０内の各ＮＢＤ動作のレイテンシを増加させる。その結果、スループットが低下する。パワーＰＣ・ＭＩＬＳのリリースは、はるかに短いタイムスライスでの実行できる。これにより、ＭＦＳ５０内の処理がはるかに高速になり、ＭＦＳ５０の性能が全体的に向上することになろうと考えられる。
【００６５】
ＭＦＳ５０は、複数の異なるレベルで異なる追跡データを見る能力を有する。いくつかの実施形態では、ＰＣＳの使用は、ＭＦＳ５０が３つのレベルで通信することを可能にする。
【００６６】
モジュール化され層化されたアプローチをＭＦＳ５０設計に採用することで、プロトタイプ作成の作業に柔軟性がもたらされる。オープンで一般的に実装されている標準およびＣＯＴＳコンポーネントを利用することで、ＭＦＳ５０は、最小限の統合の痛みで、カスタムソフトウェアの変更やシステムの認証関連の部品に対する変更なしに、課題に対する機敏な応答のための開かれた設計を活用できるようになる。
いくつかの実施形態では、ネットワークファイルシステム層へのインターフェイスは、標準的なリナックスファイルシステムインターフェイスである。層間のインターフェイスはオープンで一般的に実装されている標準であるため、カスタムコードを記述することなく一層を代替のＣＯＴＳコンポーネントで置き換えることができた。
【００６７】
いくつかの実施形態では、ＩＭＥおよびディスク層４０は標準のリナックスデバイスファイルであり、これにより、未変更のＣＯＴＳ製品を使用することができるようになり、他の層に影響を与えずにＭＦＳ５０デザインの未信頼部分に対して変更を加えることができるようになる。
【００６８】
ブロックレベル分離を使用すると、単純なＭＳＡＣの使用が可能になる。ファイルを復号するためにファイル全体を読む必要も、ディレクトリエントリ等の特別な取扱いも必要なかった。基本的ＩＡ要件（読みあげなし、書きおろしなし、書きあげなし、読みおろし可）を満たすことは、簡単で小さなコードベースで達成できる。ただし、ファイルレベルでの有用な読みおろしを行うと、ＭＦＳ５０の他のどんな部分よりも時間と労力がかかる。
【００６９】
図５は、本開示の一実施形態に従う複数のセキュリティレベルをまたぐ安全なファイル共有の方法を示すフローチャートである。ブロック５１０において、記憶媒体に記憶された情報を複数の重なり合わないパーティションに分割することによって、異なる複数のセキュリティドメインを規定する複数のエンクレーブが形成される。
【００７０】
ブロック５２０において、複数のエンクレーブの各々にセキュリティ分類レベルが割り当てられる。
ブロック５３０において、複数のエンクレーブ間での情報の流れを管理するシステムセキュリティポリシーが実施される。このセキュリティポリシーは、第１の分類レベルを有する第１のエンクレーブを、第１の分類レベルよりも低い第２の分類レベルを有する第２のエンクレーブへの安全に読みおろすこと、および、第１の分類レベルを有する第３のエンクレーブに書き込むことを可能にする。
【００７１】
例示および説明の目的で添付の図面を参照して実施形態を詳細に説明したが、開示されたプロセスおよびシステムはそれによって限定されると解釈されるべきではないと理解されたい。本開示の範囲から逸脱することなく、前述の実施形態に対する様々な変更を行うことができることは当業者にとって明らかであろう。
【図１】
2017537381.tif 000003
【図２】
2017537381.tif 000004
【図３】
2017537381.tif 000005
【図４】
2017537381.tif 000006
【図５】
2017537381.tif 000007
【国際調査報告】
2017537381.tif 000008