コンパートメントモードワークステーションのラベル作成: エンコード形式

第 7 章 エンコーディングを指定する際の一般的な考慮事項

これまでの章では、エンコーディングファイルの各セクションを指定する方法について説明してきました。しかし、エンコーディングファイルに指定する際には、各セクションに記述した項目同士の関係について重要な考慮事項があります。この章では、このような考慮事項について説明します。

最下位情報ラベル

指定可能な最下位情報ラベルはエンコーディングファイルに間接的に指定しますが、このラベルが正しい形式であるかどうかについては注意深く確認する必要があります。最下位情報ラベルの格付けは、指定できる最下位の格付けに相当します。最下位情報ラベルのコンパートメントは、最下位の格付けの初期コンパートメントに相当しますが、コンパートメントのインバースビットはすべて 0 に設定されます。最下位情報ラベルのマーキングは、最下位の格付けの初期マーキングに相当しますが、マーキングのインバースビットはすべて 0 に設定されています。

最下位情報ラベルの人が読める形式には、指定した最下位の格付けとともに、この格付けの初期コンパートメントやマーキングで指定したデフォルト語句が含まれますが、初期コンパートメントやマーキングで指定したインバース語句は含まれません。

最上位機密ラベル

指定可能な最上位機密ラベルは、エンコーディングファイルで間接的に指定しますが、このラベルが正しい形式であるかどうかについては注意深く確認する必要があります。最上位機密ラベルの格付けは、指定できる最上位の格付けに相当します。エンコーディングファイルの initial compartments= または compartments= の指定で参照されたすべてのビットについては、最上位機密ラベルのコンパートメントで値 1 が指定されますが、その他のビットについては値 0 が指定されます。

種類の異なるラベルに語句を指定する際の一貫性

情報ラベル、機密ラベル、認可上限といった 3 種類のラベルのコンポーネントとして、多くの語句を指定する必要があります。通常、機密ラベルに指定する語句は、認可上限にも情報ラベルにも指定します。

(認可上限の語句は名前や接頭辞の指定が機密ラベルとは異なっても、その意味は機密ラベル語句と同じであることがあります。これは、語句が同じコンパートメントビットと関連付けられているからです。なぜ認可上限語句の接頭辞だけが機密ラベル語句と異なるかの理由については、第 5 章「機密ラベル、認可上限、チャネル、プリンタバナーのエンコーディング」を参照してください。情報ラベルの語句は名前が機密ラベルとは異なっても、その意味は機密ラベル語句と同じであることがあります。これは、語句が同じコンパートメントビットと関連付けられているからです。また、情報ラベルに表示されない語句と同じコンパートメントビットパターンを指定した別の語句が、情報ラベルに表示されることがあります。)

同じ語句を種類の異なる複数のラベルに表示する場合は、これらの語句の指定が各ラベルでできるだけ一貫するように細心の注意を払う必要があります。特に、異なるラベルに指定する同一の語句は、minclass と maxclass が同じでなければなりません。また、このような語句は、組み合わせという観点からも同じ必須組み合わせと組み合わせ制約を指定する必要があります。なお、この場合、組み合わせる相手の語句も複数のラベルに存在することになります。矛盾した指定を行うと予期せぬ結果を招くことがあります。

たとえば、オブジェクトの機密ラベルの格付けとコンパートメントを、そのオブジェクトの情報ラベルの格付けとコンパートメントと等価にすることで、機密ラベルを降格するシステムを考えてみましょう。例 7–1 のエンコーディングも検討します。これらのエンコーディングでは、同じオブジェクトに関して CONFIDENTIAL A は有効な情報ラベルであり、SECRET A B は有効な機密ラベルです。しかし、このシステムの「機密ラベルを情報ラベルの格付けおよびコンパートメントにまで降格させる」機能を実行すると、機密ラベルは、CONFIDENTIAL A に降格します。このような機密ラベルは、次の 2 つの理由により無効です。1) 機密ラベル内の語句 A は、SECRET という最下位の格付けを持ち、2) 語句 A は、機密ラベルで語句 B を必要とするためです。語句 A を情報ラベルと機密ラベルで一貫してエンコーディングした場合は、このような問題が回避されます。


例 7–1 一貫性を欠くエンコーディング例

