2014-10-15 5 views
19

Esiste un elenco di esclusione specifico che disabilita solo i cifrari SSLv3 non sono TLSv1/2.Come disattivare il protocollo SSLv3 nel Jetty per impedire Poodle Attack

Ho il molo 8 e l'aggiornamento a 9 non è un'opzione ora. Il mio attuale pontile-ssl.xml appare come segue

<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> 

ancora quando ho eseguito "sslscan --no-fallito localhost --ssl3: 443" Ho

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 
+1

aperto nuovi bug al molo di aver SSLv3 disabilitato per default a partire dal Molo 9.3 - https://bugs.eclipse.org/447381 –

risposta

13

ho avuto disabilitare SSLv3 in un'applicazione in cui si integra il codice sorgente Jetty. Sulla base di ciò che ho cambiato in codice, direi si aggiunge la seguente:

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

dare un colpo e fammi sapere se funziona per voi.

+0

aggiorna la risposta di affermare che questa configurazione è per lo SslContextFactory, e le opere per Jetty 7/8/9 (appena testato tutti e 3, e funziona) –

+0

Questo ha funzionato, sto accettando questa risposta. Grazie ! –

4

Ad ampliare @ Lars risposta ..

Per Molo 7, Gettata 8 e 9 Jetty è necessario escludere il protocollo SSLv3 (non la cifra) su qualsiasi SslContextFactory che si utilizza per configurare uno SSL basato Connettore.

Per un molo di distribuzione

Modificare il ${jetty.home}/etc/jetty-ssl.xml e aggiungere il seguente frammento di codice XML.

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

All'interno di ogni elemento che gestisce un org.eclipse.jetty.http.ssl.SslContextFactory

Per Jetty embedded

Qualsiasi SslContextFactory si/creare gestire per i connettori basati su SSL non vi resta che impostare i protocolli esclusi.

SslContextFactory sslContextFactory = new SslContextFactory(); 
    sslContextFactory.addExcludeProtocols("SSLv3"); 
    sslContextFactory.setKeyStorePath(...); 
    ... 
+0

Sono ancora bloccato con Jetty v6 (essendo ancora basato su Eclipse 3.7), come faccio a farlo lì? sslContextFactory.addExcludeProtocols() non esiste ... – centic

+1

Jetty 6 non ha quel supporto. Scusate. Dovrai creare il tuo SslSocketConnector. Vedere la risposta di Karl su una domanda diversa per alcuni esempi di codebase - http://stackoverflow.com/a/19937704/775715 - per inciso, Jetty 6 era EOL nel 2010, non ha FISSIONI VULNERABILITÀ da allora. Poodle è solo una delle centinaia di vulnerabilità a cui mancano le correzioni (se si usa Jetty su Windows moltiplicare per 3). Si consiglia vivamente di aggiornare, o non eseguire Jetty 6 su Internet pubblica. –

+0

@centic Ecco il bug di lato di Eclipse che tiene traccia dell'aggiornamento di Eclipse stesso a Jetty 9 - https: //bugs.eclipse.org/401784 –

0

Ho configurato il Jetty 8.1 senza ssl3. Puoi vedere la struttura completa di 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> 
      <Set name="maxIdleTime">... </Set> 
      </New> 
     </Arg> 
     </Call> 
    </Configure> 

Problemi correlati