# 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`. Отдельной логики «игнорировать порт» не предусмотрено.