Протоколы

Что такое XTLS Vision?

Гонять HTTPS-сессию внутри TLS-туннеля — значит шифровать одни и те же байты дважды. Это тратит процессор и, что менее очевидно, оставляет рисунок длин, который классификатор способен распознать. XTLS Vision — механизм, решающий и то, и другое.

3 мин чтенияПоследняя проверка

Проблема вложенного TLS

Представьте, что происходит при загрузке обычной HTTPS-страницы через туннель на базе TLS. Ваш браузер шифрует свой запрос к этому сайту. Затем клиент туннеля шифрует эти уже зашифрованные данные ещё раз для передачи. Сервер расшифровывает внешний слой и пересылает внутренний, по-прежнему зашифрованный, по назначению.

Внешнее шифрование защитило данные, которые уже были защищены. Цена проявляется в двух местах.

  • Обработка. Каждый байт шифруется дважды на выходе и расшифровывается дважды на входе. На телефоне это батарея; на нагруженном сервере — пропускная способность.
  • Обнаруживаемость. У записей TLS есть заголовки длины. Оборачивание потока TLS-записей в другой поток TLS порождает характерное соотношение между длинами внутренних и внешних записей — рисунок, не встречающийся в обычном трафике, который в опубликованных исследованиях использовался для опознания вложенного TLS с высокой точностью.

Что Vision делает вместо этого

Наблюдение, лежащее в основе XTLS, состоит в том, что внутренние данные уже как следует зашифрованы приложением. Если туннель может аутентифицировать соединение, а затем распознать, что несёт он сам по себе TLS, он может пересылать эти записи напрямую, а не оборачивать их заново.

  1. Обычная аутентификация

    Сессия начинается как обычное TLS-соединение, с полным рукопожатием и всеми вытекающими защитами. На этом этапе ничего не пропускается.

  2. Обнаружение, что нагрузка — это TLS

    Как только пошли данные, реализация распознаёт, что внутренний поток сам является TLS, а не произвольным открытым текстом, которому понадобилась бы собственная защита туннеля.

  3. Пропуск записей насквозь

    С этого момента внутренние записи ретранслируются без второго слоя шифрования. Они и так не были читаемы ни для туннеля, ни для кого-либо на пути, так что ничего ранее защищённого не раскрывается.

  4. Формирование видимого рисунка

    Vision добавляет набивку в начальную часть сессии — туда, где соотношение длин вложенного TLS выражено сильнее всего и полезнее всего классификатору.

Название различает поколения. Более ранние режимы XTLS flow добивались сквозного пропуска, но, как выяснилось, оставляли собственные различимые особенности; Vision — редакция, которая их устраняет, главным образом своей стратегией набивки, и именно она применяется сейчас.

Ослабляет ли что-нибудь пропуск слоя?

Это правильный вопрос, и ответ зависит от того, что именно защищал пропущенный слой.

Сквозной пропуск применяется только тогда, когда внутренняя нагрузка уже является TLS, то есть у приложения есть собственное сквозное шифрование до собственного адресата, которое туннель в любом случае прочитать не мог. Внешний слой обеспечивал конфиденциальность, которую внутренний уже обеспечил. Снять избыточную обёртку — не то же самое, что снять защиту.

Трафик, не зашифрованный сквозным образом, под сквозной пропуск не подпадает и по-прежнему несётся внутри собственного шифрования туннеля. Это различение делается для каждого соединения, а не один раз на всю сессию.

Что действительно меняется, так это метаданные, видимые наблюдателю на пути: границы внутренних записей становятся границами внешних. Именно поэтому существует набивка, и это реальный компромисс, а не бесплатный выигрыш — по этой причине Vision заменил ранние режимы flow, а не просто расширил их.

Что это значит на практике

  • Меньше нагрузки на процессор с обеих сторон, что проявляется как лучшее время работы от батареи на мобильных и большая ёмкость на сервер.
  • Более высокая пропускная способность на соединениях, где преобладает HTTPS, а сегодня это почти все соединения.
  • Устранение самой цитируемой сигнатуры длин для вложенного TLS — это выгода со стороны обнаружения.
  • Никакой нагрузки на конфигурацию для того, кто этим пользуется: это свойство профиля соединения, а не что-то, что нужно настраивать.

Vision обычно обсуждают вместе с REALITY, потому что они закрывают разные половины одной задачи. REALITY делает установление соединения ничем не примечательным; Vision делает ничем не примечательным то, что происходит после. По отдельности каждый оставляет пробел, который закрывает другой.

Частые вопросы

XTLS менее безопасен, чем обычный TLS?

Для того трафика, к которому он применяется, — нет. Сквозной пропуск используется только там, где нагрузка уже зашифрована приложением сквозным образом, так что пропускаемый слой защищал данные, которые туннель в любом случае прочитать не мог. Трафик без собственного шифрования сохраняет шифрование туннеля.

Чем XTLS Vision отличается от старых режимов XTLS?

Ранние режимы flow добивались сквозного пропуска, но, как выяснилось, имели собственные различимые особенности. Vision — редакция, которая их устраняет, прежде всего набивкой начальной части сессии, где рисунок длин вложенного TLS виден сильнее всего.

Нужны ли мне и REALITY, и Vision?

Они решают разные задачи: REALITY касается того, как соединение устанавливается и как конечная точка отвечает незнакомцу, Vision — формы трафика после начала передачи. Их обычно применяют вместе, потому что каждый оставляет пробел, который закрывает другой.

Как это применяет HushTunnel

HushTunnel использует VLESS вместе с REALITY и XTLS — те самые решения, которые описаны в этих руководствах, — и не хранит записей о посещаемых вами сайтах.

Все руководства