Google intentó con Android 5.0 imponer la encriptación obligatoria del almacenamiento interno de los teléfonos cuando actualizaran a Android 5.0 o salieran de fábrica con esta versión. El problema del que nos dimos cuenta algunos es que, al igual que pasa con los SSD, si la encriptación se hace por software en vez de por hardware, el impacto en el rendimiento de lectura-escritura puede ser notable.
Ahora que ha pasado cierto tiempo, Google va a reimponerla en Android 6.0, pero al menos según el documento Android Compatibility Definition de esta versión a la que se tienen que suscribir los fabricantes para usar Android, sólo será obligatoria en los teléfonos con almacenamiento con encriptación AES por hardware, o aquellos que por software superen los 50 MB/s de lectura de información encriptada con AES.
La letra pequeña que no me gusta de esta propuesta de Google: hacer la encriptación-desencriptación por software requiere de uso de ciclos de CPU, y por tanto consume batería. Hacerla por hardware es algo casi inmediato y no consume apenas.
La historia de la encriptación por defecto en Android
En el momento del anuncio de la encriptación por defecto había una pequeña batalla entre Apple y Google por ver quién la tenía más grande tenía el sistema que se lo ponía más difícil a la NSA y demás agencias gubernamentales. En este caso ganó Apple porque el almacenamiento de todos los iPhones soportan encriptación AES por hardware. La inmensa mayoría de teléfonos Android no tienen soporte a dicha función porque es una funcionalidad que cuesta dinero.
Las pruebas de rendimiento de sitios web dieron las evidencias de que sí afectaba al rendimiento la encriptación por defecto en equipos no preparados. Podía lastrar considerablemente incluso el rendimiento del Nexus 6, por detrás del rendimiento de lectura-escritura del Nexus 5, por lo que sigo pensando que el Nexus 6 ha sido un producto mal terminado.
Android usa por defecto AES-128 en vez de AES-256, o al menos así ha sido hasta ahora. La encriptación de disco está presente desde Android 3.0 de manera opcional, pero muy poca gente la ha utilizado. A nadie le gusta que le impongan nada, pero en este caso creo que es necesario hacerlo porque, si se pierde el teléfono o el gobierno se hace con él, no pueden acceder a la información si no tienen el PIN de desbloqueo.
Cuestión a parte es dónde almacenen la clave de encriptación, que en iOS se hace en el propio procesador pero que en Android se hace en disco por la falta de una zona específica común a los chips de los diversos fabricantes (MediaTek, Qualcomm, Samsung, Rockchip, etc.). Por lo que en realidad, con AES-128 y este problemilla, son buenos pasos de Google pero que Android sigue sin ser potencialmente tan seguro que iOS. ¿Quizás en Android 7.0?
Vía: Ars Technica.