この節では、このマニュアルで説明される次の 3 つの Trusted Extensions API の概要を説明します。
ラベル API
トラステッド X ウィンドウシステム API
ラベルビルダー API
これらの Trusted Extensions API のほかに、Solaris OS で使用できるセキュリティー API を使用できます。Trusted Extensions で実行されるアプリケーションでは、その他のセキュリティー属性の操作が必要な場合があります。たとえば、ユーザーおよびプロファイルデータベースには、ユーザー、役割、承認、およびプロファイルに関する情報が格納されています。これらのデータベースは、だれがプログラムを実行できるかを制限できます。さまざまな Solaris プログラム、さらに他社製アプリケーションに特権をコーディングすることができます。
これらの Solaris OS セキュリティー API に関する詳細は、『Solaris セキュリティーサービス開発ガイド』の第 2 章「特権付きアプリケーションの開発」を参照してください。
Solaris OS は、データの所有者がデータへのアクセスをだれに許可するかを決定する「任意アクセス制御」(DAC) を提供します。Trusted Extensions ソフトウェアは、必須アクセス制御 (MAC) と呼ばれる追加のアクセス制御を提供します。MAC では、一般ユーザーは「セキュリティーポリシー」を指定したり上書きしたりできません。セキュリティー管理者がセキュリティーポリシーを設定します。
アプリケーションは Trusted Extensions API を使用して、ホスト、ゾーン、および役割のラベルを取得します。セキュリティーポリシーが許可する場合、API によってユーザープロセスまたは役割プロセスに対してラベルを設定できます。ゾーンまたはホストに対するラベルの設定は、管理上の手続きであり、プログラム化する手続きではありません。
ウィンドウラベルをカスタマイズするためにアプリケーションを作成できます。Trusted Extensions ソフトウェアは、ラベル作成の基本的なユーザーインタフェースをアプリケーションに追加するための Motif ベースのプログラミングインタフェースを提供します。ラベル作成インタフェースによって、ユーザーは有効な機密ラベルおよび認可上限を対話形式で作成できます。
ラベル API は不透明なラベルで機能します。「不透明なラベル」では、ラベルの内部構造は外に現れません。不透明なラベルを使用することによって、ラベルの内部構造が変化しても、API で作成した既存のプログラムが機能するようにできます。たとえば、ラベルの特定ビットを配置するためにラベル API を使用することはできません。ラベル API では、ラベルの取得およびラベルの設定が可能です。セキュリティーポリシーによって許可されている場合のみ、ラベルの設定を行えます。
ラベル、ラベル範囲、およびラベル制限は、Trusted Extensions が設定されているシステム上の情報にだれがアクセスできるかを決定します。
ラベル API を使用して、ラベル、ラベル範囲と制限、およびラベル関係に対してアクセス、変換、および比較を実行します。ラベルは別のラベルより優位になったり、別のラベルから分離したりできます。
label_encodings ファイルには、それぞれの Trusted Extensions 環境に適した機密ラベル、認可上限ラベル、ラベル範囲、およびラベル関係が定義されています。このファイルはラベルの表示も制御します。セキュリティー管理者が label_encodings ファイルの作成および管理を担当します。label_encodings(4) のマニュアルページを参照してください。
プロセスのラベルは、プロセスが実行されるゾーンによって決定されます。
すべてのオブジェクトはラベルに関連付けられ、ラベル範囲に関連付けられる場合もあります。オブジェクトは、定義されたラベル範囲内の特定ラベルでアクセスできます。ラベル範囲に関連付けられるオブジェクトは、次のとおりです。
すべてのユーザーとすべての役割
通信が許可されているすべてのホスト
ゾーンインタフェースとネットワークインタフェース
割り当て可能なデバイス (テープドライブ、フロッピーディスクドライブ、CD-ROM デバイス、オーディオデバイスなど)
割り当てできないその他のデバイス (プリンタ、ワークステーションなど)
ワークステーションアクセスは、フレームバッファーまたはビデオディスプレイデバイスに対して設定されるラベル範囲によって制御されます。セキュリティー管理者はこの範囲をデバイスマネージャー GUI を使用して設定します。デフォルトでは、デバイスの範囲は ADMIN_LOW から ADMIN_HIGH までです。
ラベルについての詳細は、「ラベルの型」を参照してください。
MAC は、ラベルを持つアプリケーションを実行するプロセスのラベル、またはプロセスがアクセスしようとするオブジェクトのラベル範囲を比較します。MAC は、プロセスが下位ラベルを読み取るのを許可し、等位ラベルに書き込むのを許可します。
Label[Process] >= Label[Object] |
マルチレベルポート (MLP) に対するプロセス制約は、複数ラベルの要求を待機し、要求の発信元に応答を送信できます。Trusted Extensions では、そのような応答は等位書き込みです。
Label[Process] = Label[Object] |
機密ラベル API は、次のために使用できます。
プロセスラベルの取得
ラベルの初期化
2 つのラベルにおける最大の下限または最小の上限の検索
優位と等位のラベルの比較
ラベルの型の検査と設定
可読形式へのラベルの変換
label_encodings ファイルからの情報の取得
機密ラベルが有効であり、システム範囲内にあることの検査
この API については、第 2 章「ラベルと認可上限」を参照してください。
ユーザー、デバイス、およびネットワークインタフェースにはラベル範囲があります。範囲の上限は、実質上の認可上限です。範囲の上限と範囲の下限が同じである場合、範囲は単一のラベルです。
認可上限ラベル API は、次のために使用できます。
2 つのラベルにおける最大の下限または最小の上限の検索
優位と等位のラベルの比較
内部形式と 16 進形式との認可上限の変換
この API については、第 2 章「ラベルと認可上限」を参照してください。
ラベル範囲は、次に対して制限を設定するために使用します。
ホストが情報を送受信するラベル
ユーザーおよび役割に代わって動作するプロセスがシステム上で機能するラベル
ユーザーがデバイスを割り当てるラベル
ラベル範囲を使用することによって、ファイルがデバイスのストレージメディアに書き込まれるラベルが制限されます。
ラベル範囲は管理のために割り当てられます。ラベル範囲は、ユーザー、役割、ホスト、ゾーン、ネットワークインタフェース、プリンタ、およびその他のオブジェクトに適用できます。
次の方法によって、ラベル範囲に関する情報を取得できます。
getuserrange() はユーザーのラベル範囲を取得します。
getdevicerange() はデバイスのラベル範囲を取得します。
tninfo -t template-name は、ネットワークインタフェースに関連付けられているテンプレートのラベル範囲を表示します。
この API については、第 2 章「ラベルと認可上限」を参照してください。
トラステッド X ウィンドウシステム, Version 11 サーバーがログイン時に起動します。このサーバーは、信頼できるプロセス間通信 (IPC) パスを使用してワークステーションウィンドウシステムを処理します。ウィンドウ、プロパティー、セレクション、および ToolTalkTM のセッションが複数の機密ラベルで別個のオブジェクトとして作成されます。この複数の機密ラベルでの別個のオブジェクトの作成は、「多インスタンス化」と呼ばれます。Motif ウィジェット、Xt イントリンシクス、Xlib、およびデスクトップインタフェースによって作成されるアプリケーションは、セキュリティーポリシーの制約内で実行されます。この制約は X11 プロトコルに対する拡張によって強制されます。
第 6 章「トラステッド X ウィンドウシステム」では、「Trusted Extensions セキュリティーポリシー」に示されるセキュリティー属性情報にアクセスできるプログラミングインタフェースについて説明しています。このプログラミングインタフェースは、ラベルおよび認可上限をテキストに変換する場合にも使用できます。そのテキストは、トラステッド X ウィンドウシステムで表示するために指定した幅およびフォントリストによって制限できます。
トラステッド X ウィンドウシステムは、次のセキュリティー属性を格納します。
監査 ID |
トラステッドパスフラグ |
グループ ID |
トラステッドパスウィンドウ |
インターネットアドレス |
ユーザー ID |
プロセス ID |
X ウィンドウサーバー所有者 ID |
機密ラベル |
X ウィンドウサーバー認可上限 |
セッション ID |
X ウィンドウサーバー最小ラベル |
トラステッドパスフラグは、トラステッドパスウィンドウとしてウィンドウを指定します。トラステッドパスウィンドウは、信頼できないプログラムによってシステムがアクセスされないように保護します。このウィンドウは、スクリーンストライプ、ログインウィンドウなどのように、常に最上位に位置するウィンドウです。
付録 B 「Solaris Trusted Extensions API リファレンス」 に、X11 トラステッド IPC パスを作成するために使用できる拡張機能がリストされています。
Trusted Extensions ソフトウェアは、アプリケーションのためにグラフィカルユーザーインタフェース (GUI) を作成できるラベルビルダー API を提供します。GUI はユーザー入力を受け取って、その入力から有効なラベルを作成します。
Solaris Trusted Extensions が構成されているシステム は、ラベル作成の基本的なユーザーインタフェースをアプリケーションに追加するための Motif ベースのプログラミングインタフェースを提供します。ラベル作成インタフェースによって、ユーザーは有効な機密ラベルおよび認可上限を対話形式で作成できます。このプログラミングインタフェースについては、第 7 章「ラベルビルダー API」を参照してください。