Если у публики будет доступ к копиям этого настольного приложения, любой хороший реверсер сможет взломать его и «имитировать» свои транзакции с сервером. Не имеет значения, насколько безопасна ваша криптография, все, что требуется приложению для шифрования / дешифрования данных, включено в двоичные файлы, поэтому взломщику нужно только извлечь его из него.
Задача криптографии - защитить данные во время их передачи от хакеров "среднего звена", но если у вас есть доступ к любому из пиров, вы можете легко взломать его.
Ваш сервер никогда не должен доверять тому, что исходит со стороны клиента.
[редактировать резюме]
Несмотря на то, что вы не можете на 100% гарантировать, что предполагаемый клиент для вашего сервера является или не является вашим Приложением или каким-либо «эмулятором», созданным сторонними разработчиками, вы можете усложнить им задачу. Обычная практика в игровых античитах - иногда случайным образом превращать клиентское приложение в хитрый вопрос типа «какой хеш вашего main.exe из смещения A в смещение B?» или «с этого момента свопы типа 0x07 с типом пакета 0x5f». Как только подделка обнаружена, сервер входит в «глупый режим», действует неправильно и в течение нескольких часов помещает в черный список свои IP / учетные записи, чтобы они не могли быть уверены в том, что их программа делает неправильно.
Если вы обнаружите, что кто-то создает эмулятор, заставьте его начать все сначала: перемешайте таблицы типов пакетов, таблицы криптографии, измените некоторые форматы пакетов и заставьте своих клиентов обновляться. Вы не увидите взломщиков, беспокоящих вас некоторое время ... LOL