iOS: interceptar el código de acceso antes de que llegue al enclave seguro

3

De lo que poco leí sobre el "enclave seguro" de Apple, entiendo que es un coprocesador que encripta / desencripta los datos basándose en el código de acceso del usuario.

Así que aquí está el escenario: de alguna manera tengo acceso de root al sistema operativo principal. Cuando se le solicita al usuario su código de acceso (antes de comprar una aplicación, por ejemplo), ¿qué me impide enviar el código de acceso que recibo del usuario a mi propio servidor, antes de enviarlo al coprocesador?

Mi suposición principal aquí es que el coprocesador no maneja las partes de UI y E / S del flujo de trabajo.

    
pregunta scribu 21.02.2016 - 17:46
fuente

1 respuesta

2
  

De alguna manera obtengo acceso de root

Eso es un gran si .

Si eso fuera cierto y posteriormente el dispositivo se hubiera desbloqueado al menos una vez, no me molestaría en interceptar el código de acceso, de acuerdo con la guía de seguridad de iOS :

  

Cuando se abre un archivo, sus metadatos se descifran con la clave del sistema de archivos, revelando la clave envuelta por archivo y una notación sobre qué clase lo protege. La clave por archivo se desenvuelve con la clave de clase y luego se entrega al motor AES de hardware, que desencripta el archivo a medida que se lee de la memoria flash .

Como root, presumiblemente puedo abrir cualquier archivo que me guste y leer el contenido sin cifrar.

La única limitación de esto es que no pudo aprender el código de acceso de una vez, y luego usarlo en el futuro para acceder a algunos datos que no estaban presentes originalmente. Sin embargo, tengo dudas sobre si podría modificar el software de código de acceso para interceptar los datos y enviarlos:

  

Cuando se enciende un dispositivo iOS, el procesador de la aplicación ejecuta inmediatamente el código de la memoria de solo lectura conocida como la ROM de inicio. Este código inmutable, conocido como la raíz de confianza del hardware, se establece durante la fabricación del chip y es de confianza implícita. El código de ROM de inicio contiene la clave pública de Apple Root CA, que se usa para verificar que el cargador de arranque de bajo nivel (LLB) está firmado por Apple antes de permitir que se cargue. Este es el primer paso en la cadena de confianza donde cada paso garantiza que el siguiente esté firmado por Apple. Cuando el LLB finaliza sus tareas, verifica y ejecuta el gestor de arranque de la siguiente etapa, iBoot, que a su vez verifica y ejecuta el kernel de iOS.

     

Esta cadena de inicio segura ayuda a garantizar que los niveles más bajos de software no se manipulen y permite que iOS se ejecute solo en dispositivos Apple validados.

Por lo tanto, es posible que pueda modificar el software temporalmente, pero dudo que pueda hacerlo de forma permanente porque el software del sistema se volverá a verificar el próximo inicio.

También sospecho que, como root, podría acceder a algunas de las claves derivadas que harían que el código de acceso sea un problema, como la clave del sistema de archivos:

  

La clave que cifra los metadatos de cada archivo, incluida su clave de clase.   Esto se conserva en un almacenamiento efervible para facilitar una limpieza rápida, en lugar de   que la confidencialidad .

" En lugar de confidencialidad " me suena como si pudiera leerse como root y luego usarlo para descifrar todo el sistema de archivos.

    
respondido por el thexacre 22.02.2016 - 00:05
fuente

Lea otras preguntas en las etiquetas