Solaris Trusted Extensions が構成されているシステム は、単一レベルポートおよびマルチレベルポートに対応します。これらのポートは、アプリケーション間を接続するために使用されます。マルチレベルポートは、ポートに定義されている機密ラベルの範囲内のデータを受信できます。単一レベルポートは、指定された機密ラベルのデータのみを受信できます。
単一レベルポート – 通信チャネルは、2 つの非特権アプリケーション間に確立されます。通信終端の機密ラベルは等位でなければなりません。
マルチレベルポート – 通信チャネルは、net_bindmlp 特権が実効セットであるアプリケーションと、異なる機密ラベルで実行される不定数の非特権アプリケーションとの間に確立されます。プロセスの実効セットに net_bindmlp 特権を持つアプリケーションは、受信側アプリケーションの機密ラベルに関係なく、アプリケーションからのすべてのデータを受信できます。
マルチレベルポートは、異なるラベルで実行されている 2 つの Trusted Extensions アプリケーション間で接続を確立するためのサーバー側のメカニズムです。Trusted Extensions クライアントアプリケーションで、ラベルの異なる信頼できないオペレーティングシステムで実行されるサービスと通信する場合、SO_MAC_EXEMPT ソケットオプションを使用することもできます。詳細は、「MAC 適用外ソケット」を参照してください。
接続がマルチレベルである場合、アプリケーションの接続が 1 つの機密ラベルで行われ、データの送信または受信が別の機密ラベルで行われるのではないようにしてください。このような構成では、承認されていない宛先にデータが到達することがあります。
トラステッドネットワークライブラリは、パケットからラベルを取得するインタフェースを提供します。ネットワークパケットのプログラム化された操作は必要ありません。ただし、メッセージを送信する前に、メッセージのセキュリティー属性を変更することはできません。また、メッセージが送信される通信終端でもセキュリティー属性を変更できません。パケットのラベルの読み取りは、パケットのその他のセキュリティー情報と同様に行えます。ucred_getlabel() 関数を使用してラベル情報を取得します。
アプリケーションがマルチレベルポートの使用を必要とする場合、そのポートはプログラムでは作成できません。アプリケーション用のマルチレベルポートの作成は、システム管理者に依頼する必要があります。
マルチレベルポートについての詳細は、次を参照してください。