Tengo un servidor en un entorno de confianza. Este servidor maneja las solicitudes de los clientes en un entorno no confiable. Me gustaría autenticar cada solicitud y saber si el código del cliente ha sido manipulado o no.
El software del cliente se instala en un entorno seguro y si genero algún "secreto" (números nonces o pseudoaleatorios) y no lo almaceno en el cliente, se puede asumir que se guarda de forma segura.
Pensé en usar una contraseña de un solo uso modificada (OTP) con el secreto generado en el momento de la instalación. Podría incluir la sincronización de tiempo en las máquinas cliente como un requisito. La clave secreta de OTP se derivaría del hash md5 del software cliente y tal vez alguna forma de identificación de hardware en el momento de la instalación.
¿Existe una forma estándar de la industria de hacer lo que quiero? Realmente me disgusta la idea de rodar la mía, ya que apenas estoy calificado para hacerlo.