Trusted Extensions では、次の 2 つの型のラベルが定義されます。
認可上限ラベル (単に「認可上限」とも言う)
機密ラベル (単に「ラベル」とも言う)
機密ラベル、ラベル範囲、およびラベル制限 (認可上限) では、システム上のどのオブジェクトにだれがアクセスできるかが決定されます。認可上限ラベルはユーザーに割り当てられます。機密ラベルは、ユーザープロセスを含むプロセス、およびファイルやディレクトリに割り当てられます。
一部のオブジェクトにはラベル範囲があります。そのオブジェクトには、定義されたラベル範囲内の特定のラベルでアクセスできます。ラベル範囲が ADMIN_LOW から ADMIN_HIGH までの場合、すべてのラベルでアクセスできます。セキュリティー管理者はこのラベル範囲を狭めることができます。ラベル範囲があるオブジェクトは、次のとおりです。
通信が可能な全ホストおよびネットワーク
ゾーン
ユーザーおよび役割
割り当て可能なデバイス (テープドライブ、フロッピードライブ、CD-ROM や DVD のデバイス、オーディオデバイスなど)
割り当て不可能なその他のデバイス (フレームバッファーのラベル範囲によって制御されるプリンタ、ワークステーションなど)、およびログインデバイスとして使用される場合のシリアル回線
これらのオブジェクトにラベルを設定する場合のさまざまな方法については、『Solaris Trusted Extensions 管理の手順』を参照してください。『Solaris Trusted Extensions 管理の手順』の「デバイス割り当てマネージャー GUI」に、ラベル範囲をデバイスに設定する方法が説明されています。
ラベル範囲は、次のラベルに対して制限を設定します。
ホストで情報の送受信を行うことができるラベル。
ユーザーや役割に代わって動作しているプロセスがアクセスできるゾーン内のファイルやディレクトリのラベル。
ユーザーがデバイスを割り当てることができるラベル。すなわち、そのデバイスの記憶媒体にファイルが書き込まれるラベルを制限します。
ユーザーがジョブを送信できるプリンタのラベル。
ユーザーがログインできるワークステーションのラベル。ユーザーのラベル範囲のほかに、フレームバッファーのラベル範囲を使用して、システムへのアクセスを制限することもできます。
ラベルは自動的に電子メールメッセージに割り当てられ、電子メールの出力に表示されます。
コンピュータのアクセスの実装およびアクセスの制御のために、ラベルが使用されます。ラベルは、必須アクセス制御 (MAC) を実装します。Trusted Extensions では、オブジェクトへのアクセスが許可される前に、任意アクセス制御 (DAC) 検査と MAC 検査に合格しなければなりません。Solaris OS の場合と同様、DAC は、アクセス権ビットとアクセス制御リスト (ACL) に基づきます。詳細は、『Solaris のシステム管理 (セキュリティサービス)』の第 6 章「ファイルアクセスの制御 (作業)」を参照してください。
MAC は、アプリケーションを実行しているプロセスのラベルと、そのプロセスがアクセスしようとしているオブジェクトのラベルまたはラベル範囲を比較します。ラベルに実装されている規則セットによって、ポリシーが実施されます。規則の 1 つに「下位読み取り、同位読み取り」があります。プロセスがオブジェクトにアクセスしようとすると、この規則が適用されます。プロセスのラベルは、次のようにオブジェクトのラベル以上である必要があります。
Label[Process] >= Label[Object] |
Trusted Extensions によって構成されているシステムでは、ファイルとディレクトリのアクセス規則は相互に少し異なり、プロセスオブジェクト、ネットワーク終端オブジェクト、デバイスオブジェクト、および X ウィンドウオブジェクトとも少し異なります。また、オブジェクトへのアクセスには 3 つの方法があります。オブジェクトにアクセスする 3 つの方法には、それぞれ、次のように少しずつ異なる規則セットが適用されます。
ファイル、ディレクトリ、またはデバイスの名前を表示できる
ファイル、ディレクトリ、またはデバイスの内容または属性を表示できる
ファイル、ディレクトリ、またはデバイスの内容または属性を変更できる
図 1–1 に、ラベルを使用してアクセス制御を決定するシステムを示します。
前の図で、ユーザーはラベル INTERNAL_USE_ONLY のワークスペースでテキストエディタを開いています。システムは、テキストエディタを実行しているプロセスのラベルを現在のワークスペースのラベルと同じに設定します。そのため、テキストエディタに INTERNAL_USE_ONLY のラベルが表示されます。編集のためにテキストエディタでファイルを開こうとすると、テキストエディタを実行しているプロセスのラベルとファイルのラベルが比較されます。2 つのラベルが等しい場合、書き込みアクセスが許可されます。
ファイルのラベルがテキストエディタのラベルより下位の場合、ファイルは読み取り専用で開かれます。たとえば、INTERNAL_USE_ONLY のテキストエディタは ADMIN_LOW のシステムファイルを開いて読み取ることができますが、変更はできません。また、下位読み取りの要件によって、現在の作業ラベルより上位のラベルのファイルをユーザーは参照できません。
ラベルと認可上限は、1 つの「格付け」と 0 または 1 つ以上の「コンパートメント」語句で構成されます。ラベルの格付け部分は、保護の相対レベルを示します。ラベルがオブジェクトに割り当てられると、ラベルの格付けが、オブジェクトに含まれている情報の機密度を示します。認可上限がユーザーに割り当てられると、認可上限ラベルの格付け部分が、ユーザーの信頼度を示します。
Trusted Extensions は CIPSO (Common IP Security Option) ラベルをサポートします。ラベルと認可上限ラベルのそれぞれには、256 個までの値を指定できる格付けフィールド、および 256 ビットのコンパートメントフィールドがあります。格付けに 0 (ゼロ) は使用できないので、合計 255 個の格付けを定義できます。CIPSO ラベルには、240 個のコンパートメントビットを使用できるので、合計 2240 のコンパートメントの組み合わせが可能です。これらの構成要素を次の図に示します。
ADMIN_HIGH ラベルと ADMIN_LOW ラベルは管理ラベルです。これらのラベルはシステム上のすべてのラベルの上限と下限を定義します。
各コンパートメント語句には、1 ビット以上のコンパートメントビットが割り当てられています。同じコンパートメントビットを 1 つ以上の語句に割り当てることができます。
テキスト形式の格付けは、次のようになります。
CLASSIFICATIONS: name= TOP SECRET; sname= TS; value= 6;initial compartments= 4-5; |
ラベルのコンパートメント部分は省略可能です。ラベルのコンパートメント語句を使用して、ワークグループ、部、課、地理上区域などの異なる種類のグループを表すことができます。コンパートメント語句によって、情報の処理方法を指定することもできます。
初期コンパートメントが格付け定義の一部である場合、コンパートメントがそのラベルの一部になります。
WORDS: name= A; compartments= 0; name= B; compartments= 1; name= CNTRY1; sname= c1; compartments= ~4; name= CNTRY2; sname= c2; compartments= ~5; |
前の格付けおよびコンパートメントから使用可能なラベルには、TS、TS A、TS B、および TS AB があります。TS A のファイルは、TS 格付けと認可上限に A コンパートメントを持つユーザーのみが使用できます。説明図は、図 1–3 を参照してください。
任意の型のラベルと別のラベルを比較したときに、前者のセキュリティーレベルが後者のそれと同等かそれよりも高い場合、前者が後者よりも「優位である」と言います。このセキュリティーレベルの比較は、ラベルの格付けとコンパートメントに基づきます。優位なラベルの格付けは、2 つ目のラベルの格付けと同等かそれよりも高くなければなりません。優位なラベルには、もう一方のラベルのコンパートメントのすべてが含まれていなければなりません。2 つのラベルが同等な場合は、「互いに優位である」と言います。
この基準により、TS A は TS より優位であり、TS は TS より優位です。TS ラベルの格付けとコンパートメントビットを次の図に示します。
別の種類の優位性である「完全な優位性」が、アクセスの際に必要とされる場合もあります。あるラベルのセキュリティーレベルが別のラベルのセキュリティーレベルより高い場合、そのラベルは他方のラベルより「完全に優位である」と言います。完全な優位性には、同等の部分がありません。最初のラベルの格付けは、2 つ目のラベルの格付けより高いです。最初のラベルには、2 つ目のラベルのすべてのコンパートメントが含まれます。あるいは、両方のラベルの格付けが同じである場合、最初のラベルには 2 つ目のラベルのすべてのコンパートメントが含まれ、さらにその他のコンパートメントが 1 つ以上含まれます。
優位関係がないラベルは「無関係」であると言われます。無関係なラベルは、会社内の各部門を振り分けるのに適しています。たとえば、ラベル TS HR (人事) は TS Sales から分離しています。
label_encodings ファイルでは、ラベル構成要素の一定の組み合わせが規則によって無効とされます。組み合わせの規則によって、組織で使用可能なラベルが暗黙的に定義されます。組み合わせの規則はセキュリティー管理者が指定します。
「有効」または「適格な形式」のラベルとは、組み合わせの規則に従っているラベルのことです。セキュリティー管理者は、次のいずれかの方法によって組み合わせの規則を定義します。
「初期コンパートメント」(コンパートメントビット) を格付けに割り当てることができます。
初期コンパートメントビットは、ラベル内で常にこの格付けに関連付けられます。詳細は、「格付け名の構文」を参照してください。
「最下位の格付け」、「出力の最下位の格付け」、「最上位の格付け」を任意の語句に関連付けることができます。
各語句に選択する「ビットパターン」によって、語句間の「階層」を定義します。
語句の「必須組み合わせ」を指定します。
「組み合わせ制約」を語句に指定します。
「minimum clearance (最下位の認可上限)」および「minimum sensitivity label (最下位の機密ラベル)」 を指定する必要があります。
システム全体に関わるこれらの最下位の指定によって、一般ユーザーに認められるminimum clearance (最下位の認可上限) および最下位ラベルが定められます。
label_encodings ファイルには、次の 2 つの「認可範囲」が暗黙的に指定されています。
「認可範囲」という用語は、ユーザーアカウント、役割アカウント、プリンタ、ホスト、ネットワークなどのオブジェクトに割り当てられているラベル範囲も指します。規則は一連の有効なラベルを制約できるので、ラベル範囲および認可範囲には、範囲内のラベル構成要素のすべての可能な組み合わせが含まれないことがあります。
システム認可範囲には、管理ラベルの ADMIN_HIGH および ADMIN_LOW が含まれます。さらに、システム認可範囲には、label_encodings ファイルのラベル構成要素から構成されるすべての適格な形式のラベルも含まれます。
管理役割アカウントは、通常、システム認可範囲内のすべてのラベルで作業可能な唯一のアカウントです。組織では、管理ラベルを必要とするタスクを実行可能な一般ユーザーアカウントを設定することもできます。
次の図は、システム認可範囲で許可されるラベルが規則によってどのように制約されるかを示しています。
図 1–4 (a) は、格付け TS ( TOP SECRET)、S (SECRET)、 C (CONFIDENTIAL)、およびコンパートメント A、 B によるすべての可能な組み合わせを示します。
図 1–4 (b) は、SENSITIVITY LABELS セクションの REQUIRED COMBINATIONS サブセクションによる代表的な規則とその結果を示します。矢印は規則によって無効にされるラベルを示します。無効にされるラベルは上に線が引かれています。REQUIRED COMBINATIONS 構文 B A は、コンパートメントとして B を持つラベルには A が含まれていなければならないことを示します。その逆は当てはまりません。コンパートメント A に、その他のコンパートメントを組み合わせる必要はありません。コンパートメント B は A がある場合にのみ許可されるので、ラベル TS B、S B、および C B は適格な形式ではありません。適格な形式でないラベルはシステム認可の範囲外です。
「ユーザー認可範囲」は、Trusted Extensions の使用時に、一般ユーザーがアクセスできる最大のラベルセットです。ユーザー認可範囲では、ADMIN_HIGH および ADMIN_LOW が常に除外されます。ユーザー認可範囲は、「システム認可範囲」を制約するすべての規則によってさらに制約されます。また、ACCREDITATION RANGE セクションの規則によってユーザー認可範囲を制約することもできます。図 1–5 は図 1–4 の例から続きます。図 1–5 は、ACCREDITATION RANGE セクションの 3 つの異なるタイプの規則と、そのユーザー認可範囲の結果を示します。矢印は特定の規則が許可する適格な形式のラベルを示します。
右側のボックスに示すように、ユーザー認可範囲は ADMIN_HIGH および ADMIN_LOW を除外します。TS 格付けの規則には、TS B を除くすべての TS の組み合わせが含まれます。ただし、図 1–4 に示すように TS B、S B、および C B は REQUIRED COMBINATIONS 規則 B A によって以前に無効にされているため、TS の組み合わせで許可されるのは、TS A B、TS A、および TS のみです。S A B が S 格付けの唯一の有効な組み合わせとして定義されているため、S B はやはり除外されます。C 格付けの規則に従えば、C A を除くすべての C の組み合わせが有効です。ただし、C B は以前に無効にされているので、C 格付けの許可される組み合わせは C A B および C のみです。
「アカウントラベル範囲」は、各ユーザーまたは役割アカウントが使用可能なラベルの範囲です。システムへのログイン時にユーザーが作業できるラベルを、この範囲で制御します。
アカウントラベル範囲で使用可能なラベルには、次の制約があります。
ユーザー認可上限がアカウントラベル範囲の最上位を定める。
認可上限は有効なラベルである必要はありません。認可上限は、アカウントが作業するすべてのラベルより優位である必要があるため、アカウントが作業するすべてのラベルのすべての構成要素を含んでいなければなりません。
最下位のラベルがアカウントラベル範囲の最下位を定める。
label_encodings ファイルの minimum sensitivity label (最下位の機密ラベル) は、ユーザーが作業可能なラベルの絶対最下位を決定します。
ユーザー認可範囲が、ユーザーの認可上限からユーザーの最下位のラベルまでの有効なラベルのセットを定める。
たとえば、label_encodings ファイルで、ラベルのコンパートメント A、B、および C の組み合わせを禁止できます。
最下位のラベルはコンパートメントがない TS になる。
TS A B C が有効な認可上限になる。TS A B C は有効なラベルでなくなる。
ユーザーの有効なラベルは TS、TS A、TS B、および TS C になる。
アカウントに割り当てることができる認可上限および最下位のラベルを、次の図に示します。これらのラベルは、これまでの節で説明した認可の例に基づいています。
この例で、TS A B がユーザー認可範囲の最上位ラベルです。このラベルには、どの格付けのラベルでも一緒に表示されることが許可される 2 つのコンパートメント A および B のみが含まれます。左側に示されているアカウント範囲は、TS A B によって最上位が定められています。TS A B はアカウントに割り当てられている認可上限です。C はアカウントの最下位のラベルです。これらの定義によって、ラベル TS A B、TS A、TS、S A B、C A B、または C で作業するアカウントが制約されます。許可される認可上限は TS A B、TS A、TS、および S A B です。minimum clearance (最下位の認可上限) の S A B が label_encodings ファイルに設定されます。
TS A B が有効なラベルではなかったとしても、セキュリティー管理者はそのラベルを認可上限として割り当てることができます。この割り当てによって、TS のほうが優位であり、かつ語句 A および B を含む、任意の有効なラベルを、アカウントで使用できるようになります。逆に、TS をアカウント認可上限として割り当てた場合、ユーザーはラベル TS および C でのみ作業できます。コンパートメントを持たない TS は S A B または C A B に対して優位になりません。
表 1–1 認可範囲とアカウントラベル範囲の例
|
認可範囲 |
アカウントラベル範囲 |
|||
---|---|---|---|---|---|
可能なラベル |
システム |
ユーザー |
TS A B 認可上限、S A B 最下位のラベル |
TS 認可上限、C 最下位のラベル |
ADMIN_LOW 認可上限および最下位のラベル、solaris.label.range 承認 |
ADMIN_HIGH |
ADMIN_HIGH |
|
|
|
|
TS A B |
TS A B |
|
TS A B |
|
|
TS A |
TS A |
TS A |
TS A |
|
|
TS |
TS |
TS |
TS |
TS |
|
S A B |
S A B |
S A B |
S A B |
|
|
S A |
|
|
|
|
|
S |
|
|
|
S |
|
C A B |
C A B |
|
|
|
|
C A |
C A |
|
|
|
|
C |
C |
C |
|
C |
|
ADMIN_LOW |
ADMIN_LOW |
|
|
|
ADMIN_LOW |
表 1–1 は、可能なラベルの組み合わせ、システム認可範囲、ユーザー認可範囲、およびいくつかのアカウントラベル範囲の例における違いを示しています。
何も承認されていない一般ユーザーは、ユーザー認可範囲の列にあるラベルでしか作業できません。
4 列目は、認可上限 TS A B および最下位のラベル S A B のユーザーのアカウントラベル範囲を示します。この範囲では、ユーザーはラベル TS A B、TS A、TS、および S A B で作業できます。
表 1–1 の 5 列目は、認可上限 TS および最下位のラベル C のアカウントを示します。TS が優位になるその他のすべての有効なラベルには語句 A および B が含まれるので、このアカウントは TS、S、および C のラベルでのみ作業できます。A および B は認可上限にありません。
6 列目は、ユーザー認可範囲外で作業することが承認されているユーザーを示します。このユーザーには 1 つのラベル ADMIN_LOW が割り当てられます。
「セッション範囲」は、Trusted Extensions セッション時にユーザーアカウントで使用できるラベルのセットです。セッション範囲は次を対象として制約します。
ユーザーのラベル範囲
ユーザーが選択したラベル
ローカルシステムのラベル範囲
単一ラベルアカウントのセッション範囲は、アカウントのラベルです。ユーザーアカウントが複数のラベルを使用できるように設定されている場合にのみ、一連のラベルからの選択が可能です。複数のラベルを使用できるように設定されているユーザーアカウントは、セッション中に異なるラベルを選択できます。ラベルの指定については『Solaris Trusted Extensions ユーザーズガイド』の「ワークスペースのラベルを変更する」を参照してください。
ログイン時に選択した単一のラベルまたはセッションの認可上限は、ログアウトするまでのそのセッションを通じて有効です。マルチラベルセッションでは、セッション認可上限からユーザーの最下位ラベルまでの間の任意の有効なラベルで、ユーザーが作業できます。
図 1–6 の例は図 1–7 に続きます。この例では、ユーザーは TS A B と S A B の間の適格な形式のラベルを使用するセッション認可上限を指定できます。
図 1–7 の (a) は、ユーザーがセッション認可上限 S A B のマルチラベルセッションを選択した場合に使用可能なラベルを示します。S A B と C の中間にあるその他のラベルは適格な形式ではないので、ユーザーは S A B、C A B、または C でのみ作業できます。
図 1–7 の (b) は、ユーザーがセッションラベル C A B の単一ラベルセッションを選択した場合に使用可能なラベルを示します。C A B は minimum clearance (最下位の認可上限) より下位にあります。ただし、ユーザーは認可上限ではなくセッションラベルを選択するので、C A B はアクセス可能です。セッションは単一ラベルなので、ユーザーは 1 つのラベルでのみ作業できます。ユーザーは S A B または C を選択することも可能でしたが、この例では C A B を指定しました。
次の図に、この例で使用可能なラベルを段階的に除外して示します。それぞれの範囲で除外されるラベルは上に線が引かれます。除外されたラベルは、それ以降の範囲では表示されません。
次の表は、ユーザーのセッション選択に基づくセッションラベルの制限および使用可能性を示しています。この表は、図 1–8 の例から続くものです。
表 1–2 Trusted Extensions セッションでのラベル
|
マルチレベルセッション |
単一レベルセッション |
||
---|---|---|---|---|
|
通常の場合 |
例 #1 |
通常の場合 |
例 #2 |
|
|
認可上限 SECRET A B のマルチレベル |
|
セッションラベル SECRET A B の単一レベル |
初期ワークスペースラベル (最初のログイン時) |
アカウントラベル範囲の最下位ラベル |
CONFIDENTIAL |
セッションラベルはユーザーによって指定されます |
SECRET A B |
使用可能なワークスペースラベル |
セッション認可上限までのアカウントラベル範囲のラベル |
CONFIDENTIAL CONFIDENTIAL A B SECRET A B |
セッションラベルはユーザーによって指定されます |
SECRET A B |
左の列はセッションに使用されるラベル設定のタイプを示します。
真ん中の 2 つの列はマルチレベルセッションに適用されます。
右の 2 つの列は単一レベルセッションに適用されます。
「通常の場合」の列はラベルタイプの決定方法を示します。
「例」の列はログイン時のユーザーの代表的なセッション選択を示します。
例 #1 では、初期ワークスペースラベルが CONFIDENTIAL に設定され、それがユーザーのアカウントラベル範囲の最下位ラベルになります。ユーザーはラベル CONFIDENTIAL、CONFIDENTIAL A B、または SECRET A B で作業できます。
例 #2 では、ユーザーの初期ワークスペースラベルは SECRET A B です。セッションが単一レベルなので、使用可能なワークスペースラベルは SECRET A B のみです。
ラベル付けされた「ワークスペース」では、ユーザーは単一セッションで複数のラベルで作業できます。
ユーザーがセッションについてラベルの範囲を選択した場合、最初に表示されるワークスペースは、ユーザーの「最下位ラベル」です。CDE では、フロントパネルのワークスペーススイッチ部分に、同じ最下位ラベルで 3 つの追加ワークスペース用のボタンが作成されます。
ラベル付けされたシステムでの作業についての詳細は、『Solaris Trusted Extensions ユーザーズガイド』を参照してください。