Esta es una nueva publicación, ya que accidentalmente he publicado en stackoverflow primero
Me preguntaba cómo podría lograr un alto nivel de seguridad, usando la autenticación cliente-servidor. A continuación se muestra un borrador de lo que pensé:
Déjameexplicarlounpocomás:
- ElejecutabledeC++seestáejecutandoenunaconsoladejuegosquetieneunIDúnicoqueelusuarioutilizapararegistrarseenmisitioweb
- Cuandoseinicieelejecutable,obtendráelhashdemódulo/archivoactualdelejecutableylaIDúnica("Clave" en el boceto) y realizará una solicitud web a mi sitio web (ejemplo en azul en el boceto)
- El auth.php en mi sitio web luego verificará si el hash del archivo es el mismo que el archivo que se entregó (detectando si el archivo fue modificado). También comprobará si la "Clave" está conectada a un usuario
- Luego, enviará información individual de ese usuario y también algunos datos / desplazamientos necesarios para que el ejecutable se ejecute correctamente más tarde (Esto evitaría que el atacante teóricamente solo interrumpa la conexión a Internet, por lo que tiene que hacer una llamada a mi sitio web para obtener los datos necesarios para ejecutar el ejecutable correctamente)
Me sonó bien al principio, pero luego noté algunas fallas:
- Aunque estoy confundiendo y cifrando el archivo, un pirata informático aún podrá desarmarlo. Eso significa que podría sacar mi cheque si la clave está falsificada y simplemente enviar la clave de un usuario registrado (también puede editar el hash que se envía para evitar el chequeo completo si se modificó el archivo, lo que lo hace un poco redundante)
- También puede leer los datos que se envían después de una autenticación exitosa y luego interrumpir la conexión a Internet, por lo que ya no hay llamadas a mi sitio web e insertar los datos que ingresó en el ejecutable para que funcione.
No importa la seguridad en el ejecutable, un hacker siempre podrá desmontarlo / descompilarlo en algún momento. Por eso creo que la autenticación cliente-servidor debe ser para que, incluso si el cliente es secuestrado, no podrá autenticarse. Realmente no sé si eso es posible o si es solo el enfoque equivocado.
Realmente apreciaría si pudieras dejar algunos pensamientos o ideas abajo. Gracias por su tiempo y que tenga un buen día :)