¿Es razonable que el software contenga algo que el usuario no pueda manipular?

4

Quiero crear una pieza de software que contenga cierta información, el programa funciona sin conexión y quiero asegurarme de que la información no pueda ser manipulada. El programa puede crear o alterar su información en cualquier momento.

Pensé en que el programa creara y mantuviera su propio par de claves y firmara la información, ¿pero es razonable? Tengo miedo de que un usuario pueda encontrar la clave privada del programa y falsificar la información. ¿Cómo podría evitarse esto?

Gracias.

    
pregunta Enrique Alcazar 16.10.2017 - 17:54
fuente

1 respuesta

6

Desafortunadamente, las aplicaciones resistentes a la manipulación implementadas únicamente en software son imposibles.

El software que se ejecuta en la máquina del usuario está bajo el control del usuario. El usuario puede extraer cualquier clave secreta del programa, ya sea de la memoria en tiempo de ejecución o del código binario del programa. Un programa y / o los datos que utiliza no se pueden cifrar de manera efectiva, ya que para poder ejecutarse y acceder a ellos se debe descifrar, y esa clave de descifrado y el algoritmo de descifrado deben estar disponibles en forma no cifrada.

Hay ofuscadores que hacen que un programa sea más difícil de descifrar, pero solo ralentizan a un atacante determinado. No pueden parar uno completamente.

Para hacer una computación confiable necesitas un hardware confiable. Existen soluciones de hardware disponibles para algunos casos de uso, como dispositivos USB que pueden contener claves criptográficas que no se exponen al dispositivo host y que pueden realizar operaciones criptográficas de forma de caja negra. Estos dispositivos generalmente son bastante resistentes a la manipulación del software, pero aún pueden ser susceptibles a la manipulación del hardware físico.

Además, cualquier información que reciban o envíen al sistema host puede ser interceptada. Cuando desee que los datos permanezcan en secreto, no debe abandonar el dispositivo de confianza.

Desafortunadamente, no está escribiendo lo suficiente sobre su caso de uso exacto para hacer una conjetura si esa sería una opción en su situación y en qué inconvenientes podría meterse.

    
respondido por el Philipp 16.10.2017 - 18:21
fuente