Вот что я пытаюсь сделать.
У меня есть игра и исполняемый файл сервера. Клиенты подключаются к серверу для воспроизведения.
У меня сейчас проблема в том, что кто-то может использовать telnet или что-то другое для симуляции клиента.
В настоящее время пользователь отправляет просто строку приветствия только после того, как он подключен, и если это правильно, я принимаю данные от них.
Я пытался использовать сертификаты / SSL без успеха, поэтому я пытаюсь найти эффективный способ узнать, действительно ли игровой клиент является клиентом.
Проще говоря, что будет эффективным способом проверки клиента?
Я не беспокоюсь о человеке в середине атаки, так как пользователи не входят в систему и не предоставляют пароли, просто имя сеанса.
Я подумал о возможности отправки сервером случайной строки фиксированной длины, затем клиент изменяет эту строку с помощью алгоритма, а затем отправляет ее обратно.
Мне интересно, есть ли лучшие, более умные способы, чем это.
У меня действительно есть сертификат для моего сервера, это pfx, если это помогает.
Спасибо
Это сложная проблема. Конечно, нет программного обеспечения, которое вы можете написать, которое могло бы работать на чужой машине, которое могло бы доказать, что программа, которую вы написали, не изменена.
Тем не менее, есть несколько простых мер реагирования на вызовы, которые вы можете сделать, чтобы улучшить ситуацию.
Предположим, что ваш клиент и ваш сервер делятся секретом (вы пишете его, так что они могут, хотя и являются программным обеспечением, это не будет очень секретным). Также предположим, что у вас есть удобная библиотека шифрования или хеширования (для таких вещей, как хэш SHA-1). Затем :
Это базовая симметричная схема проверки.
Других решений пока нет …