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.