Solaris Trusted Extensions 開発ガイド

ラベル関係

ラベルを比較することは、プロセスのラベルをターゲットのラベルと比較することであり、ターゲットは機密ラベルの場合も認可上限ラベルの場合もあります。比較の結果に基づいて、プロセスはオブジェクトへのアクセスを許可または拒否されます。プロセスのラベルがターゲットのラベルより優位である場合にのみ、アクセスが許可されます。ラベル関係と優位性については、この節で説明します。例は、「2 つのラベル間の関係の判別」を参照してください。

機密レベル」は数値による格付けです。ラベルは、エンティティーの機密レベルを示し、ゼロ個以上のコンパートメントを含むことがあります。エンティティーとは、プロセス、ゾーン、ファイル、デバイスなどのことであり、ラベルを付けることができます。

ラベルには次のような型があって、相互に一定の関係があります。

ラベルの格付けおよびコンパートメントの指定には、label_encodings ファイルが使用されます。label_encodings(4) のマニュアルページを参照してください。

いずれかの型のラベルに別のラベル以上の機密レベルがある場合、そのラベルは別のラベルより優位であると言います。セキュリティーレベルに関するこの比較は、ラベルの格付けとコンパートメントに基づきます。優位ラベルの格付けは、別のラベルの格付け以上にする必要があります。さらに、優位ラベルには別のラベルのすべてのコンパートメントが含まれている必要があります。2 つのラベルが同等な場合は、「互いに優位である」と言います。

label_encodings ファイルの次の抜粋例では、REGISTERED (REG) ラベルは CONFIDENTIAL (C) ラベルより優位です。比較は各ラベルの value キーワードの値に基づきます。REG ラベルの value キーワードの値は数値的に C ラベルの value キーワードの値以上です。両方のラベルは PUBLIC (P) ラベルより優位です。

initial compartments キーワードの値は、格付けに最初に関連付けられるコンパートメントのリストを示します。initial compartments キーワードの各数字は「コンパートメントビット」であり、それぞれが特定のコンパートメントを表します。

CLASSIFICATIONS:
name= PUBLIC; sname= P; value= 1;
name= CONFIDENTIAL; sname= C; value= 4; initial compartments= 4-5 190-239;
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;

次の label_encodings の抜粋では、REG HR ラベル (人事) が REG ラベルより優位です。REG HR ラベルには、REGISTERED 格付けと HR コンパートメントがあります。HR コンパートメントの compartments キーワードで 0 コンパートメントビットが設定されるので、REG HR 格付けはコンパートメント 04–5、および 190–239 セットとなり、REG 格付けによって設定されるコンパートメントより値が大きくなります。

CLASSIFICATIONS:
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;
...
WORDS:
name= HR; minclass= C; compartments= 0;

オブジェクトにアクセスするために厳密優位が必要な場合があります。前の例で、REG ラベルは P ラベルより厳密に優位であり、REG HR ラベルは REG ラベルより厳密に優位です。ラベルを比較すると、REG ラベルは別の REG ラベルより優位です。

互いに優位でないラベルは、分離していると言います。「分離」ラベルは、会社内の部門を分けるために使用されることがあります。次の例では、REG HR ラベル (人事) は REG Sales ラベルから分離していると定義されます。これらのラベルは、それぞれのコンパートメントによって異なるコンパートメントビットが設定されるために、分離されます。


CLASSIFICATIONS:
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;
...
WORDS:
name= HR; minclass= C; compartments= 0;
name= Sales; minclass= C; compartments= 1;

ラベル API については、「機密ラベル API」を参照してください。