JavaTM 2 Platform
Standard Ed. 5.0

org.ietf.jgss
クラス ChannelBinding

java.lang.Object
  上位を拡張 org.ietf.jgss.ChannelBinding

public class ChannelBinding
extends Object

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

呼び出し側は、セキュリティコンテキストを起動するときに、適切なチャネルバインディング値が GSSContextGSSContext オブジェクトに設定されていることを確認する必要があります。受け入れ側は、同じバインディングを使用して、受信したトークンに含まれるチャネル関連特性が正しいことを検証する必要があります。

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 equals(Object obj)
          ChannelBinding の 2 つのインスタンスを比較します。
 InetAddress getAcceptorAddress()
          このチャネルバインディング用の受け入れ側のアドレスを取得します。
 byte[] getApplicationData()
          このチャネルバインディング用の、アプリケーションから指定されたデータを取得します。
 InetAddress getInitiatorAddress()
          このチャネルバインディング用の起動側のアドレスを取得します。
 int hashCode()
          この 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 つのインスタンスを比較します。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象の ChannelBinding
戻り値:
2 つの ChannelBinding の起動側と受け入れ側のアドレスとアプリケーションデータに、同じ値が含まれている場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
この ChannelBinding オブジェクトのハッシュコード値を返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
hashCode 値
関連項目:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。