2015-03-05 39 views
9

Güvenlik açığı için bkz https://freakattack.com/.TLS bağlantılarını, onları deli saldırısından korumak için nasıl yapılandırılır (CVE 2015-0204)?

Mozilla wiki şifre setleri için önerileri ile bir sayfası vardır: https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations

nasıl Java bağlamında (vb SSLContext, sağlayıcı yapılandırması, Tomcat konnektörleri) olanlar veya benzer öneriler de geçerli olacak?

Sen, kullanmak istediğiniz şifre suit bir listesini etkinleştirmek SSLSocket API setEnabledCipherSuites yöntemi bakın ve bu listeden İHRACAT şifre paketlerini hariç tutabilir olabilir
+0

etkin şifre suit tüm RSA ihracat şifrelere çıkarın. – EJP

+0

@EJP, nereden başlayacağınız bir pasaj gösterebilir misiniz? – Houtman

+0

Ah .. Burada gösterildiği gibi, politika ayarı nedeniyle java7'de POODLE (SSLv3) ve FREAK (dışa aktarma derecesi) sorunu yoktur. http://docs.oracle.com/javase/8/docs/technotes/kılavuzlar/güvenlik/SunProviders.html # footnote1-1 – Houtman

cevap

6

/lib/security dizinindeki Java Runtime Environment altında bulunan java.security adlı ilke dosyası.

İlke dosyası TLS şifreleme seçimini denetlemek için jdk.tls.disabledAlgorithms özelliğini tanımlar. SSL sertifikalarında karşılaşılan algoritmaları kontrol etmek için tamamlayıcı bir özellik jdk.certpath.disabledAlgorithms vardır. Bunun anlamı jdk.tls.disabledAlgorithms = MD5, SHA1, DSA, RSA anahtar boyutu: Aşağıdaki politikası geçerlidir Java 7 itibariyle Varsayılan olarak JSSE Reference Guide

: Oracle web sitesinde bu özellik için belgeleri bulabilirsiniz: MD5 yok, SHA1 yok, DSA yok. RSA, yalnızca anahtar en az 2048 bit uzunsa izin verilir. Bir site dağıtımını belirli gereksinimlere göre düzenlemek için bu özelliği kullanabilirsiniz. Java'da varsayılan olarak etkinleştirilen tüm şifre takımları, Ciphers bölümü altında here10 bulunur (varsayılan SunJSSE şifreleme sağlayıcısı açıkça geçersiz kılınmış ve kullanılmamışsa).

Tüm EXPORT şifreleme paketlerinin varsayılan olarak devre dışı bırakıldığını gördüğünüz gibi, FREAK saldırısı için bir şey yapılandırmaya gerek yoktur. Çünkü soru üzerine Houtman yukarıdaki yorumun

Düzenleme: Kaniş Hakkında
: Bu düşünmek zorunda SSLv3 protokolü sadece JDK 8u31 varsayılan olarak devre dışı bırakıldığından hem java 7. ve 8. (Bkz Protokoller here).

+0

TLS v1'i devre dışı bırakmak istiyorsam ne yapmalıyım? Kullandığınız bağlantı ve bulduğum kaynaklardan herhangi bir referans göremiyorum. 'Java.security' konulan gibi, biz jdk.tls.disabledAlgorithms = MD5, SSLv3, DSA, RSA keySize <2048' var, bu yüzden ben 'TLSv1.1' gibi koyabilirsiniz varsayalım? – FaithReaper

+0

Gerçekten. Örneğin. sadece TLS1.2'yi etkinleştirmek için: jdk.tls.disabledAlgorithms = SSLv2Hello, SSLv3, TLSv1, TLSv1.1 – wdk

0

7 itibaren şifre süitlerde güvenlik aracılığıyla kullanıma hariç tutulabilir Java itibaren
0

= "Belirtilmemiş" xpoweredBy = "false" = "true" güvenli SSL konnektörüne

sunucusu bu ekleyin sslProtocol = "TLS" sslEnabledProtocols = "TLSv1, TLSv1.1, TLSv1.2" şifrelere = "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"