python baserequesthandler адрес клиента реально установлен ip? - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть вопрос к вам

Я использую сервер сокетов udp с помощью baserequesthandler на python. Я хочу защитить сервер от спуфинга - изменения адреса источника.

Является ли client_addressФактический IP-адрес установленного на сервер? Если нет, как я могу получить фактический адрес?

1 Ответ

0 голосов
/ 10 ноября 2019

Аутентифицируйте пакеты так, чтобы вы знали, что каждое сообщение в сеансе X от адреса источника Y поступает от одного и того же клиента.

Путем установления общего ключа сеанса, который затем используется вместе с порядковым номером для созданияхеш пакета, ключом которого является пара (sequence, session_key). Который затем включается в каждый пакет. Это можно сделать в обоих направлениях, защищая и клиента, и сервер.

Когда вы получаете пакет, вы используете его исходный адрес и номер сеанса для поиска сеанса, а затем вычисляете HMAC ((sequence, session_key), пакет) и проверьте, совпадает ли поле MAC в сообщении. Если оно не удаляет сообщение.

Возможно, это неправильный протокол, но он достаточно близок, чтобы продемонстрировать принцип.

...