問題タブ [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.
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_CBC
3DES_EDE_CBC
- または、次のようなストリーム暗号にフォールバックします( CVE-2015-2808
RC4
により、これも安全でないことは認識しています)。
実際には、3DES_EDE_CBC
CBC 保護をオフにして接続を確立するのに問題はありませんが、 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_CBC
orは使用しませんAES_256_CBC
(以前の Java バージョンと3DES
は異なり、強制されなくなりました。代わりに、互換性のある暗号スイートとしてリストされるIOException
afterを取得します)ClientHello
*_WITH_AES_128_CBC_SHA
- と
RC4
の両方が無効になっていても使用しません: ( jTDSとMS SQL JDBCの両方)。AES
3DES
"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_SHA
AES
"no negotiable cipher suite"
RC4
Java 1.8.0_51+で引き続き使用するにはどうすればよいですか? このソリューションは機能しなくなり、https.cipherSuites
システム プロパティにも影響しません (ここで説明します)。6u115と7u101には魔法の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