#dns over https

4 постов
пост №1035Технологии и общество

Хорошие новости: майкрософт планирует внести изменения в работу DNS в Windows, которые помогут бороться с цензурой и повысят нашу безопасность в сети.
Что такое DNS? Когда вы даете команду открыть ютуб, ваш компьютер или телефон сначала узнают числовой адрес ютуба (74.125.130.91, айпи) в «телефонной книге интернета» называемой DNS.

С DNS есть две проблемы:
1. Общение с DNS-серверами никак не защищено — значит хакер может подслушать, на какие сайты вы заходите и даже увести вас на поддельный сайт вместо настоящего.
2. DNS-серверы обычно предоставляются провайдерами. Владелец DNS-сервера видит, какие сайты вы посещаете и может выборочно блокировать к ним доступ, просто отдавая вместо настоящего числового адреса адрес сайта-заглушки. Это самый дешевый способ блокирования интернета, им пользуются многие русские провайдеры; именно так Турция блокировала твиттер во время массовых протестов.

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

Объяснить простому человеку, зачем выбирать DNS-сервер и какие последствия имеет этот выбор — непростая UX-задача. В профессиональных кругах мы давно обсуждаем эти вопросы.

Не мы одни понимаем важность DNS. 🇺🇸 Недавно американские провайдеры были пойманы на том, что лоббировали конгрессменов США против шифрованного DNS (очень грязно, перетасовывая и перевирая факты) — они собирают и продают данные о том, какие сайты посещают их пользователи. 🇬🇧 Правительство Великобритании выступает против шифрования DNS — это помешает им блокировать сайты. На прошлой встрече IETF меня круто осадила девушка-представитель правительства Великобритании, красноречиво предъявив аргумент «а как же защита детей», на который я не нашелся как быстро ответить. 🇷🇺 Ну и конечно, «суверенная DNS-инфраструктура» есть в «законе об изоляции рунета».

Непривычно и очень круто, что Microsoft первыми из технических гигантов начали публично говорить об этом аспекте интернет-безопасности.

P.S. Привет из Сингапура, с очередной встречи инженерного совета интернета IETF. Картинка для привлечения внимания с балкона, где написан этот пост.

пост №769Интернет и платформы

В Firefox Nightly и в Cloudflare подвезли поддержку Encrypted SNI. Это рокот канонады, которая скоро накроет Роскомнадзор и остальных клоунов, блокирующих интернет.

(не-техническое описание в следующем абзаце) При установлении HTTPS соединения, клиент в незашифрованном виде передает серверу имя домена, с которым хочет установить TLS-соединение, это называется Server Name Indication, SNI. Пидоры (в плохом смысле этого слова) из Роскомнадзора парсят эту информацию (то, что называется Deep Packet Inspection, DPI) и блокируют неугодные сайты. Encrypted SNI шифрует имя домена, так что владелец канала увидит только IP-адрес и порт. Если сайт хостится на крупном CDN (типа Cloudflare), то у атакующего не будет другого выхода, кроме блокирования крупных частей интернета по IP-адресам.

Приведу аналогию с телефонными разговорами. На сегодняшний день, многие сайты не имеют своего телефонного номера (IP адреса), а пользуются общими номерами арендодателя (CDN типа Cloudflare). Это значит, что сотни тысяч сайтов используют один и тот же номер. Шифрование разговора при этом включается только после того, как вы скажете секретарю арендодателя, какой сайт вам нужен. Товарищ майор (Роскомнадзор) слушает все разговоры и обрывает ваш звонок, как только слышит имя запрещенного сайта. Новая технология позволит включить шифрование уже на этапе разговора с секретарем, так что у товарища майора не будет возможности блокировать отдельные сайты — только крупные части интернета целиком по номеру телефона (IP-адресу).

Технически, это гениальное в своей простоте решение сложной задачи. Специальный ключ домена хранится в оговоренной DNS-записи. Клиент забирает из DNS ключ и вместо ClientHello server_name делает ClientHello encrypted_server_name. Никто кроме целевого сервера не сможет расшифровать, какое имя домена просил пользовать. Понятно, что для того, чтобы это всё работало, нам нужен безопасный DNS. Тут на выручку приходит DNS over HTTPS (DoH), который уже поддерживается как минимум тремя крупными провайдерами: Google, Cloudflare и Verizon. Я до сих пор не понимаю, почему РКН не блокирует неугодные сайты через DNS (если кто знает причину — расскажите, пожалуйста), но с распространением в клиентах поддержки DoH, этот вектор атаки остается в прошлом.

Я думаю, что в перспективе 2-5 лет, власти России встанут перед выбором — двигаться по «китайскому сценарию», заблокировав внешний интернет скопом (и оставив только белые списки) или перестать блокировать точечно сайты, потому что это слишком неэффективно. Ой нет, извините, можно ещё делать хорошую мину при плохой игре и продолжать спускать деньги бюджета на бутафорию. Это — самый вероятный сценарий.

