Dns over https and dns over tls
Содержание:
- What is DNS over HTTPS (DoH)?
- Testing
- Ограничение использования технологии DoH
- Настройка Mikrotik DoH
- Step 4: Enable DoH in DNSdist
- Почему хорошо включать DNS через HTTPS (DoH)
- DNS Vulnerability
- Ignore the DNS Settings Provided by DHCP Server
- Как включить DNS-over-HTTPS в Windows 11 с помощью приложения «Параметры»
- Как включить DoH с помощью групповых политик
- Включить DNS через HTTPS с помощью реестра
- Как изменить адрес сервера после включения DoH
- DNS over TLS (DoT)
- Switching to Stubby
- Сценарии развертывания
- Как настроить DNS через HTTPS в Windows 10
- Риски
- О нашем развёртывании DNS через HTTPS
- Выход из участия
- Включение и отключение DNS через HTTPS вручную
- Переключение провайдеров
- Исключение отдельных доменов
- Соображения по реализации
- How to Check if Your DNS Traffic is Encrypted
- DNS over HTTPS
- Технические подробности
- Зачем включать DNS over HTTPS?
- Включаем DoH в браузере
What is DNS over HTTPS (DoH)?
The Internet strives to have encryption everywhere by default. At the moment, most of the websites you access are probably using HTTPS encryption. Modern web browsers like Chrome now flag any site that uses standard HTTP as “insecure”. HTTP/3, a new version of the HTTP protocol, has built-in encryption.
This encryption ensures that no one can tamper with the web page while you are viewing it or monitor what you are doing on the Internet. For example, if you connect to Wikipedia.org, the network operator – be it the company’s public Wi-Fi hotspot or your ISP – can only see that you are connected to wikipedia.org. They cannot see which article you are reading, and they cannot modify the Wikipedia article while it travels to your computer.
But in the pursuit of encryption, DNS is left behind. The domain name system makes it so that we can connect to websites through their domain names rather than using numeric IP addresses. You enter a domain name such as google.com and your system will contact the DNS server specified in the system settings to get the IP address associated with google.com. Then your computer or phone will connect to that IP address.
Until now, these DNS queries have not been encrypted. When you connect to a website, your system sends a request that you are looking for an IP address associated with a specific domain. Any data intermediary – maybe your ISP, but maybe just a public Wi-Fi hotspot logging traffic – can log which domains you connect to. Because of this, the DNS spoofing attack is possible.
DNS over HTTPS makes this oversight impossible. When using DNS over HTTPS, your system will establish a secure, encrypted connection to your DNS server and transmit the request and response over that connection. Anyone in between will not be able to see what domain names you are looking for, or interfere with the response sent.
Most people today use DNS servers provided by their ISP. However, there are many third party DNS servers such as Google Public DNS, Cloudflare, and OpenDNS. These third-party vendors were among the first to include support for DNS over HTTPS on the server side. To use DNS over HTTPS, you need both a DNS server and a client (such as a web browser or operating system) that supports it.
Testing
Now enter a domain name like in the Firefox address bar. If the web page loads normally, it’s a good sign your DoH resolver is working. Then go to the terminal console of your DNS server and check the DNS query logs. I use BIND, so I enter the following command to check the DNS query log.
Ubuntu 20.04
sudo journalctl -eu named
Ubuntu 18.04
sudo journalctl -eu bind9
As you can see from the BIND log below, Firefox queried the following domains.
- www.linuxbabe.com: my website
- fonts.gstatic.com: This serves Google fonts on my website
- cdn.shareaholic.net: a sharing widget on my website
- newsletter.linuxbabe.com: my self-hosted email marketing platform.
- translate.google.com: the Google translate widget on my website
The above query log tells me that my DNS over HTTPS resolver is working. If I stop the BIND resolver (), Firefox tells me it can’t find that site. And when I start BIND, the web page loads again.
Ограничение использования технологии DoH
Многие организации, занимающиеся информационной безопасностью, собирают события со своих DNS-серверов для мониторинга вредоносной активности. По DNS-запросам можно определить целевые атаки на информационные системы, а также выявить заражение компьютеров вредоносными программами. Также на их основе создаются правила корреляции для SIEM-систем. Поэтому использование DoH сильно затрудняет мониторинг вредоносной активности. Для решения проблемы были придуманы «канареечные» (проверочные) домены. Для отключения DoH нужно добавить запись с таким доменом на локальный DNS-сервер. Например, Firefox проверяет имя «use-application-dns.net», и если DNS-сервер ответит ошибкой на запрос такого имени, браузер будет использовать DoH. В обратном случае информация о таком домене будет получена и DoH использоваться не будет.
Кроме того, в популярных DNS-серверах реализована функция родительского контроля (ограничения ресурсов нежелательных для детей); соответственно, при использовании DoH её работа будет некорректной. Эта проблема также решается с помощью «канареечных» доменов, но имена будут запрашиваться уже у публичных серверов. Информация о том, какие именно имена используются для отключения DoH при использовании конкретного сервиса, не разглашается.
Настройка Mikrotik DoH
Сегодня можно выделить две компании, предлагающие публичные DNS-резолверы с поддержкой DoH:
- Cloudflare. Плюсом этой компании является обещание не передавать данные пользователей третьим сторонам и удалять журналы запросов по истечении суток;
Проверка версии RouterOS
Как упоминалось выше, настраиваемый функционал появился в RouterOS v6.47, проверим версию прошивки. Перейдем:
System => Resources.
Если версия ниже 6.47, то необходимо выполнить обновление прошивки Mikrotik.
Отключить динамический DNS
При подключении к интернет-провайдеру DHCP или PPPoE клиентом, “по умолчанию” настройки DNS назначаются автоматически. Для правильной работы DoH эту функцию нужно отключить:
Step 4: Enable DoH in DNSdist
Edit the DNSdist configuration file.
sudo nano /etc/dnsdist/dnsdist.conf
Add the following lines into the file.
-- allow query from all IP addresses addACL('0.0.0.0/0') -- add a DoH resolver listening on port 443 of all interfaces addDOHLocal("0.0.0.0:443", "/etc/letsencrypt/live/doh.example.com/fullchain.pem", "/etc/letsencrypt/live/doh.example.com/privkey.pem", { "/" }, { doTCP=true, reusePort=true, tcpFastOpenSize=0 }) -- downstream resolver newServer({address="127.0.0.1:53",qps=5, name="resolver1"})
Save and close the file. DNSdist runs as the user, so we need to give the user permission to read the TLS certificate with the following commands.
sudo apt install acl sudo setfacl -R -m u:_dnsdist:rx /etc/letsencrypt/
Then check the syntax of the configuration file.
sudo dnsdist --check-config
If the syntax is ok, restart DNSdist.
sudo systemctl restart dnsdist
Note that if there’s a web server listening on TCP port 443, DNSdist would fail to restart. You can temporarily stop the web server. I will explain how to make the web server and DNSdist use TCP port 443 at the same time at the end of this article.
Почему хорошо включать DNS через HTTPS (DoH)
Протокол DNS в основном использует порт 53 UDP, и он делает это с обменом сообщениями (запрос-ответ) в виде открытого текста, поэтому любой может получить эту информацию, чтобы узнать, какие веб-сайты мы посещаем
Кроме того, очень важной деталью является то, что интернет-провайдеры, как правило, блокируют веб-сайты на основе наших DNS-запросов, перехватывая все сделанные запросы. Благодаря протоколу DNS over HTTPS мы можем избежать этой цензуры и повысить безопасность и конфиденциальность нашего просмотра в Интернете, если мы выбираем DNS-серверы вместо HTTPS, которые предоставляют вам гарантии конфиденциальности, такие как Cloudflare
В общественных местах Wi-Fi сети может быть очень интересно включить DoH, то есть если вы не используете VPN для шифрования всех ваших сообщений точка-точка. Мы можем получить следующие преимущества:
- Не позволяйте другим пользователям той же сети видеть, какие веб-сайты мы посещаем.
- Вы можете предотвратить потенциальные фишинговые или фишинговые атаки.
Однако в случае общедоступных сетей Wi-Fi, помимо использования DoH, мы рекомендуем вам также использовать VPN, чтобы весь трафик с вашего устройства на сервер VPN шифровался для последующего выхода в Интернет.
DNS Vulnerability
DNS is insecure because by default DNS queries are not encrypted, which can be exploited by middle entities. DNS cache poison is one of the DNS abuses that is widely used by the Great Firewall of China (GFW) to censor Chinese Internet. GFW checks every DNS query that is sent to a DNS server outside of China. Since plain text DNS protocol is based on UDP, which is a connection-less protocol, GFW can spoof both the client IP and server IP. When GFW finds a domain name on its block list, it changes the DNS response. For example, if a Chinese Internet user wants to visit google.com, the Great firewall of China returns to the DNS resolver an IP address located in China instead of Google’s real IP address. Then the DNS resolver returns the fake IP address to the user’s computer.
Ignore the DNS Settings Provided by DHCP Server
If you use Ubuntu server edition, you can configure systemd to ignore the DNS settings provided by the DHCP server, so your system won’t be accidentally using the wrong DNS server.
First, check the status of your network interface.
networkctl status enp5s0
It will show you the network file for this interface. Edit this network file.
sudo nano /run/systemd/network/10-netplan-enp5s0.network
Find the section and add the following line.
UseDNS=false
Like this:
RouteMetric=100 UseMTU=true UseDNS=false
Save and close the file. Then restart for the change to take effect.
sudo systemctl restart systemd-networkd
Run the following command to check the DNS servers for each network interface. If everything is correct, you won’t see the DNS server provided by your DHCP server.
resolvectl status
Changes in the network file can be overridden by a new package update. If your server uses netplan to manage network connection, you can also configure netplan to ignore DHCP DNS settings.
sudo nano /etc/netplan/50-cloud-init.yaml
Add the following two lines to the file.
dhcp4-overrides: use-dns: no
Like this:
network: ethernets: eth0: dhcp4: true dhcp4-overrides: use-dns: no optional: true set-name: eth0 nameservers: search: addresses: 127.0.0.1 version: 2
Save and close the file. Then apply the changes.
sudo netplan apply
Как включить DNS-over-HTTPS в Windows 11 с помощью приложения «Параметры»
Шаг 1: Откройте приложение «Параметры» самый быстрый способ нажать клавишу с логотипом Windows и букву I (Win I) или нажмите на значок шестеренки в меню «Пуск».
Шаг 2: Перейдите в раздел «Сеть и Интернет».
Шаг 3: На странице «Сеть и Интернет» кликните свойства подключения «Ethernet» или «WiFi» в зависимости от используемого вами сетевого подключения.
Шаг 4: Теперь вы окажетесь на странице параметров адаптера Ethernet или WiFi, где вам нужно нажать кнопку «Изменить» для «Назначение DNS-сервера».
Шаг 5: В диалоговом окне «Изменение параметров DNS для сети» выберите «Вручную»
Шаг 6: Передвиньте ползунок IPv4 в положение «Вкл.» и введите предпочтительный и дополнительный DNS-сервер из списка ниже.
Список публичных DNS-серверов, поддерживающих DoH
В настоящее время Microsoft заявляет, что следующие DNS-серверы, как известно, поддерживают DoH и могут автоматически использоваться функцией Windows 11 DNS-over-HTTPS.
Server | IPv4 addresses | IPv6 addresses |
Cloudflare |
1.1.1.1 1.0.0.1 |
2606:4700:4700::1111 2606:4700:4700::1001 |
8.8.8.8 8.8.4.4 |
2001:4860:4860::8888 2001:4860:4860::8844 |
|
Quad9 |
9.9.9.9 149.112.112.112 |
2620:fe::fe 2620:fe::fe:9 |
Если вы ввели DNS-серверы, которые имеют поддержку DNS-over-HTTPS, будет доступен параметр «Предпочтительное Шифрование DNS», в котором доступны следующие варианты:
- Только незашифрованные — стандартный DNS без шифрования.
- Только зашифрованные (DNS поверх HTTPS) — использование только DoH.
- Зашифрованный предпочтительный, незашифрованный — использовать DoH, в случае недоступности переключается на стандартный DNS без шифрования.
Шаг 7: Теперь вы можете нажать кнопку «Сохранить», чтобы включить DoH в Windows 11.
Шаг 8: Закройте приложение «Параметры».
Как включить DoH с помощью групповых политик
Microsoft также добавила возможность управлять настройками Windows 11 DNS-over-HTTPS с помощью групповых политик, существует политика «Настроить DNS через HTTPS (DoH)»
Шаг 1: Откройте редактор локальной групповой политики в Windows 11
Шаг 2: Перейдите враздел «Конфигурация компьютера» → «Административные шаблоны» → «Сеть» → «DNS-клиент».
Шаг 3: Найдите и откройте параметры политики «Настройка разрешения имен DNS поверх HTTPS (DOH)» и включите ее и выберите нужный параметр DoH (см. картинку ниже).
Эта политика позволяет настроить ваше устройство для использования:
- Запретить DoH
- Разрешить DoH
- Требовать DoH
Шаг 4: Нажмите кнопку «Применить» «ОК» и закройте редактор.
Включить DNS через HTTPS с помощью реестра
Шаг 1: Нажмите Win R, введите regedit в поле «Выполнить» и нажмите Enter.
Шаг 2: В редакторе реестра перейдите по следующему пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Шаг 3: Справа измените или создайте новый параметр DWORD (32 бита) с именем «EnableAutoDoh»
Шаг 4: Установите его значение равным 2
Шаг 5: Перезагрузите Windows 11.
Это включит DNS через HTTPS, поэтому Windows начнет отправлять и получать DNS-трафик через безопасные зашифрованные серверы. Однако вам необходимо указать правильный адрес DNS-сервера. Вы можете использовать один из серверов, указанных выше.
Как изменить адрес сервера после включения DoH
Шаг 1: Нажмите Win R и введите «control» в поле «Выполнить», затем нажмите Enter. Откроется классическая панель управления.
Шаг 2: Перейдите в Панель управления \ Сеть и Интернет \ Центр управления сетями и общим доступом.
Шаг 3: Справа нажмите «Изменение параметров адаптера».
Шаг 4: Откроется диалоговое окно «Сетевые подключения». Дважды кликните на ваше сетевое подключение.
Шаг 5: В следующем окне нажмите «Свойства».
Шаг 6: В свойствах адаптера выберите запись Интернет-протокола версии 4 (TCP / IPv4) и нажмите кнопку «Свойства».
Шаг 7: Выберите вариант «Использовать следующие адреса DNS-серверов:» на вкладке «Общие». Введите адрес DNS-сервера, который поддерживает DoH
Шаг 8: Если используете IPv6, укажите серверы для параметра Internet Protocol Version 6 (TCP / IPv6).
Шаг 9: Нажмите «ОК», чтобы применить изменения.
DNS over TLS (DoT)
DNS внутри TLS
В то время как протокол DoH стремится смешиваться с другим трафиком на том же порту, DoT вместо этого по умолчанию использует специальный порт, зарезервированный для этой единственной цели, даже специально запрещая использование того же порта для традиционного незашифрованного трафика DNS ( ).
Протокол DoT использует протокол TLS для обеспечения шифрования, инкапсулирующего стандартные запросы протокола DNS, с трафиком, использующим хорошо известный порт 853 ( ). Протокол DoT был разработан, чтобы упростить организациям блокировать трафик по порту, либо соглашаться на его использование, но включить расшифровку на этом порту.
Switching to Stubby
Editing the file to change name server is not recommended any more. Follow the instructions below to make send DNS queries to stubby.
GNOME Desktop
Click the Network Manager icon on the upper-right corner of your desktop. Then select wired settings. (If you are using Wi-fi, select Wi-fi settings.)
Click the gear button.
Select tab, then in DNS settings, switch to OFF, which will prevent your Ubuntu system from getting DNS server address from your router. Enter in the DNS field. Click button to save your changes.
Then restart NetworkManager for the changes to take effect.
sudo systemctl restart NetworkManager
Once you are reconnected, you can see that your Ubuntu system is now using 127.0.0.1 as the DNS server in the tab.
Unity Desktop
Recommended reading: how to install Unity desktop environment on Ubuntu 20.04/18.04.
Click the Network Manager icon on the upper-right corner of your desktop, then click .
Select your connection name and click the gear icon.
Select IPv4 settings tab, change method from to , which will prevent your Ubuntu system from getting DNS server address from your router. Then specify a DNS server (127.0.0.1). Stubby listens on 127.0.0.1.
Save your changes. Then restart NetworkManager for the changes to take effect.
sudo systemctl restart NetworkManager
Once you are reconnected, click the Network Manager icon again and select . You can see that your Ubuntu system is now using 127.0.0.1 as the DNS server.
Сценарии развертывания
DoH используется для рекурсивного разрешения DNS резольверами DNS . Резолверы ( клиенты DoH ) должны иметь доступ к серверу DoH, на котором размещена конечная точка запроса.
Распространены три сценария использования:
- Использование реализации DoH в приложении: некоторые браузеры имеют встроенную реализацию DoH и, таким образом, могут выполнять запросы, минуя функции DNS операционной системы. Недостатком является то, что приложение может не информировать пользователя, если оно пропускает запрос DoH, либо из-за неправильной конфигурации, либо из-за отсутствия поддержки DoH.
- Установка прокси-сервера DoH на сервере имен в локальной сети: в этом сценарии клиентские системы продолжают использовать традиционный (порт 53 или 853) DNS для запроса сервера имен в локальной сети, который затем соберет необходимые ответы через DoH, достигнув DoH-серверы в Интернете. Этот метод прозрачен для конечного пользователя.
- Установка прокси-сервера DoH в локальной системе: в этом сценарии операционные системы настроены для запроса локально работающего прокси-сервера DoH. В отличие от ранее упомянутого метода, прокси-сервер необходимо установить в каждой системе, желающей использовать DoH, что может потребовать больших усилий в более крупных средах.
Как настроить DNS через HTTPS в Windows 10
Следует отметить, что, хотя у нас есть поддержка DNS через HTTPS (DoH), начиная с предварительных версий Windows 10, эта функция по умолчанию не включена. Если мы хотим использовать DoH при выполнении DNS-запросов в ваших приложениях или браузерах, мы можем включить его вручную из Параметры или путем настройки реестра Windows.
Если мы хотим использовать его, мы должны находиться в канале разработки программы Windows Insider, а также иметь обновленную операционную систему до версии 19628 или выше. Чтобы включить DNS через HTTPS в версиях Windows 10, мы должны выполнить следующие действия:
- В соединениях Ethernet (соединения сетевого кабеля) откройте «Конфигурация, Сеть и Интернет» и выберите «Статус». Затем мы нажимаем «Свойства» и выбираем «Изменить параметры DNS».
- Для Wi-Fi (беспроводных) подключений откройте страницу сети и щелкните ссылку свойств адаптера, затем выберите «Изменить параметры DNS».
После того, как эти операции будут выполнены, появится такой экран:
Вот список DNS-серверов через HTTPS (DoH), которые мы можем использовать в системах Windows 10, в зависимости от того, используете ли вы сетевой протокол IPv4 или IPv6.
Ожидается, что, если все пойдет хорошо, эта функция появится в конце этого года или в начале следующего в версиях Windows 10 для всех пользователей, но в настоящее время она доступна только в разрабатываемой версии.
Риски
- Некоторые люди и организации полагаются на DNS для блокировки вредоносных программ, работы родительского контроля или фильтрации доступа вашего браузера к веб-сайтам. Будучи включён, DoH обходит ваш DNS-резолвер и ломает эти специальные политики. При включении DoH по умолчанию для пользователей, Firefox позволяет пользователям (через настройки) и организациям (через корпоративные политики и запросы к канареечным сайтам) отключить DoH, когда он препятствует предпочитаемой политике.
- Когда DoH включен, Firefox по умолчанию направляет DoH-запросы на DNS-сервера, которыми управляет доверенный партнёр, который имеет возможность видеть запросы пользователей. В Mozilla действует строгая политика для Надёжных рекурсивных резолверов (TRR), которая запрещает нашим партнёрам собирать персональную идентифицирующую информацию. Чтобы снизить этот риск, наши партнёры обязаны подписать договор, чтобы соответствовать этой политике.
- DoH может работать медленнее традиционных DNS-запросов, но при тестировании мы обнаружили, что воздействие минимально, а во многих случаях DoH быстрее.
О нашем развёртывании DNS через HTTPS
В 2019 году мы завершили развёртывание DoH для всех пользователей Firefox для ПК в Соединённых Штатах. В настоящий момент мы работаем над развёртыванием DoH большем количестве страны. При этом DoH включен для пользователей в режиме «резервирования». Например, если поиск по доменному имени с помощью DoH по какой-либо причине окажется неуспешным, Firefox будет возвращаться к использованию DNS по умолчанию, сконфигурированному операционной системой (ОС) вместо отображения ошибки.
Выход из участия
Для существующих пользователей Firefox, расположенных в местах, где мы развернули DoH по умолчанию, будет показываться уведомление, показанное ниже, когда и если DoH будет задействован впервые, позволяя пользователям отказаться от использования DoH и вместо этого продолжить использование DNS-резолвера ОС по умолчанию.
В дополнение к этому Firefox будет проверять определённые функции, которые могут быть задеты при включении DoH, включая:
- Включён ли родительский контроль?
- Фильтрует ли DNS-сервер по умолчанию потенциально вредоносное содержимое?
- Управляется ли устройство организацией, у которой может функционировать особая конфигурация DNS?
Если в ходе какиъ-либо из этих тестов будет определено, что DoH может помешать данным функциям, DoH включён не будет. Эти тесты будут запускаться каждый раз, когда устройство подсоединяется к другой сети.
Включение и отключение DNS через HTTPS вручную
Вы можете включить или отключить DoH в параметрах сети Firefox:
-
На Панели меню в верхней части экрана щёлкните Firefox и выберите Настройки.
Нажмите на кнопку меню и выберите НастройкиНастройки.Нажмите на кнопку меню и выберите Настройки. - На панели Основные прокрутите вниз до Настройка сети и щёлкните по кнопке Настроить….
- В открывшемся диалоговом окне прокрутите до Включить DNS через HTTPS.
- Включить: Отметьте флажок Включить DNS через HTTPS. Выберите поставщика или настройте пользовательский поставщик.
- Выключить: Снимите флажок Включить DNS через HTTPS.
- Щёлкните по кнопке OK, чтобы сохранить изменения и закрыть окно.
Переключение провайдеров
-
На Панели меню в верхней части экрана щёлкните Firefox и выберите Настройки.
Нажмите на кнопку меню и выберите НастройкиНастройки.Нажмите на кнопку меню и выберите Настройки. - Прокрутите до Параметры сети и щёлкните по кнопке Настроить….
- Щёлкните по выпадающему меню Используемый провайдер под Включить DNS через HTTPS, чтобы выбрать провайдера.
- Щёлкните по OK, чтобы сохранить изменения и закрыть окно.
Исключение отдельных доменов
Вы можете настроить исключения, для которых Firefox будет использовать ресолвер вашей ОС вместо DoH:
-
Введите about:config в адресной строке и нажмите EnterReturn. Может появиться страница с предупреждением. Щёлкните по Я принимаю на себя риск!Принять риск и продолжить, чтобы перейти на страницу about:config.
- Найдите network.trr.excluded-domains.
- Щёлкните по кнопке Изменить рядом с параметром.
- Добавьте домены, разделённые запятыми, в список и щёлкните по флажку , чтобы сохранить изменения.Примечание: Не удаляйте никакие домены из списка.
О дочерних доменах: Firefox будет проверять все домены, которые вы перечислили в network.trr.excluded-domains и соответствующие им дочерние домены. Например, если вы введёте example.com, Firefox также исключит и www.example.com.
Соображения по реализации
Многие проблемы, связанные с правильным развертыванием DoH, все еще решаются интернет-сообществом, включая, помимо прочего:
- Запрет сторонним лицам анализировать DNS-трафик в целях безопасности
- Нарушение родительского контроля на уровне DNS и фильтров контента
- Разделение DNS в корпоративных сетях
- CDN локализация
Анализ DNS-трафика в целях безопасности
DoH может препятствовать анализу и мониторингу DNS-трафика в целях кибербезопасности; DDoS- червь 2019 года Godlua использовал DoH для маскировки подключений к своему командному серверу.
В январе 2021 года АНБ предупредило предприятия от использования внешних преобразователей DoH, поскольку они предотвращают фильтрацию, проверку и аудит DNS-запросов. Вместо этого NSA рекомендует настраивать корпоративные преобразователи DoH и блокировать все известные внешние преобразователи DoH.
Нарушение фильтров контента
DoH использовался для обхода родительского контроля, который работает на (незашифрованном) стандартном уровне DNS; Circle, маршрутизатор родительского контроля, который использует DNS-запросы для проверки доменов на соответствие черным спискам, из-за этого по умолчанию блокирует DoH. Однако есть поставщики DNS, которые предлагают фильтрацию и родительский контроль, а также поддержку DoH, используя серверы DoH.
Ассоциация интернет-провайдеров (ISPA) — торговая ассоциация, представляющая британских интернет-провайдеров — а также британский фонд Internet Watch Foundation раскритиковали Mozilla , разработчика веб-браузера Firefox , за поддержку DoH, поскольку они считают, что это подорвет программы веб-блокировки в страны, включая фильтрацию контента для взрослых по умолчанию, установленную интернет-провайдером, и обязательную фильтрацию нарушений авторских прав по решению суда. ISPA номинировало Mozilla на награду «Интернет-злодей» на 2019 год (наряду с Директивой ЕС об авторском праве на едином цифровом рынке и Дональдом Трампом ) «за предложенный подход к внедрению DNS-over-HTTPS таким образом, чтобы обойти Обязательства Великобритании по фильтрации и родительскому контролю, подрывающие стандарты интернет-безопасности в Великобритании ». Mozilla ответила на обвинения ISPA, заявив, что это не предотвратит фильтрацию, и что они были «удивлены и разочарованы тем, что отраслевая ассоциация интернет-провайдеров решила представить в ложном свете улучшение устаревшей интернет-инфраструктуры». В ответ на критику ISPA извинилась и отозвала номинацию. Впоследствии Mozilla заявила, что DoH не будет использоваться по умолчанию на британском рынке до дальнейшего обсуждения с соответствующими заинтересованными сторонами, но заявила, что он «обеспечит реальные преимущества безопасности гражданам Великобритании».
Несогласованное развертывание DoH
Некоторые развертывания DoH не являются зашифрованными сквозным шифрованием , а скорее зашифрованы только по шагам, поскольку DoH развертывается только в подмножестве подключений. Различают следующие типы подключений:
- с клиентского устройства (компьютера или планшета) на локальный DNS-сервер пересылки (домашний или офисный маршрутизатор)
- от сервера пересылки DNS к рекурсивному преобразователю DNS (обычно у интернет-провайдера)
- от рекурсивного преобразователя DNS к авторитетному преобразователю DNS (обычно расположенному в центре обработки данных)
Каждое соединение в цепочке должно поддерживать DoH для максимальной безопасности.
How to Check if Your DNS Traffic is Encrypted
We can use WireShark to monitor DNS traffic. Install WireShark from Ubuntu 20.04/18.04 repository.
sudo apt install wireshark
If you are asked “Should non-superusers be able to capture packets?”, answer Yes. Once it’s installed, run the following command to add your user account to the wireshark group so that you can capture packets.
sudo adduser your-username wireshark
Log out and log back in for the changes to take effect. Then open WireShark from your application menu, select your network interface in WireShark. For example, my Ethernet interface name is enp5s0. Then enter as the capture filter. This will make WireShark only capture traffic on port 853, which is the port used by DNS over TLS.
Click the button on the upper-left corner to start capturing. After that, in terminal window, run the following command to query domain name by using the utility. For instance, I can query the A record of my domain name.
dig A linuxbabe.com
Now you can see the captured DNS traffic in WireShark. As you can see, my DNS query was sent to , and , which are the 3 default DNS resolvers defined in stubby configuration file. Connections were made over TCP and encrypted with TLS, which is what I want.
If DNS queries are sent without encryption, then the computer would contact DNS server on port 53. You can capture packets again with as the capture filter, but you won’t see any packets in WireShark, which means stubby is encrypting your DNS queries.
DNS over HTTPS
Здесь резонно задаться вопросом: а в чем вообще тут может быть проблема? Чем больше безопасности, тем лучше, разве не так?
Ответ на этот вопрос лежит в нюансах выбранных решений, их сильных и слабых сторонах. А именно в том, как новая технология взаимодействует с разными участниками системы DNS, кого из них ее разработчики считают условно заслуживающими доверия, а кого — источниками угрозы. И речь сейчас даже не о хакерах-злоумышленниках, имеющих откровенно преступные цели.
Речь о том, что между пользовательским устройством и конечным сайтом находятся посредники. Администратор сети, файрвол, провайдер интернета — все они могут в своих интересах взаимодействовать с системой DNS, задавая своим резолверам имен DNS настройки того, какие запросы отслеживать, блокировать, модифицировать. Так можно встраивать рекламу, отсекать вредоносный контент, не пускать на определенные ресурсы…
Путь запроса от клиента до сервера может проходить через множество резолверов
DoT, работая через TLS с его системой сертификатов доверия, точно так же нуждается в DNS-резолвере, которому он сможет доверять. Присутствует гибкая возможность настройки списка доверенных резолверов, возможность централизованного изменения настроек в предварительно доверенной (например, корпоративной) среде, а также возможность переключаться обратно на базовый DNS, если с новой версией возникнут проблемы.
Поскольку для DoT используется новый, выделенный порт, возможно заметить передаваемый трафик и наблюдать за его объемами, шифрование этому никак не помешает. При желании можно даже заблокировать его вовсе.
В общем, DoT нужно грамотно настроить, но зато он содержит некоторые крайне полезные для системных администраторов и сетевых инженеров функции. Поэтому многие из профессионалов и хвалят за это DoT.
С DoH история другая. Эта технология разрабатывалась с расчетом на пользовательские приложения, а именно — браузеры. Это ключевая деталь во всей этой истории. Означает она вот что. При использовании DoH весь трафик, который не относится к браузерам, идет через базовый DNS, но браузерный трафик при этом обходит любые настройки DNS — на уровне операционной системы, локальной сети, провайдера — и, минуя промежуточные этапы, по HTTPS попадает сразу к поддерживающему DoH резолверу DNS.
И к этой схеме есть ряд серьезных вопросов.
Технические подробности
DoH — это предлагаемый стандарт, опубликованный IETF как RFC 8484 (октябрь 2018 г.) . Он использует HTTP / 2 и HTTPS и поддерживает данные ответа DNS в проводном формате , возвращенные в существующих ответах UDP, в полезной нагрузке HTTPS с типом MIME application / dns-message . Если используется HTTP / 2, сервер может также использовать HTTP / 2 server push для отправки значений, которые, как он ожидает, клиент может заранее найти полезными.
Поскольку DoH не может использоваться при некоторых обстоятельствах, например, на связанных порталах , веб-браузеры, такие как Firefox, могут быть настроены для возврата к небезопасному DNS.
Зачем включать DNS over HTTPS?
Когда вы посещаете какой-либо ресурс, ваш компьютер сначала должен найти адрес сервера этого сайта. Поэтому он посылает запрос на DNS-сервер с просьбой указать IP-адрес, который привязан к введенному вами адресу. До недавнего времени такой запрос мог отправляться только в незашифрованном виде. Это означает, что третьи лица теоретически могут прочитать его и выяснить, куда вы пытаетесь перейти, даже если ваше подключение к серверу шифруется с помощью HTTPS.
DNS over HTTPS просто использует протокол HTTPS для шифрования вашего DNS запроса, поэтому он не может быть прочитан. Это в значительной степени упрощает процесс перехода к более безопасному и конфиденциальному режиму работы. Он не очень популярен среди служб, которые хотят блокировать веб-трафик с помощью фильтрации DNS, но это уже совсем другое дело.
Включаем DoH в браузере
В настоящий момент, поддержка протокола DNS over HTTPS реализована во всех веб-браузерах. Главное — обновить его до самой последней, актуальной версии.
Google Chrome
В адресной строке вводим вот такой URL-адрес:
chrome://flags/#dns-over-https
Нажимаем клавишу «Enter» и попадаем вот на такую страницу:
Первым будет параметр «Secure DNS Lookups» — он то нам и нужен. Напротив него в выпадающем списке выбираем пункт Enable и перезапускаем приложение.
Opera
В браузере Opera порядок действий такой же, как и в хроме, только URL-запрос нужно вводить вот такой:
opera://flags/#opera-doh
Искомый параметр называется «Secure DNS». Вот он:
Ставим ему значение Enable и перезапускаем Оперу. После этого браузер будет использовать ДНС-сервер Cloudflare 1.1.1.1 через защифрованное соединение.
Microsoft Edge
С этим браузером получилось интересней всего. Старая платформа ( версия 44 и ниже) не умеют работать с DNS over HTTPS. Поэтому сначала надо сходить на сайт Майкрософта и обновить Edge до версии 80 и выше, которая построена уже на движке Chromium.
В адресную строку вводим URL:
edge://flags/#dns-over-https
Параметру «Secure DNS lookups» ставим значение «Enable» и нажимаем на кнопку «Restart» внизу странички чтобы перезапустить браузер.
Mozilla Firefox
Чтобы настроить DNS over HTTPS в браузере Firefox, нужно зайти в его настройки и в поиске по параметрам ввести запрос — dns:
В результатах видим, что нужно зайти в параметры сети. Кликаем на кнопку «Настроить» и видим вот такое окно: