DNS-over-HTTPS (DoH). Шифрование поисковых запросов DNS
DNS через HTTPS (DoH) протокол для выполнения разрешения DNS по протоколу HTTPS. Целью метода является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS (Сервер доменного имени) с помощью атак типа «Атака посредника».
Жмакнув по этой ссылке и проверив Firefox (или любой другой популярный браузер), у каждого из вас перед глазами откроется невыносимая сторона жизни... губительные противоречия действительности, неразрешимый конфликт в области информационных систем и технологий.
Упсс... Ну, как же так? Почему моя конфиденциальность ниже плинтуса? Запросы DNS у всех на виду, resolver не проверяет ответы DNS с помощью DNSSEC, браузер не зашифровал SNI.
В гордом одиночестве TLS 1.3. У кого и с этим проблемы, отредактируйте файл конфигурации Firefox (именно с этим браузером будем возиться). В адресной строке браузера набираем: about:config и в строке поиска настроек, вводим имя security.tls.version.max - (выставляем значение 4).
Ролик:
Языком бульдозериста, что такое DNS-сервер.
Пользователю тяжело запомнить цифры. Компьютер разговаривает только на языке цифр. Каким образом столкнуть лбами принципиально разные субстанции.
Пользователь набирает доменное имя сайта в адресной строке браузера (oleglav.blogspot.com), а DNS (представим, что это большая, толстая телефонная книга) конвертирует имя в IP-адрес (142.250.186.161) и возвращает вашему устройству «циферки». После чего компьютер, находящийся по этому адресу, обрабатывает запрос и присылает информацию для открытия запрашиваемой страницы. На картинке это выглядит, примерно, так:
На картинке, что выше мы видим красные стрелки (запрос, ответ, запрос, ответ). И всё это напоминает деревню... стоит кому-то, что-либо «шушукнуть» - через пять минут, пол деревни всё знает.
Основная задача DoH - зашифровать DNS-трафик для предотвращения перехвата и обеспечения дополнительной конфиденциальности и безопасности.
Бум или не бум исправлять? В чем здесь закавыка! Если «пошерстить» интернет, введя в поисковой машине Google или Яндекса: DNS-over-HTTPS (DoH), поймёте противоречивость суждений о технологии «ослепляющей» гигантское Око Саурона.
Одни готовы сжечь на костре изобретателей опции (DoH), как еретиков, отступающих от господствующих и общепринятых взглядов, правил, положений... мол радость по поводу новых технологий борьбы с цензурой в интернете преждевременна и бесполезна. Почитайте эту статью, очень интересное и занятное сочинение, ломающее всю нашу эйфорию и надежды о зашифрованном протоколе HTTPS.
Вот еще один камень (ссылка), запущенный в сторону евангелистов «безопасного DNS». (DoH) это панацея не от цензуры, а от излишне любознательных «информационных посредников», провайдеров и интернет-жулья.
Другие всеми конечностями «За», ибо хватит молчать, надо что-то решать (ссылка), все давно устали от того, что упЫри делают с нашим интернетом.
Как ко всему этому кордебалету относится автор? Сейчас расскажу...
По началу в веб конфигураторе интернет центра (192.168.1.1), стояли DNS-сервера моего горячо любимого провайдера LLC Intercon. Стоят и стоят, каши не просят... Но, потом началось... чуть ли не каждую неделю интернет стал «сыпаться», когда на 15 минут, а когда и на значительно больший промежуток времени. Не очень приятная штука, однако. Звонишь провайдеру, а там нУль эмоций и безразличие в голосе. Ща, все будет голубчик, не надо паниковать ٩(̾●̮̮̃̾•̃̾)۶. Начинаешь делать диагностику неполадок, выскакивает типа этого:
Ага, думаю, сколько рубаху телефон не рви, пока сам себе не поможешь, будет шляпа... Зашел в системный монитор интернет-центра KEENETIC (192.168.1.1) и заколотил прямой наводкой DNS 1: 8.8.8.8 DNS 2: 1.1.1.1 DNS 3: 9.9.9.9. Разложил, так сказать «DNS яйца» по разным корзинам, помимо Domain name server провайдера ツ.
LLC Intercon снова стал горячо любим и уважаем, интернет перестал «падать», бесполезные звонки прекратились.
Дык вот, к чему веду. Если давно использую публичные сервера, почему бы не зашифровать DNS запросы. Заодно уберем раздражающие, тягостные, мрачные кнопки с этой страницы.
Сказано, сделано. Мы не ищем лёгких путей, будем делать всё длинными ручками, хотя в Firefox можно поставить единственный маркер, но, об этом чуть позже.
В адресной строке браузера набираем: about:config и в строке поиска настроек, находим network.trr.mode - (присваиваем параметру значение 2 - используется DoH по умолчанию, а DNS как запасной вариант).
Вы можете установить другие значения:
0 – отключить TRR по умолчанию;
1 - используется DNS или DoH, в зависимости от того, что быстрее;
3 – используется только DoH. Довольно опасный вариант. Если вы зайдете вот сюда и пропишете в поле https://cloudflare-dns.com/dns-query или https://mozilla.cloudflare-dns.com/dns-query, то сразу заметите, что-то не ладное. Ух, ты... Блокировка затрагивает IP 104.16.249.249 и домен ineedusersmore.net. РКН не дремлет. И, как себя поведет DoH не понятно. И какие интернет ресурсы будут дальше заблокированы, одному богу известно. Поэтому, оставлять яйца в одной корзине, крайне рискованно;
4 - режим зеркалирования при котором DoH и DNS задействованы параллельно. Вариант лично для меня совершенно не понятный, но разработчикам виднее;
5 - отключить TRR по выбору.
Не выходя из редактора, находим параметр по имени network.trr.uri. По умолчанию стоит https://mozilla.cloudflare-dns.com/dns-query. Если устраивает, что вся ваша информация будет улетать за океан, в «резерва́цию Американских индейцев» - оставляем значение без изменений. Хотя есть выбор, например, публичный Google DNS: https://dns.google/dns-query. Да, что же это такое! Какой же это выбор. Опять всё улетает в «резерва́цию Американских индейцев», а у этих ребят и уши длиннее и скальпы на складах хранятся дольше. Ладно, всё хорошо, как говаривал мой дед, мы всё вытерпим, со всем справимся, лишь бы войны не был◌́.
Далее находим network.trr.bootstrapAddress и настраиваем на 1.1.1.1 (если хотите работать с cloudflare) или 8.8.8.8 (если хотите работать с Google).
В адресной строке браузера набираем: about:networking и проверяем сеть (раздел DNS). Нажимаем кнопку Очистить кеш DNS, обновляем страничку, смотрим TRR. Должно быть true на против многочисленных имен узлов.
В адресной строке браузера набираем: 1.1.1.1/help и видим следующую картину (обращаем внимание на DNS-over-HTTPS (DoH)). Всё работает:
Переходим на DNSleaktest (ссылка) и нажимаем кнопку Стандартный тест.
А, как же страничка Cloudflare, откуда и началась вся катавасия:
Ух, ты... на душе стало легче, но, есть небольшой осадок. Encrypted SNI не хочет подчиняться, а без этого важного элемента все труды насмарку.
Наша песня хороша, начинай сначала.
В адресной строке браузера набираем: about:config
По началу мне казалось, что если параметр network.security.esni.enabled выставить на true, игра закончится. Потом прочитал в интернете: ESNI (Encrypted Server Name Indication) больше не работает в более новых версиях Firefox. К сожалению, проблема вряд ли будет исправлена, поскольку ESNI - это исходящая технология, которая в конечном итоге заменят более всеобъемлющей ECH (Encrypted Client Hello) претендующей на роль стандарта IETF. Стек технологий ECH добавят в Firefox в 2021 году.
Ключевое отличие ECH от ESNI в том, что в ECH вместо отдельного поля шифруется всё сообщение ClientHello, что позволяет блокировать утечки через поля, которые не охватывает ESNI. Для управления включением ECH в about:config предложены настройки "network.dns.echconfig.enabled" и "network.dns.use_https_rr_as_altsvc", назначаем true, что позволит Firefox использовать ECH с серверами, которые его поддерживают.
Но, и здесь есть выход. На данный момент Firefox ESR продолжает поддерживать предыдущую функциональность Encrypted Server Name Indication. Параметр "network.security.esni.enabled" переключите на true и все кнопки станут зелеными. Фу... игра закончена.
Если не совсем понятно все изложил, можете почитать эту статью. Мне она понравилась больше всех прочитанных.
Да, чуть не забыл. А, как же единственный маркер в настройках Firefox, который мгновенно зашифрует поисковые запросы DNS. Перейдите в Настройки → Основные. Скрольте в самый низ страницы, чтобы найти Параметры сети. Нажимаем кнопку «Настроить». Упсс... а там уже всё настроено:
Вы ставили маркер на Включить DNS через HTTPS? Нет! И, я не ставил. Как же так? Все дело в параметре network.trr.mode - 2, который настраивали ранее. Как только вы его в about:config поменяли с пятёрки на двойку, птичка в чикбокс, залетает на автомате.
Всё выше сказанное можно было пропустить, открыв в Firefox Параметры соединения → Далее, выбрать Используемого провайдера, например, Cloudflare (по умолчанию) → Кликнуть Ок.
Зачем целый час голову морочил, зачем водил по болотам и топям? С этого и надо было начинать. От твоего рассказа, одни мазоли на пальцах o(ٿ)o.
Подводим итог. На, чем следует сконцентрировать свое внимание, что в DoH самое важное?!
Важно... чтобы кнопочки были зелеными...