呼出し側は、セキュリティ・コンテキストを起動するときに、適切なチャネル・バインディング値がGSSContextオブジェクトに設定されていることを確認する必要があります。 受け入れ側は、同じバインディングを使用して、受信したトークンに含まれるチャネル関連特性が正しいことを検証する必要があります。
GSS-APIでは、チャネル・バインディングの使用はオプションです。 ChannelBindingをGSSContext
に設定するには、setChannelBinding
メソッドを使用します。そのメソッドの呼出しは、initSecContext
またはacceptSecContext
を最初に呼び出す前に実行してください。 setChannelBinding
メソッドを使用してGSSContextオブジェクトにChannelBindingを設定しなかった場合、ChannelBindingはnull
と見なされます。
理論的には、GSS-APIは、起動側と受入れ側のアドレス情報をアプリケーションから渡されるバイト配列と連結して1つのオクテット文字列を作成します。 次に、メカニズムはこのオクテット文字列のMICを計算し、そのMICをGSSContext
インタフェースのinitSecContext
メソッドによって生成されたコンテキスト確立トークンにバインドします。 コンテキストの受入れ側では、受入れ側のGSSContext
オブジェクトに対して同一のバインディングが設定され、acceptSecContext
メソッドの処理中にMICが同じ方法で計算されます。 計算されたMICは、トークン内のMICと比較されます。MICが異なっている場合、受入れ側はメジャー・コードをBAD_BINDINGS
に設定したGSSException
をスローし、コンテキストは確立されません。 一部のメカニズムでは、MICだけでなく、実際のチャネル・バインディング・データがトークンに組み込まれることがあります。このため、アプリケーションでは、機密データをチャネル・バインディング・コンポーネントとして使用しないようにします。
個々のメカニズムでは、チャネル・バインディングに含まれるアドレスに対して、独自の制約を適用する場合があります。 たとえば、チャネル・バインディングの起動側のアドレス・フィールドにホスト・システムの正しいネットワーク・アドレスが含まれているかどうかを確認する場合があります。 この場合、移植性のあるアプリケーションでは、アドレス・フィールドに正しい情報が入っているか、またはアドレス指定情報の設定が省略されているかを確認する必要があります。
- 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
コンストラクタ説明ChannelBinding
(byte[] appData) アドレス指定情報を使用しないでChannelBindingオブジェクトを作成します。ChannelBinding
(InetAddress initAddr, InetAddress acceptAddr, byte[] appData) ユーザーが入力したアドレス情報とデータを使用して、ChannelBindingオブジェクトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
ChannelBindingの2つのインスタンスを比較します。このチャネル・バインディング用の受け入れ側のアドレスを取得します。byte[]
このチャネル・バインディング用の、アプリケーションから指定されたデータを取得します。このチャネル・バインディング用の起動側のアドレスを取得します。int
hashCode()
このChannelBindingオブジェクトのハッシュ・コード値を返します。
-
コンストラクタの詳細
-
ChannelBinding
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData) ユーザーが入力したアドレス情報とデータを使用して、ChannelBindingオブジェクトを作成します。アプリケーションで指定しないフィールドには、null
値を使用できます。- パラメータ:
initAddr
- コンテキストの起動側のアドレス。アプリケーションからこの値を設定しない場合は、null
値を指定できる。acceptAddr
- コンテキストの受け入れ側のアドレス。アプリケーションからこの値を設定しない場合は、null
値を指定できる。appData
- アプリケーションから提供するデータ。チャネル・バインディングの一部として使用される。アプリケーションからこの値を設定しない場合は、null
値を指定する。
-
ChannelBinding
public ChannelBinding(byte[] appData) アドレス指定情報を使用しないでChannelBindingオブジェクトを作成します。- パラメータ:
appData
- アプリケーションから提供するデータ。チャネル・バインディングの一部として使用される。
-
-
メソッドの詳細
-
getInitiatorAddress
public InetAddress getInitiatorAddress()このチャネル・バインディング用の起動側のアドレスを取得します。- 戻り値:
- 起動側のアドレス。起動側のアドレスが設定されていない場合は、
null
が返される。
-
getAcceptorAddress
public InetAddress getAcceptorAddress()このチャネル・バインディング用の受け入れ側のアドレスを取得します。- 戻り値:
- 受け入れ側のアドレス。受け入れ側のアドレスが設定されていない場合は、nullが返される
-
getApplicationData
public byte[] getApplicationData()このチャネル・バインディング用の、アプリケーションから指定されたデータを取得します。- 戻り値:
- ChannelBindingの一部として使用されるアプリケーション・データ。このチャネル・バインディング用に指定されたアプリケーション・データがない場合は、
null
が返される。
-
equals
public boolean equals(Object obj) ChannelBindingの2つのインスタンスを比較します。 -
hashCode
public int hashCode()このChannelBindingオブジェクトのハッシュ・コード値を返します。
-