CLASSIFICATIONS: 
		NAME= CONFIDENTIAL;   SNAME= C; VALUE= 4;
		NAME= SECRET; SNAME= C; VALUE= 5; 

INFORMATION LABELS:
		WORDS:
			NAME= A;   COMPARTMENTS= 2;  MINCLASS= C;
			NAME= B;   COMPARTMENTS= 3;  MINCLASS= C;
		REQUIRED COMBINATIONS: COMBINATION CONSTRAINTS  

SENSITIVITY LABELS:
		WORDS:
		NAME= A;   COMPARTMENTS= 2;  MINCLASS= S;
		NAME= B;   COMPARTMENTS= 3;  MINCLASS= C;
		REQUIRED COMBINATIONS: A  B
		COMBINATION CONSTRAINTS  

語句をエンコーディングする際の必須アクセス制御に関する考慮点

各語句をエンコーディングする場合は、あらかじめ国家方針という観点から語句の意味を決定しておく必要があります。コンパートメント、サブコンパートメント、SAP、SAPI の場合がそうであるように、必須アクセス制御 (MAC) が語句に基づいて行われなければならないことを国家方針で規定している場合、または語句をコンパートメント (たとえば、付録 B 「説明付きのエンコーディングサンプル」に記載された RELCNTRY1、RELCNTRY2 など、MAC の実行が決定されているリリースマーキング) として扱うよう方針が決定された場合は、そのような語句は、エンコーディングファイルの認可上限セクションと機密ラベルセクションのコンパートメントビットに関連付ける必要があります。また、情報ラベルセクションにも関連付けが必要になる場合もあります。このような語句は、「MAC 語句」と呼ばれます。一方、MAC の決定には直接関与しないものの、MAC の決定に直接関与する語句を示唆する語句は、情報ラベルにしか表示されず、コンパートメントビットとマーキングビットの両方に関連付けられ、「MAC 関連語句」と呼ばれます。最後に、MAC とは無関係の語句は、情報ラベルにしか表示されず、マーキングだけに関連付けられ、「非 MAC 語句」と呼ばれます。

MAC 語句のエンコーディング

前述したように、必須アクセス制御を行わなければならない語句は、コンパートメントビットに関連付け、CLEARANCES:、SENSITIVITY LABELS: の両セクションに指定する必要があります。また、CHANNELS:、PRINTER BANNERS:、INFORMATION LABELS: の各セクションにも指定する必要がある場合もあります。語句を CHANNELS: セクションに記述するのは、それが取り扱いチャネルを表す場合です。語句を PRINTER BANNERS: セクションに記述するのは、それが取り扱いチャネル警告以外の特殊なプリンタバナーマーキングを必要とする場合です。語句を INFORMATION LABELS: セクションに記述するのは、それを情報ラベルに表示したい場合です。情報ラベルには、必須アクセス制御語句を表示するのではなく、必須アクセス制御語句を示唆するコードワードを表示することもできます。

clearances:、sensitivity labels:、channels:、および PRINTER BANNERS: の各セクションにエンコーディングした必須アクセス制御語句は、コンパートメントビットだけに関連付けられます。一方、INFORMATION LABELS: セクションに記述した必須アクセス制御語句は、コンパートメントビットとマーキングビットの両方に関連付けられます。

付録 B 「説明付きのエンコーディングサンプル」に示す語句 A を考えてみましょう。この語句は、CLEARANCES: と SENSITIVITY LABELS: の両セクションでは A という名前で記述され、CHANNELS: セクションでは (CHA) という名前で記述され、値が 1 のコンパートメントビット 0 に関連付けられています。なお、この語句は、INFORMATION LABELS: セクションで値が 1 のコンパートメントビット 0 にも関連付けられていますが、次に述べる理由により、マーキングビットにも関連付けらています。

コンパートメントを表し、通常コンパートメントビットだけに関連付けられると考えられる語句のなかには、情報ラベルでマーキングビットに関連付ける必要があるものがあります。これによって、ほかの情報ラベル語句との階層関係が築かれます。INFORMATION LABELS: セクションで、語句 A はマーキングビット 7 と関連付けられています。A にマーキングビット 7 を指定する理由は、WNINTEL (これは、マーキングビット 7 だけに関連付けられている) より上位に位置する A と階層関係を築くためです。階層関係を築く理由は、WNINTEL という語句は、本来、コンパートメントを直接的に表現または示唆する語句とともにする表示する必要がないものと考えられるからです。すなわち、この階層関係によって WNINTEL という語句は A のような語句とともにラベルに表示されなくなります。

