6 votos

Soporte de Android para TLS

He encontrado que TLS1.1 y TLS1.2 son compatibles desde el nivel de API 16 en adelante de forma predeterminada desde el nivel de API 20. Esto corresponde a Android 4.1 (compatible) y Android 4.4W (wearable) o Android 5.0 (de forma predeterminada)

Desde el punto de vista del servidor, esto significa que solo admitirá clientes que utilicen 4.4W o superior, ya que no se puede confiar en que los clientes activen el soporte para TLS 1.1 y TLS 1.2

Ahora viene la pregunta real:

¿Realmente necesitas preocuparte por la versión de Android?

¿Eh, qué quieres decir? Bueno, ¿deberías mirar la versión de Android O la versión del navegador que se está utilizando? Por ejemplo, Chrome en un escritorio tiene bibliotecas de OpenSSL compiladas en él (si no me equivoco). ¿Entonces no podría una nueva versión de Chrome en una versión antigua de Android soportar TLS1.1 y TLS1.2?

La misma historia se repite con otros navegadores. Sé que esto es un Android StackExchange, ¿pero alguien sabe cuál es la situación en iOS? ¿El navegador utilizará las bibliotecas del sistema para SSL o utilizará las suyas propias? ¿Debo mirar al navegador o al sistema operativo para el soporte de TLS?

Sinceramente,

Roel

7voto

mattm Puntos 139

Suponiendo que no estás desarrollando para Android, no tienes que preocuparte por la versión de Android.

Cualquier aplicación seria y segura como Chrome en Android utilizará TLS 1.2. Puedes verificar esto por ti mismo yendo a un sitio web seguro (¡asegúrate de que admita TLS 1.2!) e inspeccionando el certificado y el protocolo utilizado en el cliente. Yo he verificado esto en Chrome en un dispositivo Android 4.4, y utiliza TLS 1.2.

Una política de seguridad debería basarse en la versión de TLS, y no prestar atención a qué tipo de cliente lo está ejecutando. No vale la pena determinar la versión del sistema operativo de Android, porque la versión del sistema operativo de Android no es lo que finalmente determina la seguridad utilizada.

Vamos a ser meticulosos al enumerar las posibilidades.

  • API de Android 20+: Todos los navegadores y aplicaciones deberían funcionar con TLS 1.2.
  • API de Android 16-19: Algunos navegadores y aplicaciones funcionarán con TLS 1.2.
  • API de Android 15-: Creo que no estamos discutiendo estos porque ninguna versión admite TLS 1.2.

Aquí están las opciones del servidor que creo que estamos discutiendo:

  1. Permites solo TLS 1.2 y no revisas la versión de Android. Se espera que funcionen todos los clientes de Android API 20+ y aquellos clientes de Android API 16-19 que utilicen aplicaciones TLS 1.2.
  2. Permites TLS 1.2, 1.1, 1.0 y no revisas la versión de Android. Se espera que funcionen todos los clientes de Android. El sistema es menos seguro.
  3. Permites solo TLS 1.2 y revisas la versión de Android. Solo los clientes de Android API 20+ pueden funcionar porque estás excluyendo API 16-19. Esto significa menos clientes compatibles que en la opción 1, sin aumento en la seguridad de TLS. Por lo tanto, esta opción no tiene sentido.
  4. Permites TLS 1.2, 1.1, 1.0 y revisas la versión de Android. Solo se espera que funcionen los clientes de Android API 20+ porque estás excluyendo API 16-19. Esta opción no tiene sentido porque estás haciendo que el sistema sea menos usable y menos seguro que otras opciones. Menos clientes funcionarán que bajo la opción 1, y esos clientes serán menos seguros.

Revisar la versión de Android hace que tu sistema sea compatible con menos clientes, sin aumento en la seguridad. Por lo tanto, no pierdas tiempo revisando la versión de Android.

El compromiso básico de seguridad siempre es cuán usable es un sistema versus cuán seguro es. Esto se aplica a medidas de seguridad física, suites de cifrado, versiones de TLS y más. TLS 1.1 y 1.0 no son tan seguros como TLS 1.2. Debes responder las siguientes preguntas por ti mismo:

  1. ¿Las vulnerabilidades presentes en TLS 1.1 y 1.0 los hacen inadecuados para tu sistema?
  2. ¿Valdría la pena el uso exclusivo de TLS 1.2 a cambio de que algunas personas no puedan usar tu sistema?

0 votos

¿Qué quieres decir con: "Una política de seguridad debería depender básicamente de la versión de TLS, y no prestar atención al tipo de cliente que la está ejecutando"? ¿Deberíamos permitir sólo los protocolos que sean seguros y no deshabilitar ninguno que sea seguro? ¿Independientemente de cuántos clientes puedan trabajar con esta política?

0 votos

Entiendo lo que estás diciendo. Pero el equilibrio se ve influenciado por MIS usuarios, aquellos que están utilizando mi aplicación web. Si utilizan un cliente más actualizado que la población en general, el equilibrio podría inclinarse hacia un estándar de seguridad más alto. Por lo tanto, la usabilidad de mi sistema no depende solo de la tecnología utilizada, sino también de mis usuarios. Por lo tanto, una política que tenga en cuenta las necesidades de usabilidad debe tener en cuenta a sus usuarios.

0 votos

También dices que no es necesario mirar el sistema operativo Android. ¿Pero qué sucede cuando el usuario está utilizando el navegador Android? Creo que el navegador webkit de Android está basado en Safari, ¿por lo que necesitas buscar esa versión de Safari?

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X