Очень жду, когда поддержка ESNI и DoH приедет в Google, AWS, Chrome, iOS и Android. И всё, пользовательский интернет станет на порядок безопаснее. В интересное время живем, товарищи!

пост №632Разработка и инженерия

Cloudflare анонсировал с публичный DNS-сервер 1.1.1.1. Он в два раза быстрее гугловского 8.8.8.8 и поддерживает DoH (об этом ниже).

DNS — это адресная книга интернета. Каждый раз, когда вы открываете сайт или приложение — телефон или компьютер сначала узнают цифровой адрес сервера через DNS.

По-умолчанию мы пользуемся DNS-сервером провайдера. Если настроить себе в компьютере и телефоне этот новый DNS 1.1.1.1 — страницы начнут открываться быстрее, а блокировки некоторых провайдеров — отключатся. На сайте есть инструкция, это просто и делается обычным человеком за 2 минуты.

Второй важный аспект — поддержка DNS over HTTPS. Это протокол, позволяющий шифровать DNS-запросы. Если его начнет поддерживать крупный сайт (гугл или яндекс, например) — провайдер не сможет блокировать ваши DNS запросы и даже подсматривать за ними. Пока что операционные системы и браузеры не умеют DoH из коробки, да и крупных серверов нет. Этот запуск — серьезный шаг к более безопасному и приватному DNS.

P.S. А ещё, это просто красиво. 1.1.1.1 — первый IP-адрес в интернете. Номерок подогнал APNIC — некоммерческое образование, регулирующее выдачу IP-адресов американского региона. Если хотите технических подробностей, как это всё работает под капотом — вот хороший пост.

UPD. Друзья поправляют, что в России у гугла присутствие гораздо лучше (чуть ли в каждом провайдере), чем у cloudflare, у которого одна точка в Москве. Так что в России (особенно в регионах) лучше использовать гугловский 8.8.8.8. Приношу извинения.

пост №443Разработка и инженерия

Хорошая статья про будущее интернет-протоколов.

Рассматриваются:

- TLS 1.3 - крупный релиз новой версии протокола, который принято называть HTTPS. Во-первых, сейчас HTTPS можно сломать, установив на компьютер клиента корневой сертификат атакующего. После этого можно слушать и изменять вообще всю шифрованную переписку компьютера. Так делает антивирус Касперского, так хотело делать правительство Казахстана. Вообще, классный способ - «установи сертификат для получения доступа к сайту госуслуг», например, и все - контора довольна. Механизм эфемерных ключей делает такую атаку невозможной. Интересно, что некоторые организации негодуют, банки, например, которым нужно мониторить весь трафик. Во-вторых, HTTPS-сайты начнут открываться существенно быстрее. При не-шифрованной передаче сайт начинает загружаться сразу после запроса, при шифрованной - серверу и вашему компьютеру нужно сначала договориться о ключах шифрования. Новая версия TLS позволяет делать это всего раз в неделю, то есть вы почувствуете разницу на страницах, которые открываете часто;
- HTTP/2 - свежий протокол (2015), позволяет запросить несколько файлов параллельно, не создавая очередь, что сильно ускоряет загрузку. Не работает без шифрования;
- QUICK - протокол для ускорения загрузки страниц, не работает без шифрования;
- DNS over HTTP (DOH). Подмена DNS ответов - самый простой способ блокировки сайтов. Протокол DNS устроен так, что его тривиально заблокировать или подменить ответ сервера. В протоколе DOH это невозможно, а заблокировать сервер с DOH можно только заблокировав HTTPS сайт этого сервера. Представьте, если google.com начнёт предоставлять сервис DOH. Половина механизмов блокировки можно будет выкинуть на свалку. Дополнительный кайф - через DNS легко подсмотреть, на какие сайты вы заходите, DOH и от этого защищает тоже.

Как видите, все шифрованное. Ещё лет 5 и метод «сижу на трубе, все контролирую» перестанет работать.

Вообще, большая часть общения сейчас происходит в соцсетях - именно с ними нужно научиться договариваться Роскомнадзору, чтобы быть эффективным цензором. И быть готовым заблокировать соцсеть или поисковик целиком, если они не идут навстречу. Конференции вроде недавней китайской, где главы крупнейших IT-корпораций «целуют кольцо» - влажная мечта Жарова. Слава богу, для такого «сотрудничества» нужно быть одним из крупнейших рынков и быстрорастущей экономикой, имеющей крепкие «отечественные» аналоги всех западных сервисов. Тогда у цензора есть мощный рычаг. У российского правительства, насколько я понимаю, такого рычага нет, так что особо сильно прогибаться под хотелки русских цензоров западные компании не будут. Аминь.