Es fundamentalmente imposible validar que una versión no modificada de su cliente se conecta a su servidor.
... a menos que hagas lo que sea necesario para garantizarlo. Esto significa hardware resistente a la manipulación del lado del cliente.
Cuando su código se ejecuta en la computadora del cliente, el propietario de la computadora puede ejecutar un depurador y modificar el código del cliente en cualquier punto con valores arbitrarios. El "depurador" puede ser una máquina virtual en toda regla. Si desea evitar eso, puede intentar participar en un juego de búsqueda y ocultación elaborado en el que puede imaginar sistemas de detección adicionales, y los atacantes los contrarrestan con variantes de sus propias herramientas. Este es el problema de las personas que intentan diseñar soluciones de software anti-trampas (por ejemplo, PunkBuster ); Este es también el problema de las personas que desean vender servicios de video a pedido mientras evitan que los clientes guarden los videos localmente y luego los publiquen en varias plataformas para compartir archivos.
Para resumir, estas protecciones no funcionan bien, incluso cuando los datos a proteger son tan triviales como las vidas extra en algún juego.
Para evitar esto, debe hacer que su código se ejecute en hardware protegido, que se defenderá de una inspección profunda de su presunto propietario. Este es el modelo de consolas de juego, terminales de pago y tarjetas inteligentes.
Un TPM es un intento de compromiso: un módulo resistente a la manipulación indebida que funciona dentro de lo que normalmente es una PC; La suposición aquí es que a un usuario normal le resultará demasiado difícil modificar el hardware para, por ejemplo, leer y escribir toda la RAM sin pasar por las piezas que están bajo la supervisión del módulo TPM (por ejemplo, la CPU).
Sin dicho hardware en el lado del cliente, lo que está tratando de hacer no funcionará. A menos que la modificación del código del cliente sea tan inútil que nadie lo intente. Todo depende del valor de lo que está en juego aquí.