Cómo deshabilitar SSLbackbackback con okhttp
Mi aplicación Android se basa en SNI para acceder al servidor correcto, por lo que requiere TLS y no funcionará con SSLv3. Estoy usando okhttp y retrofit y los registros del servidor indican que repentinamente los apretones de manos de TLS cambian a SSLv3 y pueden permanecer esta manera para una hora del registro, dando por resultado faltas repetidas de la verificación del hostname debido a la carencia del apoyo de la indicación del nombre del servidor.
Entiendo que en algunas situaciones (¿cuáles?) Okhttp deja de usar TLS y cambia a SSL como fallback. Sin embargo, esto es inaceptable en caso de SNI, ¿hay una manera de deshabilitar el fallback?
- Cómo crear un formato BKS (BouncyCastle) Java Keystore que contiene una cadena de certificados de cliente
- ¿Cómo usar el SSL auto-firmado en la biblioteca de red de Android (ION)?
- Error de Android en webview.loadUrl () - Ancla de confianza para la ruta de certificación no encontrada
- ¿Cómo hacer un HTTPS POST de Android?
- Com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: Protocolo SSL abortado:
Ejemplo de registro de apache:
[Wed May 07 18:00:12.799511 2014] [ssl:debug] [pid 20369:tid 140532403599104] ssl_engine_kernel.c(1891): [client <removed>:51431] AH02041: Protocol: TLSv1, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:00:28.563170 2014] [ssl:debug] [pid 20455:tid 140532646553344] ssl_engine_kernel.c(1891): [client <removed>:51432] AH02041: Protocol: TLSv1, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:00:45.884075 2014] [ssl:debug] [pid 20371:tid 140532445562624] ssl_engine_kernel.c(1891): [client <removed>:51433] AH02041: Protocol: TLSv1, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:01.322657 2014] [ssl:debug] [pid 20455:tid 140532395206400] ssl_engine_kernel.c(1891): [client <removed>:51434] AH02041: Protocol: TLSv1, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:18.361705 2014] [ssl:debug] [pid 20370:tid 140532462348032] ssl_engine_kernel.c(1891): [client <removed>:51435] AH02041: Protocol: TLSv1, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:25.378294 2014] [ssl:debug] [pid 20371:tid 140532487526144] ssl_engine_kernel.c(1891): [client <removed>:51436] AH02041: Protocol: SSLv3, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:40.807100 2014] [ssl:debug] [pid 20369:tid 140532445562624] ssl_engine_kernel.c(1891): [client <removed>:51437] AH02041: Protocol: SSLv3, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:41.154782 2014] [ssl:debug] [pid 20371:tid 140532479133440] ssl_engine_kernel.c(1891): [client <removed>:51438] AH02041: Protocol: SSLv3, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:56.695645 2014] [ssl:debug] [pid 20369:tid 140532504311552] ssl_engine_kernel.c(1891): [client <removed>:51439] AH02041: Protocol: SSLv3, Cipher: RC4-SHA (128/128 bits) [Wed May 07 18:01:57.252515 2014] [ssl:debug] [pid 20455:tid 140532521096960] ssl_engine_kernel.c(1891): [client <removed>:51440] AH02041: Protocol: SSLv3, Cipher: RC4-SHA (128/128 bits)
- Google Cloud Messaging muestra "notRegistered" al usar la aplicación distribuida de iOS
- La conexión TLS que usa SSLSocket es lenta en el sistema operativo Android
- Ignorar el certificado SSL Comprobar en Android React Native
- Consumir servicio WCF en SSL en Android
- ¿Cómo puedo implementar Pinning del certificado SSL mientras uso React Native
- Android - convertir la cadena de certificados pkcs12 al objeto de certificado x509 para bks keystore
- Conexión HTTPS con certificado de cliente en una aplicación para Android
- Android impide que el hombre en el ataque medio de SSL
Abra una solicitud de función y nosotros nos encargaremos de ello.
Gracias a la solicitud de características mencionada anteriormente se agregó como una opción de configuración, consulte aquí para más información.
Si desea tener un cliente estricto / seguro que no recurra a conjuntos de cifrado inseguros utilice este ConnectionSpec:
client.setConnectionSpecs(Collections.singletonList(ConnectionSpec.MODERN_TLS));
Alternativamente, puede definir su propia ConnectionSpec:
ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) .tlsVersions(TlsVersion.TLS_1_2) .cipherSuites( CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256) .build(); client.setConnectionSpecs(Collections.singletonList(spec));
- Hacer un juego en LibGDX con colisión y gravedad sin usar Box2D
- Configurar la imagen de fondo de un CardView dentro de RecyclerView hace que el programa se bloquee al desplazarse