HttpClient falla con Handshake Failed en Android 5.0 Lollipop

DefaultHttpClient en Android 5.0 Lollipop parece estar roto. No puede establecer la conexión a algunos sitios que se establecieron con éxito en versiones anteriores de Android.

Por ejemplo, trato de conectarme ahttps://uralsg.megafon.ru

//Create httpclient like in https://stackoverflow.com/questions/18523784/ssl-tls-protocols-and-cipher-suites-with-the-androidhttpclient
HttpClient client = new DefaultHttpClient(manager, params);
HttpGet httpGet = new HttpGet("https://uralsg.megafon.ru");
HttpResponse client = httpclient.execute(httpGet);

Este código funciona en Android 2.3-4.4, pero falla en Android 5.0 (dispositivos y emulador) con error Conexión cerrada por igual. Por supuesto, esto es comprensible porque Android 5.0 intenta conectar este antiguo servidor con TLSv1.2 y cifrados modernos y no los admite.

Ok, usando el código de muestra enProtocolos SSL / TLS y conjuntos de cifrado con AndroidHttpClient limitamos el protocolo y el cifrado aTLSv1 ySSL_RSA_WITH_RC4_128_MD5. Ahora falla con un error diferente:

javax.net.ssl.SSLHandshakeException: Handshake failed
caused by 
    error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac 
    (external/openssl/ssl/s3_pkt.c:1286 0x7f74c1ef16e0:0x00000003) 
    at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake

Y, por supuesto, este código funciona sin problemas en Android 2.3-4.4.

Examiné el tráfico con wireshark:

302 4002.147873000  192.168.156.30  83.149.32.13    TLSv1   138 Client Hello
303 4002.185362000  83.149.32.13    192.168.156.30  TLSv1   133 Server Hello
304 4002.186700000  83.149.32.13    192.168.156.30  TLSv1   1244    Certificate
305 4002.186701000  83.149.32.13    192.168.156.30  TLSv1   63  Server Hello Done
307 4002.188117000  192.168.156.30  83.149.32.13    TLSv1   364 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
308 4002.240695000  83.149.32.13    192.168.156.30  TLSv1   61  Alert (Level: Fatal, Description: Bad Record MAC)

Puede ver que se estableció la conexión pero el servidor se alertó porque probablemente no podría decodificar el mensaje de enlace cifrado.

No logré conectarme ahttps://uralsg.megafon.ru usando HttpClient en Android 5.0. Sin embargo, Stock browser lo conecta. Android 2.3-4.4 conecta este sitio de cualquier manera sin ninguna dificultad.

¿Hay alguna manera de hacer posible que HttpClient conecte dichos sitios? Este es solo un ejemplo, estoy seguro de que hay muchos servidores heredados que Android 5.0 y HttpClient no pudieron conectar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta