2015-08-18 2 views
1

Идея состоит в том, что к публичному серверу подключаются две разные машины (за двумя разными NAT).Как реализовать фальсификацию источника во время сеанса TCP?

И они пытаются создать TCP-соединение с таким открытым сервером ... Тогда возможно, что магия может произойти во время потока проксирования! Измените адрес источника и dest на весь стек tcp/ip во время этого сеанса.

Цель - исключить эту третью часть в качестве прокси-сервера от дальнейшего общения ...

+0

Что вы хотите сделать, это пробивание отверстий TCP: https://en.wikipedia.org/wiki/TCP_hole_punching – Nidhoegger

ответ

3

Сначала вам нужен сервер, к которому Peer будет посылать данные или что-то за то, что знаю, что сервер необходимо отправить syn-ack к нему.

Затем сначала Peer A отправляет пакет на адрес Peer B с низким значением TTL, чтобы он был сброшен посередине и не доходил до NAT NAT. Он будет продолжать отправлять этот пакет до тех пор, пока пакет не достигнет его с помощью syn-ack, содержащего адрес источника B (исходный фальсификатор). И А будет связываться с сервером, но А будет думать, что он делает рукопожатие с Б.

Точно такая же вещь происходит с B. B будет рукопожатием с сервером, но будет думать, что это делается с A. После того, как квитирование завершение с обеих сторон передачи данных начинается с A и B как P2P-соединения.

Это источник фальсификации, так как сервер рукопожатие с обоими сверстниками притворяется одним из сверстников. Таким образом, оба одноранговых NAT открыты друг другу.

Смежные вопросы