Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Server Name Indication (SNI) кратко

Лекция



Привет, Вы узнаете о том , что такое server name indication, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое server name indication, sni , настоятельно рекомендую прочитать все из категории Компьютерные сети.

Server Name Indication (SNI) — расширение компьютерного протокола TLS , которое позволяет клиентам сообщать имя хоста, с которым он желает соединиться во время процесса «рукопожатия». Это позволяет серверу предоставлять несколько сертификатов на одном IP-адресе и TCP-порту, и, следовательно, позволяет работать нескольким безопасным (HTTPS-) сайтам (или другим сервисам поверх TLS) на одном IP-адресе без использования одного и того же сертификата на всех сайтах. Это эквивалентно возможности основанного на имени виртуального хостинга из HTTP/1.1. Запрашиваемое имя хоста не шифруется, что позволяет злоумышленнику его перехватить.

Для практического использования SNI требуется, чтобы подавляющее большинство пользователей использовало браузеры с поддержкой этой функции. Пользователи, браузеры которых не поддерживают SNI, получат сертификат по умолчанию (зависит от реализации, обычно первый в списке), и, следовательно, ошибку сертификата, если сервер не оснащен wildcard сертификатом, и он не содержит требуемое клиентом имя сайта.

С осени 2018 года проводятся эксперименты по внедрению Encrypted SNI из протокола TLS 1.3, который шифрует имя запрашиваемого сайта с помощью публичного ключа сайта, получаемого из системы имен DNS.

Благодаря ESNI шифруется информация о том, к какому домену вы отправляете запрос. В стандартном HTTPS заголовки с именами доменов не шифруются и доступны для просмотра провайдеру или другому «человеку посередине». Теперь он видит только IP-адрес. Поскольку в современном интернете на одном IP-адресе могут располагаться сотни доменов, то ESNI эффективно скрывает информацию, на какой домен заходит пользователь.

Таким образом, блокировки по именам перестают работать, а цензура в интернете сильно усложнится. Цензорам придется блокировать IP-адреса, а это сомнительная практика. Такая блокировка может затронуть непричастные сайты, а блокируемый сервис легко (автоматически) переключается на другой IP-адрес.

Почему в обычном TLS SNI «светятся» имена хостов? Дело в том, что перед началом шифрования серверу необходимо знать, к какому домену обращается клиент, чтобы предъявить нужный сертификат. По этой причине имя хоста передается открытым текстом (ниже иллюстрации ).

Server Name Indication (SNI)

В зашифрованном SNI (ESNI) эта проблема решена так: клиент берет публичный ключ сервера из DNS и шифрует им все данные до установления TLS сессии.

Server Name Indication (SNI)

Предпосылки проблемы

В ходе создания TLS подключения клиент запрашивает цифровой сертификат у web-сервера; после того, как сервер отправляет сертификат, клиент проверяет его действительность и сравнивает имя, с которым он пытался подключиться к серверу, с именами, содержащимися в сертификате. Если сравнение успешно, происходит соединение в зашифрованном режиме. Если совпадений не найдено, пользователь может быть предупрежден о несоответствии и соединение прерывается, так как несоответствие может свидетельствовать о попытке совершения атаки «человек посередине». Однако некоторые приложения позволяют пользователю проигнорировать предупреждение для продолжения соединения, перекладывая на пользователя вопрос о доверии сертификату и, соответственно, подключение к сайту.

Однако может быть трудно — или даже невозможно из-за отсутствия заранее заготовленного полного списка всех имен — получить единый сертификат, который охватывает все имена, за которые будет отвечать сервер. Сервер, отвечающий за несколько имен хостов, вероятно, должен будет представить разные сертификаты для каждого имени (или небольшой группы имен). С 2005 года CAcert проводит эксперименты по различным методам использования TLS на виртуальных серверах. Большинство экспериментов является неудовлетворительным и непрактичным. Например, можно использовать subjectAltName для хранения нескольких доменов, контролируемых одним человеком в одном сертификате. Такие «унифицированныe сертификаты» необходимо переиздавать каждый раз, когда меняется список доменов.

Виртуальный хостинг на основе имен позволяет размещать несколько имен хостов на одном сервере (обычно на веб-сервере) на одном IP-адресе. Чтобы добиться этого, сервер использует имя хоста, представленное клиентом как часть протокола (для HTTP имя представлено в заголовке Host). Однако при использовании HTTPS рукопожатие TLS происходит до того, как сервер увидит какие-либо HTTP-заголовки. Следовательно, сервер не может использовать информацию в HTTP заголовке host, чтобы решить, какой сертификат представлять, и соответственно только имена, прописанные в одном сертификате, могут обслуживаться на одном IP-адресе.

На практике это означает, что сервер HTTPS может обслуживать только один домен (или небольшую группу доменов) на одном IP-адресе для безопасного и эффективного просмотра. Назначение отдельного IP-адреса для каждого сайта увеличивает стоимость хостинга, поскольку запросы на IP-адреса должны быть обоснованы в региональном интернет-регистраторе, а адреса IPv4 уже исчерпаны. В результате многие веб-сайты фактически не могут использовать безопасный протокол при использовании IPv4. Адресное пространство IPv6 не исчерпано, поэтому веб-сайты, обслуживаемые по протоколу IPv6, не подвержены этой проблеме.

SNI как решение проблемы