MAC 関連語句のエンコーディング

MAC で直接使用されることはないが、コンパートメントやほかの MAC 語句の存在を示唆する語句は、コンパートメントビットとマーキングビットの両方を使用して INFORMATION LABELS: にエンコーディングします。このような状況が発生するのは、コードワードと呼ばれる複数の語句がコンパートメントに関連付けられている場合です。ユーザーの認可上限は、個々のコードワードについてではなく、コンパートメント全体に設定されます。ただし、情報ラベルにコードワードが存在することは、コンパートメントにデータが存在することを意味します。このような場合、コードワードは、コンパートメント識別のため、コンパートメントビットに関連付けられなければなりません。また、1 つ以上のマーキングビットにも関連付けられなければなりません。これは、MAC 語句の場合とは逆に、語句をコードワードとして区別し、複数のコードワードの中で差別化するためです。このケースの例として、付録 B 「説明付きのエンコーディングサンプル」 に示す alpha1、alpha2、および alpha3 という語句があります。これらの 3 つの語句はいずれも、コンパートメントビット 0 (すなわち、コンパートメント A) に関連付けられていますが、マーキングビットにも関連付けられています。マーキングビットの特定のパターンによって、これらの 3 つのコードワードのうちのどれが存在するのかが分かります。

MAC 関連語句は、必要に応じて PRINTER BANNERS: セクションにもエンコーディングすることができます。この例については、付録 B 「説明付きのエンコーディングサンプル」で取り挙げていません。

非 MAC 関連語句のエンコーディング

MAC と関係ない語句 (コンパートメントとして直接 MAC に関係することも、コードワードとして間接的に MAC に関係することもない語句) は、マーキングビットだけを使用して INFORMATION LABELS: セクションにエンコーディングします。付録 B 「説明付きのエンコーディングサンプル」に示す WNINTEL がこの語句に相当します。

必要に応じて、非 MAC 関連語句は、PRINTER BANNERS: セクションにもエンコーディングすることができます。この例については、付録 B 「説明付きのエンコーディングサンプル」で取り挙げていません。

初期コンパートメントと初期マーキングを使用して、インバースコンパートメントビットとインバースマーキングビットを指定する

次に、インバースコンパートメントビットとインバースマーキングビットを指定するために、初期コンパートメントと初期マーキングを使用する方法について説明します。キーワード initial compartments と initial markings は、次に説明するよりも柔軟に使用することができますが、そのような使い方は、非常に慎重に検討し、目的のセキュリティーやラベルのプロパティーが表現されているかどうかを判断する必要があります。

