telemt/docs/middle-end/KDF-internals/MIDDLE-END-KDF.ru.md

1.5 KiB
Raw Blame History

Middle-End Proxy

KDF Addressing — FAQ по реализации

Требует ли C-референсная реализация KDF внешний IP и порт?

Да

В C-референсе в KDF участвуют и IP-адрес, и портс обеих сторон соединения.

В aes_create_keys() в строку KDF входят:

  • server_ip + client_port
  • client_ip + server_port
  • далее secret / nonces

Для IPv6:

  • IPv4-поля заполняются нулями
  • добавляются IPv6-адреса

Однако порты client_port и server_port всё равно участвуют в KDF.

Если внешний IP или порт (например, из-за NAT, SOCKS или прокси) не совпадает с ожидаемым другой стороной — ключи расходятся и handshake ломается.


Можно ли исключить порт из KDF (например, установив порт = 0)?

Нет.

В C-референсе нет механики отключения порта.

  • client_port и server_port явно включены в KDF
  • Передаются реальные порты сокета:
    • c->our_port
    • c->remote_port

Если порт равен 0, он всё равно попадёт в KDF как 0.

Отдельной логики «игнорировать порт» не предусмотрено.