Безопасное шифрование и проверка данных - PullRequest
0 голосов
/ 18 марта 2011

Представьте себе игру для одного игрока, которая состоит из ряда тестов. После завершения всех тестов у игрока есть возможность загрузить результаты на сервер - игрок, который получает лучшие результаты, получает большой приз. Сервер должен быть в состоянии проверить данные результата, чтобы видеть, был ли он взломан или даже спам. Любые мысли о том, как это может быть надежно реализовано?

Ответы [ 2 ]

4 голосов
/ 18 марта 2011

В принципе, вы не можете. Даже с шифрованием, запутыванием кода или чем-то еще. «Никогда не доверяй клиенту»!

Единственный способ убедиться, что никаких манипуляций не задействовано, - это иметь на сервере все биты игровой логики и предоставлять пользователю только графический интерфейс. Затем вы можете отправлять команды (нажатия клавиш, нажатия кнопок и т. Д.), Которые игрок выдает на сервер, проверять их там (даже это не так просто!), Обрабатывать всю необходимую игровую логику и отправлять обратно результат.

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

Для большинства игр все это излишне, и вы просто убедитесь, что ими трудно манипулировать.

0 голосов
/ 19 марта 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...