モジュール java.security.jgss
パッケージ org.ietf.jgss

クラスChannelBinding

java.lang.Object
org.ietf.jgss.ChannelBinding

public class ChannelBinding extends Object
このクラスは、呼出し側から提供されるチャネル・バインディング情報の概念をカプセル化します。 チャネル・バインディングを使用すると、コンテキストを確立するときにピア・エンティティに提供される認証の品質が向上します。 また、GSS-APIの呼出し側は、セキュリティ・コンテキストの確立を、関連する特性(アドレスなど)やアプリケーション固有のデータにバインドすることができます。

呼出し側は、セキュリティ・コンテキストを起動するときに、適切なチャネル・バインディング値が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
    このChannelBindingオブジェクトのハッシュ・コード値を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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つのインスタンスを比較します。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較対象のChannelBinding
      戻り値:
      2つのChannelBindingの起動側と受け入れ側のアドレスとアプリケーション・データに、同じ値が含まれている場合はtrue。
      関連項目:
    • hashCode

      public int hashCode()
      このChannelBindingオブジェクトのハッシュ・コード値を返します。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      hashCode値
      関連項目: