beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2019-02-19 11:26 pm

Хождение в IETF со своим draft-ом, попытка очередная

Породил концепцию Fake SNI. Потому что ходят слухи, что ESNI некоторые шибко шустрые блюстители контента уже считают основанием блокировать.

Формулировки совсем сырые, и надо будет раскрывать подробнее, так что отклик приветствуется.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-20 08:28 am (UTC)(link)
Не понял, что мешает цензорам поддержать данную спецификацию.
И начать блочить как тех, кто указывает реальный хостнейм в незашифрованном SNI, как и тех, кто указывает фейковый.

Всего-то надо на каждое имя в базе данных блокировок сделать DNS-запрос и узнать, нет ли у этого имени алиаса по данному протоколу.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-20 09:18 am (UTC)(link)
А сколько оно будет по DNS-кэшам расползаться? Грубо говоря, какой длины историю придется поддерживать серверу, чтобы обеспечить нормальную работу клиентов?

Кстати, а что если цензоры начнут резать соответствующие DNS-запросы и ответы?
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-20 11:56 am (UTC)(link)
Далее, у тебя предполагается что A/AAAA записи на фейковое имя нет.

Value specified in the Fake SNI RR MUST NOT match any hostname
available for the IP address it is valid for.

Это в общем-то цензор может проверить. Дорого, конечно, на каждый ClientHello делать DNS-запрос, но в принцие возможно,

А потом пропускать только такие SNI, которые соответствуют существующей A-записи на тот IP, куда посылается этот пакет.

Причем выполнять эту проверку можно только для тех IP, которые у нас есть в блокировочной базе.
lumag: (Default)

[personal profile] lumag 2019-02-21 01:27 pm (UTC)(link)
Мне больше не нравится то, что в ответ идет клером сертификат с именем заблокированного домена. Т.о. в конфигурацию DPI достаточно добавить еще одно правило.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-21 01:30 pm (UTC)(link)
Я тут читал, читал RFC 8446 и вынес из него что теперь сертификат уже в зашифрованном виде ходит. Это раньше, в старых версиях TLS сертификат передавался до change cipher spec, и соответственно, шел в открытом виде.
lumag: (Default)

[personal profile] lumag 2019-02-21 01:48 pm (UTC)(link)
В 1.3 да. Переход на него займет еще какое-то время.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-21 01:56 pm (UTC)(link)
Я так понял, что твой драфт именно к 1.3 относится и к применению с более ранними спецификациями не предлагается. Именно по причине того, что сертификат с настоящим именем в незашифрованном виде лишает смысла всю затею.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-21 02:34 pm (UTC)(link)
Соответственно, стоило бы разрешить (А то у тебя там MUST NOT) создавать A-запись на фейковое имя. Ведь собственно, DNS-серверу все равно, регулярно менять только TXT-запись, или A-запись тоже.

Правда, это при условии что у тебя A-запись в том же домене.

Но вроде пока они блокируют конкретные хостнеймы, а не домены второго уровня целиком.
vitus_wagner: My photo 2005 (Default)

[personal profile] vitus_wagner 2019-02-21 06:57 pm (UTC)(link)
По-русски - имя указанное в farke SNI записи может иметь A/AAAA запись с тем же IP адресом, что и основной сервер. Это проблема того, кто конфингурирует этот сервер - обеспечить чтобы эта запись не обрабатывалась серверным ПО иначе как указатель на основное имя сервера.