Аутентифицируйте пакеты так, чтобы вы знали, что каждое сообщение в сеансе X от адреса источника Y поступает от одного и того же клиента.
Путем установления общего ключа сеанса, который затем используется вместе с порядковым номером для созданияхеш пакета, ключом которого является пара (sequence, session_key). Который затем включается в каждый пакет. Это можно сделать в обоих направлениях, защищая и клиента, и сервер.
Когда вы получаете пакет, вы используете его исходный адрес и номер сеанса для поиска сеанса, а затем вычисляете HMAC ((sequence, session_key), пакет) и проверьте, совпадает ли поле MAC в сообщении. Если оно не удаляет сообщение.
Возможно, это неправильный протокол, но он достаточно близок, чтобы продемонстрировать принцип.