ウィンドウ、プロパティー、およびピックスマップオブジェクトには、ユーザー ID、クライアント ID、および機密ラベルがあります。グラフィックコンテキスト、フォント、およびカーソルには、クライアント ID のみがあります。クライアントと X ウィンドウサーバーとの接続には、ユーザー ID、X ウィンドウサーバー ID、および機密ラベルがあります。
「ユーザー ID」は、オブジェクトを作成したクライアントの ID です。「クライアント ID」は、オブジェクトを作成するクライアントが接続される接続番号に関連します。
DAC ポリシーでは、オブジェクトを所有するクライアントはそのオブジェクトで操作を実行しなければなりません。クライアントのユーザー ID がオブジェクトの ID と等しい場合、クライアントはオブジェクトを所有します。接続要求の場合、クライアントのユーザー ID が X ウィンドウサーバーワークステーションの所有者のアクセス制御リスト (ACL) にある必要があります。あるいは、クライアントがトラステッドパス属性を表明する必要があります。
MAC ポリシーは、ウィンドウおよびピックスマップに関しては等位書き込み、ネーミングウィンドウに関しては等位読み取りです。MAC ポリシーは、プロパティーに関しては下位読み取りです。機密ラベルは、作成元クライアントの機密ラベルに設定されます。次は、それぞれのアクションの MAC ポリシーです。
変更、作成、削除 – クライアントの機密ラベルは、オブジェクトの機密ラベルと同等である必要があります。
名前付け、読み取り、取得 – クライアントの機密ラベルは、オブジェクトの機密ラベルより優位である必要があります。
接続要求 – クライアントの機密ラベルは、X ウィンドウサーバーワークステーションの所有者のセッション認可上限のほうが優位である必要があります。あるいは、クライアントがトラステッドパス属性を表明する必要があります。
ウィンドウは、クライアント間で共有される情報を含むプロパティーを持つことができます。ウィンドウプロパティーは、アプリケーションが実行されている機密ラベルで作成されるので、プロパティーデータへのアクセスはそれの機密ラベルによって分離されます。クライアントは、プロパティーを作成したり、ウィンドウ上のプロパティーにデータを格納したり、MAC および DAC の制限に従ってプロパティーからデータを取得したりできます。多インスタンス化されないプロパティーを指定するには、TrustedExtensionsPolicy ファイルを更新します。
TrustedExtensionsPolicy ファイルは、Xsun サーバーおよび Xorg サーバー用にサポートされます。
SPARC: Xsun 用のファイルが /usr/openwin/server/etc にあります。
x86: Xorg 用のファイルが /usr/X11/lib/X11/xserver にあります。
次の節でそれぞれのセキュリティーポリシーについて説明します。
ルートウィンドウ
クライアントウィンドウ
優先指定/リダイレクトウィンドウ
キーボード、ポインタ、サーバー制御
選択マネージャー
デフォルトのウィンドウリソース
ウィンドウ間のデータの移動
ルートウィンドウは、ウィンドウ階層の最上位です。ルートウィンドウは、いずれのクライアントにも属さない公共オブジェクトですが、保護する必要があるデータを持ちます。ルートウィンドウの属性は ADMIN_LOW で保護されます。
クライアントには、通常、ルートウィンドウから派生する少なくとも 1 つの最上位クライアントウィンドウと、その最上位ウィンドウ内で入れ子にされた追加ウィンドウがあります。クライアントの最上位ウィンドウから派生するすべてのウィンドウの機密ラベルは同じです。
メニューや特定のダイアログボックスなどの優先指定/リダイレクトウィンドウは、別のクライアントから離れた入力フォーカスを受け取ることはできません。そのため、入力フォーカスは誤った機密ラベルでファイルに入力を受け入れません。優先指定/リダイレクトウィンドウは、作成元クライアントによって所有され、ほかのクライアントによって別の機密ラベルでデータにアクセスするために使用できません。
クライアントは、キーボード、ポインタ、およびサーバーを制御するために MAC および DAC を必要とします。フォーカスをリセットするには、クライアントはフォーカスを所有するか、実効セットに win_devices 特権を必要とします。
ポインタを移動するには、クライアントはポインタ制御、および宛先ウィンドウに対する MAC と DAC が必要です。明示的なユーザーアクションを含むイベントに関して、X および Y 座標情報が取得されます。
選択マネージャーアプリケーションは、信頼できないウィンドウ間をデータが転送されるカット&ペースト、ドラッグ&ドロップなど、ユーザーレベルのウィンドウ間データ移動を仲介します。転送が試みられると、選択マネージャーは転送をキャプチャーし、制御ユーザーの承認を確認し、ユーザーに確認とラベル付け情報を要求します。ユーザーがデータ移動を試みると常に、選択マネージャーが自動的に表示されます。選択マネージャーが表示されるようにアプリケーションコードを更新する必要はありません。
管理者は、一部の転送タイプに対して自動確認を設定できます。その場合、選択マネージャーは表示されません。転送が MAC および DAC ポリシーに一致する場合、データ転送は完了します。ファイルマネージャーおよびウィンドウマネージャーは、それぞれの専用ドロップ領域の選択エージェントとしても動作します。多インスタンス化される選択ターゲットを指定するには、/usr/openwin/server/etc/TrustedExtensionsPolicy ファイルを参照してください。自動的に確認される選択ターゲットを決定するには、/usr/dt/config/sel_config ファイルを参照してください。
クライアントによって作成されていないリソースは、ADMIN_LOW で保護されるデフォルトのリソースです。ADMIN_LOW で実行されるか、適切な特権を持って実行されるクライアントのみがデフォルトのリソースを変更できます。
ウィンドウリソースは次のとおりです。
ルートウィンドウの属性 – すべてのクライアントが読み取りおよび作成アクセスできますが、書き込みまたは変更アクセスは特権クライアントのみができます。「特権操作とトラステッド X ウィンドウシステム」を参照してください。
デフォルトカーソル – クライアントは、プロトコル要求でデフォルトカーソルを自由に参照できます。
事前定義アトム – TrustedExtensionsPolicyファイルには、事前定義アトムの読み取り専用リストが含まれます。
クライアントは、選択マネージャーと関係なくウィンドウ間でデータを移動するには、実効セットに win_selection 特権が必要です。「選択マネージャー」を参照してください。