2015-05-20 7 views
10

TLS'deki yeni Logjam saldırısı, yaygın DH gruplarına dayanmaktadır. This link, her bir sunucu için yeni bir 2048 bit DH grubu oluşturulmasını önerir.Java SSLEngine'de Logjam saldırısını önlemek için özel DH grubu nasıl ayarlanır?

nasıl SSLEngine kullanan Java sunucu kodunda özel DH grubu set can?

ETA: Ben DHE ya ECDHE ile sadece kısa ömürlü DH şifre paketlerini, yani olanları kullanılır ve kendi adlarına DH veya ECDH değilse güvende olurdu? Yoksa bu ilgisiz mi?

+0

logjam tek ihraç (DHE_EXPORT) ya da dövülmüştür olduğundan sunucu zayıf parametreleri kullanan geçici tamsayı DH için de geçerlidir, "normal" DHE'nin kullanılır ancak sunucu aval/kodlanmış (bölüm kağıt 3.5) yapılandırılmıştır. DH için bir sertifika alabiliyorsanız, statik tamsayı DH'ye uygulanacak, bu da pratikte yapamayacağınız, * ve * CA'nın yapamayacağı aptalca zayıf parametrelere izin verdi. ECDH'ye geçici ya da durağan olarak uygulanmaz ve bu makale ECDHE'yi genel olarak bir çözüm olarak önermektedir, ancak şu anda yaygın olarak kullanılan SECG/NIST eğrilerinin şüphelerini özellikle dile getirmektedir. –

+1

Bu öncelikle saldırıyı mümkün kılan * zayıflık * (512 bit, muhtemelen 768 ve belki 1024). Paylaşım sadece saldırıyı daha uygun maliyetli yapar, çünkü bir "giriş" için daha fazla "çıktı" elde edersiniz. Paylaşılan 2048 iyi olurdu * eğer * üretilebilir * doğrulanabilir * (böylece gerçekten 2048 gücüne sahip olduğundan emin olabilirsiniz). –

+1

@ dave_thompson_085 Ve "sun.security.provider.ParameterCache" 'deki paylaşılan 2048 bit paramlarının güvenli olup olmadığını bilmenin bir yolu yok mu? – danarmak

cevap

7

Java (JCE/JSSE) bazı well known DSA groups den DH parametrelerini kullanır. JCE parametre jeneratörü sadece 512 ve 1024 bit (veya 2048) arasındaki boyutlarda gruplar üretmeye izin verir, ancak diğer tarafta JSSE uygulaması sadece 1024 ve 2048 arasında özel boyutları kabul eder.

Bu, kullanamayacağınız Özel boyutların, sadece 1024 veya 2048 (Java 8 ile). Java 7'nin hala bir sunucu olarak 768 bit'i (veya ihraç edilebilir kripto modunda 512'yi) kullandığını unutmayın. sürüm 8 Java sunucuları ile başlayan

varsayılan 1024 azar kullanın. Sunucu tarafı jdk.tls.ephemeralDHKeySize=2048 ile 2048 bit'e yükseltebilirsiniz. Customizing Size of Ephemeral DH Keys.

Java TLS olarak istemci eski sürümlerinde daha az katıdır ve güvensiz gruplarını kabul eder. Güncelleştirme: OpenJDK 8U65 (JSSE) ile,güvenlik alanıyla, sonlu-alan parametrelerini tanımlayabilen bir güvenlik özelliği bulunmaktadır.

+1

Teşekkürler. Logjam raporu, en az 2048 bit DH gruplarını önermektedir, bu yüzden, Java'nın büyük olasılıkla etkilenemeyeceği için, bunu yönetmek için BC sağlayıcılarını kullanmayı düşünmem gerekecek. – danarmak

+2

Aslında, Logjam raporu, oluşturulmuş ve paylaşılmayan/standart olmayanlarsa 1024 bit DH primlerinin güvenli olduğunu söylüyor. Dolayısıyla, Java 8'in (sunucu) şimdilik güvenli olduğunu düşünüyorum. Java 8 istemcisi olmayabilir. – danarmak

+0

Bu seçeneği 2048 bit'e yükseltmek için ekledim. – eckes

İlgili konular