Take-Grant ModelとAccess Control Matrixについて学習しています。リークと安全性に関する質問がいくつかあります。
これらは私が使用している定義です(例 ここ[pdf] :を参照)
アクセス制御マトリックスがあるとしましょう:
S1 S2 O1
S1 o r
S2 r,w,x o
だから例えばこれは:
s1はS2からO1を超えて正しいrを取得できるため、安全ではありません。
この場合、安全なシステムは次のように設計する必要がありますか?:
これは私には少し奇妙に思えます。なぜなら、そうであるとしたら、(少なくとも安全なシステムを作成したいのであれば)権利の取得(または付与の権利)はそれほど意味をなさないためです。
個別に回答してみます。
アクセス制御マトリックス
Q:「この行列では、O1に対するS1の右rがS2にリークされていると思いますか(S2はS1を使用してO1にアクセスできるため)?」
A:いいえ。実行権利がtakeのように動作することを考慮した場合yes、S1のO1に対する読み取り権限はS2にリークしました。元々S2はO1に対する権限を持っていなかったためです。しかし、私が見つけた論文は、S2がS1に対してown権限を持っている場合の動作のみを示しました。したがって、S2にはS1に対するown権限がないため、S1権限の例はS2にリークしません。
Take-Grant Model
Q: "Take-Grantモデルでは、システムは、別のサブジェクトS2に対して正しいtを持つすべてのサブジェクトS1に対して、S2が持つすべての権利も持っている場合にのみ安全になります何かオブジェクトや主題は?」
A:そうです。リンクしたドキュメントの定義3-1および3-2に従って、システムのセキュリティは右から右に計算されることに注意してください。これをチューリングマシンに変換すると、システムは安全であると見なされます。可能な操作がすべて、初期状態 s0 から始まって、状態を達成できない場合 sN ここで、Subjectは本来持っていなかった権利を持っています。より明確にするために:
初期構成にないアクセスマトリックスのセルに一般的な権利を追加するコマンドの任意のシーケンスはありますか?
あなたが作成したグラフは非常に教訓的ではなかったと思います。よろしければ、ここに投稿する2番目のリンクを使用すると、使用可能な操作と結果として得られるグラフについてのより良い概念が得られます。
3番目のリンクは、Take-Grantモデルについて説明した元の論文を参照しています。このペーパーでは、説明されているコマンドの1つで「call」という名前を使用しています。この操作は、グラフに新しいノードを作成する権利に関連していることに注意してください。これは、上記で使用した実行権の概念ではありません。よろしいですか?
参照:
https://www.cs.columbia.edu/~smb/classes/f05/l03.pdf
http://www.volkerroth.com/ss09-itsec/03.pdf
https://cs.nmt.edu/~doshin/t/s06/cs589/pub/2.JLS-TG.pdf