Как проверить подлинность файла? - PullRequest
1 голос
/ 09 июня 2010

Допустим, я пишу игровое приложение. Я хочу, чтобы уровень проигрывателя был сохранен во внешнем файле.

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

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

Есть ли способ сделать это?

Ответы [ 4 ]

2 голосов
/ 09 июня 2010

Нет, просто нет безопасного способа сделать это. Что бы ни делало ваше приложение, злоумышленник всегда может повторить.

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

0 голосов
/ 09 июня 2010

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

0 голосов
/ 09 июня 2010

Вы можете использовать алгоритмы хеширования с симметричным ключом или парами открытого / секретного ключей. Вы можете проверить MAC (код аутентификации сообщения), чтобы получить представление, эти методы обеспечат целостность и ключ аутентификации файла.

alt text

0 голосов
/ 09 июня 2010

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

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