Алгоритм проверки клиента?

Вот что я пытаюсь сделать.

У меня есть игра и исполняемый файл сервера. Клиенты подключаются к серверу для воспроизведения.

У меня сейчас проблема в том, что кто-то может использовать telnet или что-то другое для симуляции клиента.

В настоящее время пользователь отправляет просто строку приветствия только после того, как он подключен, и если это правильно, я принимаю данные от них.

Я пытался использовать сертификаты / SSL без успеха, поэтому я пытаюсь найти эффективный способ узнать, действительно ли игровой клиент является клиентом.

Проще говоря, что будет эффективным способом проверки клиента?

Я не беспокоюсь о человеке в середине атаки, так как пользователи не входят в систему и не предоставляют пароли, просто имя сеанса.

Я подумал о возможности отправки сервером случайной строки фиксированной длины, затем клиент изменяет эту строку с помощью алгоритма, а затем отправляет ее обратно.

Мне интересно, есть ли лучшие, более умные способы, чем это.

У меня действительно есть сертификат для моего сервера, это pfx, если это помогает.

Спасибо

0

Решение

Это сложная проблема. Конечно, нет программного обеспечения, которое вы можете написать, которое могло бы работать на чужой машине, которое могло бы доказать, что программа, которую вы написали, не изменена.

Тем не менее, есть несколько простых мер реагирования на вызовы, которые вы можете сделать, чтобы улучшить ситуацию.

Предположим, что ваш клиент и ваш сервер делятся секретом (вы пишете его, так что они могут, хотя и являются программным обеспечением, это не будет очень секретным). Также предположим, что у вас есть удобная библиотека шифрования или хеширования (для таких вещей, как хэш SHA-1). Затем :

  • Запрос на отправку с сервера, включая одноразовый номер (например, время + случайное число).
  • Клиент отправляет ответ, который включает безопасный хеш (nonce + secret)
  • Сервер знает одноразовый номер и секрет, поэтому он может проверить, что полученный хеш-код верен, и, таким образом, может подтвердить, что «клиент» также знает секрет.

Это базовая симметричная схема проверки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]