2013-09-03 18 views
9

La nostra applicazione Java espone molte interfacce diverse (SMTP, FTP, HTTP), protette da SSL/TLS. L'obiettivo ora è di limitare le suite di crittografia consentite su queste interfacce per includere solo quelle "forti". Ho già una lista ed è chiaro come farlo lavorare per una particolare presaLimita le suite di crittografia a livello JRE

socket.setEnabledCipherSuites(ENABLED_SECURE_CIPHER_SUITES); 

o per il connettore Tomcat

<Connector port="443" ciphers="..."/> 

Il problema è che ci sono già 5 posti nella domanda dove dovrei applica questa limitazione manualmente. Common SocketFactory non sembra essere d'aiuto, poiché non è sempre possibile fornire SocketFactory personalizzato a API o framework di terze parti. È possibile in qualche modo introdurre questa limitazione a livello di JRE, ad es. con la configurazione dei provider JCE o il file dei criteri?

JRE: Oracle JRE 1.7.0_17

+0

Definire 'strong'. Java limita già le suite di crittografia abilitate. Sei a conoscenza delle [Proprietà di rete] (http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html)? – EJP

+0

Questa domanda non riguarda la forza di una cifra particolare. Ho una lista fissa di cifrari consentiti e non posso cambiarla. Ad esempio, RC4 non è consentito affatto. Quindi, le restrizioni Java predefinite non sono sufficienti. Ho anche controllato le proprietà di rete, ma non ho trovato proprietà relative alle suite di crittografia. – Jk1

+0

Vedere la Guida di riferimento JSSE. – EJP

risposta

9

Beh, sono riuscito ad ottenere che il lavoro. Grazie a EJP per indicare nella giusta direzione. Dal momento che Java 1.7 ci sono due proprietà aggiuntive a $ JRE_HOME/lib/security/java.security:

jdk.certpath.disabledAlgorithms=MD2 

Controlli algoritmi per la costruzione del percorso di certificazione e validazione.

jdk.tls.disabledAlgorithms=MD5, SHA1, RC4, RSA keySize < 1024 

restrizioni algoritmo a livello di JVM per l'elaborazione SSL/TLS, quello che stavo cercando. La notazione è abbastanza ovvia qui; è possibile disabilitare determinati algoritmi o limitare le dimensioni della chiave. Entrambe le proprietà sono supportate in Oracle JRE 7, Open JRE 7 e (sorprendentemente) IBM Java v7

Problemi correlati