Re: Firefox повторно исплользует соединение IPv6 на основании IPv4. Как с этим жить?

Иван nginx на kinetiksoft.com
Ср Июн 1 20:10:36 UTC 2016


Здравствуйте!

В письме от 1 июня 2016 22:15:24 пользователь Maxim Dounin написал:

> 
> Т.е. проблема в том, что Firefox пытается делать connection reuse
> для всех IP-адресов двух хостов, если у этих хостов хотя бы один
> общий IP-адреса?
> 

Да. Если у хостов общий IPv4, то FF делает reuse и для IPv6, который в свою 
очередь может различаться. Как по моему это против всякой логики, но вот 
некоторые трактуют RFC именно так (см. ниже).

> Это выглядит как нарушение стандарта.  RFC 7540 говорит нам, что
> reuse возможен только в том случае, если хост резолвится в тот же
> IP-адрес, к которому установлено существующее соединение
> (https://tools.ietf.org/html/rfc7540#section-9.1.1):
> 
>    A connection can be reused as long as the origin server
>    is authoritative (Section 10.1).  For TCP connections without TLS,
>    this depends on the host having resolved to the same IP address.
>

Ну насколько я понял логику Patrick McManus (разработчика, который не хочет это 
править), он понимает этот абзац как "если хост резолвится в одинаковый IP адрес 
(в одной из версий IP), то можно делать reuse (во всех остальных версиях)".

> 
> > Однако я с этим в корне не согласен, более того, считаю, что такое
> > поведение открывает уязвимость, которую я описал тут:
> > https://bugzilla.mozilla.org/show_bug.cgi?id=1190136#c22
> > Но технической квалификации и политического веса в мире броузеров и
> > серверов мне не хватает. Так же мало кто используется ipv6 на клиенте,
> > поэтому массовка еще набралась.
> 
> Уязвимости тут как таковой нет: без SSL/TLS Firefox не умеет
> HTTP/2, а для connection reuse в случае TLS нужно ещё, чтобы был
> представлен корректный сертификат, покрывающий оба доменных имени.

Ну значит уязвимость теоретическая. Если по какой-то причине будет возможен 
HTTP/2 без SSL/TLS, то можно будет использовать эту уязвимость.

> В данном конкретном случае - это явно баг Firefox'а, т.к. в
> соответствии со спецификацией HTTP/2 он не имеет права для
> запросов к хосту повтороно использовать соединение к IP-адресу, в
> который данный хост не резолвится.
> 


> > 2) Помогите найти аргументы для убеждения разработчиков ФФ, что этот баг
> > надо исправлять. Если кто готов отписаться там, я открою обратно этот
> > баг.
> См. аргументы выше.  На лицо явное нарушение стандарта.
> 

Если б всё было так просто, поверьте, я бы не отнимал Ваше время.

>     server {
>         listen [2001:db8::1]:443 ssl http2 default_server;
>         listen [2001:db8::2]:443 ssl http2 default_server;
>         return 421;
>     }
> 
> Для Firefox'а этого должно быть достаточно, чтобы переоткрыть
> соединение.
>

Спасибо. Это похоже то, что нужно. Нужно ли для этого обновляться до 1.11.0 или 

Change: the "421 Misdirected Request" response now used when
       rejecting requests to a virtual server different from one negotiated
       during an SSL handshake; this improves interoperability with some
       HTTP/2 clients when using client certificates.

не про это?

С уважением, Иван Прокудин.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160601/31f80400/attachment.html>


Подробная информация о списке рассылки nginx-ru