mirror of https://github.com/telemt/telemt.git
1.5 KiB
1.5 KiB
Middle-End Proxy
KDF Addressing — FAQ по реализации
Требует ли C-референсная реализация KDF внешний IP и порт?
Да
В C-референсе в KDF участвуют и IP-адрес, и порт — с обеих сторон соединения.
В aes_create_keys() в строку KDF входят:
server_ip + client_portclient_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_portc->remote_port
Если порт равен 0, он всё равно попадёт в KDF как 0.
Отдельной логики «игнорировать порт» не предусмотрено.