Tim Cook publica esta semana una carta sobre la privacidad de los usuarios frente al FBI. Me llama la atención este párrafo:

Se puede hacer, pero como es muy peligroso, no lo quiero hacer.

Hay dos formas de implementar la seguridad informática:

  1. Seguridad condicional.
  2. Seguridad criptográfica.

La seguridad condicional consiste en que el software decide si permite al usuario hacer una cosa o no. Imaginemos un sistema de acceso basado en password:

if password=="1234"
 then MainProgram()

Si -como atacante- tienes acceso a este trozo de código y puedes modificarlo, es trivial cambiar el comportamiento y ejecutar el programa principal. Realmente el programa estaba ahi todo el tiempo, ejecutarlo o no era una cuestión de querer o no querer, no de poder o no poder.

Por otro lado, la seguridad criptográfica se fundamenta en que el software necesita una clave para realizar una acción. Supongamos que tenemos el programa de arriba pero en vez de abortar condicionalmente si la clave que introduces no coincide con la buena, el programa en si está encriptado con la clave del usuario:

decryptedCode=Decrypt(MainProgramEncrypted, password)
Execute(decryptedCode)

Ahora sin la clave ya no puedes, por mucho que quieras, ejecutar el programa porque sin la clave no lo puedes ni ver.

Apple encripta los datos del usuario con su clave (técnicamente con una clave derivada del código del usuario pero eso ahora nos da igual), pero para evitar que alguien pruebe sistemáticamente todos los códigos (0000–9999 ó más) el iPhone tiene un código en propósito parecido a éste:

for i = 0 to 9 {
 code=GetUserPasscode()
 if isCodeBad(code) Delay(i*1000)
 else return
}
WipeIphone()

que introduce un retraso cada vez que el código que introduces es malo, y si pruebas 10 códigos malos, borra el iPhone.

Lo que le está pidiendo el FBI a Apple es que haga una versión especial de iOS con la que puedan probar códigos sin ese retraso y sin un límite de 1o pruebas, así pueden probar por fuerza bruta todos los códigos hasta que den con el bueno.

El hecho de que Apple encripte el contenido del iPhone y tenga estas medidas es indicativo de que se toman en serio la privacidad de los usuarios, pero el hecho de que puedan cambiar condicionalmente partes que debiliten sus propias medidas es un fallo en el sistema.

¿Podría Apple diseñar una nueva versión de iPhone en la que ni ellos mismos puedan cambiar este comportamiento? Por supuesto, el iPhone ya lleva chips criptográficos y una vez bien probado podrían introducir estas medidas de seguridad de forma irrevocable para que la respuesta hubiera sido:

Hipotética respuesta de Apple en futuras versiones.
Show your support

Clapping shows how much you appreciated Andres’s story.