2015-07-05 3 views
0

Я искал, но не могу найти хороший ответ, который может помочь мне в моем случае. Чтобы объяснить ситуацию, я создаю игру Unity3D, в которой будет многопользовательская система.
Чтобы данные игрока были как можно более безопасными (чтобы люди не обманывали легко), я решил реализовать службу веб-API 2, которая подключается к базе данных SQL Server.
Я разработал веб-сервис таким образом, что только если запрос содержит конкретные данные, обработка запроса.
У меня возникла проблема в том, чтобы разработать решение, которое позволит мне отправлять/извлекать данные из веб-службы.
Я реализовал SHA-512, чтобы отправить пароль, чтобы пакетные снифферы не получали его в виде обычного текста, и я планирую реализовать HTTPS, но классы Unity очень усложняют его. Я думал о внедрении RijdnaelManaged как более безопасного алгоритма для учетных записей, но в Unity код легко обращается в обратном порядке.
Могла ли эта модель быть достаточно безопасной, чтобы остановить сценаристов от взлома игроков?Защита данных в ненадежных средах

+0

, если вы не реализуете механизм входа для пользователя, шифрование/https и т. д. не решит вашу проблему. Вы должны хранить критические данные на сервере (для каждого пользователя) и не доверять данным (точкам репрезентации, уровням и т. Д.), Отправленным от вашего клиента. – EZI

+0

@ EZI Система входа уже реализована. После запуска игры пользователь должен либо войти в систему, либо создать учетную запись –

+0

. Тогда вы можете отправлять * действие * пользователя только на сервер, а не * состояние * клиента. – EZI

ответ

3

HTTPS

Я реализовал SHA-512, чтобы послать пароль, анализаторы пакетов не будет получать его в виде простого текста,

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

Используйте https, а не http, чтобы получить его правильно.

Если вы действительно не можете: создать систему, в которой служба сначала выдает вызов, и когда клиент затем «подписывает» этот вызов и отправляет подпись обратно. Это еще далеко не так хорошо, как https, но это предотвратит некоторые вещи (но не, например, нападение «человек в середине»).

безопасности

Если посмотреть на анализ рисков, необходимо позаботиться, чтобы обратиться пользователей вашей игры, а также 3-й партии.

3 стороны, с хорошими паролями (удачи с этим) или надлежащей 2-факторной аутентификацией, https и т. Д., Вы можете хорошо обложить базы. Добавьте некоторую безопасность в webservices, и вы должны быть хорошим способом по пути.

Но вы также должны иметь дело с пользователями игры. И это сложнее, чем может показаться, поскольку они могут запускать вашу игру в отладчике и выяснить, как игра взаимодействует с сервером и что она отправляет, когда, какие эффекты есть и т. Д. Nw, если у вас есть игра с несколькими игроками который включает в себя виртуальные товары и/или валюту, которые могут быть получены и/или проданы. Разумные игроки попытаются сделать это легко, поэтому вам нужно как-то защититься от этого.
Проще всего это перевести логику игры на сервер и использовать клиента только для визуализации вещей, но это, очевидно, означает, что вы значительно больше используете серверные ресурсы ... Доверяя, что ваш клиент работает, немодифицирован и вы говорите с этим: вы не можете ...

+0

Итак, я полностью должен реализовать HTTPS ... «Основой» игры является единственный объект, который содержит все, этот объект отправляется сериализованным в protobuf- так что любое изменение, которое не было сделано в игре, полностью уничтожит объект. Не находящиеся в игре объекты/валюта будут полностью управляться сервером и магазином Google Play, все еще не уверены в том, как это сделать. –

+0

Помните, что SSL (https использует SSL) защищает данные только тогда, когда он находится в пути между двумя конечными точками, а не на любой конечной точке. По сути ваш сервер не может быть на 100% уверен, что он разговаривает с вашим клиентом. Вы можете преодолевать препятствия и запутывать вещи, но они могут быть легко переданы желающим атакующему. – swa66

Смежные вопросы