diff --git a/docs/MIDDLE-END-KDF.ru.md b/docs/MIDDLE-END-KDF.ru.md new file mode 100644 index 0000000..7a71b93 --- /dev/null +++ b/docs/MIDDLE-END-KDF.ru.md @@ -0,0 +1,41 @@ +# 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`. + +Отдельной логики «игнорировать порт» не предусмотрено.