Esta información va dirigida a los desarrolladores de aplicaciones que contienen una implementación no segura de la interfaz X509TrustManager.
¿Qué está pasando?
Una o varias de tus aplicaciones contienen una implementación no segura de la interfaz X509TrustManager. En concreto, la implementación ignora todos los errores de validación de certificados SSL al establecer una conexión HTTPS a un host remoto, lo que hace que tu aplicación sea vulnerable a los ataques de intermediario. Un atacante podría leer los datos que se hayan transmitido (por ejemplo, las credenciales de inicio de sesión) e incluso cambiar estos datos en la conexión HTTPS. Consulta los pasos detallados a continuación para solucionar el problema con tus aplicaciones. Una vez que finalice el plazo indicado en Play Console, es posible que las aplicaciones que contengan vulnerabilidades de seguridad sin corregir se retiren de Google Play.
¿Qué tienes que hacer?
- Inicia sesión en Play Console y ve a la sección Alertas para consultar qué aplicaciones están afectadas y las fechas límite para resolver estos problemas.
- Actualiza las aplicaciones afectadas y corrige la vulnerabilidad.
- Envía las versiones actualizadas de las aplicaciones afectadas.
Cuando vuelvas a enviar tus aplicaciones, se revisarán de nuevo. Este proceso puede tardar varias horas en completarse. Si una aplicación supera el proceso de revisión y se publica, no tendrás que hacer nada más. Si no lo supera, la nueva versión de la aplicación no se publicará y recibirás una notificación por correo electrónico.
Información adicional
Para procesar correctamente la validación de certificados SSL, cambia tu código en el método checkServerTrusted de tu interfaz personalizada X509TrustManager para seleccionar CertificateException o IllegalArgumentException siempre que el certificado presentado por el servidor no cumpla tus expectativas. En concreto, ten en cuenta los siguientes problemas:
- Comprueba que las excepciones generadas por checkServerTrusted no se incluyan en el método. Si se incluyeran, esto haría que checkServerTrusted saliera normalmente, y la aplicación confiaría en un certificado dañino.
- No uses checkValidity para examinar el certificado del servidor. El método checkValidity comprueba si un certificado ha caducado, pero no determina si es de confianza.
También puedes usar una configuración de seguridad de red para personalizar el comportamiento de los certificados de tu aplicación de una forma menos propensa a errores.
Queremos ayudarte
Si tienes alguna pregunta técnica sobre esta vulnerabilidad, puedes publicarla en Stack Overflow con la etiqueta "android-security" y "TrustManager". Ponte en contacto con nuestro equipo de asistencia para desarrolladores si necesitas más información para resolver este problema.