¿Cómo podría un servicio basado en una cuenta confiar en una suma de comprobación proporcionada por una aplicación del lado del cliente cuyo código es de código abierto?

0

Digamos, por ejemplo, que yo era un proveedor de videojuegos digitales y que mis juegos se jugaban a través de una máquina virtual. Digamos también que el código para esta máquina virtual era de código abierto, y que esta máquina virtual fue diseñada para ejecutarse en la computadora de alguien.

Cuando lanzo esta máquina virtual, se verificará si hay actualizaciones, luego el usuario iniciará sesión y se canalizará a mi tienda en línea donde podrían comprar juegos nuevos o lanzar juegos que habían comprado. Esos binarios del juego se almacenarán en el disco duro del usuario y se incluirán en la misma máquina virtual. Los binarios de juegos, al igual que los binarios compuestos de código de bytes de Java, no son necesariamente de código abierto.

Obviamente quiero algunas condiciones para el funcionamiento de esta máquina virtual.

  • Los usuarios solo deben poder iniciar juegos asociados con sus propias cuentas.
  • Mi máquina virtual tiene anti-trampa incorporada. No quiero que los usuarios circuntenen esto.

Pensaría resolver este problema a través de una suma de comprobación informada; el binario de la VM debe coincidir con la última versión oficial antes de que el servicio acepte un inicio de sesión, pero el código de fuente abierta significa que un usuario inteligente podría modificar la función report_checksum para devolver lo que coincida con la versión oficial.

¿Cómo podría un servicio en una relación de este tipo con sus clientes autenticar a aquellos que intentaron consultarlo?

    
pregunta DeepDeadpool 02.07.2018 - 20:35
fuente

0 respuestas

Lea otras preguntas en las etiquetas