Собираюсь ответить на мой собственный вопрос!
Нет, это не лучший подход
Причина, по которой это не лучший подход, заключается в том, что даже с этим процессом мойиспользование открытого / закрытого ключа было неверным.Я не имел в виду шифрование данных между клиентом и сервером, я имел в виду создание одноразового номера с использованием некоторого типа пароля на клиенте, который совпадает с паролем на сервере.
Это означает момент, когда я отправляю учетные данныес клиента на сервер, он отправляется без шифрования на линии или в буфере на сервер.Как только эта аутентификация будет принята сервером, он хеширует пароль, сохраняет его и затем отправляет одноразовый номер обратно клиенту, который также будет без шифрования.
Имя пользователя, пароль и одноразовый номер будутбыть уязвимым для атак «Человек посередине» как со стороны, так и со стороны самого клиента.Это означает, что они могут прослушивать пакеты, захватывать передачу и взламывать пользователя или пытаться повторять, если у них есть одноразовый номер.
Решение
Мой игровой клиент не имеет SSL/ TSL / DTSL варианты.Вот почему я на самом деле разместил вопрос, но не уточнил это.Мой сервер, как обычно в Python, имеет такую возможность.Но вчера вечером я обнаружил плагин для игрового движка, который позволяет AES-шифрованию данных, записываемых в буфер, до того, как указанный буфер будет отправлен в виде пакета на сервер UDP, что означает, что я могу зашифровать передачу данных в этих пакетах.безопасным способом, который, мы надеемся, сервер сможет расшифровать с помощью действительного закрытого ключа.
Это будет хорошим вариантом, поскольку, скорее всего, это будет мой единственный вариант.Теперь, когда злоумышленник отслеживает трафик, он не сможет увидеть учетные данные или одноразовый номер.Единственная проблема после этого - взлом EXE-файла, с которым я сейчас в порядке.