Я создаю кроссплатформенное приложение, которое будет взаимодействовать с сервером. Безопасность очень важна.
Существует ли схема, которая позволит мне «довериться» тому, что исполняемый файл является подлинным и не был подделан, и что запросы действительно исходят от моего подписанного исполняемого файла, а не от подражателя? Похоже на традиционную атаку «человек посередине». Как я могу предотвратить это?
Я понимаю, что могу подписать исполняемый файл доверенным ЦС под Windows. Это гарантирует, что исполняемый файл не был подделан на компьютере пользователя. Тем не менее, целевой вирус все еще может заменить исполняемый файл (в отличие от его изменения) имитатором, и Windows не будет жаловаться.
Может ли мой подлинный исполняемый файл подписывать запросы, которые он отправляет на сервер, и могу ли я проверять эти запросы на сервере? Наивным решением является встраивание «частного сертификата» в подписанный исполняемый файл. Однако я подозреваю, что этот частный сертификат можно извлечь даже из подписанного исполняемого файла.
Наконец, существуют ли исполняемые механизмы подписи в OSX и Linux?