ラベルは、必須ポリシーの決定で使用される属性です。ラベルは、すべてのサブジェクト (通常はプロセス) およびサブジェクトへとアクセス可能なオブジェクト (通常はファイルのようにデータを保持するもの) に、明示的または暗黙的に関連付けられます。デフォルトの Trusted Extensions 必須ポリシーラベルは、サイトのセキュリティー管理者により、label_encodings(4) 内で定義されます。
Solaris Trusted Extensions の有効期間中に、さまざまな必須ポリシーを提供できます。
Trusted Extensions のデフォルト必須ポリシーは必須アクセス制御 (MAC) ポリシー (Lattice の Bell-LaPadula Model の必須ポリシー、Simple Security Property、および *-Property (Star Property) と同等) で、制限された上位書き込みを持ちます。デフォルト必須ポリシーは、Non-Inteference の Goguen and Mesegeur モデルとも同等です。
この MAC ポリシーの場合、2 つのラベル admin_low および admin_high が常に定義されます。サイトのセキュリティー管理者は、label_encodings(4) 内でその他のラベルすべてを定義します。admin_low は、ユーザーが読み取り (表示) 可能な通常の Trusted Extensions オブジェクトすべてと関連付けられます。admin_high は、その他の Trusted Extensions オブジェクトすべてと関連付けられます。admin_high オブジェクトへの MAC 読み取り(表示) アクセス権を保持するのは、管理ユーザーだけです。また、admin_low オブジェクトや admin_high オブジェクトへの MAC 書き込み (変更) アクセス権を保持するのも管理ユーザーだけです。
ユーザーは、ラベルを文字列として対話的に処理します。グラフィカルユーザーインタフェースおよびコマンド行インタフェースには、label_encodings(4) の定義に従って文字列が表示されます。人間が読み取り可能なラベルは、それが表現するラベルで格付けされます。このため、ラベル A の文字列を読み取り可能 (表示可能、人間が読み取り可能な文字列と不透明な m_label_t 間の相互変換が可能) なのは、そのラベルへの読み取り (表示) アクセスを許可するラベルを持つサブジェクトだけです。
公開アクセス可能な (admin_low) ネームサービスデータベースにラベルを格納する場合には、格付けされていない内部テキスト形式が使用されます。このテキスト形式は、この形式のラベルを作成した Trusted Extensions ソフトウェアリリースで提供されるインタフェース以外のインタフェースでの使用は意図されていません。
アプリケーションは、ラベルとの対話処理を行う際に、ラベルが不透明な (m_label_t) 構造体であると見なします。これら不透明な構造体のセマンティクスは、文字列から m_label_t への変換で定義されます。変換は、label_encodings(4) 内で定義されます。さまざまなアプリケーションプログラミングインタフェース (API) が、文字列と m_label_t 構造体間の変換を行います。さまざま API が、サブジェクト関連のラベルからオブジェクト関連のラベルへのアクセスをテストします。
次の属性については、attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
インタフェースの安定性 |
後述の「注意事項」を参照 |
chk_encodings(1M), blcompare(3TSOL), label_to_str(3TSOL), m_label_alloc(3TSOL), m_label_dup(3TSOL), m_label_free(3TSOL), str_to_label(3TSOL), label_encodings(4), attributes(5)
Bell, D. E., and LaPadula, L. J. Secure Computer Systems: Unified Exposition and Multics Interpretation, MTR-2997 Rev. 2, MITRE Corp., Bedford Mass., March 1976. NTIS AD-A023 588/7.
Goguen, J. A., and Mesegeur, J.: Security Policies and Security Models, Proceedings 1982 Symposium on Security and Privacy, IEEE Computer Society Press, 1982, p 11-20.
Goguen, J. A., and Mesegeur, J.: Unwinding and Interference Control, Proceedings 1984 Symposium on Security and Privacy, IEEE Computer Society Press, 1984, p 75-86.
ラベル実装の安定性は、label_encodings(4) の米国国防情報局 (DIA) MAC ポリシーを実装するシステムでは「安定」です。Trusted Extensions の将来のリリースでは、ほかのポリシーが存在する可能性があります。その時点では、label_encodings は旧式になっているか、ほかのポリシーにより label_encodings が補完されている可能性があります。
内部テキストラベルはインタフェースではないため、Trusted Extensions のいずれかのリリースで変更される可能性があります。これらは、同一の Trusted Extensions ソフトウェアリリース上で入力および生成を行う場合だけを想定しています。
Trusted Solaris 8 アプリケーションでの移植性を高めるために、不透明な構造体名 bslabel_t、blevel_t、および bclear_t が、m_label_t と等価なものとして定義されています。これらのタイプは、m_label_t と同様に、不透明なポインタとして移植する必要があります。さまざまな Trusted Solaris 8 ラベルインタフェースに対して、同じ作業を行う必要があります。これらの Trusted Solaris 8 構造体およびインタフェースは「旧式」であり、Trusted Extensions の将来のリリースでは削除される可能性があります。
名前 | 形式 | 機能説明 | オプション | 戻り値 | 属性 | 関連項目 | 注意事項
/usr/lib/security/pam_tsol_account.so.1
PAM 用の Solaris Trusted Extensions サービスモジュール /usr/lib/security/pam_tsol_account.so.1 は、ラベルに関連したアカウント制限を検査します。pam_tsol_account.so.1 モジュールは、必要な機能をオンデマンドで提供する、動的にロード可能な共有オブジェクトです。パスは、PAM 構成ファイルで指定されます。
pam_tsol_account.so.1 には、アカウント管理を実行するための関数 pam_sm_acct_mgmt() が含まれます。この関数は、ユーザーに許可されるラベル範囲を検査します。許可されるラベル範囲のデフォルトは、label_encodings(4) ファイル内に設定されています。これらのデフォルトは、user_attr(4) データベース内のエントリで上書きできます。
デフォルトでは、このモジュールは、大域ゾーンに接続する遠隔ホストが CIPSO ホストタイプであることが必要です。このポリシーを無効にするには、次に示すように、pam.conf(4) のエントリのオプションとして allow_unlabeled キーワードを追加します。
other account required pam_tsol_account allow_unlabeled |
このモジュールに渡すことができるオプションを、次に示します。
ラベル付けされていないテンプレートタイプのホストからのリモート接続を許可します。 tnrhtp(4) を参照してください。
デバッグ情報を LOG_DEBUG
レベルで提供します。syslog(3C) を参照してください。
次の値が返されます。
アカウントは、今回およびこのラベルでの使用で有効です。
現在のプロセスラベルがユーザーのラベル範囲外にある、プロセスのラベル情報を使用できない、遠隔ホストタイプが無効である、のいずれかです。
通常の PAM 操作と一致するエラーコードを返します。エラー関連の戻り値の詳細は、pam(3PAM) のマニュアルページを参照してください。
次の属性については、 attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
インタフェースの安定性 |
開発中 |
MT レベル |
例外付き MT-安全 |
keylogin(1), syslog(3C), libpam(3LIB), pam(3PAM), pam_sm_acct_mgmt(3PAM), pam_start(3PAM), label_encodings(4), pam.conf(4), tnrhtp(4), user_attr(4), attributes(5)
libpam(3LIB) のインタフェースは、マルチスレッドアプリケーション内部の各スレッドが独自の PAM ハンドルを使用する場合にのみ、「MT- 安全」です。