ここでは、RELXX というインバース語句を使用して、インバースコンパートメントビットとインバースマーキングビットを指定する方法を説明します。RELXX は、語句に関連付けられたデータが XX にリリース可能であることを示しています。XX とは、国、加入組織または人を表します。

  1. 多くの場合、最下位の格付け (複数も可) を持つデータは常に制約なくリリースできます。したがって、最下位の格付けを持つラベルの内部形式では、あらゆる XX に対して、REL XX という語句が論理的に存在することになります。このような語句が存在するということは、関連するビットが 0 であることを意味しています。したがって、最下位の格付けでは、これらのインバースビットを初期コンパートメントや初期マーキングとして指定する必要はありません。

  2. 最下位より上位の格付けについては、通常、REL XX 語句に関連付けられるビットは 1 でなければなりません。なぜなら、これらの格付けを持つラベルのデータはリリースできないからです。したがって、インバースビットを持つ初期コンパートメントを指定するのであれば、最下位以外のあらゆる格付けについて、同じ初期コンパートメントを指定します。マーキングについても同様で、インバースビットを持つ初期マーキングを指定するのであれば、最下位以外のあらゆる格付けについて、同じマーキングを指定します。

  3. コンパートメントビットとマーキングビットを割り当てる際には、システムの一生を通して何個のインバースビットが必要になるかを慎重に決定しなければなりません。システムで使用する可能性のあるインバースビットは、たとえ、当初エンコーディングファイルに指定したマーキング語句に使用されないとしても、初期コンパートメントと初期マーキングで指定しておく必要があります。インバースビットの事前割り当てを行わない場合に生じる問題を次の例で説明します。マーキングビット 11 は、RELCNTRY3 を意味するインバースビットとしてエンコーディングされているとします (付録 B 「説明付きのエンコーディングサンプル」にも同様に指定されています)。さらに、これ以外のインバースマーキングビットは存在せず、マーキングビット 12 には意味が割り当てられていないとします。この場合、マーキングビット 11 が唯一のインバースマーキングビットであるため、初期マーキングビット指定は、次のようになります。

    initial markings= 11;

    このような条件のエンコーディングファイルを使用すると、値が 0 であるマーキングビット 12 や、ほかの未使用のビットの情報ラベルがシステム上に (バックアップテープにも) 多数格納されます。あとで、インバースマーキングビットの 12 やほかの未使用のビットを使用して RELCNTRY4 をエンコーディングすることが決定されると、以前からシステムに格納されているすべてのデータは、自動的に RELCNTRY4 と扱われます。これはマーキングビット 12 の値が 0 だからです。もちろん、システム上およびバックアップテープ上のそのようなデータのすべてが CNTRY4 にリリース可能ではないため、ラベルを作成し直す必要があります。したがって、システムのエンコーディングファイルを最初に読み込む際に、ある一定範囲のビットをインバースビットとして事前に割り当てておくのが最善です。これにより、ラベルを作成し直さなくても、事前に割り当てておいた未使用のインバースビットに意味を割り当てることができます。

なお、上記の説明は、インバースビットのもっとも簡単で一般的な使用方法を示しています。インバースビットにはもっと複雑な使用方法もあり、場合によってはそのような使用方法が必要なこともあります。例として、付録 B 「説明付きのエンコーディングサンプル」に示す仮のコードワード bravo4 を参照してください。

接頭辞を使用して、特殊インバースコンパートメントビットと特殊インバースマーキングビットを指定する

コンパートメントやマーキングを指定する接頭辞を使用する目的は、特殊インバースビットを指定することです。特殊インバースビットによって、特殊インバース語句を使用することができます。特殊インバース語句とは、コンパートメントやマーキングを指定する接頭辞を指定する語句のことです。特殊インバースビットと特殊インバース語句を使用する目的と使用方法については、次に示す例を使用して説明するのがもっとも分かりやすいでしょう。

特殊インバース語句を使用すると、ラベルに指定した ORCON データのリリース先の組織で作成者により管理される、 ORiginator CONtrolled(ORCON) 取り扱い警告を実装することができます。たとえば、3 つの組織 (ORG1、ORG2、ORG3) が特定のシステムを使用している場合、これら 3 つの組織の ORCON を扱うためのエンコーディングは、次のようになります。この例では、SENSITIVITY LABELS 語句だけを示します。

SENSITIVITY LABELS:
		WORDS:
		name=ORCON RELEASABLE TO; sname=OR; compartments=1-4;
		prefix;
		name=ORCON; minclass=C; compartments=1-4;
		name=ORG1; minclass=C; compartments=~1 4; prefix=OR;
		name=ORG2 minclass=C; compartments=~2 4; prefix=OR;
		name=ORG3; minclass=C; compartments=~3 4; prefix=OR;

この例では、ORG1、ORG2、ORG3 が特殊インバース語句であり、それぞれが、ORCON RELESABLE TO という接頭辞を必要とします。この接頭辞がコンパートメント 1 から 4 を指定しているため、これらのビットは特殊インバースビットになります。ビット 1 は ORG1 を、ビット 2 は ORG2 を、ビット 3 は ORG3 をそれぞれ表し、ビット 4 は ORCON という意味を持ちます。ラベルに ORCON RELEASABLE TO ORG1 だけが存在する場合は、ビット 1 はオフ、ビット 2 から 4 はオンになります。ラベルに ORG1 だけが存在する場合は、ビット 1 をオフにし、ビット 2 から 4 をオンにします。ラベルに ORCON RELEASABLE TO ORG2 だけが存在する場合は、ビット 2 はオフ、ビット 1、3、4 はオンになります。ラベルに ORCON RELEASABLE TO ORG3 だけが存在する場合は、ビット 3 はオフ、ビット 1、2、4 はオンになります。ラベルに ORCON RELEASABLETO ORG1/ORG2 が存在する場合は、ビット 1 と 2 をオフにし、ビット 3 と 4 をオンにしていきます。ORCON という語句はほかの 3 つの語句より優位にあり、インバース語句ではありません。ORCON という語句がラベルに存在すると、そのようなラベルを持つデータは、3 つの組織のどれにもリリースできなくなります。

上述した語句を一切持たないラベルは、ビット 1 から 3 がオフであり、すべての組織にリリースできます。また、ビット 4 がオフの場合は、ORCON データではありません。したがって、情報ラベルに関して上記と同じ語句を持つ場合、SECRET ORCON RELEASABLETOORG1 という情報ラベルを持つデータを、TOP SECRET という情報ラベルを持つデータと組み合わせると、TOP SECRET ORCON RELEASABLETOORG1 というラベルが作成されます。特殊インバース語句は、マーキングビットを使用しても指定することができます。

通常のインバースビットとは異なり、特殊インバースビットは、今後の使用に備えて事前に割り当ててはいけません。特殊インバースビットは、事前に計画しておかなくても、動作中のシステムに問題なく追加することができます。

名前の選択

CLASSIFICATIONS:、INFORMATION LABELS:、SENSITIVITY LABELS:、CLEARANCES: の各セクションで選択する名前は、非常に重要な意味を持ちます。一般的に、上述のセクションでは、短形式名と長形式名はすべて一意にすべきです。ただし、システムが接頭辞と接尾辞を処理する方法によっては、このルールが当てはまらないケースが 2 つあります。

  1. 接尾辞と、接頭辞や接尾辞を持たない語句に同じ名前を指定できる場合。このような指定が可能なのは、ラベルに同じ名前を指定したとしても、それが接頭辞か通常の語句かの区別がつく場合です。たとえば、SF という接尾辞、接尾辞 SF を必要とする W という語句、SF という名前の通常の語句があるとしましょう。TS SF というラベルには、SF という通常の語句が含まれています。このように判断できるのは、SF の前に接尾辞 SF を必要とする語句が存在しないからです。一方、ラベル TS W SF には、接頭辞 SF が含まれています。このように判断できるのは、語句 W の直後に SF が続くからです。最後に、ラベル TS SF W SF には、通常の語句の SF と接頭辞の SF の両方が含まれています。

  2. 接頭辞を必要とする語句と、接頭辞や接尾辞を持たない語句に同じ名前を指定できる場合。ただし、これは、接頭辞を必要とする語句の前に、接頭辞や接尾辞を持たない語句を指定する場合に限ります。このような指定が可能なのは、ラベルに同じ名前を指定したとしても、それが接頭辞か通常の語句かの区別がつく場合です。たとえば、接頭辞 P を必要とする語句 W と通常の語句 W があるとしましょう。TS W というラベルに含まれている W は、通常の語句です。このように判断できるのは、W の前に接頭辞がないからです。TS P W というラベルに含まれている W は、接頭辞 P を必要とする語句です。最後に、TS W P W というラベルには、通常の語句 W と接頭辞を必要とする W の両方が含まれています。

ここに示した例外は、混乱を招く可能性があるため可能であれば当然避けるべきです。

名前を指定する場合は、さらに次に示す 2 点も考慮する必要があります。

  1. 情報名ラベル名、機密ラベル名、認可上限名と同じ格付け名を指定してはならない。

  2. SENSITIVITY LABELS: セクションおよび CLEARANCES: セクションの両方に同じ名前を使用した場合、この名前を持つ語句は同じコンポーネントを参照していなければならない。したがって、その語句に関する指定は、エンコーディングファイル内で統一しなければなりません。

エイリアスの指定

