web-dev-qa-db-ja.com

JettyでSSLv3プロトコルを無効にしてプードル攻撃を防ぐ方法

SSLv3暗号のみを無効にする特定の除外リストがあり、TLSv1/2ではありませんか?.

私は桟橋8を持っていますが、9へのアップグレードは現在の選択肢ではありません。私の現在のjetty-ssl.xmlは次のようになります

<Configure id="Server" class="org.Eclipse.jetty.server.Server">
<Call name="addConnector">
    <Arg>
        <New class="org.Eclipse.jetty.server.ssl.SslSelectChannelConnector">
            <Arg>
                <New class="org.Eclipse.jetty.http.ssl.SslContextFactory">
                    .........
                </New>
            </Arg>
            <Set name="ExcludeCipherSuites">
                <Array type="Java.lang.String">             
                <Item>SSL_RSA_WITH_NULL_MD5</Item>
                <Item>SSL_RSA_WITH_NULL_SHA</Item>
                <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
                <Item>SSL_RSA_WITH_RC4_128_MD5</Item>
                <Item>SSL_RSA_WITH_RC4_128_SHA</Item>
                <Item>SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5</Item>
                <Item>SSL_RSA_WITH_IDEA_CBC_SHA</Item>
                <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
                <Item>SSL_RSA_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_DH_DSS_WITH_DES_CBC_SHA</Item>
                <Item>SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_DH_RSA_WITH_DES_CBC_SHA</Item>
                <Item>SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
                <Item>SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
                <Item>SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</Item>
                <Item>SSL_DH_anon_WITH_RC4_128_MD5</Item>
                <Item>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</Item>
                <Item>SSL_DH_anon_WITH_DES_CBC_SHA</Item>
                <Item>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</Item>
                <Item>SSL_FORTEZZA_KEA_WITH_NULL_SHA</Item>
                <Item>SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA</Item>
                <Item>SSL_FORTEZZA_KEA_WITH_RC4_128_SHA</Item>
                <Item>SSL_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
                <Item>SSL_RSA_WITH_AES_128_CBC_SHA</Item>   
                </Array>
            </Set>
        </New>
    </Arg>
</Call>

それでも「sslscan --no-failed --ssl3 localhost:443」を実行すると、

    Supported Server Cipher(s):
  Accepted  SSLv3  128 bits  DHE-RSA-AES128-SHA
  Accepted  SSLv3  128 bits  AES128-SHA

Prefered Server Cipher(s):
  SSLv3  128 bits  DHE-RSA-AES128-SHA
19
Atul Soman

Jettyソースコードを統合するアプリケーションでは、SSLv3を無効にする必要がありました。コードで変更した内容に基づいて、以下を追加すると思います。

<Set name="ExcludeProtocols">
    <Array type="Java.lang.String">             
       <Item>SSLv3</Item>
    </Array>
</Set>

試してみて、うまくいくかどうか教えてください。

13
Lars

@Larsの答えを拡張するには..

Jetty 7、Jetty 8、およびJetty 9の場合、SSLベースのコネクターの構成に使用しているSslContextFactoryのプロトコルSSLv3(暗号ではない)を除外する必要があります。

突堤分布の場合

${jetty.home}/etc/jetty-ssl.xmlを編集して、次のXMLスニペットを追加します。

<Set name="ExcludeProtocols">
  <Array type="Java.lang.String">
     <Item>SSLv3</Item>
  </Array>
</Set>

org.Eclipse.jetty.http.ssl.SslContextFactoryを管理する要素の内部

Jetty Embeddedの場合

SSLベースのコネクター用に作成/管理するSslContextFactoryは、除外するプロトコルを設定するだけで済みます。

    SslContextFactory sslContextFactory = new SslContextFactory();
    sslContextFactory.addExcludeProtocols("SSLv3");
    sslContextFactory.setKeyStorePath(...);
    ...
4
Joakim Erdfelt

Jetty 8.1 whitout ssl3を構成しました。 jetty-ssl.xmlの完全な構造を確認できます。

 
 <Configure id = "Server" class = "org.Eclipse.jetty.server.Server"> 
 <Call name = "addConnector"> 
 < Arg> 
 <New class = "org.Eclipse.jetty.server.ssl.SslSelectChannelConnector"> 
 <Arg> 
 <New class = "org.Eclipse.jetty.http .ssl.SslContextFactory "> 
 <Set name =" keyStore "> ... </ Set> 
 <Set name =" keyStorePassword "> ... </ Set> 
 <Set name = "keyManagerPassword"> ... </ Set> 
 <Set name = "trustStore"> ... </ Set> 
 <Set name = "trustStorePassword> .. 。</ Set 
 <Set name = "ExcludeProtocols"> 
 <Array type = "Java.lang.String"> 
 <Item> SSLv3 </ Item> 
 </ Array> 
 </ Set> 
 </ New> 
 </ Arg> 
 <Set name = "port"> ... < /セット> 
 <Set name = "maxIdleTime"> ... </ Set> 
 </ New> 
 </ Arg> 
 </ Call> 
 </ Configure > 
 
0
user2918934