私は私の解決策の投稿はありません。これはちょっとしたハックですが、JSSEまたはTomcatをパッチ/再コンパイルする必要はありません。
次のクラスを作成します。
/*
SSLSettingHelper prevents BEAST SSL attack by setting the appropriate option.
Due to protected variable must be in org.apache.tomcat.util.net package...
Instruction:
1) Compile and place JAR in tomcat /lib
2) Add protocol="org.apache.tomcat.util.net.SSLSettingHelper" to SSL APR connector
*/
package org.apache.tomcat.util.net;
public class SSLSettingHelper extends org.apache.coyote.http11.Http11AprProtocol {
@Override
public void init() throws Exception {
super.init();
org.apache.tomcat.jni.SSLContext.setOptions(endpoint.sslContext, org.apache.tomcat.jni.SSL.SSL_OP_CIPHER_SERVER_PREFERENCE);
log.info("SSLSettingHelper set SSL_OP_CIPHER_SERVER_PREFERENCE to prevent BEAST SSL attack");
}
}
次に、このヘルパークラスを使用してコネクタを設定:
<Connector server="Server" protocol="org.apache.tomcat.util.net.SSLSettingHelper" port="8443" maxThreads="256" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="..." SSLCertificateKeyFile="..." SSLCertificateChainFile="..." SSLCipherSuite="ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM" compression="on" compressableMimeType="text/html,text/xml,text/plain,application/json,text/css,text/javascript" maxPostSize="1024000"/>
これはBEAST攻撃を修正します。
上記のバグレポートでは、Tomcat 6のCipherOrderディレクティブが提案されていますが(8月に戻っています)、まだ実装されていないという証拠はありません。一方、Tomcat 6のBEAST攻撃に対する明確な解決策はありますか?私たちはTomcat 6.0.35とJRE 1.6.0_38を実行しており、TrustwaveとSSL Labs(https://www.ssllabs.com/ssltest/)コンプライアンススキャンに失敗しています。 –
2013年1月からの最新のバグアップデート:[Tomcat 6.0.xで修正。 Tomcat 6.0.37になります。](https://issues.apache.org/bugzilla/show_bug.cgi?id=53481#c7) –
変更はtomcat 6.xと7.xになりました。 http://tomcat.apache.org/tomcat-7.0-doc/config/http.htmlで設定オプション(SSLHonorCipherOrder)を見ることができます。しかし、このオプションを有効にしました(サーバのコネクタに追加しました)。 xml、tomcat 7.0.40)、https://www.ssllabs.com/ssltestからビースト攻撃の失敗メッセージは削除されませんでした – Keith