web-dev-qa-db-ja.com

Bell-LaPadula実装例

私は現在Bell-LaPadulaモデルを研究しており、例として実装を行う必要があります。

モデルがどのように機能するかは理解していますが、プログラミング言語(Javaなど)での実装が困難です。私は次の分類があると考えています。

  • 制限付き、
  • 機密、
  • 秘密の、
  • トップシークレット

および次のカテゴリ:

  • 中尉、
  • 大佐、
  • キャプテン、
  • 中将、
  • 全般。

ラティスをどのように表現しますか?

7
user1019710

Bell-Lapadulaの動作、特にBell-Lapadulaでのカテゴリの動作について、少し混乱しているようです。

  • 分類は必ず順序付けられます。あなたの例では、Restricted <Confidential <Secret <Top Secretです。ここまでは順調ですね。

  • カテゴリは、通常、順序付けされていません。多くの場合、それらはセットであり、順序付けはありません。それらは区分化に使用され、分類に直交しています。コンパートメントは、知る必要のある個人のグループへの普及をさらに制限するために使用されます。コンパートメント(カテゴリ)の例としては、GAMMA(ソビエト通信の傍受)、RUFF(衛星によって取得された画像)などがあります。たとえば、カテゴリのセットは{GAMMA、RUFF}で、GAMMAとRUFFの間に暗黙の順序はありません。

たとえば、Top Secret GAMMA RUFFなどの文書がスタンプされる場合があります。このドキュメントを読むことを許可された人は、トップシークレットのクリアランスと、GAMMAコンパートメント内の資料へのアクセスおよびRUFFコンパートメント内の資料へのアクセスを許可される必要があります。一般に、いくつかのドキュメントを読むには、クリアランスが少なくとも分類と同じ高さである必要があり、ドキュメントにラベルが付けられているすべてのコンパートメント(カテゴリ)のメンバーである必要があります。

したがって、実際には、コンパートメントは中尉のようなランクになることはありません。あなたの例は意味がありません。

この背景により、各ドキュメント/データアイテムは次のようにラベル付けされます。

  • 分類があります。

  • カテゴリ(コンパートメント)のセットがあります。

@Jeff Ferlandが示唆するように、分類を表すことができます。カテゴリのセットを表すには、@ Jeffの提案を変更し、カテゴリのセットを保存する必要があります。

最も興味深い部分はラベルの表現ではありません。最も興味深い部分は、2つのラベルを比較する方法を理解することです。文書にLのラベルが付いていて、人にL 'のラベルが付いている場合、その人に文書の読み取りを許可する必要がありますか? Bell-Lapadulaモデルを理解していることを確認するには、いくつかの例として、このチェックをコーディングすることをお勧めします。

8
D.W.
_[Restricted, Confidential, Secret, Top Secret] => [0, 1, 2, 3] //constants
[Lieutenant, Colonel, Captain, Lieutenant General, General] => [0, 1, 2, 3, 4] //constants
_

Math.MAX_INTやその他の機能と同様の静的クラスでこれを設定します... Classification.RESTRICTEDは0を返します。これにより、プログラマーの立場から簡単に読み取ることができます。

カテゴリをどのように関連付けるかはあなた次第です。読み取り/書き込みテストは簡単です。「この値はuser.getClassification()user.setClassficiation(Classification.SECRET))よりも低い/高い」(またはどこに配置しても)です。

Bell-LaPadulaではカテゴリは仕様化されていないため、ランクはクリアランスに直接関係しないと想定しているため、カテゴリの使用方法を示唆するか、どのように関連付けるかを理解する必要があります。

6
Jeff Ferland

Bell-LaPadulaモデルを覚える簡単な方法は、次のとおりです。読み取りなし、書き込みなし。

分類はラベルであり、サブジェクト(人)がオブジェクト(ドキュメント、ファイルなど)を読み取ることができるかどうかを制御します。この例では、コンパートメントは無視します。

アリス、ボブ、チャーリー、ダイアナ、イブの4人を作成しましょう。次に、それぞれにラベルを付けましょう。アリスは機密、ボブは制限付き、チャーリーは機密、ダイアナは秘密、イブは秘密です。各ユーザーはドキュメントを作成し、ドキュメントを作成すると、そのドキュメントには作成者と同じラベルが付けられます。アリスがドキュメントAを作成し、ボブがドキュメントBを作成し、チャーリーがドキュメントCを作成し、ダイアナがドキュメントDを作成し、イブがドキュメントEを作成します。

これで、誰かがドキュメントを読み込もうとしたときに何が起こるかを示す簡単なテーブルを作成できます。

読むために:

        | Doc A | Doc B | Doc C | Doc D | Doc E |
-------------------------------------------------
Alice   | allow | deny  | deny  | deny  | deny  |
Bob     | allow | allow | deny  | deny  | deny  | 
Charlie | allow | allow | allow | deny  | deny  | 
Diana   | allow | allow | allow | allow | deny  | 
Eve     | allow | allow | allow | allow | allow | 
4
this.josh