次の図は、データに影響を与えるプロセスを開始するトランザクションと、このとき使用する特定のセキュリティ属性のソースを示しています。
この図を解説すると、次のようになります。
1. ユーザーが Trusted Solaris 環境にログインする。Trusted Solaris 環境にログインするときには、ユーザー名とパスワードの入力が必要です。これらのエントリは passwd ファイル、shadow ファイルと照合されます。ユーザーが役割を取得した (別の役割になった) 場合は、その役割のパスワードも入力します。ユーザーの監査 UID は役割の UID ではなく、常にそのユーザーの個人 UID に設定されています。これは、監査を行うためです。
2. Trusted Solaris がユーザー属性を判定する。Trusted Solaris 環境にログインすると、選択したセッションタイプ (シングルラベルまたはマルチラベル) に応じて適切な SL に設定されたワークスペースが開きます。マルチラベルセッションを選択したユーザーは、ユーザーアカウントに割り当てられている最下位の SL から、そのセッションに許可されている最上位の SL までの範囲で、ワークスペースの SL を変更できます。ユーザーが特権を使用しなくてもアクセスできるファイルは、ユーザーの UID と GID で判定されます。ユーザーに許可されるアプリケーションやセキュリティ属性は、アカウントのプロファイルによって決まります。ユーザーが役割になった場合は、別のアプリケーションとセキュリティ属性が許可されます。
3. ユーザーがトランザクションを試行する。すべてのユーザーに All 実行プロファイルが割り当てられているサイトでは、特権を持っていないユーザーでも、すべてのコマンドまたはアクションを実行できます。プロファイルの割り当てを制限し、All を割り当てないサイトでは、禁止されているコマンドを実行しようとすると、「command not in profile」というエラーメッセージが表示されます。また、禁止されているアクションのアイコンはインタフェースに表示されません。アイコンが表示されたとしても、実際に実行しようとすると、エラーメッセージが表示されます。該当するアプリケーションがプロファイル内に見つからなかった場合、トランザクションの要求は拒否されます。
4. Trusted Solaris がサブジェクト (プロセス) の属性を判定する。ユーザーがアプリケーションを選択すると、アカウントセキュリティ属性と、アプリケーションの実行可能ファイルのセキュリティ属性によって、プロセスの機能が判定されます。プロセスのセキュリティ属性である、継承可能な特権、実効 UID (実効 GID)、最上位または最下位の機密ラベルは、アプリケーションが含まれているプロファイルに定義されています。承認は、このプロファイルからも、同じ UID に割り当てられている別のプロファイルからも取得できます。実行可能ファイルには、許容された特権と強制された特権が定義されています。
5. Trusted Solaris がオブジェクト (ファイル) 属性を取得する。データファイルへのアクセスを保護するセキュリティ属性には、所有者、グループ、ACL、アクセス権、データファイルの SL があります。
6. Trusted Solaris が属性を比較し、承認をチェックする。Trusted Solaris は、サブジェクト (プロセス) の属性とオブジェクト (ファイル) の属性を比較し、トランザクションを許可するかどうかを判定します。通常、次のような評価が行われます。
プロセスの機密ラベルはファイルのディレクトリラベルよりも優位か。優位でない場合は、そのまま優位なディレクトリにアクセスするための file_mac_search 特権がプロセスに割り当てられているか
プロセスのアクセス権を使用してファイルのディレクトリにアクセスできるか。できない場合は、適切なアクセス権を持たずにディレクトリにアクセスするための file_dac_search 特権がプロセスに割り当てられているか
プロセスの機密ラベルはファイルの機密ラベルよりも優位か。優位でない場合は、そのまま優位なファイルにアクセスするための file_mac_read 特権がプロセスに割り当てられているか
プロセスのアクセス権を使用してファイルにアクセスできるか。できない場合は、適切なアクセス権を持たずにファイルにアクセスするための file_dac_read 特権がプロセスに割り当てられているか
プロセスには特別な承認が必要か