ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
Trusted Extensions で構成されたシステムでは、シングルレベルポートとマルチレベルポートがサポートされます。これらのポートは、アプリケーション間の接続を作成するために使用されます。マルチレベルポートは、そのポートで定義された機密ラベルの範囲内でデータを受信できます。シングルレベルポートは、指定された機密ラベルでのみデータを受信できます。
シングルレベルポート – 特権のない 2 つのアプリケーション間で通信チャネルが確立されます。これらの通信エンドポイントの機密ラベルが等しくなければなりません。
マルチレベルポート – net_bindmlp 特権をその実効セットに含むアプリケーションと、異なる機密ラベルで動作する特権のない任意の数のアプリケーションとの間で通信チャネルが確立されます。プロセスの実効セットで net_bindmlp 特権を持つアプリケーションは、受信側のアプリケーションの機密ラベルに関係なく、アプリケーションからすべてのデータを受信できます。
マルチレベルポートは、異なるラベルで動作中の 2 つの Trusted Extensions アプリケーション間で接続を確立するサーバーサイドメカニズムです。Trusted Extensions クライアントアプリケーションが、信頼されないオペレーティングシステム上で異なるラベルで動作するサービスと通信できるようにする際、SO_MAC_EXEMPT ソケットオプションを使用できる場合があります。詳細は、「MAC 除外ソケット」を参照してください。
![]() | 注意 - 接続がマルチレベルの場合、アプリケーションが 1 つの機密ラベルで接続を行なったあとに別の機密ラベルでデータを送信または受信するということがないようにしてください。このような構成を行うと、データが不正な宛先に到達します。 |
トラステッドネットワークライブラリは、パケットからラベルを取得するためのインタフェースを提供します。ネットワークパケットのプログラム的な操作は必要ありません。具体的には、メッセージを送信する前にメッセージのセキュリティー属性を変更することはできません。また、メッセージが送信される通信エンドポイントのセキュリティー属性を変更することもできません。パケットのほかのセキュリティー情報を読み取るように、パケットのラベルを読み取ることができます。ラベル情報の読み取りには ucred_getlabel() 関数が使用されます。
アプリケーションでマルチレベルポートの使用が必要な場合、そのポートはプログラム的に作成できません。そうする代わりに、アプリケーション用のマルチレベルポートを作成するようシステム管理者に求める必要があります。
マルチレベルポートの詳細については、次を参照してください。