¿Es posible hacer que un ordenador sea inhackeable?

Teóricamente, sí, para una definición estrecha de «hackeable». Existe una rama de la seguridad informática llamada verificación formal. En la verificación formal, se definen ciertas propiedades de seguridad, como «los sitios web no pueden leer datos privados de otros sitios web en diferentes pestañas», y luego se demuestra matemáticamente que un programa no puede violarlas. Investigadores de la UC San Diego hicieron exactamente esto[1].

Pero en realidad, no. Hay tres problemas prácticos que impiden que los ordenadores reales sean nunca inhackeables. El primero son los fallos como Meltdown y Spectre[2]. La verificación formal asume que el hardware subyacente se comporta de una manera determinada, lo cual, resulta que no es así. Incluso si se pudiera verificar formalmente también la lógica del hardware, nunca se podría evitar totalmente la manipulación o interferencia física. (Por ejemplo, alguien podría conectar un keylogger de hardware a su teclado.)

En segundo lugar, el software real como Google Chrome es demasiado complejo para verificar, y siempre lo seguirá siendo. La razón es que los clientes prefieren los navegadores que pueden mostrar sitios web reales como Quora en lugar de aquellos con seguridad de grado militar que sólo muestran texto plano. Las empresas de software no tienen un incentivo para sacrificar la funcionalidad por la seguridad más allá de lo necesario para protegerse contra la mayoría de los hackers.

Por último, es imposible hacer que un ordenador sea inhackeable porque es imposible definir realmente «inhackeable». La verificación formal requiere una descripción precisa de las propiedades de seguridad que se quieren verificar. Incluso si se puede impedir que un sitio web lea datos en otra pestaña y llamarlo «inhackeable», no se puede anticipar el infinito ingenio de los hackers y evitar que digan cosas como «¡Su ordenador ha sido hackeado! Llame y dénos su número de tarjeta de crédito».

Notas al pie

[1] Establecimiento de garantías de seguridad en los navegadores mediante la verificación formal de shim[2] Meltdown y Spectre