基本 MAC 制約

基本必須アクセス制御には、非トラステッド・サブジェクトでは機密ラベル A でラベル付けされているデータを機密ラベル B でラベル付けすることは (B が A より上位にならない限り) できないという制約があります。

基本 MAC 制約はすべてのクラスのデータに及びます。 データの再ラベル付け (つまり、データ・コンテナーのラベルの変更) およびデータ・コンテナー間のラベル付けされたデータの移動についての制限もこれに含まれます。

システムのさまざまなレベル (システム・コール、システム・サービス・ユーティリティーなど) で、 この基本的な制約はより具体的な一連のルールとなりますが、 常に同じ基本的な考え方でデータのアップグレードまでは 行うことができます。 例えば、基本的な制約として、プロセスの機密ラベルがオブジェクトの機密ラベルより上位の場合は、 プロセスは大きなクラスのいずれのオブジェクトも読み取り用にオープンすることができ、 オブジェクトの機密ラベルがプロセスの機密ラベルより上位の場合は、 書き込み用にオープンすることができます。

通常ファイルの場合、書き込み操作はより制限され、プロセスと同じ機密ラベルのファイルに対してのみ 許可されます。 ディレクトリーおよびデバイスの場合は、 サブジェクトの SL (機密ラベル) がオブジェクトの最小 SL より上位であり、 さらにオブジェクトの最大 SL がサブジェクトの SL より上位である場合に、書き込み操作を 行うことができます。 FIFO スペシャル・ファイル (名前付きパイプ) の場合は、読み取り操作は、 隠れチャネルの理由のためプロセスと同じ機密ラベルで FIFO スペシャル・ファイルにも 制限されています。

データをより高い機密ラベルに移行することができますが、これはオブジェクトや状況によっては 必要ありません。 例えば、オペレーティング・システムは本来、非特権プロセスが自分より高いラベルのファイルを 書き込み用にオープンすることを許可しませんが、基本 MAC 制約では 許可されます。 このアップグレードを非トラステッド・サブジェクトに許可するかどうかは、 設計と方針の問題です。 このアップグレードが役立つ場合もあり、役立たない場合もあります。 例えば、 機密ラベルの高いファイルへの直接書き込みを許可しないのは、プロセスがこれらのファイルを 読み取れないからであり、読み取りなしでの書き込みは意味がなく、 役立つという以前の問題だからです。 しかし、非トラステッド・サブジェクトの要求に応じてファイルのラベルを高くした 単純トラステッド・ユーティリティーは、許容できる役に立つユーティリティーだと 言えます。

システム・コール・レベルでは、非特権プロセスにのみ制限があります。 つまり、特権プロセスはこの制約に束縛されないということです。 しかし、実際にはトラステッド・システムで実行されるすべてのサービスは非トラステッド・ユーザーに合わせて設計されており、そのため、ユーザー・サービスのレベルでは制約が優先されます。

基本 MAC 制約は、非トラステッド・プログラムがデータ転送の処理で使用するすべての手段に適用されます。 ただし、基本 MAC 制約は、多くの場合、2 つのコンポーネントに分けられます。 最初のコンポーネントは、データ転送 (またはラベル付け) を目的としたオペレーティング・システムの各機能にのみ対応します。 これらの機能には、例えばファイルの読み取りおよび書き込みやプロセス間データ通信が含まれます。 もう 1 つのコンポーネントは、前記に当てはまらない通信の手段に対応します。これは隠れチャネルと呼ばれます。 隠れチャネルに関して基本 MAC 制約を完全に実施することは、ほとんど不可能です。 このために、他の要因に対して妥当なトレードオフがある場合に限り、低データ転送速度 (例えば、0.1 ビット/秒) の隠れチャネルが存在できます。

基本 MAC 制約は、直接的で単純であり、マルチレベル・データの処理に関する詳細なガイドラインの数は比較的少ないです。