¿Cómo se obtiene la clave maestra de KeyChain de iOS?

2

No soy un experto, pero asumo que en OSX se deriva de la contraseña de la cuenta de usuario. Estoy más que abierto a la posibilidad de que eso sea incorrecto.

En iOS no hay una contraseña de cuenta de usuario, solo un PIN. Las contraseñas y los PIN son opcionales, pero ¿se usan para generar la llave de llavero? Si no, ¿la clave se almacena en algún lugar del dispositivo?

Le pido disculpas si no he entendido bien cómo podría funcionar esto.

    
pregunta Matthew 30.10.2013 - 18:58
fuente

1 respuesta

4

Consulte estas diapositivas para obtener una introducción sobre la protección de datos en iPhones (Presumiblemente, los iPads son similares). En el núcleo del sistema, hay una clave específica del dispositivo llamada clave UID ; se almacena en la propia CPU y cada CPU tiene la suya propia. De esa clave se derivan otras claves, incluida la que se usa para KeyChain; El código de acceso del usuario también se utiliza en la derivación de clave. Se supone que la CPU es a prueba de manipulaciones, lo que significa que no debería poder extraer la clave UID de ella. Si accede directamente al hardware, puede hacer que la CPU use la clave UID, pero cualquier ataque de fuerza bruta en el código de acceso tendrá que pasar por la CPU real.

Para resumir, es posible atravesar el KeyChain de un iPhone, pero a costa de una búsqueda exhaustiva en el código PIN que debe utilizar la CPU real del iPhone (por lo que no es offline ). Por supuesto, estamos más interesados en la resistencia de KeyChain precisamente si el iPhone fue robado, en cuyo caso el atacante tiene acceso al hardware.

    
respondido por el Tom Leek 30.10.2013 - 19:11
fuente

Lea otras preguntas en las etiquetas