Проблема защиты игровых ресурсов
От: kvlad2015  
Дата: 06.03.14 15:57
Оценка:
Есть игра.
1. Существует ли способ защитить от изменения счётчики игровых ресурсов?
2. Необходимо деление игры на 2 части — клиентскую и серверную для защиты?
Re: Проблема защиты игровых ресурсов
От: DOOM Россия  
Дата: 07.03.14 04:11
Оценка:
Здравствуйте, kvlad2015, Вы писали:

K>Есть игра.

K>1. Существует ли способ защитить от изменения счётчики игровых ресурсов?
K>2. Необходимо деление игры на 2 части — клиентскую и серверную для защиты?
Защитить от кого?
Вообще есть стандартная криптографическая задача "казино по телефону" — когда 2 недоверенных стороны могут совместно формировать случайные числа (по-честному) или сравнивать значения, не раскрывая их и т.п.
Re[2]: Проблема защиты игровых ресурсов
От: _Artem_ Россия  
Дата: 19.03.14 03:33
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Вообще есть стандартная криптографическая задача "казино по телефону" — когда 2 недоверенных стороны могут совместно формировать случайные числа (по-честному) или сравнивать значения, не раскрывая их и т.п.

Видимо от начитивания игроками ресурсов. Аналогичная задача сейчас стоит, ибо игра оффлановая, но с рейтингами. И вот чтобы рейтинги не читили нужно что-то придумать. Точнее придумка уже есть, это проверка лога действий игрока на сервере и выкидывание из рейтинга начитивших.
Re[3]: Проблема защиты игровых ресурсов
От: DOOM Россия  
Дата: 19.03.14 06:48
Оценка:
Здравствуйте, _Artem_, Вы писали:

_A_>Видимо от начитивания игроками ресурсов. Аналогичная задача сейчас стоит, ибо игра оффлановая, но с рейтингами. И вот чтобы рейтинги не читили нужно что-то придумать. Точнее придумка уже есть, это проверка лога действий игрока на сервере и выкидывание из рейтинга начитивших.

Замечу сразу, что в общем случае твоя задача нерешаема. Это ведь проблема аналогичная фискальному регистратору — т.е. некий девайс что-то считает (касса, электросчетчик и пр.) и ты хочешь быть уверен, что показания не были модифицированы.

В компьютерном мире все немного проще, но все равно есть ограничения.
1. Ты должен обеспечить целостность клиента. Т.е. при соединении с сервером необходимо организовывать проверку ЭЦП клиента. Если была модификация — в лес.
2. Надо обеспечить защиту тех данных, от которых зависит рейтинг (сам рейтинг, журнал, подтверждающий его зароботок и пр.). Вот тут твое ограничение (с оффлайном) создает проблему — чисто теоретически владелец компьютера может получить доступ к любым данным, которые на нем хранятся. Здесь тебя спасает наличие журнала и потоковое шифрование (чтобы обеспечить сцепку отдельных записей и сильно усложнить несанкционированное изменение).

Схема примерно такая:
1. Во время сеанса связи с сервером клиент получает симметричный ключ шифрования для защиты журнала.
2. В процессе работы оффлайн производится запись журнала в оперативной памяти с шифрованием в режиме CBC (причем размер записи журнала хорошо бы сделать равной размеру блока алгоритма шифрования).
3. По окончанию работы, перед записью журнала на диск делается повторное шифрование в режиме CBC, но с обратным порядком следования блоков.

Что мы имеем?
В журнал нельзя внести никакие изменения не повредив его (ни внести запись в середине, ни дополнить записями). Единственный способ модифицировать журнал — полностью его расшифровать, дополнить, а потом опять зашифровать. От этого уже не защититься — ибо оффлайн и ключ все равно где-то хранится. Надежда только на то, что никто не захочет заморачиваться ради рейтинга в какой-то игрушке...
Re[3]: Проблема защиты игровых ресурсов
От: sergey.p. Великобритания  
Дата: 19.03.14 20:30
Оценка:
_A_>Видимо от начитивания игроками ресурсов. Аналогичная задача сейчас стоит, ибо игра оффлановая, но с рейтингами. И вот чтобы рейтинги не читили нужно что-то придумать. Точнее придумка уже есть, это проверка лога действий игрока на сервере и выкидывание из рейтинга начитивших.

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