Вы не найдете 100% способ сделать это.
С:
- Код работает на клиенте
- Тогда код доступен для разборки
- Тогда, какие бы меры безопасности вы ни внедрили в код, выполняемый на клиенте, злоумышленник может обойти
По сути, поскольку Карл может позвонить Алисе и притвориться Бобом, имея голос Боба и зная все, что знает Боб (дизассемблированный код), то Алиса не может проверить, действительно ли это Боб или просто очень хороший самозванец.
Если вы разрабатываете свое программное обеспечение так, чтобы оно могло работать только на определенных типах оборудования, с TPM или аналогичной технологией, то у вас может быть шанс, но только через программное обеспечение, вы не можете создать 100% решение.
Даже с решением с TPM вы все равно могли бы рискнуть, что самозванец обойдет его, сидя между ними.
Все зависит от того, какие атаки вы хотите предотвратить.