werryxgames / Tanks-Battle-Server

Official server for multiplayer game "Tanks Battle"
http://185.6.27.126
GNU General Public License v3.0
2 stars 0 forks source link

[Предложение] Шифрование и уменьшение размера данных #25

Closed werryxgames closed 1 year ago

werryxgames commented 2 years ago

Опишите отсутствие вашей идеи как проблему Передача данных занимает больше времени, чем могла бы + данные можно перехватить.

Лучшее решение проблемы Использовать прописанный в программе ключ (не из окружения из-за клиента), а также при первом сообщении клиента (также исправить проверку в NetworkedClient) передавать ему случайно сгенерированный ключ и хранить его для последующей расшифровки сообщений. Для шифрования/дешифрования использовать любой надёжный алгоритм. А также вместо JSON данных передавать байты (см. следующий раздел)

Байты 0000-ffff - Тип сообщения (первый аргумент в текущем JSON списке), а дальше минимальное количество байт, например статус логина/регистрации аккаунта вряд ли будут >256 состояний, поэтому можно использовать один байт

То есть ["register_fail", 2] (20) превратится например в зашифрованное \x00\x03\x02 (3)

werryxgames commented 2 years ago

Шифрование не является важным для этой игры. Если шифровать все пакеты, то сервер (и клиент) будут работать медленно, если шифровать только Reliable UDP, то понадобится различать зашифрованные пакеты от не зашифрованных (возможно потом). Будем работать над уменьшением размера данных в одном пакете

werryxgames commented 2 years ago

31

github-actions[bot] commented 2 years ago

Эта проблема была помечена как 'нет активности' из-за отсутствия активности в течении 30 дней.

github-actions[bot] commented 2 years ago

Эта проблема была закрытка из-за отсутствия активности в течении 14 дней, после того, как ошибка была помечена как 'нет активности'