情報ラベル、機密ラベル、または認可上限のセクションに記述した語句のうち、それまでにエンコーデングファイルに指定したいくつかの語句のビットをすべて含んでいるコンパートメントビットやマーキングビットを指定したものを、「エイリアス」と呼びます。エイリアスのもっとも単純な例は、それまでに指定した語句のコンパートメントビットとマーキングビットの指定とそっくり同じ指定を持つ語句です。エイリアスによって、それまで定義した語句にさらに名前が追加されます。付録 B 「説明付きのエンコーディングサンプル」に示す語句 WARNING は、語句 WNINTEL のエイリアスです。語句に 2 つ以上の名前を関連付ける場合は、入力名 (inname=) を使用するのがよいでしょう。第 4 章「情報ラベルのエンコーディング」「キーワード iname=」を参照してください。

さらに複雑なエイリアスは、それまでに指定した複数の語句に指定したビットを含んでいるコンパートメントビットやマーキングビットを持つ語句です。付録 B 「説明付きのエンコーディングサンプル」に示す SYSHI という語句がこれに相当します。SYSHI を入力することは、付録 B 「説明付きのエンコーディングサンプル」に示す CC SB bravo1 bravo3 SA alpha1 project X/project Y LIMDIS ORCON org x/org Y D/E all eyes NOFORN を指定するのに相当します。

エイリアスは、ラベルを入力したり追加したりする際に使用できます。たとえば、+alias と入力すると、既存のラベルにエイリアスを追加できます。しかし、ラベルから語句を削除するためにエイリアスを使用することはできません。たとえば、-alias と入力して、既存のラベルからエイリアスを削除することはできません。また、エイリアスとエイリアスに指定されている語句に、同じ flag= 指定がなされていると、エイリアスは出力ラベルには決して表示されません。たとえば、WNINTEL という語句に上記の WARNING というエイリアスが定義されているとします。次の表では、このエイリアスを使用して TOP SECRET というラベルがどのようにして変更できるか、または変更できないかを示します。

表 7–1 エイリアスを使用した変更

ラベル 

入力した変更 

コメント 

TOP SECRET 

+WARNING 

既存のラベルにエイリアスを追加する。すると、エイリアス自身ではなく、エイリアスに指定された語句 (WNINTEL) がラベルに表示される 

TOP SECRET WNINTEL 

-WARNING 

「WARNING」がラベルに存在しないため、エラーが発生する 

TOP SECRET WNINTEL 

-WNINTEL 

エイリアスが指定された語句が削除される 

TOP SECRET 

 

エイリアスが指定された語句は削除された 

エイリアスを持つ語句をフラグと組み合わせると、オプションにより出力ラベルで使用できるエイリアスを作成することができます。システムではフラグ機能を使用していませんが、このフラグ機能を使用するためのアプリケーションを作成することができます。たとえば、NORMAL NAME として通常表示する語句を、特定の条件下では ALTERNATIVE NAME として表示しなければならない場合があります。次のエンコーディングを使用するとこれが可能になります。

name= NORMAL NAME; markings= 34;  
name= ALTERNATE NAME; markings= 34; flags= 1;

通常の環境では、ラベルには NORMAL NAME と表示されますが、フラグ 1 が指定された語句だけを使用するよう変換ソフトウェアに明示的に指示すると、ラベルには ALTERNATIVE NAME と表示されます。このような要領でアプリケーションでフラグ機能を使用する方法については、[DDS-2600-6215-91] を参照してください。

必須組み合わせにおける「ループ」を回避する

必須組み合わせを指定する際には、「ループ」が発生しないように十分注意する必要があります。一連の必須組み合わせの指定で、語句が自分自身を必要とするとき、ループが発生します。次にループのもっとも単純な例を示します。

A B
B A

この指定により、語句 A は語句 B を必要としますが、語句 B も語句 A を必要とします。しかし、このような指定は意味がありません。A と B を常に一緒に表示する必要があるなら、これらを別々の語句としてエンコーディングする必要はないからです。さらに複雑なループは、次のようなケースです。

A B
B C
C A

語句 A は語句 B を必要とし、語句 B は語句 C を必要とし、語句 C は語句 A を必要とします。

必須組み合わせに関する表示の制約

機密ラベルは関連する情報ラベルより優位でなければならないこと、ユーザーの認可上限は、そのユーザーが指定する機密ラベルより優位でなければならないことにより、特定のラベルに追加できる語句に制約が発生します。たとえば、情報ラベルに語句を追加した結果、情報ラベルの格付けが上昇し、関連する機密ラベルがもはやその情報ラベルより優位でなくなると、その語句がその情報ラベルに表示されなくなります。同様に、機密ラベルに語句を追加した結果、機密ラベルの格付けが上昇し、関連するユーザーの認可上限がもはやその機密ラベルより優位でなくなると、その語句がその機密ラベルに表示されなくなります。

必須組み合わせで相手の語句から必要とされる語句は、相手の語句が表示されている限りは、必ず表示されなければなりません。たとえば、次の必須組み合わせが存在するとします。

A B

A は B を必要とするため、A が表示されているときは常にその時に B も表示されなければなりません。A が表示されているのに B が表示されない場合、A を正当にラベルに追加することができるという状況が発生する可能性があります。しかし、これは B もラベルに追加する必要があることを意味し、優位関係の違反となるため、A をラベルに追加することはできません。このような状況は、注意深く組み合わせを作成することで回避する必要があります。マーキングビットだけが関連付けられている (つまり、コンパートメントビットがない) 語句の必須組み合わせに関しては制約がありません。なぜならマーキングビットは、上述した優位関係に関与しないからです。

このような制約を箇条書きにすると次のとおりです。1) 組み合わせを必要とする機密ラベルは、等価の認可上限ほど制約があってはならない。2) 組み合わせを必要とする情報ラベルは、等価の機密ラベルほど制約があってはならない。この問題に関する具体的な例は、付録 B 「説明付きのエンコーディングサンプル」に示すサンプルコーディングに記載されています。

CLEARANCES: と SENSITIVITY LABELS: の各エンコーディングの SA と CC コンパートメントを見てみましょう。これらのセクションの REQUIRED COMBINATIONS: には、次のような記述があります。

SB B
SA A

ここで、SENSITIVITY LABELS: のエンコーディングにだけ、次の必須組み合わせを追加します。

SA CC

この追加の必須組み合わせは、SA が機密ラベルに存在するときは、CC も存在しなければならないことを示していますが、これによって、認可上限の必須組み合わせに比べ、機密ラベルの必須組み合わせにはより制約が課されます。ここで、TS A B SA SB という認可上限を持つユーザーを考えてみましょう。このような認可上限はエンコーディングでは完全に有効ですが、このユーザーは機密ラベルに SA を指定することはできません。なぜなら、SA は CC を必要としますが、このユーザーは CC についての認可上限が与えられていないからです。

必須組み合わせと組み合わせ制約との関係

有効な必須組み合わせを有効な組み合わせ制約と組み合わせているにもかかわらず、矛盾した状況が発生することがあります。次の必須組み合わせがあるとします。

A B

これを次の組み合わせ制約と組み合わせます。

A ! B

これは語句 A は語句 B を必要としているが、語句 A と語句 B は組み合わせることができないことを示しています。このような矛盾した状況は避けなければなりません。

情報ラベルの組み合わせ制約の指定に関する制限

情報ラベルの組み合わせ制約は、ラベル作成ソフトウェアによって、単一の情報ラベルに無効な語句の組み合わせが指定できないようにするためのものです。しかし、有効な任意の 2 つの情報ラベルのコンパートメントビットとマーキングビットについて、ビット単位の論理和をとると、それらの情報ラベルは組み合わせることができます。ここで、付録 B 「説明付きのエンコーディングサンプル」の例を引用して、サブコンパートメント SA とサブコンパートメント SB が組み合わせられないことを組み合わせ制約を使用して指定すると、矛盾した状況が発生します。この矛盾とは、SA と SB を 1 つの情報ラベルに入力しても、SA と SB を組み合わせることができないものの、SA というサブコンポーネントと SB というサブコンポーネントを持つ 2 つの別個の情報ラベルを組み合わせると、両方のサブコンポーネントを持った新規の情報ラベルが出来上がるという点です。したがって、このような矛盾を回避するには、エンコーディングによって自動的に適用される組み合わせ制約以外の制約を指定しないことです。

インバース語句の組み合わせには、エンコーディングによって自動的に制約が適用される例が数多く存在します。次の組み合わせ制約を使用して、2 つのインバース語句 IW1 と IW2 が組み合わされないように制約するとします。

IW1 ! IW2

すると、2 つのラベルを組み合わせても、IW1 と IW2 が決して一緒に表示されないことがわかります。なぜなら、インバース語句が組み合わされるのは、組み合わせ対象の各ラベルに含まれているインバース語句を、作成されるラベルに含めるようにする場合です。したがって、 IW1 と IW2 の両方が 1 つの情報ラベルに存在できない場合は、情報ラベルを組み合わせても IW1 と IW2 を組み合わせることはできません。

したがって、& 制約の左側と ! 制約にインバース語句だけを指定すると、確実に矛盾を回避することができます。

システムですでに使用されているエンコーディングを変更する

CMW システムにすでにロードされ、そこで実行されているエンコーディングファイルの修正は、非常に慎重に行う必要があります。なぜなら、いったんそのエンコーディングファイルを使用してシステムを起動させると、ロードされたエンコーディングファイルに従って正しい形式とされた機密ラベルおよび情報ラベルが多くのオブジェクトにラベル付けされるからです。あとでエンコーディングを変更する際に注意を怠ると、既存のラベルが正しい形式でなくなる可能性があります。語句に関連付けられているビットパターンを変更すると、その語句が含まれているラベルを含むオブジェクトが無効になる場合があります。語句に関連付けられている最下位の格付けを上昇させたり、最上位の格付けを低下させたりすると、その語句が含まれているラベルを持つ既存のオブジェクトが正しい形式でなくなる可能性があります。

したがって、すでに使用しているエンコーディングに対する変更は、新規の格付けや語句の追加、既存の語句の名前の変更だけにとどめるべきです。ただし、上述したように、エンコーディングファイルを最初に作成したときに、余分のインバースビットを予約し、あとでエンコーディングを拡張したときに新しいインバース語句を組み込めるようにしておくことが重要です。予約しておいたインバースビットを使用せずにインバース語句を追加すると、システム上にある既存の全オブジェクトのラベルには、誤って新規のインバース語句が付加されてしまいます。

デフォルト語句の指定の一貫性

デフォルト語句とは、格付け値に関連付けられた初期コンパートメントと初期マーキングによってその存在が指定される語句です。すなわち、デフォルト語句は、語句の存在を指定する初期コンパートメントとマーキングを持つ格付け (複数も可) が含まれるすべてのラベルに表示されます。

ほかの語句と同様、デフォルト語句についても、ominclass= を使用して出力される最下位の格付けを指定することができます。このような場合、その語句は、出力される最下位の格付けと同等かそれより上位の、人が読める形式のラベルにだけ表示されます。また、minclass= を使用すると、デフォルト語句に関する最下位の格付けを指定することができます。ただし、その最下位の格付けは、その語句がデフォルトとなる格付けと同等か下位でなければなりません。たとえば、次のエンコーディングは誤りです。

CLASSIFICATIONS:

name= SECRET; sname= S; value= 5; initial markings= 3;

name= TOP SECRET; sname= TS; value= 6; initial markings= 3;

INFORMATION LABELS:

		WORDS:

		name= word1;  markings= 3;  minclass= TS;

word 1 は、SECRET という格付けに対するデフォルト語句ですが、最下位の格付けとして、SECRET より上位の TOP SECRET を指定している点が誤りです。

デフォルト語句を指定する場合は、指定したデフォルト語句とデフォルト語句に関する組み合わせ制約が矛盾しないように、慎重に行う必要があります。組み合わせ制約を指定して、デフォルト語句が 2 番目の語句と組み合わせられないようにする場合は、 2 番目の語句は、最初のデフォルト語句と同じ格付けのデフォルト語句に指定されてはなりません。たとえば、次のエンコーディングは誤りです。

CLASSIFICATIONS:

name= SECRET; sname= S; value= 5; initial markings= 3 4;

INFORMATION LABELS:

		WORDS:

		name= word1;  markings= 3; 

		name= word2;  markings= 4;

		REQUIRED COMBINATIONS:

		COMBINATION CONSTRAINTS:

		word1 ! word2

word 1 と word 2 はともにデフォルト語句であるにもかかわらず、それらの組み合わせが許されないよう制約されている点が誤りです。