Защита UDP-соединения

Для личного игрового проекта MMO я реализую надежный доморощенный протокол на основе UDP в Java. Учитывая мою текущую настройку, я полагаю, что для снупера было бы относительно просто захватить сессию, поэтому, чтобы предотвратить это, я пользуюсь возможностью изучить небольшую криптологию. Это очень интересно.

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

Учитывая, что я только пытаюсь аутентифицировать пакет и не скрываю всю полезную нагрузку, у меня есть идея, что я могу поместить 8-байтовый идентификатор сеанса, сгенерированный из секретного ключа, в заголовок пакета, зашифровать весь пакет и вернуть его обратно. до 8 байтов. Я беру незашифрованный пакет и помещаю 8-байтовый хэш вместо идентификатора сеанса, а затем отправляю его.

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

Ответы на вопрос(1)

Ваш ответ на вопрос