No sé hasta qué punto puedo explicar esto en “términos simples”, y voy a tener que introducir algunos términos especializados. Como voy a tener que explicar ciertos conceptos y términos a lo largo del camino, esto no va a ser corto.
Algunos términos especializados
El concepto más importante derivación clave . La derivación clave (tomada en términos generales) es cómo obtenemos de su código de acceso para descifrar los datos en el teléfono. El proceso de derivación clave es donde se encuentran las respuestas a su pregunta. Implica múltiples conceptos también.
Sus datos están encriptados con una clave aleatoria. Esa clave aleatoria es un número aleatorio de 256 bits (aproximadamente 74 dígitos) que se selecciona la primera vez que configura su teléfono. La clave que cifra sus datos se cifra con lo que se denomina clave de cifrado de clave . [1] Y la clave de cifrado de clave se deriva de su código de acceso.
- ¿Cuál es la tecnología que garantiza que la luz de una cámara web se encienda cuando se usa la cámara?
- ¿Qué tan difícil es descifrar un documento (Openoffice / LibreOffice / MSOffice) que está protegido con contraseña?
- ¿Cómo se puede estar seguro de que un correo electrónico recibido se envía de hecho desde el remitente citado en el encabezado del correo electrónico?
- ¿Debo abandonar mi curso de seguridad cibernética?
- ¿Cómo se procesa a los ciberdelincuentes?
Donde entra la “indescifrable”
Lo que he descrito anteriormente es bastante estándar. Casi cualquier sistema criptográfico bien diseñado que necesita encriptar muchos datos para los cuales las partes cambian regularmente usa una estructura similar a la que se hizo anteriormente. Pero lo que ahora necesitamos ver es qué hace Apple que es especial.
Llaves enredadas
Pasar de su código de acceso a la clave de cifrado implica lo que Apple llama “enredar” el código de acceso con una clave especial que está integrada en el hardware de su dispositivo. [2] Esa clave de dispositivo es única para cada dispositivo, nunca se graba en ningún lado. Apple no mantiene un registro de ello. Apple llama a eso horneado en clave el “UID”, por lo que seguiré su terminología en lo que sigue. Aquí está lo que dicen al respecto.
Este UID también está integrado en el hardware de manera que no se puede recuperar, solo se puede usar. Esto significa que incluso un dispositivo totalmente roto no podría tener un software que recupere ese secreto.
Espero que mi descripción anterior haga que su documento sea más legible:
La ID única (UID) del dispositivo y una ID de grupo de dispositivos (GID) son claves AES de 256 bits fusionadas (UID) o compiladas (GID) en el procesador de la aplicación y Secure Enclave durante la fabricación. Ningún software o firmware puede leerlos directamente; solo pueden ver los resultados de las operaciones de cifrado o descifrado realizadas por motores AES dedicados implementados en silicio utilizando el UID o GID como clave. [De: https://www.apple.com/business/d… página 9]
Limitar el acceso interno
Normalmente, cuando tienes el control total de un sistema operativo, puedes ejecutar lo que quieras. Pero Apple ha agregado una capa adicional, llamada “enclave seguro” que controla el acceso incluso al uso de la clave secreta incrustada. El enclave seguro solo permitirá un conjunto muy limitado de operaciones en el material que contiene, incluso desde el sistema operativo central mismo.
Lo más importante es que realmente limita la cantidad de veces que el sistema operativo puede probar un código de acceso. Creo que se limita a diez intentos antes de comenzar a requerir que los intentos tengan que esperar algunos segundos (o minutos) antes de volver a intentarlo. (Tenga en cuenta que también es el enclave seguro que limita el número de intentos fallidos de huellas digitales).
Todo esto lo hace el enclave seguro en sí mismo, por lo que incluso un sistema operativo completamente pirateado no podría superar ese requisito.
Nuevamente, ahora la documentación de Apple puede ser más legible para la persona común:
Además, el UID y el GID del Secure Enclave solo pueden ser utilizados por el motor AES dedicado al Secure Enclave. Los UID son exclusivos de cada dispositivo y Apple ni ninguno de sus proveedores los registra. […] La integración de estas claves en el silicio ayuda a evitar que sean manipuladas o anuladas, o que se acceda fuera del motor AES. [ibid, página 9]
Procesamiento lento de contraseña
Si de alguna manera alguien descubrió una manera (con un hardware muy sofisticado) para sortear los controles del enclave seguro, hay otro límite en la frecuencia con la que se puede probar un código de acceso. La matemática del proceso de derivación clave requiere muchos cálculos; Para ejecutar los cálculos en la derivación de clave del código de acceso, se tarda aproximadamente 1/12 de segundo en cada dispositivo. [3] Y debido a que ese proceso implica enredos con el UID (integrado en el hardware), solo se puede probar en el dispositivo en sí.
Entonces, tal vez esa explicación hará que esto sea más legible:
El código de acceso está enredado con el UID del dispositivo, por lo que se deben realizar intentos de fuerza bruta en el dispositivo bajo ataque. Se utiliza un gran recuento de iteraciones para que cada intento sea más lento. El recuento de iteraciones se calibra para que un intento tome aproximadamente 80 milisegundos. Esto significa que llevaría más de 5 años y medio probar todas las combinaciones de un código de acceso alfanumérico de seis caracteres con letras minúsculas y números. [ibid, página 11]
Sin embargo, la mayoría de las personas se queda con simples dígitos para su contraseña, así que vea la nota [3]
Notas:
[1]: En realidad estoy simplificando aquí. Apple usa cadenas de lo que llaman “llaveros” que están encriptados con otras claves.
[2]: Apple describe cómo funciona este enredo, pero está mucho más allá del lenguaje “laico”.
[3]: Si le preocupa que la NSA (o alguien) pueda atravesar el enclave seguro (dudoso en mi opinión en este momento), establezca un código de acceso de al menos 8 dígitos. iOS 9 moverá el valor predeterminado de 4 a 6, pero con 8 tendrá protección a través del “procesamiento de código de acceso lento” incluso si todos los demás mecanismos de seguridad, incluido el enclave seguro, de alguna manera están rotos.
A 8o milisegundos por conjetura, un atacante tardaría aproximadamente medio día en encontrar un código de acceso de 6 dígitos o un par de meses para obtener uno de 8 dígitos. Nuevamente, el atacante debe estar en plena posesión del dispositivo durante este tiempo y de alguna manera debe haber evitado el enclave seguro. Tenga en cuenta que moverse por el enclave seguro es mucho más que simplemente romper la cárcel.