2015-03-05 10 views
9

Per la vulnerabilità vedi https://freakattack.com/.Come configurare le connessioni TLS per proteggerle da attacchi anomali (CVE 2015-0204)?

Mozilla wiki ha una pagina con le raccomandazioni per ciphersuites: https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations

Come potrei applicare tali o raccomandazioni simili nel contesto Java (SSLContext, configurazione del provider, connettori Tomcat, ecc)?

+0

Rimuovi tutti i cifrari di esportazione RSA dalle suite di cifratura abilitati. – EJP

+0

@EJP, puoi mostrare uno snippet di dove iniziare? – Houtman

+0

Ah .. come mostrato qui, POODLE (SSLv3) e FREAK (export-grade) non sono un problema in java7, a causa delle impostazioni dei criteri. http://docs.oracle.it/javase/8/docs/technotes/guides/security/SunProviders.html # footnote1-1 – Houtman

risposta

6

Da Java 7 suite in poi di cifratura possono essere esclusi dall'utilizzo tramite un titolo file di criteri chiamato java.security che si trova in Java Runtime Environment nella directory/lib/security.

Il file della politica definisce la proprietà jdk.tls.disabledAlgorithms per controllare la selezione del codice TLS. Esiste anche una proprietà complementare jdk.certpath.disabledAlgorithms per controllare gli algoritmi incontrati nei certificati SSL. È possibile trovare la documentazione per questa proprietà sul sito Oracle: JSSE Reference Guide

Per impostazione predefinita, come di Java 7 seguenti politica si applica: jdk.tls.disabledAlgorithms = MD5, SHA1, DSA, RSA KeySize Ciò significa: niente MD5, niente SHA1, niente DSA. RSA è consentito solo se la chiave è lunga almeno 2048 bit. È possibile utilizzare questa proprietà per adattare ulteriormente una distribuzione del sito a esigenze specifiche. Tutte le suite di crittografia abilitate per impostazione predefinita in Java sono trovate here nella sezione Cipher (a meno che il provider di crittografia SunJSSE predefinito non sia stato esplicitamente sostituito e non venga utilizzato).

Come si può notare, tutte le suite di cifratura EXPORT sono disabilitate per impostazione predefinita, quindi non è necessario configurare qualcosa per l'attacco FREAK.

Modifica a causa di sopra commento del Houtman sulla domanda:
Circa BARBONCINO: Bisogna pensare a questo, sia in Java 7 e 8. Poiché il protocollo SSLv3 è solo stata disabilitata per default da JDK 8u31 (vedere la sezione Protocolli here).

+0

Se voglio disabilitare TLS v 1.1, cosa devo inserire? Il link che hai inserito, e dalle fonti che ho trovato, non riesco a vedere alcun riferimento. Come quello che viene messo in 'java.security', abbiamo' jdk.tls.disabledAlgorithms = MD5, SSLv3, DSA, RSA keySize <2048', quindi suppongo di poterlo inserire come 'TLSv1.1'? – FaithReaper

+0

Infatti. per esempio. per abilitare solo TLS1.2 fare: jdk.tls.disabledAlgorithms = SSLv2Hello, SSLv3, TLSv1, TLSv1.1 – wdk

0

È possibile abilitare un elenco di pacchetti di crittografia che si desidera utilizzare, vedere il metodo setEnabledCipherSuites in SSLSocket API e possibile escludere suite EXPORT cifratura da questa lista

0

Aggiungere questi per il connettore SSL

server = "non specificato" xpoweredBy = "false" sicura = "true" sslProtocol = sslEnabledProtocols "TLS" = "TLSv1, TLSv1.1, TLSv1.2" cifrari = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"

Problemi correlati