問題タブ [beast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1117 参照

sql-server-2005 - MS SQL Server 2005 への JDBC 接続用に AES_128_CBC および RC4_128 を有効にする

アプリケーションの下位互換性を確保するために、CVE-2011-3389に対して脆弱なバージョンのMS SQL Serverが使用されている場合の JDBC over TLS の動作をテストしています (2005、またはサービス パックなしの 2008/2008R2 が適合します)。理論的には、次の 2 つのオプションを使用できます。

  • またはなどのブロック暗号を使用して CBC 保護を無効にし-Djsse.enableCBCProtection=false、引き続き使用します。AES_128_CBC3DES_EDE_CBC
  • または、次のようなストリーム暗号にフォールバックします( CVE-2015-2808RC4により、これも安全でないことは認識しています)。

実際には、3DES_EDE_CBCCBC 保護をオフにして接続を確立するのに問題はありませんが、 1.8.0_51 (たまたまCVE-2015-2808 に対処した) または( 1.6+ JDK を使用)よりRC4_128も新しい JDKを使用することはできません。 )。AES_{128,256}_CBC

Java のバージョンごとに分類された結果は次のとおりです。

  • 1.6.0_45 ( jTDS )
    • SSL_RSA_WITH_RC4_128_MD5使用されている
  • 1.7.0_76 ( jTDS ) および 1.8.0 から1.8.0_45 ( MS SQL JDBC ) まで:
    • SSL_RSA_WITH_RC4_128_MD5(デフォルト) またはSSL_RSA_WITH_3DES_EDE_CBC_SHA使用可能
    • AES_128_CBCが無効になっていても使用しません3DES(3DES_EDE_CBCとにかく強制されます)
  • 1.8.0_45 (IBM J9 8.0 SR1) ( MS SQL JDBC )
    • SSL_RSA_WITH_3DES_EDE_CBC_SHAが使用されます (CBC 保護がオフの場合にのみ成功します)。また、AESまたはRC4が要求された場合
  • 1.8.0_51+ (オラクル) ( MS SQL JDBC )
    • SSL_RSA_WITH_3DES_EDE_CBC_SHAが使用されている (CBC 保護がオフの場合にのみ成功)、
    • AES_128_CBCorは使用しませんAES_256_CBC(以前の Java バージョンと3DESは異なり、強制されなくなりました。代わりに、互換性のある暗号スイートとしてリストされるIOExceptionafterを取得します)ClientHello*_WITH_AES_128_CBC_SHA
    • RC4の両方が無効になっていても使用しません: ( jTDSMS SQL JDBCの両方)。AES3DES"no negotiable cipher suite"

java.securityリクエストに使用するのは次のAESとおりです。

リクエストするバージョンは次のRC4とおりです。

質問:

  • MS SQL Server 2014に接続するときにAES_{128,256}_CBC使用できるように、Java クライアントでサポートされているようです。MS SQL Server 2005でサポートされていないことを確認できますか? 事実上無効にすると につながるので、サポートされていると思いますが、CBC保護がオフになっているにもかかわらず、サーバー側で何かが起こります。TLS_ECDHE_RSA_WITH_AES_256_CBC_SHAAES"no negotiable cipher suite"
  • RC4Java 1.8.0_51+で引き続き使用するにはどうすればよいですか? このソリューションは機能しなくなり、https.cipherSuitesシステム プロパティにも影響しません (ここで説明します)。6u1157u101には魔法のjdk.tls.enableRC4CipherSuitesシステム プロパティがありますが、Java 1.8 では効果がないようです。
  • jTDSの何が問題なのですか? Java 1.6 および 1.7 (ドライバー バージョン 1.2.8 および 1.3.1) では正常に動作しますが、Java 1.8 を使用すると、 MS SQL JDBCが接続データの暗号化に使用する"Connection reset by peer"たびに常に受信します。3DES