『Compartmented Mode Workstation (CMW) Evaluation Criteria, Version 1 [DDS-2600-6243-91]』には、『Defense Intelligence Agency Manual 50-4 [DIAM 50-4]』に規定された方針に基づいて、Compartmented Mode の認可を受けたワークステーションのセキュリティーに関する最低限の要件が定義されています。インテリジェンスコミュニティー全体で多数の CMW が存在すること、および CMW 同士が相互に操作可能でなければならないという理由により、標準となるセキュリティーラベルのエンコーディング方法が必要です。
セキュリティーラベルのエンコーディングの定義は、3 段階のプロセスから成ります。第 1 段階では、人が読める形式のラベルになるセットを識別し、認識しなければなりません。このようなセットの定義には、人が読める形式のラベルで使用される格付けとその他の語句に関する一覧、語句同士の関係、各語句の使用に関する格付けの制約、それらの語句の必須アクセス制御での使用方法、およびシステム出力に付加するラベルの作成が含まれます。第 2 段階では、この定義を整数、ビットパターン、および論理的な関係文に関連付けます。第 3 段階では、CMW システムファイルを作成し、エンコーディングを格納します。このマニュアルでは、第 1 段階はすでに完了しているものとして、第 2 段階、第 3 段階を主に取り上げます。
CMW は、このエンコーディングを使用して、人が読める形式のラベルを CMW が内部的に使用する形式に変換したり、この逆の変換を行なったり、印刷物のバナーページを作成したりすることを制御します。さらに、このエンコーディングは、情報ラベルに含まれるさまざまなコンポーネントの組み合わせを判定する際に非常に重要な役目を果たします。なお、情報ラベル同士を組み合わせる際に CMW が直接このエンコーディングを使用することはありません。エンコーディングを指定する必要があるコンポーネントは、1) 格付け、2) 情報ラベル、機密ラベル、認可上限、取り扱いチャネル、およびプリンタバナーに含まれるその他の語句、3) システム認可範囲、ユーザー認可範囲、および関連値です。
このマニュアルのシリーズの 1 つである『Compartmented Mode Workstation (CMW) Labeling: Source Code and User Interface Guidelines [DDS-2600-6215-91]』では、このマニュアルで説明するエンコーディングを操作するための標準ソフトウェアについて説明しています。
上述したとおり、エンコーディングは、情報ラベル、機密ラベル、認可上限ラベル (以後認可上限と呼ぶ) を人が読める形式から内部形式に変換したり、この逆の変換を行なったりすることを制御します。人が読める形式のラベルは、格付けとそれに続く一連の語句から構成されます。これらの語句は、コンパートメント (情報ラベル、機密ラベル、認可上限に存在する) とマーキング (情報ラベルにのみ存在する) を表すことができます (「コンパートメント」という用語は、インテリジェンスコミュニティーの用語で、National Computer Security Center の『Trusted Computer System Evaluation Criteria [DOD 5200.28-STD]』で使用される「カテゴリ」にもっとも近い用語です。コンパートメントという用語は、ほかのインテリジェンスコミュニティーのマニュアルとの一貫性を保つ理由でこのマニュアルでも一貫して使用しますが、その概念的な意味は「カテゴリ」と捉えてください)。
ラベルの内部形式は、次の表にまとめるように、整数の格付け値と一連のビットから成ります (すべてのラベルにはコンパートメントビットが存在しますが、マーキングビットが存在するのは情報ラベルだけです)。
表 1–1 ラベルの概要
ラベルの種類 |
格付け |
コンパートメント |
マーキング |
---|---|---|---|
情報ラベル |
整数 |
ビット群 |
ビット群 |
機密ラベル |
整数 |
ビット群 |
(なし) |
認可上限 |
整数 |
ビット群 |
(なし) |
したがって、情報ラベルは、格付け、コンパートメント、マーキングという 3 つのコンポーネントから成りますが、機密ラベルと認可上限には、格付けとコンパートメントというコンポーネントしかありません。
2 つのラベル (情報ラベル、機密ラベル、認可上限のいずれか) が存在するとき、この 2 つのラベルの間には「優位」と呼ばれる関係が存在します。優位とは、次のように定義されます。
L1 と L2 という 2 つの情報ラベルが存在する場合に、L2 の格付けが L1 の格付けより高く、かつ L1 のコンパートメントビットとマーキングビットで 1 のものが、L2 でもすべて 1 のとき、L2 は L1 より「優位である」といいます。
L1 と L2 というマーキングがない 2 つのラベル (機密ラベルまたは認可上限) が存在する場合に、L2 の格付けが L1 の格付けより高く、かつ L1 で 1 のコンパートメントビットが L2 でもすべて 1 のときに限り、L2 は L1 より「優位である」といいます。
L1 という情報ラベルと L2 というマーキングがないラベル (機密ラベルまたは認可上限) が存在する場合に、L2 の格付けが L1 の格付けより高く、かつ L1 で 1 のコンパートメントビットが L2 でもすべて 1 のときに限り、L2 は L1 より「優位である」といいます。
優位関係のほかに、同じコンポーネントを持つラベル同士には 2 つの関係が存在します。格付けもビットの設定も同じ場合、2 つのラベルは同等です。自分のラベルのビットの値が 1 で、それに対応する相手ラベルのビットが 0 であるような 2 つのラベルは比較できません。優位という言葉で表現すると、同じコンポーネントを持つ 2 つのラベルが互いに対し優位であるとき、2 つのラベルは同等といえます。一方、2 つのラベルが互いに対し優位でない場合、これらのラベルは比較できません。
図 1–1 では、3 つのラベルとそれに関係するコンパートメントビットとマーキングビットを示しています。上述したように、L2 は L1 より優位にあります。L3 は、L1 と L2 のどちらとも比較できません。最後に 3 つのラベルはすべて (実際には、指定可能なすべてのラベルは)、自身に対して優位であり同等です。
人が読める形式のラベルに含まれる格付けに使用される語句には、通常の語句またはインバース語句があります。3 つ目の種類の語句として特殊インバースがありますが、ここでは取り上げません。第 4 章「情報ラベルのエンコーディング」の「接頭辞と接尾辞の定義」、および第 7 章「エンコーディングを指定する際の一般的な考慮事項」の「接頭辞を使用して、特殊インバースコンパートメントビットと特殊インバースマーキングビットを指定する」を参照してください。人が読める形式のラベルに通常の語句を追加すると、ラベルの機密度が上がります。たとえば、値が 1 のコンパートメントビットまたはマーキングビットが増加します。また、人が読める形式のラベルにインバース語句を追加すると、ラベルの機密度は上昇せずに、減少もしくは変化します。たとえば、内部形式のラベルに含まれる少なくとも 1 つのビットが 1 から 0 に変化します。これを優位という言葉で表現すると、通常の語句をラベルに追加すると、元のラベルより優位な、すなわち、階層関係で上の新しいラベルに変更されます。インバース語句をラベルに追加すると、1) 元のラベルより劣位なラベル、または 2) 元のラベルと比較できないラベルのいずれかに変化します。
エンコーディングファイルを作成する際の第 1 段階として、CMW で実装されるラベル群を定義します。ラベルを定義するには、次の作業を行う必要があります。
格付けを表す長形式名と短形式名、および情報ラベル、機密ラベル、認可上限を構成する語句を決定する。
格付けと語句を組み合わせる際の一連のルールを決定する。
最下位の格付け、取り扱いチャネル、およびプリンタバナーページに表示する必要のあるコンパートメントとマーキングに関連したその他の情報を決定する。
システムに固有な最下位機密ラベルと最下位認可上限を決定する。
次に、これらのラベル群をエンコーディングするための作業には、次のものがあります。
格付けを表現する内部的な整数を決定する。
機密ラベルおよび認可上限に使用する語句について、内部的なコンパートメントビットの文字列表現を決定する。
情報ラベルに使用する語句について、内部的なコンパートメントビットとマーキングビットの文字列表現を決定する。
格付けと語句の組み合わせに関するルールを使用して、次の決定がなされます。
これらの決定は、整数およびビット文字列を使用した内部表現の選択に影響を与えます。
正しい形式のラベルと組み合わせ判定に関するルールを作成するのが、エンコーディングを作成するうえでもっとも重要で複雑な作業です。この詳細については、次に説明します。
ラベルが正しい形式であると言えるのは、同じラベル内の格付けおよび語句の関係に関する一連のルールにラベルが従っている場合です。正しい形式という概念は、情報ラベル、機密ラベル、認可上限に適用されます。エンコーディングとそれに関連するソフトウェア (人が読める形式から内部形式へとラベルを変換するソフトウェア) では、正しい形式に関するルールとして次のものを使用します。
一連の「デフォルト語句」は、1) もっとも機密度の低い認可上限と機密ラベル、2) 特定の格付けを持つもっとも機密度の低い機密ラベルに関連付けることができます。このようなデフォルト語句を定義するには、格付けに関連付けた初期コンパートメントやマーキングに、デフォルト語句に関連したコンパートメントビットやマーキングビットを設定します。第 3 章「格付けのエンコーディング」で説明する initial compartments= と initial markings= というキーワードを参照してください。たとえば、特定のシステムに関するすべての格付けデータが NOFORN (海外への配布を禁止するの意味) であると見なされ、かつ NOFORN が情報ラベル語句 (たとえば、マーキングビットが関連付けられている) の場合、NOFORN は、UNCLASSIFIED より上位にあるすべての格付けに関するデフォルト語句としてエンコーディングすることができるため、全情報ラベル上に自動的に表示されます。
各語句には最下位の格付けを関連付けることができます。これによって、最下位の格付けが関連付けられた語句は、それより下位の格付けを持つ人が読める形式のラベルには表示されません。第 4 章「情報ラベルのエンコーディング」のキーワード minclass= を参照してください。たとえば、一部のコンポートメントには、TOP SECRET という最下位の格付けを関連付ける必要があります。
各語句には「最下位出力」という格付けを関連付けることができます。これによって、最下位出力という格付けが関連付けられた語句は、それより下位の格付けを持つラベルの内部形式には存在しますが、人が読める形式には表示されません。第 4 章「情報ラベルのエンコーディング」のキーワード ominclass= を参照してください。たとえば、UNCLASSIFIED という格付けを持つ人が読める形式のラベルにはリリースマーキングが表示されません。したがって、これらのリリースマーキングには、CONFIDENTIAL という最下位出力の格付けが設定されていることになります。
各語句には「最上位出力」という格付けを関連付けることができます。これによって、最上位出力という格付けが関連付けられた語句は、それより上位の格付けを持つラベルの内部形式には存在しますが、人が読める形式には表示されません。第 4 章「情報ラベルのエンコーディング」のキーワード omaxclass= を参照してください。
各語句には最上位の格付けを関連付けることができます。これによって、最上位の格付けに関連付けられた語句は、それより上位の格付けを持つラベルには表示されません。第 4 章「情報ラベルのエンコーディング」のキーワード maxclass= を参照してください。たとえば、付録 B 「説明付きのエンコーディングサンプル」に示すコードワード bravo4 を参照してください。
特定の語句のグループは、1 つの階層として定義することができます。階層を定義すると、階層に含まれる語句は一度に 1 つしかラベルに表示できなくなります。語句の階層は、語句を内部的に表現するために選択したコンパートメントビットやマーキングビットによって定義されます。すなわち、W2 という語句に関連付けられたコンパートメントビットおよびマーキングビットが、W1 という語句に関連付けられたコンパートメントビットおよびマーキングビットと同等ではなく優位にある場合、階層上 W2 は W1 の上に位置します。この場合、W1 と W2 を同時にラベルに表示することはできません。第 4 章「情報ラベルのエンコーディング」で説明するキーワード compartments= と markings=、および 第 8 章「適切なラベル判定を行う」の 「語句の階層」を参照してください。たとえば、付録 B 「説明付きのエンコーディングサンプル」に示すコードワード alpha1、alpha2、および alpha3 を参照してください。
ラベル内の語句には、同じラベルに別の語句を必要とするものがあります。キーワード REQUIRED COMBINATIONS: (第 4 章「情報ラベルのエンコーディング」) を参照してください。たとえば、機密ラベルのサブコンパートメントのなかには、メインコンパートメントを必要とするものがあります。
一部の語句については、階層関係を持たない語句同士であっても、ラベル上に同時に表示しないようにすることができます。キーワード COMBINATION CONSTRAINTS: (第 4 章「情報ラベルのエンコーディング」) を参照してください。たとえば、付録 B 「説明付きのエンコーディングサンプル」に示すコードワード bravo4 は、単独でラベルに用いられる語句です。
別の情報ラベルを持つ 2 つのデータ (例、オブジェクト、ファイル、ウィンドウの内容の一部) をマージまたは結合したとき、2 つの情報ラベルの組み合わせが自動的に判定され、マージされたデータを正しく表現する単一の情報ラベルが決定されます。2 つの情報ラベルを判定するこの処理は、ラベルの「結合」、または 1 つのラベルからもう 1 つのラベルへの「浮上」と言います。格付けに割り当てられた値、および情報ラベル語句に割り当てられた内部コンパートメントビットおよびマーキングビットの表現によって、システムによる情報ラベルの判定方法が決定します。
2 つの情報ラベルをもとにシステムが格付けを判定する場合、新たな格付けの値は、常に元の格付けの内部整数値より大きくなります。格付けはすべて厳密な階層関係を持つことが定義により規定されているため、もっとも機密度の高い格付けに最大値を設定し、もっとも機密度の低い格付けに最小値を設定するなど、格付けに階層を表現する整数値を指定することによって、格付けの判定が正しく行われます。
語句を適切に判定するために考慮しなければならない点はさらに複雑です。情報ラベルのコンパートメントビットとマーキングビットを判定するために、表 1–2 に示すように、ビット文字列の「論理和」がビット単位にとられます。
表 1–2 情報ラベルのビット文字列の組み合わせ例
|
|
ビット文字列 |
|
|
コンパートメント |
マーキング |
|
情報ラベル 1 (IL1) |
10100000 |
00001111 |
|
情報ラベル 2 (IL2) |
11010001 |
11000000 |
|
判定 (IL1 + IL2) |
11110001 |
11001111 |
論理和によって語句を結合する際に目的のプロパティが適用されるよう、各情報ラベル語句のビット表現を定義すると、判定が適切に行われるようになります。表 1–3 は、語句の組み合わせがさまざまに判定される可能性があることを示しています。次の図とその次の図では、語句が存在しない場合を (NULL) で示します。
前述したように、語句には、通常の語句とインバース語句という基本的な 2 種類があります。また、語句は、ほかの語句との階層関係で表示することもできます。このようなさまざまな語句をサポートするために、人が読める語句の名前と内部ビットパターンとの関連付けを、エンコーディングの際に非常に柔軟に行うことができます。すなわち、語句の名前を単に複数のビットに割り当てるのではなく、固有のビットパターンに関連付けることができます。これらのビットパターンでは、コンパートメントビット、マーキングビット、またはその両方を使用することができます。表 1–3 に示す例は、語句の内部エンコーディングによって、通常の語句、インバース語句、階層関係のある語句、合成語句、より複雑な例がどのように判定されているかを示しています。
各例では、語句に関連付けられた適切なビット値が 1 および 0 で示されています。関係のないビット位置は – (実線) で示します。次に示す各例では、2 つのラベルとその組み合わせについて、人が読める形式と内部形式の両方を示します。語句を持たないラベルについては、(NULL) と示します。次に例示するビットは、コンパートメントビット、マーキングビット、またはその両方です。ラベル判定という観点からコンパートメントビットとマーキングビットに違いはありません。
表 1–3 ラベル判定の例
コメント |
IL1 |
IL2 |
IL1+IL2 |
通常の語句 |
Word1 |
(NULL) |
Word1 |
インバース語句 |
Word2 |
(NULL) |
(NULL) |
両方の語句が通常の語句 |
Word1 |
Word3 |
Word1 Word3 |
両方の語句がインバース語句 |
Word2 |
Word6 |
(NULL) |
両方の語句がインバース語句 |
Word2 |
Word2 Word6 |
Word2 |
Word5 の階層が Word4 より上に位置する |
Word4 |
Word5 |
Word5 |
Word9 は Word7 と Word8 の合成語句 |
Word7 |
Word8 |
Word9 |
Word12 は、Word10 と Word11 の合成語句であるが、これらの語句との階層関係はない |
Word10 |
Word11 |
Word10 Word11 Word12 |
Word13 はインバース語句で、Word14 より階層での位置が低い |
Word13 |
(Word13 以外) |
Word14 |
通常の語句は、1 だけで構成される 1 つ以上の内部ビットパターンに関連付けられます。通常の語句には、複数のビットを関連付けることができます。次の例は、1 つのビット (値 1) が 1 つの語句に関連付けられたもっとも単純で一般的なケースです。このような語句を、語句を持たないラベルと結合すると、その語句だけが含まれるラベルが作成されます。
Word1 |
1––––––– |
(NULL) |
–––––––– |
Word1 |
1––––––– |
次の例では、異なるビット (値 1) に関連付けられている 2 つの通常の語句を結合します。すると、両方の語句を持つラベルが作成されます。
Word1 |
1––––––– |
Word3 |
––1––––– |
Word1 Word3 |
1–1––––– |
インバース語句は、少なくとも 1 つのインバースビットが含まれる内部ビットパターンに関連付けられます。インバースビットとは、ラベルに語句が存在する場合には値 0 が関連付けられ、ラベルに語句が存在しない場合には値 1 が関連付けられるビットのことです。インバース語句には、複数のビットを関連付けることができます。次の例は、1 つのビット (値 0) が 1 つの語句に関連付けられたもっとも単純で一般的なケースです。このようにビットを反転させて使用する場合、NULL ラベルのインバースビットの値は、1 でなければなりません。このような語句を、語句を持たないラベルと結合すると、語句を持たないラベルが作成されます。
Word2 |
–0–––––– |
(NULL) |
–1–––––– |
(NULL) |
–1–––––– |
次の例では、異なるインバースビット (値 0) に関連付けられている 2 つのインバース語句を結合します。すると、どちらの語句も含まれないラベルが作成されます。
Word2 |
–0–––1–– |
Word6 |
–1–––0–– |
(NULL) |
–1–––1–– |
次の例では、上記のインバース語句を持つ 2 つのラベルを結合します。すると、両方のラベルに存在するインバース語句だけが、作成されたラベルにも含まれます。
Word2 |
–0–––1–– |
Word2 Word6 |
–0–––0–– |
Word2 |
–0–––1–– |
一方のビットセットがもう一方のビットセットを含む場合など、2 つの語句に関連付けられたビットが階層を形成する場合、2 つの語句は階層を形成します。通常の語句もインバース語句も階層関係を持つことができます。次の例は、階層関係を持つ 2 つの通常の語句を扱ったもっとも単純なケースです。この例では、ビットからも明らかなように、Word5 は Word4 より上の階層に位置します。したがって、2 つの語句を結合すると、2 つの語句のうちの階層が上位である Word5 になります。同じ階層にある 2 つの語句が、1 つのラベルに一緒に表示されることはありません。
Word5 |
–––11––– |
Word4 |
–––1–––– |
Word5 |
–––11––– |
この例は、前述の Word1 と Word3 の例に非常に似ています。前述の例との違いは、この例には、2 つの語句を複合した 3 番目の語句が登場する点です。Word9 は、「Word7 と Word8 を組み合わせたもの」を意味する合成語句です。個々の語句を組み合わせたものを組み合わせラベルに表示する代わりに、このような合成語句を使用できます。この例は、合成語句と合成語句の元となる語句が階層関係を形成している特殊なケースであるため、合成語句を、合成語句の元となるどちらか一方の語句と同じラベルに表示することはできません。
Word7 |
––––––1– |
Word8 |
–––––––1 |
Word9 |
––––––11 |
階層とは関係なく合成語句を形成することもできます。階層関係を持たない合成語句は、複数のビットに関連付けられている語句から作成することができます。次の例では、Word12 は Word10 と Word11 の合成語句ですが、どちらの語句とも階層関係がありません。したがって、Word12 は、Word10 および Word11 と同じラベルに表示することができます。Word10 と Word11 を結合すると、これら 3 つの語句がすべて含まれたラベルが作成されます。
Word10 |
1–––––1– |
Word11 |
–1–––––1 |
Word12 |
––––––11 |
階層には通常の語句とインバース語句の両方が存在できます。次の例では、インバース語句と階層の複雑な組み合わせを示しています。Word13 は、通常のビット (値 1) が 1 つと、インバースビット (値 0) が 1 つから成る内部表現を持つ語句です。一方のビットがインバースビットなので、例の 2 行目に示すように、Word13 を持たない任意のラベル内の対応するインバースビットの値は 1 になります。Word14 は通常の語句であり、Word13 よりも上位の階層に位置します。階層とインバースビットのこの特殊な組み合わせの結果は興味深いもので、Word13 を、Word13 を持たない任意のラベルと結合すると、Word13 ではなく Word14 が含まれるラベルが作成されます。
Word13 |
10–––––– |
(Word13 以外の | |
ラベル) |
–1–––––– |
Word14 |
11–––––– |
このマニュアルの以降の章では、CMW の標準的なエンコーディングファイルを作成する方法について説明します。第 2 章「エンコーディングファイルの構造と構文」では、エンコーディングファイルの一般的な構造について説明します。第 3 章「格付けのエンコーディング」では、格付けの指定方法について説明します。第 4 章「情報ラベルのエンコーディング」では、情報ラベルを構成する語句の指定方法について説明します。第 5 章「機密ラベル、認可上限、チャネル、プリンタバナーのエンコーディング」では、機密ラベル、認可上限、チャネル、プリンタバナーを構成する語句、およびプリンタバナーページで使用されるその他の取り扱い禁止警告の指定方法について説明します。第 6 章「認可範囲と名前情報ラベルのエンコーディング」では、システム認可範囲、ユーザーの認可範囲、および格付け名の情報ラベルの指定方法について説明します。第 7 章「エンコーディングを指定する際の一般的な考慮事項」では、エンコーディング値を指定する際の一般的な考慮事項について説明します。第 8 章「適切なラベル判定を行う」では、エンコーディング値を使用して適切なラベル判定を行う方法について説明します。付録 A 「エンコーディング指定に関するエラーメッセージ」では、エンコーディング値の指定が不正の場合に発生するエラーメッセージについて説明します。付録 B 「説明付きのエンコーディングサンプル」では、説明付きのエンコーディングファイルのサンプルを示し、ファイルの各項目の機能について説明します。用語集では、このマニュアルで使用される重要な用語を定義します。重要な用語については参照しやすいように、索引が用意されています。