クラスX509ExtendedTrustManager

java.lang.Object
javax.net.ssl.X509ExtendedTrustManager
すべての実装されたインタフェース:
TrustManager, X509TrustManager

public abstract class X509ExtendedTrustManager extends Object implements X509TrustManager
SSL/TLS/DTLS接続に依存する信頼管理をサポートするためのX509TrustManagerインタフェースの拡張。

man-in-the-middle攻撃を防ぐために、ホスト名チェックを行なって、エンド・エンティティ証明書のホスト名がターゲットのホスト名と一致することを検証できます。 TLS/DTLSではこのようなチェックは不要ですが、TLS/DTLS (HTTPSなど)経由のプロトコルによっては必要になります。 以前のバージョンのJDKでは、証明書チェーン・チェックはSSL/TLS/DTLSレイヤーで実行され、ホスト名の検証チェックはTLS/DTLSを介してレイヤーで実行されました。 このクラスを1回呼び出すと、そのチェックを行うことができます。

RFC 2830には、「LDAPS」アルゴリズムのサーバー識別仕様が定義されています。 RFC 2818には、「HTTPS」アルゴリズムのサーバー識別仕様とクライアント識別仕様の両方が定義されています。

導入されたバージョン:
1.7
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    checkClientTrusted(X509Certificate[] chain, String authType, Socket socket)
    ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。
    abstract void
    checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine)
    ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。
    abstract void
    checkServerTrusted(X509Certificate[] chain, String authType, Socket socket)
    ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。
    abstract void
    checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine)
    ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースで宣言されたメソッド X509TrustManager

    checkClientTrusted, checkServerTrusted, getAcceptedIssuers
    修飾子と型
    メソッド
    説明
    void
    ピアから提出された一部のまたは完全な証明書チェーンを使用して、信頼できるルートへの証明書パスを構築し、認証タイプに基づいてクライアントSSL認証を検証できるかどうか、信頼できるかどうかを返します。
    void
    ピアから提出された一部のまたは完全な証明書チェーンを使用して、信頼できるルートへの証明書パスを構築し、認証タイプに基づいてサーバーSSL認証を検証できるかどうか、また信頼できるかどうかを返します。
    認証するピアについて信頼されている、証明書発行局の証明書の配列を返します。
  • コンストラクタの詳細

    • X509ExtendedTrustManager

      public X509ExtendedTrustManager()
      サブクラスが呼び出すためのコンストラクタ。
  • メソッドの詳細

    • checkClientTrusted

      public abstract void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException
      ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。

      認証タイプは、実際に使用される証明書によって決まります。 たとえば、RSAPublicKeyを使用する場合、authTypeは"RSA"になります。 チェックでは、大文字と小文字が区別されます。

      socketパラメータがSSLSocketのインスタンスであり、SSLParametersのエンド・ポイント識別アルゴリズムが空でない場合は、man-in-the-middle攻撃を回避するために、エンド・ポイント識別アルゴリズムで指定されているように、socketの接続先のアドレスをエンド・エンティティX509証明書で提供されているピアの識別情報に対してチェックするようにしてください。

      socketパラメータがSSLSocketのインスタンスであり、SSLParametersのアルゴリズムの制約がnull以外の場合は、証明書パス内のすべての証明書について、サブジェクトの公開キー、署名アルゴリズム、キー使用法、拡張キー使用法などのフィールドが、このソケットで設定されているアルゴリズムの制約に準拠している必要があります。

      パラメータ:
      chain - ピアの証明書チェーン
      authType - 使用されるキー交換アルゴリズム
      socket - この接続に使用するソケット。 このパラメータにはnullを指定可能。これは、実装でsslパラメータをチェックする必要がないことを示す
      スロー:
      IllegalArgumentException - nullまたは長さ0の配列がchainパラメータに渡された場合、あるいはnullまたは長さ0の文字列がauthTypeパラメータに渡された場合
      CertificateException - 証明書チェーンがこのTrustManagerによって信頼されていない場合
      関連項目:
    • checkServerTrusted

      public abstract void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException
      ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。

      認証タイプは、暗号化方式群のキー交換アルゴリズムで、「RSA」や「DHE_DSS」のようにStringとして表現されます。 ノート: 一部のエクスポート可能な暗号化方式群では、キー交換アルゴリズムがハンドシェークの実行時に決定されます。 たとえば、TLS_RSA_EXPORT_WITH_RC4_40_MD5のauthTypeは、一時的なRSAキーがキー交換で使用されるときはRSA_EXPORTになり、サーバー証明書のキーが使用されるときはRSAになります。 チェックでは、大文字と小文字が区別されます。

      socketパラメータがSSLSocketのインスタンスであり、SSLParametersのエンド・ポイント識別アルゴリズムが空でない場合は、man-in-the-middle攻撃を回避するために、エンド・ポイント識別アルゴリズムで指定されているように、socketの接続先のアドレスをエンド・エンティティX509証明書で提供されているピアの識別情報に対してチェックするようにしてください。

      socketパラメータがSSLSocketのインスタンスであり、SSLParametersのアルゴリズムの制約がnull以外の場合は、証明書パス内のすべての証明書について、サブジェクトの公開キー、署名アルゴリズム、キー使用法、拡張キー使用法などのフィールドが、このソケットで設定されているアルゴリズムの制約に準拠している必要があります。

      パラメータ:
      chain - ピアの証明書チェーン
      authType - 使用されるキー交換アルゴリズム
      socket - この接続に使用するソケット。 このパラメータにはnullを指定可能。これは、実装でsslパラメータをチェックする必要がないことを示す
      スロー:
      IllegalArgumentException - nullまたは長さ0の配列がchainパラメータに渡された場合、あるいはnullまたは長さ0の文字列がauthTypeパラメータに渡された場合
      CertificateException - 証明書チェーンがこのTrustManagerによって信頼されていない場合
      関連項目:
    • checkClientTrusted

      public abstract void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException
      ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。

      認証タイプは、実際に使用される証明書によって決まります。 たとえば、RSAPublicKeyを使用する場合、authTypeは"RSA"になります。 チェックでは、大文字と小文字が区別されます。

      engineパラメータが使用可能であり、SSLParametersのエンド・ポイント識別アルゴリズムが空でない場合は、man-in-the-middle攻撃を回避するために、エンド・ポイント識別アルゴリズムで指定されているように、engineの接続先のアドレスをエンド・エンティティX509証明書で提供されているピアの識別情報に対してチェックするようにしてください。

      engineパラメータが使用可能であり、SSLParametersのアルゴリズムの制約がnull以外である場合は、証明書パス内のすべての証明書について、サブジェクトの公開キー、署名アルゴリズム、キー使用法、拡張キー使用法などのフィールドが、このエンジンで設定されているアルゴリズムの制約に準拠している必要があります。

      パラメータ:
      chain - ピアの証明書チェーン
      authType - 使用されるキー交換アルゴリズム
      engine - この接続に使用するエンジン。 このパラメータにはnullを指定可能。これは、実装でsslパラメータをチェックする必要がないことを示す
      スロー:
      IllegalArgumentException - nullまたは長さ0の配列がchainパラメータに渡された場合、あるいはnullまたは長さ0の文字列がauthTypeパラメータに渡された場合
      CertificateException - 証明書チェーンがこのTrustManagerによって信頼されていない場合
      関連項目:
    • checkServerTrusted

      public abstract void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException
      ピアから部分的または完全な証明書チェーンが提供された場合に、認証タイプとSSLパラメータに基づいて証明書パスを構築して検証します。

      認証タイプは、暗号化方式群のキー交換アルゴリズムで、「RSA」や「DHE_DSS」のようにStringとして表現されます。 ノート: 一部のエクスポート可能な暗号化方式群では、キー交換アルゴリズムがハンドシェークの実行時に決定されます。 たとえば、TLS_RSA_EXPORT_WITH_RC4_40_MD5のauthTypeは、一時的なRSAキーがキー交換で使用されるときはRSA_EXPORTになり、サーバー証明書のキーが使用されるときはRSAになります。 チェックでは、大文字と小文字が区別されます。

      engineパラメータが使用可能であり、SSLParametersのエンド・ポイント識別アルゴリズムが空でない場合は、man-in-the-middle攻撃を回避するために、エンド・ポイント識別アルゴリズムで指定されているように、engineの接続先のアドレスをエンド・エンティティX509証明書で提供されているピアの識別情報に対してチェックするようにしてください。

      engineパラメータが使用可能であり、SSLParametersのアルゴリズムの制約がnull以外である場合は、証明書パス内のすべての証明書について、サブジェクトの公開キー、署名アルゴリズム、キー使用法、拡張キー使用法などのフィールドが、このエンジンで設定されているアルゴリズムの制約に準拠している必要があります。

      パラメータ:
      chain - ピアの証明書チェーン
      authType - 使用されるキー交換アルゴリズム
      engine - この接続に使用するエンジン。 このパラメータにはnullを指定可能。これは、実装でsslパラメータをチェックする必要がないことを示す
      スロー:
      IllegalArgumentException - nullまたは長さ0の配列がchainパラメータに渡された場合、あるいはnullまたは長さ0の文字列がauthTypeパラメータに渡された場合
      CertificateException - 証明書チェーンがこのTrustManagerによって信頼されていない場合
      関連項目: