El documento iOS Security describe varios mecanismos de seguridad implementados en iOS 9. Estoy especialmente interesado en el Seguridad real de un PIN de 4 dígitos en iOS. Estoy buscando información tangible específica para iOS.
El documento de arriba indica en la página 10:
(...) por lo que los intentos de fuerza bruta deben realizarse en el dispositivo bajo ataque. Se utiliza una gran cantidad de iteraciones para hacer cada intento más lento. El recuento de iteraciones se calibra para que un intento tome aproximadamente 80 milisegundos. Esto significa que tomaría más de 5½ años para probar todas las combinaciones de un código de acceso alfanumérico de seis caracteres con letras minúsculas y números.
(...)
Para desalentar aún más los ataques de código de acceso de fuerza bruta, hay la escalada de los retrasos de tiempo después de la entrada de un código de acceso no válido en el Bloquear pantalla.
Con esto en mente y poniendo a un lado posibles vulnerabilidades , ¿qué tan seguro es un PIN de 4 dígitos en iOS 9? Específicamente con el supuesto de que:
- el ataque solo es posible a través del chip de cifrado (descrito en el documento)
- ... lo que hace cumplir las restricciones y retrasos
¿Es un PIN un mecanismo lo suficientemente seguro como para soportar dos años de ataques (con el conocimiento que tenemos hoy)? (*)
La parte de ingeniería social y la naturaleza humana sugieren que se deben evitar algunas combinaciones ( 0000
, 1234
, 1111
, 2222
, ..., 9999
, 4321
, algunas visuales como una cruz o una caja hecha de los dígitos, etc.). Ya pasamos los 10 intentos y el dispositivo está en ese punto acelerado o borrado.
(*) dos años es un ejemplo, los datos recuperados después de este tiempo pueden ya no son tan sensibles. Soy consciente de que uno puede encontrar en el futuro una vulnerabilidad o una falla en la arquitectura que rompe todo en iOS, por eso me interesan las capacidades técnicas actuales.