2013-09-03 5 views
9

Unsere Java-Anwendung bietet viele verschiedene Schnittstellen (SMTP, FTP, HTTP), die durch SSL/TLS gesichert sind. Das Ziel besteht nun darin, Cipher-Suites zu beschränken, die auf diesen Schnittstellen erlaubt sind, nur "starke" einzuschließen. Ich habe bereits eine Liste und es ist klar, wie es für eine bestimmte Steckdose arbeiten, umVerschlüsselungssuiten auf JRE-Ebene einschränken

socket.setEnabledCipherSuites(ENABLED_SECURE_CIPHER_SUITES); 

oder für Tomcat-Anschluss

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

Das Problem ist, dass es bereits 5 Plätze in der Anwendung, wo ich soll Wenden Sie diese Einschränkung manuell an. Gemeinsame SocketFactory scheint nicht zu helfen, da es nicht immer machbar ist, benutzerdefinierte SocketFactory API oder Framework von Dritt-Anbieter bereitzustellen. Ist es möglich, diese Beschränkung auf JRE-Ebene irgendwie einzuführen, z. mit JCE-Provider Konfiguration oder Richtliniendatei?

JRE: Oracle JRE 1.7.0_17

+0

"stark" definiert. Java beschränkt bereits die aktivierten Cipher Suites. Kennen Sie die [Netzwerkeigenschaften] (http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html)? – EJP

+0

Bei dieser Frage geht es nicht um die Stärke einer bestimmten Chiffre. Ich habe eine feste Liste von zulässigen Verschlüsselungen und kann sie nicht ändern. Zum Beispiel ist RC4 überhaupt nicht erlaubt. Daher sind Java-Standardeinschränkungen nicht ausreichend. Ich habe auch Netzwerkeigenschaften überprüft, aber keine Eigenschaften gefunden, die sich auf Cipher Suites beziehen. – Jk1

+0

Siehe JSSE-Referenzhandbuch. – EJP

Antwort

9

Nun gelang es mir, dass die Arbeit zu bekommen. Danke an EJP für den Hinweis in die richtige Richtung. Seit Java 1.7 gibt es zwei zusätzliche Eigenschaften in $ JRE_HOME/lib/security/java.security:

jdk.certpath.disabledAlgorithms=MD2 

Kontrollen Algorithmen für Zertifizierungspfad Gebäude und Validierung.

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

JVM-weite Algorithmuseinschränkungen für die SSL/TLS-Verarbeitung, die ich suchte. Die Notation ist hier ziemlich offensichtlich; Es ist möglich, bestimmte Algorithmen zu sperren oder die Schlüsselgrößen zu begrenzen. Beide Eigenschaften werden in Oracle JRE 7, Open JRE 7 und (überraschend)