Расширение SNI позволяет решить данную проблему путем добавления имени хоста (домена) в протокол TLS-рукотискання. Об этом говорит сайт https://intellect.icu . Сервер, зная, к какому именно домена будет запрос, может таким образом передать сертификат только для этого домена.

Организация IETF добавила SNI к своим «запросов комментариев» ( RFC ). Документ RFC 3546 (июнь 2003) под названием «Transport Layer Security (TLS) Extensions». Наиболее свежая версия стандарта (по состоянию на начало 2018) - RFC 6066 .

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

SNI был добавлен в IETF «s Интернет РЛК в июне 2003 года через RFC 3546, Extensions Transport Layer Security (TLS) . Последняя версия стандарта - RFC 6066.

Последствия для безопасности

Полезные данные Server Name Indication не зашифрованы, поэтому имя хоста сервера, к которому пытается подключиться клиент, видно пассивному перехватчику. Эта слабость протокола использовалась программным обеспечением безопасности для сетевой фильтрации и мониторинга и правительствами для введения цензуры. В настоящее время существует несколько технологий, пытающихся зашифровать указание имени сервера.

Фронтинг домена

Фронтинг домена - это метод замены желаемого имени хоста в SNI на другое имя хоста, размещенное на том же сервере или, что более часто, в сети серверов, известной как сеть доставки контента. Когда клиент использует выход на домен, он заменяет домен сервера в SNI (незашифрованный), но оставляет его в заголовке хоста HTTP (который зашифрован TLS), чтобы сервер мог обслуживать правильный контент. Фронтинг домена нарушает стандарт, определяющий сам SNI, поэтому его совместимость ограничена (многие службы проверяют соответствие хоста SNI хосту заголовка HTTP и отклоняют соединения с SNI с выходом в домен как недействительные). Хотя в прошлом использование доменного доступа использовалось во избежание государственной цензуры, его популярность упала, потому что основные облачные провайдеры (Google, Amazon AWS и CloudFront) явно запрещают его в своих УО и имеют технические ограничения против него. [10]

Зашифрованный клиент Hello

Зашифрованное приветствие клиента ( ECH ) - это расширение протокола TLS 1.3, которое обеспечивает шифрование всего сообщения приветствия клиента, которое отправляется на ранней стадии согласования TLS 1.3. ECH шифрует полезную нагрузку с помощью открытого ключа, который проверяющая сторона (веб-браузер) должна знать заранее, что означает, что ECH наиболее эффективен с большими CDN, которые заранее известны поставщикам браузеров.

Первоначальная версия этого расширения 2018 года называлась Encrypted SNI ( ESNI ) [11], и ее реализации были развернуты в «экспериментальном» режиме, чтобы снизить риск перехвата доменов. В отличие от ECH, зашифрованный SNI шифрует только SNI, а не все приветствие клиента. [15] Поддержка этой версии была включена в Firefox в октябре 2018 года [16] и требовала включения DNS-over-HTTPS. [17]

В марте 2020 года ESNI был переработан в расширение ECH после того, как анализ показал, что шифрования только SNI недостаточно. Например, спецификации позволяют расширению Pre-Shared Key содержать любые данные для облегчения возобновления сеанса, даже передачу открытой текстовой копии точно такого же имени сервера, которое зашифровано ESNI. Кроме того, для пошагового шифрования расширений по одному потребуется зашифрованный вариант каждого расширения, каждое из которых имеет потенциальные последствия для конфиденциальности, и даже при этом раскрывается набор рекламируемых расширений. Наконец, реальное развертывание ESNI выявило ограничения взаимодействия. [18] Краткое название было ECHO в марте 2020 года и изменено на ECH в мае 2020 года. [19]

И ESNI, и ECH совместимы только с TLS 1.3, поскольку они полагаются на KeyShareEntry, который был впервые определен в TLS 1.3. [20] Кроме того, чтобы использовать ECH, клиент не должен предлагать версии TLS ниже 1.3. [21]

В августе 2020 года Великий китайский брандмауэр начал блокировать трафик ESNI, но по-прежнему разрешал трафик ECH.

В октябре 2020 года российский интернет-провайдер Ростелеком и его мобильный оператор Tele2 начали блокировать трафик ESNI. [23

Реализация

Патч , что добавляет поддержку TLS / SNI в пакет OpenSSL , появился в 2004 году, в рамках проекта EdelKey. За два года он был портирован к ветке разработчиков OpenSSL, а в 2007-м - портирован в OpenSSL 0.9.8 (впервые появился в составе 0.9.8f ).

Для поддержки SNI приложением это расширение должно быть реализовано в библиотеке TLS, новые функции которой принимают доменное имя, к которому будет осуществлен запрос.

Блокировка ESNI

С августа 2020 в Китае блокируется ESNI- и TLSv1.3-трафик.

С октября 2020 и ранее в России провайдеры так же начали блокировку ESNI-трафика, что в итоге делает обычные и незапрещенные сайты недоступными для пользователей, учитывая что никаких действующих законов о блокировке этой технологии нет.[11] Первыми блокирующими ESNI провайдерами стали Ростелеком и затем его дочерняя компания ООО «Т2 РТК Холдинг» (торговая марка «Tele2 Россия»).

Вау!! 😲 Ты еще не читал? Это зря!

Данная статья про server name indication подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое server name indication, sni и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерные сети

создано: 2021-04-05
обновлено: 2024-11-14
38



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Компьютерные сети

Термины: Компьютерные сети