LINUX.ORG.RU

tcp\ udp валидаия клиента на сервере


0

0

как сделать распознование сервиса? К примеру у меня есть свой сервис, нужно что-бы только собственный клиент стукнувшись в порт получил ответ 
от сервера. Т.е. сервер в syn+ask должен отправить опредеелнное
 значение, возможно рендомайзное, при этом "узнать" своего клиента. Но
 клиент и сервер умеют работать по tcp и udp, как сделать такую валидацию клиентов на сервере?
anonymous

Ну с TCP проблем нет, как соединение установилось, так по нему и работаешь. А вот с UDP действительно интересно... Ну генерируй заголовок для запросов уникальный для каждого клиента. А контент шифруй.

anonymous
()

В клиент встроить закртый ключ, в сервер -- открытый. При коннекте сервер отправляет клиенту зашифрованную рандомную строку, клиент должен прислать обратно саму строку. Если TCP -- то дальше проблем нет. Если UDP, то можно сделать так, чтобы с расшифрованой строкой клиент отпавлял серверу рандомный "cookie", который будет идентифицировать сессию.

Но всё равно так остаётся возможность атаки man-in-the-middle. Чтобы её предотвратить, нужно (наверное) ещё при передаче данных слой шифрования навернуть. Но тут нужно аккуратно рассмотреть все возможности.

PS. Да, разработка протоколов -- непростое дело.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.