2016-04-13 25 views
1

Çalışan bir özel Java uygulama sunucum var. Sunucu tarafından desteklenen bazı zayıf şifreleme takımlarının, örneğin bazı 112 bit şifrelerin olduğunu görüyorum. Bunları devre dışı bırakmak istiyorum. Bunu nerede yapabilirim? Ayrıca TLSv1.2'yi etkinleştirmek istiyorum. Aşağıdaki soketi başlatmak için kod.ssl için java uygulama sunucusunda zayıf şifreleme takımları nasıl devre dışı bırakılır

 KeyStore ks = KeyStore.getInstance("JKS"); 
     ks.load(new FileInputStream(sslstore), sslstorepass.toCharArray()); 
     KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 
     kmf.init(ks, sslcertpass.toCharArray()); 

     SSLContext sc = SSLContext.getInstance("TLS"); 
     sc.init(kmf.getKeyManagers(), null, new SecureRandom()); 
     SSLServerSocketFactory ssf = sc.getServerSocketFactory(); 
     serverSocket = ssf.createServerSocket(port); 

     System.out.println("Socket initialized"); 

cevap

1

JAVA şifre paketlerini ilke dosyasında JRE: $PATH/[JRE]/lib/securityjdk.tls.disabledAlgorithms özelliğinde yer alır java.security denilen güvenlik politikası dosyasında kullanılmak dışlanan/kaldırılır TLS şifre seçimini denetleyen sağlar. jdk.certpath.disabledAlgorithms, SSL sertifikalarında karşılaşacağınız algoritmaları denetler. MD5, SHA1, DSA asla izin verilmez böylece jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 4096 O bunu yapar ve anahtar az ise RSA yalnızca izin verilir: Aşağıdaki girdiyseniz, Oracle, güvenlik politikası dosyada, bu here

hakkında daha fazla bilgi var En az 4096 bit.

Tls sürümü sorununu çözmek için. Sadece SSLContext sc = SSLContext.getInstance("TLSv1.2"); koymak zorunda Tüm sürümleri destekleyecek.