SORU
15 AĞUSTOS 2013, PERŞEMBE


Rastgele "eş değil kimliği" Java SSLContextİmpl ile istisnaları$TLS10Context

HAProxy sunucu SSL kullanarak bağlanırken rastgele görünür, bağlantı hataları alıyorum. Bu hatalar GÖRDÜM sürümlerinde 1.7.0_21 ve 1.7.0_25 ama 1.6.0_38 ile 1.7.0_04 ile veya değil ne teyit ettim.

İstisna değildir

 Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)
    at SSLTest2.main(SSLTest2.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Bu hatalar TLS SSL bağlamı ve varsayılan bağlam ile kullanırken tek başına. Aşağıdaki kodu binlerce kez ve bir başarısızlık döngü tamamlanmadan önce başına bir döngü bağlantıları 2% başarısız () çalıştırın

SSLContext sslcontext = SSLContext.getInstance("TLS");   
sslcontext.init(null, null, null);
SSLSocketFactory factory = sslcontext.getSocketFactory(); 
SSLSocket socket = (SSLSocket)factory.createSocket("myserver", 443);

//socket.startHandshake();
SSLSession session = socket.getSession();
session.getPeerCertificates();
socket.close();

Ancak, SSL bağlamı bu şekilde oluşturursanız ben bahsettiğim Java sürümleri hiç bağlantı hataları var:

SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault();

İlk yolu SSLContextImpl$TLS10Context kullanır ve daha sonra SSLContextImpl$DefaultSSLContext kullanır. Kodu baktığımızda, durum oluşmasına neden olacak herhangi bir fark göremiyorum.

Neden bu hataları almak olacağını ve avantajları getDefault() çağrı kullanmanın dezavantajları nelerdir?

Not: özel ilk Apache HttpClient (sürüm 4) kullanarak görüldü. Bu kod sorunu HttpClient ile görülen yeniden üreten küçük bir alt kümesidir.

İşte -Djavax.net.debug=ssl eklerken gördüğüm hata:

main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT:  fatal, bad_record_mac
%% Invalidated:  [Session-101, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA]
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLException: Received fatal alert:   bad_record_mac
main, IOException in getSession():  javax.net.ssl.SSLException: Received fatal alert: bad_record_mac

Bilgi başka bir parça hataları kapalı Diffie-Hellman proxy sunucu açtım oluşur.

CEVAP
19 Mayıs 2014, PAZARTESİ


Belirtilere bakılırsa, benimtahminbu tarayıcılar tarafı istemci hileli bir Google reduce the back-and-forth in TLS giriliyor TLS false start kullanarak ilgili:

Yanlış Başlangıç büyük ölçüde tarayıcı tarafından kontrol edilir ve veri gidiş-dönüş pas bir tek resmi SSL özellikleri açıklanan gidiş-dönüş iki geçiş azaltarak çalışır. İstemci tek bir merkezden sırada Tamamladı ve ilk ApplicationData mesaj göndermek için talimat yerine iki farklı paketler koyarak ve sadece sunucudan onay aldıktan sonra ikinci göndererek yaptı.

SSL şu an için çok pahalı bulmak web siteleri için daha lezzetli yapmak için resmi bir standart olarak önerilen Yanlış başladı Google. Göre biraz daha kısa bir tokalaşma o görüşür şifreleme anahtarı ve diğer değişkenleri korumak için gerekli veri iletme arasındaki son kullanıcı ve web sitesi, False Start oldu amaçlanan daha düşük performans ceza, bir çok kişi gelir kullanma protokolü.

relevant issue raised in Mozilla Firefox: (vurgu benim)

Şimdiye kadar, bir eksik listesi ürünlerin bilinen için geçerli veya önceki uyumluluk sorunları hatalı çıkış vardır (AFAİCT): F5 A10, Microsoft OFFİCE, Cisco ASA, Serverİron özelliklerini kullanan binlerce, ESET, NetNanny,Java bazı yapılandırmaları SSL sunucu uygulaması.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • laptopmag

    laptopmag

    25 Ocak 2008
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • movies95

    movies95

    27 Kasım 2006