オブジェクト機能モデルは、コンピュータセキュリティモデルの一つです。機能とは、特定のオブジェクトに対して一つまたは複数の操作を実行する譲渡可能な権利を指します。機能は以下の組み合わせによって取得できます。
- メッセージで送信できる、偽造不可能な参照(オブジェクト参照や保護されたポインタという意味で)。
- 実行する操作を指定するメッセージ。
このセキュリティモデルは、参照情報を偽造できないことを前提としている。
- オブジェクトは、参照を介してメッセージを送信することによってのみ相互作用できる。
- 参考文献は以下の方法で入手できます。
- 初期条件:記述されている計算世界の初期状態では、オブジェクトAは既にオブジェクトBへの参照を持っている可能性がある。
- 親子関係:AがBを作成した場合、その瞬間、Aは新しく作成されたBへの唯一の参照を取得します。
- 付与:AがBを創造する場合、BはAが付与することを選択したAの参照のサブセットを持って生まれる。
- はじめに:AがBとCの両方への参照を持っている場合、AはCへの参照を含むメッセージをBに送信できます。Bはその参照を後で使用するために保持できます。
オブジェクト機能モデルでは、すべての計算は上記の規則に従って実行されます。
オブジェクト指向プログラミングの動機となる利点、例えばカプセル化や情報隠蔽、モジュール型プログラミング(モジュール性)、関心の分離などは、能力ベースプログラミングにおける最小権限や権限分離といったセキュリティ目標に対応している。 [ 1 ] [ 2 ]
オブジェクト能力モデルは、 1966年にジャック・デニスとアール・C・ヴァン・ホーンによって初めて提案された。 [ 3 ]
オブジェクト指向プログラミング言語の抜け穴
オブジェクト指向プログラミング言語の中には(JavaScript(批判)、Java、C#など)、上記ルールとは異なる方法でリソースにアクセスする手段を提供するものがあり、例えば以下のようなものがあります。
このような絶対的な権限の行使は、オブジェクト機能モデルの条件に違反する。CajaとJoe-Eは、それぞれJavaScriptとJavaの派生言語であり、これらの抜け穴を排除するための制約を課している。
オブジェクト機能の利点
コンピュータ科学者のE・ディーン・トリブルは、スマートコントラクトにおいて、IDベースのアクセス制御は、オブジェクト機能モデルと比較して、動的に変更される権限をうまくサポートしていないと述べた。彼は、OCAPモデルを、車の所有権を与えることなく、バレットパーキング係に車の鍵を渡すことに例えた。[ 4 ]
オブジェクト機能システムの構造的特性は、コード設計におけるモジュール性を促進し、コード実装における信頼性の高いカプセル化を保証する。
これらの構造的特性は、オブジェクト機能プログラムまたはオペレーティングシステムのセキュリティ特性の分析を容易にします。これらの特性、特に情報フロー特性は、オブジェクトの動作を決定するコードに関する知識や分析とは無関係に、オブジェクト参照と接続性のレベルで分析できます。その結果、未知の、場合によっては悪意のあるコードを含む新しいオブジェクトが存在する場合でも、これらのセキュリティ特性を確立し、維持することができます。
これらの構造的特性は、既存オブジェクトへのアクセスを規定する2つのルールに由来する。
- 1) オブジェクトAがBにメッセージを送信できるのは、オブジェクトAがBへの参照を保持している場合のみです。
- 2) オブジェクトAがCへの参照を取得できるのは、オブジェクトAがCへの参照を含むメッセージを受信した場合に限る。
これら2つのルールの結果として、オブジェクトは既存の参照連鎖を通してのみ、他のオブジェクトへの参照を取得できる。つまり、「接続性だけが接続性を生む」のである。
- オブジェクト機能システム
- 本稿で述べた原理を実装した計算システム。
- 物体
- オブジェクトは、ローカルな状態と振る舞いを持つ。この意味でのオブジェクトは、主体であると同時に、アクセス制御に関する文献で用いられる意味でのオブジェクトでもある。
- 参照
- 1つのオブジェクトを明確に指定し、そのオブジェクトへのメッセージ送信を許可する、偽造不可能な通信チャネル(保護されたポインタ、不透明なアドレス)。
- メッセージ
- 参照によって送信されるもの。システムによっては、メッセージが第一級オブジェクトである場合とそうでない場合があります。
- リクエスト
- 参照に対してメッセージを送信する操作。メッセージを受信すると、受信側はメッセージに含まれるすべての参照にアクセスできるようになります。
- 減衰
- オブジェクト機能システムにおける一般的な設計パターン:オブジェクトの参照が与えられた場合、読み取り専用アクセスのみを許可したり、取り消しを許可したりするなど、特定のセキュリティ制限を持つプロキシオブジェクトの別の参照を作成します。プロキシオブジェクトは、受信したメッセージに対してセキュリティチェックを実行し、許可されたメッセージのみを渡します。ディープ減衰とは、通常、膜を使用して、元の減衰オブジェクトを介して取得されたすべてのオブジェクトに同じ減衰が推移的に適用される場合を指します。
参考文献
- ↑ミラー、マーク・サミュエル(2006年5月)。堅牢な構成:アクセス制御と同時実行制御への統一的アプローチに向けて。erights.org (レポート)。メリーランド州ボルチモア。2013年7月28日取得。
- ↑ミラー、マーク S. ; イー、カピン; シャピロ、ジョナサン S. (2003).能力神話の解体(PDF) (レポート). 技術レポート SRL2003-02. システム研究室、ジョンズ ホプキンス大学。
- ↑引用元: JB Dennis、EC Van Horn。「マルチプログラム計算のためのプログラミング意味論」Communications of the ACM、9(3):143–155、1966年3月。
- 1 2 Lutsch, Felix (2019年8月26日). 「ディーン・トリブルとのアゴリックQ&A」 . Chorus One .
- ↑リーバーマン、ヘンリー(1981年6月)。第1幕のプレビュー(MIT AIメモ625)(レポート)。MIT。
- ↑リーバーマン、ヘンリー(1981年6月)。混乱せずに一度に多くのことを考える:第1幕における並列性(MIT AIメモ626)(レポート)。MIT。