La situación es la siguiente: un dispositivo USB está conectado a una computadora y envía datos a un software específico, que solo debería aceptar estos datos si el dispositivo de envío fue validado / autenticado por él anteriormente.
Como cualquier persona puede realizar ingeniería inversa sobre lo que está haciendo el software (con más o menos esfuerzo), el código fuente del software se considera público por ahora.
El software del dispositivo, por supuesto, tampoco es 100% seguro y puede tener ingeniería inversa, pero abrir algunos chips, etc. tomaría mucho más tiempo y esfuerzo, por lo tanto, el dispositivo (y su software) es considerado privado.
Ni la computadora ni el dispositivo están conectados a Internet.
¿Tiene alguna idea de cómo se puede realizar el proceso de autenticación sin que el software de la computadora contenga alguna parte crítica (que podría ser invertida y reconstruida, lo que lleva a una autenticación positiva de un dispositivo USB "falso" y ¿El software acepta datos falsos?
¡Gracias a todos por su ayuda!