encriptación de Android L vs. encriptación de iOS 8

14

Recientemente, el nuevo sistema de cifrado de disco completo del sistema operativo iOS 8 de Apple ha sido en las noticias . Y poco después del lanzamiento de Apple, Google anunció que también habilitarán el cifrado de forma predeterminada en la próxima versión de su sistema operativo Android.

Mi pregunta es: desde la perspectiva de la seguridad, ¿son los dos sistemas similares o diferentes (suponiendo que utilice la misma contraseña o código PIN)? Precisamente, ¿cómo funciona el cifrado de Android bajo el capó?

En términos más concretos: si utilizo una contraseña aleatoria de 8 letras minúsculas, que supuestamente toma aprox. 265 años para la fuerza bruta en el caso de los dispositivos iOS, ¿qué tan seguro estoy con una configuración similar en un teléfono Android?

Para obtener información sobre el enfoque que Apple tomó con iOS 8, consulte este documento . Si entendí esto correctamente, el punto clave parece ser que hay una pieza especial de hardware a prueba de manipulaciones que contiene un identificador secreto específico del dispositivo. Supuestamente, la única forma de recuperar la clave de cifrado es alimentar su código pin a esta pieza de hardware, esperar 80 ms y ver qué sale. Para forzar esto, tendrá que seguir ingresando códigos PIN a esta pieza única de hardware (y cada intento toma 80 ms, y no puede paralizar esto, ya que solo hay un chip de este tipo en el mundo), o lo hará. También debe forzar el identificador (que es muy largo).

¿Cómo se compara esto con lo que Google (y los fabricantes de teléfonos Android) están haciendo con los teléfonos Android?

    
pregunta Jukka Suomela 27.09.2014 - 18:49
fuente

2 respuestas

6

Actualmente, el cifrado del dispositivo de Android usa dm-crypt y, de hecho, parece ser susceptible a la tipo de ataque de fuerza bruta que mencionas, porque el PIN / contraseña se usa más o menos directamente para derivar la clave que descifra la clave AES almacenada en el encabezado del volumen.

Para protegerse contra tales ataques de fuerza bruta, la contraseña debe ser de entropía suficientemente alta (como en los sistemas de cifrado de escritorio). Desafortunadamente, Android no permite establecer una contraseña diferente para el descifrado de disco y el bloqueo de pantalla. Sin embargo, esto es solo una limitación de la interfaz de usuario: es fácilmente para use una contraseña segura para el descifrado del disco de arranque, pero esto requiere acceso de root.

Sin embargo, todo esto podría cambiar con Android L: no se conoce públicamente en este momento, pero hay sugerencias ese Android se moverá a un esquema que usa una parte de hardware "confiable", como lo hace iOS.

Por cierto, la derivación de la clave de hardware de iOS que usted describe parece haber sido reemplazada por otra cosa para dispositivos que utilizan un SoC A7 (o más reciente). Parece que Apple realiza (y limita la velocidad) la verificación del PIN / contraseña dentro del Enclave seguro, lo que en teoría sería aún más seguro. Desde el documento al que hace referencia:

  

En un dispositivo con un procesador A7 o posterior de la serie A, se realizan las operaciones clave   por el Enclave seguro, que también impone un retraso de 5 segundos entre fallos repetidos   desbloqueo de solicitudes. Esto proporciona un gobernador contra los ataques de fuerza bruta además de   salvaguardias impuestas por iOS.

Tendrá que esperar a que se lance el código completo de Android L para estar seguro (e incluso entonces, esto podría ser algo que los fabricantes de dispositivos deberán implementar), pero hasta ahora, algunos dispositivos Android ya es compatible con almacenes de claves de hardware para claves asimétricas ; Este mecanismo parece estar basado en el entorno de ejecución TrustZone ARMs , y podría teóricamente se extenderá a las claves de cifrado del dispositivo, similar al concepto Secure Enclave de Apple.

    
respondido por el lxgr 28.09.2014 - 13:55
fuente
0

Las diferentes arquitecturas de cifrado entre Android (cifrado a nivel de bloque) e iOS (cifrado a nivel de archivo) crean diferentes comportamientos cuando se elimina un archivo:

  • Con el cifrado a nivel de bloque, cuando se elimina un archivo, el sistema de archivos desvincula los bloques del sistema de archivos pero no destruye los datos. Como la mayoría de los dispositivos Android utilizan NAND Flash, que contiene "nivelación de desgaste", en general es imposible sobrescribir datos específicos, por lo que los archivos confidenciales se pueden eliminar.
  • Con el cifrado a nivel de archivo, la clave por archivo se destruye cuando el inodo se desvincula, lo que hace que los datos ahora sin referencia se destruyan de manera efectiva y, por lo tanto, no se pueda eliminar.
respondido por el ve6yeq 15.12.2014 - 05:27
fuente

Lea otras preguntas en las etiquetas