
Во-первых, извините за мой плохой английский. Я его еще учу. Вот:
Когда я размещаю один веб-сайт на IP-адрес, я могу использовать «чистый» SSL (без SNI), и обмен ключами происходит еще до того, как пользователь сообщает мне имя хоста и путь, которые он хочет получить. После обмена ключами все данные могут быть безопасно переданы. При этом, если кто-то случайно прослушивает сеть, никакая конфиденциальная информация не утечет* (см. сноску).
С другой стороны, если я размещаю несколько веб-сайтов на одном IP-адресе, я, вероятно, буду использовать SNI, и поэтому посетитель моего веб-сайта должен сообщить мне целевое имя хоста, прежде чем я смогу предоставить ему правильный сертификат. В этом случае кто-то, прослушивающий его сеть, может отслеживать все домены веб-сайтов, к которым он обращается.
Есть ли ошибки в моих предположениях? Если нет, не представляет ли это проблемы конфиденциальности, если пользователь также использует зашифрованный DNS?
Примечание: Я также понимаю, что сниффер может выполнить обратный поиск по IP-адресу и выяснить, какие веб-сайты были посещены, но имя хоста, передаваемое в виде открытого текста по сетевым кабелям, похоже, упрощает для цензурных органов блокировку доменов на основе ключевых слов.
решение1
Ваш анализ неверен. С SNI вы в большей безопасности, чем без него.
Без SNI IP-адрес однозначно идентифицирует хост. Таким образом, любой, кто может определить IP-адрес, может определить и хост.
С SNI IP-адрес не идентифицирует хост однозначно. Кто-то должен был бы фактически перехватить и просмотреть часть трафика, чтобы определить точный хост. Это сложнее, чем просто получить IP-адрес.
Таким образом, с SNI вы (немного) более защищены, чем без него.
Любой, кто собирается блокировать на основе интрузивного анализа пакетных данных, будет также блокировать на основе IP-адреса. Они будут блокировать "плохие" на основе IP-адреса с SNI или без него.
Однако ответ на ваш вопрос — «да». SNI действительно представляет собой проблему конфиденциальности. С SNI тот, кто может перехватить трафик, получает имя хоста в дополнение к IP-адресу.
решение2
Вы ПРАВЫ. SNI — это серьезная проблема конфиденциальности для ваших посетителей — он раскрывает точные веб-сайты, к которым подключаются ваши посетители, их интернет-провайдеру и другим пассивным прослушивающим сторонам. Но ведь и DNS... ну... привык: Google исправляет это:-
https://thehackernews.com/2017/10/android-dns-over-tls.html
Знание IP-адреса НЕ даёт интернет-провайдеру информации о том, какой веб-сайт находится по этому IP-адресу, если только он сам не попытается это сделать, что сильно отличается от пассивного прослушивания клиентских пакетов.
решение3
Вы правы, это представляет потенциальную угрозу конфиденциальности: при использовании SNI доменное имя отправляется незашифрованным.
Вот почемуЕСНИ(Зашифрованный SNI) был предложен Cloudflare, который уже реализовал его в своей CDN. На момент написания этой статьи поддержка браузеров близка к нулю, но, похоже, это будущее!