Безопасная отправка данных в C++?

Может ли кто-нибудь дать мне руководство по моей проблеме - я пишу игру (CryEngine), и мне нужно знать, как отправлять данные, включая имена пользователей и пароли, на сервер, где они могут храниться в базе данных и показываться на веб-странице, отображающей "статистика" игроков. Я хотел бы начать с имен пользователей и паролей, поскольку они являются наиболее важными, которые я получаю, другие вещи действительно не должны быть зашифрованы. Хотя хакерам может быть немного сложнее изменить свою статистику.

Так как же мне подойти к этому? Я знаю, как обходиться с C++, и какое-то время уже использовал его, я уже создал систему, которая хранит и фиксирует убийства игрока, XP и т. Д., Но это немного сложнее. Похоже, что я собираюсь интенсивно использовать BOOST и, возможно, OpenSSL, но, никогда раньше не использовав эти библиотеки и не создавая безопасную систему, я немного запутался. Любая помощь или общие указания с благодарностью!

2 ответа

Open SSL звучит солидно, посмотрите здесь: http://www.ibm.com/developerworks/linux/library/l-openssl/index.html.

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

PS: не делайте это вживую (например, каждый выстрел в голову является записью), но передавайте окончательные результаты раунда или один раз каждые X минут.

Я предлагаю использовать HTTPS.

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

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

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

Другие вопросы по тегам