seguridad del código de acceso del iPhone

2

Con iOS 11 me vi obligado a cambiar de la verificación de dos pasos a la autenticación de dos factores. Esto tiene la implicación de que en algún lugar de Apple hay una caja negra que puede decidir, usando mis credenciales de AppleID (?), Si un código de acceso dado coincide con el código de acceso real del iPhone.

Cuando quise comprobar cuántos intentos de fuerza bruta me he encontrado con la característica de conveniencia que permite intentos de fuerza bruta ilimitados con el mismo código de acceso.

Teniendo esto en cuenta, tengo dos preguntas:

  • Le pregunté al soporte de Apple si esto debilita la seguridad de mi código de acceso. Ellos dicen que no. ¿Cómo puede ser esto posible si la fuerza bruta fuera del dispositivo es posible?

  • El hecho de que ingresar el código de acceso dos veces no incremente el El contador me hace preguntarme cómo se activa el contador. Si el código de acceso el intento se verifica primero con la contraseña real y luego se verifica contra el último intento, ¿no habría un retraso entre cuando el El código de acceso se verifica y el contador se incrementa durante el cual el ¿El teléfono podría fallar? Esto no permitiría potencialmente una fuerza bruta ataque, o me estoy perdiendo algo?

pregunta user60589 06.03.2018 - 11:43
fuente

3 respuestas

1

Resumen y conceptos básicos

En primer lugar, veamos brevemente cómo prevenir los intentos de fuerza bruta.

Un ataque de fuerza bruta es uno en el que alguien prueba muchas contraseñas diferentes (potencialmente secuenciales) hasta que ingresan al sistema.

Teniendo esto en cuenta, solo hay una forma de prevenir los ataques de fuerza bruta: reducir la velocidad con la que se pueden hacer los intentos.

Ejemplo

Si todas las contraseñas eran 8 caracteres alfa, hay combinaciones de contraseña 26^8 ≈ 208 billion . Si un algoritmo de fuerza bruta se restringiera a un intento cada segundo, tomará aproximadamente 26^8 / (60*60*24*365.2425) ≈ 6617 años, por lo que esta sería una manera fácil de prevenir los intentos de fuerza bruta sin interrumpir la experiencia del usuario.

La mayoría de los sistemas (probablemente incluyendo iOS) tienen más probabilidades de tener un sistema de aceleración incremental, algo como:

  • la velocidad máxima normal es de 1 por segundo (lo que es rápido para una persona, muy lento para un robot)
  • después de 10 intentos incorrectos, esto se reduce a 1 por 10 segundos
  • etc.
  • después de un inicio de sesión exitoso o una cantidad de tiempo especificada, la tasa se restablece.

Advertencia

Este tipo de sistema de aceleración incremental puede penalizar masivamente a las personas con contraseñas largas y / o la disposición a escribir incorrectamente su contraseña.

Si una persona escribe incorrectamente su contraseña de la misma manera incorrecta, ¿cuántas contraseñas realmente han intentado? Solo 1, entonces ¿por qué los estrangularía más que eso?

Como tal, un sistema de regulación decente también almacenaría un hash de la contraseña intentada, y solo rastrearía el número de contraseñas únicas intentadas.

Nota al margen

Esta podría ser una forma interesante (aunque no confiable) de determinar si es un usuario que intenta iniciar sesión o un robot: un robot que intente la fuerza bruta sería mucho más rápido (increíblemente) y nunca tendría que intentar lo mismo contraseña dos veces.

Resumen (y respuesta a la pregunta de operaciones)

Has intentado la misma contraseña varias veces, por lo que es posible que no actives nada ya que no hay un intento de fuerza bruta.

Incluso si intentas contraseñas diferentes, es poco probable que puedas ingresarlas lo suficientemente rápido como para activar cualquier cosa que evite los ataques de fuerza bruta: no eres tan rápido como un robot.

    
respondido por el SEoF 06.03.2018 - 17:11
fuente
1
  

Esto tiene la implicación de que en algún lugar de Apple hay una caja negra que puede decidir, usando mis credenciales de AppleID (?), si un código de acceso dado coincide con el código de acceso real del iPhone.

HT202303 dice:

  

Sus datos están protegidos con una clave derivada de la información exclusiva de su dispositivo, combinada con el código de acceso de su dispositivo, que solo usted conoce.

Usted tiene razón al decir que si Apple guarda los datos encriptados con una clave derivada de la "información exclusiva de su dispositivo" (que supongo que saben) combinada con su código de acceso, podrían intentar forzar el código de acceso mediante un intento de descifrado al intentar descifrarlos. llave. Esta es una compensación, ya que una copia de seguridad que no se podría descifrar sin el teléfono original sería de uso limitado. Esto sería más aceptable si pudiera usar una contraseña separada (más fuerte) para la copia de seguridad, pero no he podido averiguar si esto es posible. Si no te gusta esto, creo que puedes desactivar las copias de seguridad.

  

El hecho de que ingresar el código de acceso dos veces no incremente el contador hace que me pregunte cómo se activa el contador. Si el intento del código de acceso se verifica primero con la contraseña real y luego el último intento, ¿no habría una demora entre la verificación del código de acceso y el incremento del contador durante el cual el teléfono podría fallar? ¿Esto no permitiría potencialmente un ataque de fuerza bruta, o me estoy perdiendo algo?

No sé cómo lo ha implementado Apple, pero una manera fácil es almacenar el intento $previous y verificarlo antes de verificar el código de acceso $correct . Si coincide con $previous , solo muestra el error. Si no lo hace, incremente el contador, guárdelo como $previous , luego compárelo con $correct . De esta manera, el contador siempre se incrementa antes de la comprobación.

    
respondido por el AndrolGenhald 06.03.2018 - 17:43
fuente
-1

@ user60589 El iPhone almacena la contraseña "1" tiempo. La próxima vez que ingrese la contraseña, comparará la contraseña ingresada con la contraseña ingresada anteriormente (si corresponde). Si la contraseña ingresada es la misma, no incrementa el contador de intentos incorrectos. Ahora, si la contraseña ingresada es diferente a la ingresada anteriormente, aumenta el contador de la entrada de contraseña incorrecta a "1". Si ingresa la contraseña correcta después de eso, el iPhone restablece el contador a "0" y se desbloquea. Si ingresa la contraseña incorrecta continuamente "5 veces", el iPhone no le permite ingresar la contraseña por 1 minuto. El intento incorrecto por sexta vez lo deshabilita a 10 min. Luego 1 hora y así sucesivamente.

No tiene el impacto de seguridad en el iPhone, ya que almacenar una contraseña incorrecta no afecta a nada. De hecho, impide que los usuarios pierdan sus datos porque si repiten la contraseña, pueden pensar que es la correcta. Ahora, si alguien trata de fuerza bruta, se desactiva. ¿No es eso "INTELIGENTE"? :)

    
respondido por el Haseeb Ahmed 06.03.2018 - 15:33
fuente

Lea otras preguntas en las etiquetas