DNS, VPN и Smart DNS: что подходит именно вам?
В большинстве стран существуют специальные ограничения, которые могут нарушить потоковое вещание. Но в противовес этому существуют инструменты DNS, VPN и Smart DNS, которые помогут вам наслаждаться любимыми сериалами, находясь где угодно.
Что такое DNS?
DNS подобны адресным книгам интернета. Вы получаете доступ к сайтам через доменные имена, но эти доменные имена преобразуются в IP-адреса, используемые компьютерами DNS. Затем ваш браузер обрабатывает URL-адрес и подключает вас к сайту. DNS хранят эти IP-адреса, поэтому вам не придется запоминать их. Их миллионы, и без DNS в интернете был бы дикий беспорядок.
Что такое Smart DNS?
Служба Smart DNS заменяет DNS адрес, предоставленный провайдером интернет-услуг, другим адресом для другого сервера. Местоположение зависит от серверной инфраструктуры провайдера. Это позволяет получить доступ к гео-заблокированному контенту, поскольку сайт считает, что вы находитесь в другом месте. Важно отметить, что это не дает вам новый IP-адрес — это просто меняет то, как сайт видит ваш IP.
Лучший DNS для использования
Как правило, все ваши устройства используют DNS-серверы, предоставляемые вашим провайдером, что удобно, но позволяет вашему провайдеру отслеживать то, что вы делаете. Но вы можете выбрать другого DNS провайдера, но всегда нужно учитывать следующие аспекты при выборе одного из них:
Тем не менее, трудно найти сервис, который обеспечивал бы все эти преимущества.
Smart DNS
При сравнении служб DNS и VPN следует учитывать следующее:
VPN против DNS: что лучше для безопасной потоковой передачи видео?
В последние годы наблюдается числа сервисов, предназначенных для предоставления вам доступа к гео-ограниченному контенту. географических ограничений географических ограничений из любой точки мира.
Первоначально VPN были в моде. Но с подавлением VPN такими службами, как Netflix и BBC iPlayer, некоторые пользователи вместо этого обратились к провайдерам Smart DNS. Для людей, которые отчаянно пытаются получить доступ к таким приложениям, у них есть свои плюсы и минусы.
Разумеется, смена DNS-серверов или использование VPN может иметь исключительные преимущества за пределами мира геоблокировки. Тем не менее, многие пользователи не будут заботиться об этих преимуществах.
Чтобы помочь вам, я сосредоточусь на двух решениях, особенно с точки зрения того, кто использует их для доступа к заблокированному контенту. Кто они такие? Как они работают? И, самое главное, какое влияние они оказывают на вашу онлайн-безопасность? Продолжайте читать, чтобы узнать.
Что такое VPN?
VPN (виртуальная частная сеть) позволяет удаленно подключаться к защищенной частной сети. Они широко используются компаниями для предоставления сотрудникам доступа к базам данных и критически важным бизнес-приложениям, когда они находятся вне офиса.
Подключение к VPN (например, ExpressVPN или любому провайдеру из нашего списка лучших VPN) ) перенаправит весь ваш интернет-трафик в новую сеть, и вы сможете эффективно просматривать эту сеть.
В дополнение к обходу геоблокировок, VPN значительно улучшают вашу онлайн-безопасность и конфиденциальность. В эпоху, когда кажется, что каждая компания в мире пытается получить доступ к вашим данным и истории просмотров, каждый должен использовать их.
Что такое DNS?
DNS означает «Система доменных имен». Это как телефонная книга Интернета. DNS-серверы отвечают за сопряжение веб-доменов (например, google.com ) с базовым IP-адресом сайта.
Таким образом, смена вашего DNS-провайдера со службы вашего интернет-провайдера по умолчанию может принести удивительные преимущества, включая более быстрый просмотр, родительский контроль и усиленную технологию безопасности.
В отличие от обычного DNS, интеллектуальный DNS направляет пользователей на прокси-сервер, который специально разработан для разблокировки ограниченного содержимого.
Как VPN помогают получить доступ к ограниченному контенту?
При подключении к VPN ваш компьютер работает так, как будто находится в физическом расположении сети VPN. Что еще более важно, веб-сайты видят IP-адрес в определенном месте и автоматически предполагают, что вы находитесь там.
Например, если вы живете в Великобритании и подключаетесь к VPN в Соединенных Штатах, на веб-сайтах будет отображаться американская версия сайта.
В чем проблема с VPN?
В последние пару лет сайты, которые предлагают потоковое содержимое, начали блокировать пользователей в VPN.
Это удивительно просто: компании сопоставляют список IP-адресов, используемых провайдерами VPN, и блокируют любой трафик, исходящий от них.
Конечно, некоторые IP-адреса всегда будут проскальзывать через трещины, в результате чего между контент-провайдерами и VPN-компаниями возникнет игра.
Как DNS-серверы помогают получить доступ к ограниченному контенту?
С постоянно снижающейся надежностью VPN для доступа к геоблокированному контенту пользователи переходят на интеллектуальных DNS-провайдеров.
Принцип тот же, что и для VPN: и ваш компьютер, и веб-сайты, которые вы посещаете, обманывают себя, думая, что вы не в том месте, где вы находитесь. Однако, хотя эффект для пользователя одинаков, основной процесс сильно отличается.
Интеллектуальный DNS получит информацию о местоположении пользователя и изменит ее на новое местоположение перед разрешением IP-запроса. Это делается путем маршрутизации всего вашего трафика через выделенный прокси-сервер. Сервер находится в стране, где находится веб-сайт, который вы хотите посетить.
Последствия VPN для безопасности
Если вы используете VPN, самое большое преимущество — зашифрованный трафик. Хакер не сможет увидеть, что вы делаете в Интернете, и ваш провайдер тоже. Он проходит через безопасный туннель к сети VPN и никем не будет виден, пока не войдет в общедоступный Интернет. И помните, что если вы посещаете только HTTPS-сайты, ваш просмотр всегда будет зашифрован.

Наиболее защищенные VPN даже не будут анонимно регистрировать трафик. Теоретически, журналы могут позволить провайдеру VPN сопоставлять IP-адрес и метку времени одному из своих клиентов. Если провайдер оказывается в конце судебного разбирательства, потому что некоторые из его пользователей обращаются к нелегальному контенту или скачивают защищенные авторским правом видео, компания потенциально может довольно быстро «свернуть» и отказаться от любой имеющейся у них информации.
Последствия Smart DNS для безопасности
Умные DNS-серверы не являются мерами безопасности. Да, некоторые ведущие DNS-провайдеры внедряют такие технологии, как DNS-over-HTTPS и DNSSEC, но вы не найдете этих функций в сервисах, которые сосредоточены исключительно на фальсификации вашего местоположения.
Самое главное, DNS-серверы не шифруют ваши данные. Это значительно увеличивает их скорость по сравнению с VPN (что является большой причиной их популярности среди перерезателей кабелей), но они не будут скрывать ваш трафик от компаний, веб-сайтов, вашего интернет-провайдера, правительств или кого-либо еще, кто хочет шпионить за ты. В конечном итоге весь ваш трафик регистрируется по вашему IP-адресу, и любой, у кого есть нужные инструменты, может просмотреть его.

Вы также подвергаете себя риску от атак «человек посередине». атака «человек посередине» (MITM). Атаки MITM происходят, когда злоумышленник перехватывает и изменяет любой трафик между двумя сторонами, которые считают, что они напрямую общаются друг с другом.
DNS-серверы являются одним из основных способов запуска MITM-атак хакерами. Недобросовестному интеллектуальному провайдеру DNS очень легко предложить самые низкие цены, а затем совершить угон DNS всем своим клиентам. Не смотрите дальше, чем сейчас печально известный инцидент с Hola VPN, чтобы увидеть, насколько низки некоторые люди готовы опуститься в погоне за прибылью.
Прежде чем подписаться на интеллектуального поставщика DNS, потратьте несколько часов на тщательное изучение политики конфиденциальности компании. Это поможет пролить свет на то, что ваш провайдер регистрирует, что он знает о вас, и получает ли он прибыль от ваших данных.
Тем не менее, пользователи также должны использовать VPN-сервис. Если вы цените свою конфиденциальность и безопасность, лучшего способа обезопасить себя в Интернете не существует. Помните, что интеллектуальные DNS-провайдеры не помогают вашей безопасности — они мешают ей.
Используете ли вы VPN или умные DNS для обхода геоблокируемого контента? Почему вы выбрали именно ваш подход? Как всегда, вы можете оставить все свои мысли и мнения в разделе комментариев ниже.
Кредиты изображений: Андрей_Попов / Shutterstock
Как скрыть Реальный DNS и почему его видно
После подключения VPN всегда проверяйте уровень своей анонимности в сети с помощью сервиса whoer.net. Одним из врагов анонимности является утечка реального DNS, при этом виден не только ваш DNS, но и страна, где вы фактически находитесь.
При выполнении команд ping и tracert вы можете заметить, что при вводе в командной строке (подробнее о ней вы можете прочитать в нашей статье)
обмен пакетами производится с узлом yandex.ru [77.88.55.88]. То есть обращение идет к одному из серверов Яндекса с ip 77.88.55.88.
Как компьютер «узнает» IP сервера Яндекса, чтобы обратиться к нему? Именно здесь мы видим работу службы DNS. Адреса сайтов вида yandex.ru, google.com, facebook.com и другие на самом деле адресами не являются. Чтобы у вас на экране открылась страница нужного сайта, необходимо чтобы DNS «нашла» ip адрес искомого сайта и передала его вашему компьютеру.
Что значит DNS?
DNS (Domain Name System) – это система доменных имен. Она связывает названия сайтов с IP-адресами, на которых располагаются страницы этого сайта.
В начале пути развития интернета роль системы доменных имен выполнял файл hosts. В этом файле были тысячи строк, в каждой из которых через пробел были прописаны IP адрес и соответствующее ему имя сайта. При вводе адреса сайта, например, whoer.net шло обращение к файлу hosts. После того как соответствие IP введенному имени сайта находилось, в браузере открывался искомый сайт. Это было возможно ввиду небольшого количества сайтов на тот момент.
В связи со стремительным ростом количества сайтов в интернете, на смену файлу hosts пришла служба dns. Именно она используется сегодня для адресации в сети.
Что происходит после того как вы ввели имя сайта в адресной строке браузера?
После того как вы ввели имя сайта в браузере, происходит обращение к файлу hosts, в идеале в нем содержится только одна строчка
Далее запрос отправляется DNS серверу вашего интернет-провайдера. Если информация о сайте не была найдена на этом DNS сервере, обращение производится к первичному DNS серверу.
Что такое DNS-сервер
DNS-сервер, как и любой сервер, это компьютер в интернете, который хранит сведения о соответствии адресов сайтов IP адресам серверов.
Как мы уже сказали, в первую очередь происходит обращение к ближайшему DNS серверу. На нем хранится история запросов или кэш. Кэш служит для сокращения времени ответа на запрос с компьютера пользователя.
Одному сайту могут соответствовать несколько IP-адресов в базе DNS. Чаще всего это делается с целью обеспечения доступности сайта в любой момент времени. Настройка DNS сервера определяет порядок выдачи IP-адреса из списка. Поэтому при нескольких обращениях на DNS сервер с целью получения ip адреса yandex.ru вам каждый раз могут приходить различные результаты.
Почему при смене IP виден ваш реальный днс
Для определения IP, DNS и уровня вашей анонимности, можно воспользоваться сервисом whoer.net. При использовании для смены IP-адреса VPN, и в особенности браузера TOR и анонимайзеров нередки ситуации, когда соединение происходит не через DNS сервер поставщика IP, а через сервер вашего провайдера, выдавая через DNS ваше реальное местоположение. Анонимность при этом находится на низком уровне.
TOR и анонимайзеры в принципе не следят за подменой DNS, а различие IP и DNS при использовании VPN может быть связано с особенностью работы службы DNS Windows. При использовании VPN все запросы в первую очередь посылаются на DNS сервер поставщика VPN. Если ответ не был получен в течение 2 секунд, запрос направляется к ближайшему к вам DNS серверу. Именно эти сервера и выдают ваше реальное местоположение. Задержка ответа от DNS сервера поставщика VPN может происходить из-за низкого качества интернет-соединения или удаленности DNS сервера поставщика VPN.
Сервис определения утечки DNS от Whoer.net
Еще одной проблемой является отсутствие защиты данных при передаче запроса на DNS-серверы. DNS-трафик не шифруется, а значит кто угодно имеет возможность посмотреть откуда и к какому сайту был отправлен запрос. При использовании публичных незащищенных DNS-серверов, кто угодно может перехватить передаваемую на них информацию, а так же подменить url и отправить пользователя на фишинговый сайт. Кроме того, информация с публичных серверов нередко собирается и перепродается.
На портале whoer.net есть удобный сервис отслеживания утечек днс. На него можно зайти с любой страницы через Главное меню, либо перейти по ссылке.
Тест утечки DNS от Whoer.net наглядно показывает используемые DNS-серверы и наличие уязвимости.
Что делать, если утечка обнаружена и вы хотите устранить уязвимость? Вы можете использовать надежный VPN-сервис с защищенными серверами.
Как обойти dns отслеживание при использовании VPN
Для предотвращения утечки DNS при использовании VPN вы можете:
Whoer VPN подменяет одновременно IP и DNS, используя собственные быстрые защищенные DNS-серверы. Страны IP и DNS при этом всегда будут совпадать, чтобы не вызывать подозрений у посещаемых вами сайтов.
DNS-серверы Whoer VPN гарантируют безопасность и надежность соединения, сервис не ведет логов, и вся переданная информация и данные соединения остаются строго конфиденциальными.
Заключение
Теперь вы знаете, что скрывается за аббревиатурой DNS и как осуществляется адресация в сети интернет. Надеемся, наши советы помогут вам повысить уровень своей анонимности в сети. Как добиться 100% анонимности в сервисе whoer.net вы можете почитать тут. Ждем ваших вопросов в комментариях.
Как спрятать DNS-запросы от любопытных глаз провайдера
Настройка 1.1.1.1 от Cloudflare и других DNS-сервисов по-прежнему требует навыков работы в командной строке

Шифрование трафика между вашим устройством и DNS-сервисом помешает посторонним лицам отслеживать трафик или подменить адрес
Смерть сетевого нейтралитета и ослабление правил для интернет-провайдеров по обработке сетевого трафика вызвали немало опасений по поводу конфиденциальности. У провайдеров (и других посторонних лиц, которые наблюдают за проходящим трафиком) уже давно есть инструмент, позволяющий легко отслеживать поведение людей в интернете: это их серверы доменных имен (DNS). Даже если они до сих пор не монетизировали эти данные (или не подменяли трафик), то наверняка скоро начнут.
DNS — это телефонный справочник Сети, выдающий фактический сетевой адрес IP, связанный с хостингом и доменными именами сайтов и других интернет-служб. Например, он превращает arstechnica.com в 50.31.169.131. Ваш интернет-провайдер предлагает DNS в пакете услуг, но он также может журналировать DNS-трафик — по сути, записывать историю ваших действий в интернете.
«Открытые» DNS-сервисы позволяют обходить сервисы провайдеров ради конфиденциальности и безопасности, а кое в каких странах — уклоняться от фильтрации контента, слежки и цензуры. 1 апреля (не шутка) компания Cloudflare запустила свой новый, бесплатный и высокопроизводительный DNS-сервис, предназначенный для повышения конфиденциальности пользователей в интернете. Он также обещает полностью скрыть DNS-трафик от посторонних глаз, используя шифрование.
Названный по своему IP-адресу, сервис 1.1.1.1 — это результат партнёрства с исследовательской группой APNIC, Азиатско-Тихоокеанским сетевым информационным центром, одним из пяти региональных интернет-регистраторов. Хотя он также доступен как «открытый» обычный DNS-резолвер (и очень быстрый), но Cloudflare ещё поддерживает два протокола шифрования DNS.
Хотя и разработанный с некоторыми уникальными «плюшками» от Cloudflare, но 1.1.1.1 — никак не первый DNS-сервис с шифрованием. Успешно работают Quad9, OpenDNS от Cisco, сервис 8.8.8.8 от Google и множество более мелких сервисов с поддержкой различных схем полного шифрования DNS-запросов. Но шифрование не обязательно означает, что ваш трафик невидим: некоторые службы DNS с шифрованием всё равно записывают ваши запросы в лог для различных целей.
Cloudflare пообещал не журналировать DNS-трафик и нанял стороннюю фирму для аудита. Джефф Хастон из APNIC сообщил, что APNIC собирается использовать данные в исследовательских целях: диапазоны 1.0.0.0/24 и 1.1.1.0/24 изначально были сконфигурированы как адреса для «чёрного» трафика. Но APNIC не получит доступ к зашифрованному трафику DNS.
Для пользователей подключить DNS-шифрование не так просто, как изменить адрес в настройках сети. В настоящее время ни одна ОС напрямую не поддерживает шифрование DNS без дополнительного программного обеспечения. И не все сервисы одинаковы с точки зрения софта и производительности.
Но учитывая важность вопроса — в последнее время во всех новостях говорят о превращении пользовательских данных в продукт — я решил посмотреть, как работает DNS-шифрование у Cloudflare. В итоге моя внутренняя лабораторная крыса победила — и я обнаружил, что тестирую и разбираю клиенты для нескольких провайдеров DNS через три протокола DNS-шифрования: DNSCrypt, DNS по TLS и DNS по HTTPS. Все они работоспособны, но предупреждаю: хотя процедура становится проще, но вряд ли вы сможете объяснить шифрование DNS родителям по телефону (если только они не опытные пользователи командной строки Linux).
Как работает DNS
Зачем мы это делаем?
Есть много причин для лучшей защиты DNS-трафика. Хотя веб-трафик и другие коммуникации могут быть защищены криптографическими протоколами, такими как Transport Layer Security (TLS), но почти весь трафик DNS передаётся незашифрованным. Это означает, что ваш провайдер (или кто-то другой между вами и интернетом) может регистрировать посещаемые сайты даже при работе через сторонний DNS — и использовать эти данных в своих интересах, включая фильтрацию контента и сбор данных в рекламных целях.

Как выглядит типичный обмен данными между устройством и DNS-резолвером
«У нас есть проблема “последней мили” в DNS, — говорил Крикет Лю, главный архитектор DNS в компании Infoblox, которая занимается информационной безопасностью. — Большинство наших механизмов безопасности решают вопросы коммуникаций между серверами. Но есть проблема с суррогатами резолверов на различных операционных системах. В реальности мы не можем их защитить». Проблема особенно заметна в странах, где власти более враждебно относятся к интернету.
В некоторой степени помогает использование DNS, который не ведёт логи. Но это всё равно не мешает злоумышленнику фильтровать запросы по контенту или перехватывать адреса методом пакетного перехвата или глубокой инспекции пакетов. Кроме пассивной прослушки есть угроза более активных атак на ваш DNS-трафик — спуфинг DNS-сервера со стороны провайдера или спецслужб с перенаправлением на собственный сервер для отслеживания или блокировки трафика. Что-то подобное (хотя, по-видимому, не злонамеренно), похоже, происходит со случайным перенаправлением трафика на адрес 1.1.1.1 из сети AT&T, судя по сообщениям на форумах DSLReports.
Наиболее очевидный способ уклонения от слежки — использование VPN. Но хотя VPN скрывают содержимое вашего трафика, для подключения к VPN может потребоваться запрос DNS. И в ходе VPN-сеанса запросы DNS тоже могут иногда направляться веб-браузерами или другим софтом за пределы VPN-тоннеля, создавая «утечки DNS», которые раскрывают посещённые сайты.
Вот где вступают в игру протоколы шифрования DNS: это DNSCrypt (среди прочих, его поддерживает OpenDNS от Cisco), DNS по TLS (поддерживается Сloudflare, Google, Quad9, OpenDNS) и DNS по HTTPS (поддерживается Сloudflare, Google и сервисом блокировки «взрослого» контента CleanBrowsing). Шифрование гарантирует, что трафик не просканируют и не изменят, и что запросы не получит и не обработает поддельный DNS-сервер. Это защищает от атак MiTM и шпионажа. DNS-прокси с одной из этих служб (непосредственно на устройстве или на «сервере» в локальной сети) поможет предотвратить DNS-утечки через VPN, поскольку прокси-сервер всегда будет самым быстрым DNS-сервером среди всех доступных.
Однако эта опция защиты недоступна массовому пользователю. Ни один из этих протоколов нативно не поддерживается ни одним DNS-резолвером, который идёт в комплекте с ОС. Все они требуют установки (и, вероятно, компиляции) клиентского приложения, которое действует как локальный «сервер» DNS, ретранслируя запросы, сделанные браузерами и другими приложениями вверх по течению к безопасному провайдеру DNS по вашему выбору. И хотя две из трёх данных технологий предлагаются на роль стандартов, ни один из проверенных нами вариантов пока не представлен в окончательном виде.
Поэтому если хотите погрузиться в шифрование DNS, то лучше взять для DNS-сервера в домашней сети Raspberry Pi или другое отдельное устройство. Потому что вы наверняка обнаружите, что настройка одного из перечисленных клиентов — это уже достаточно хакерства, чтобы не захотеть повторять процесс заново. Проще запросить настройки DHCP по локальной сети — и указать всем компьютерам на одну успешную установку DNS-сервера. Я много раз повторял себе это во время тестирования, наблюдая падение одного за другим клиентов под Windows и погружение в спячку клиентов под MacOS.

Сообщество DNSCrypt пыталось сделать доступный инструмент для тех, кто не обладает навыками работы в командной строке, выпустив программы DNSCloak (слева) под iOS и Simple DNSCrypt (справа) под Windows
Шифруемся
Для полноты картины в исторической перспективе начнём обзор с самой первой технологии шифрования DNS — DNSCrypt. Впервые представленный в 2008 году на BSD Unix, инструмент DNSCrypt изначально предназначался для защиты не от прослушки, а от DNS-спуфинга. Тем не менее, его можно использовать как часть системы обеспечения конфиденциальности — особенно в сочетании с DNS-сервером без логов. Как отметил разработчик DNSCrypt Фрэнк Денис, гораздо больше серверов поддерживают DNSCrypt, чем любой другой вид шифрования DNS.
«DNSCrypt — это немного больше, чем просто протокол, — говорит Фрэнк Денис. — Сейчас сообщество и активные проекты характеризуют его гораздо лучше, чем мой изначальный протокол, разработанный в выходные». Сообщество DNSCrypt создало простые в использовании клиенты, такие как Simple DNSCrypt для Windows и клиент для Apple iOS под названием DNS Cloak, что делает шифрование DNS доступнее для нетехнических людей. Другие активисты подняли независимую сеть приватных DNS-серверов на основе протокола, помогающего пользователям уклониться от использования корпоративных DNS-систем.
«DNSCrypt — это не подключение к серверам конкретной компании, — сказал Денис. — Мы призываем всех поднимать собственные сервера. Сделать это очень дёшево и легко. Теперь, когда у нас есть безопасные резолверы, я пытаюсь решить задачу фильтрации контента с учётом конфиденциальности».
Для тех, кто хочет запустить DNS-сервер с поддержкой DNSCrypt для всей своей сети, лучшим клиентом будет DNSCrypt Proxy 2. Старая версия DNSCrypt Proxy по-прежнему доступна как пакет для большинства основных дистрибутивов Linux, но лучше загрузить бинарник новой версии непосредственно с официального репозитория на GitHub. Есть версии для Windows, MacOS, BSD и Android.
Опыт сообщества DNSCrypt по защите конфиденциальности воплощён в DNSCrypt Proxy. Программа легко настраивается, поддерживает ограничения по времени доступа, шаблоны для доменов и чёрный список IP-адресов, журнал запросов и другие функции довольно мощного локального DNS-сервера. Но для начала работы достаточно самой базовой конфигурации. Есть пример файла конфигурации в формате TOML (Tom’s Obvious Minimal Language, созданный соучредителем GitHub Томом Престоном-Вернером). Можете просто переименовать его перед запуском DNSCrypt Proxy — и он станет рабочим файлом конфигурации.
По умолчанию прокси-сервер использует открытый DNS-резолвер Quad9 для поиска и получения с GitHub курируемого списка открытых DNS-сервисов. Затем подключается к серверу с самым быстрым откликом. При необходимости можно изменить конфигурацию и выбрать конкретный сервис. Информация о серверах в списке кодируется как «штамп сервера». Он содержит IP-адрес поставщика, открытый ключ, информацию, поддерживает ли сервер DNSSEC, хранит ли провайдер логи и блокирует ли какие-нибудь домены. (Если не хотите зависеть от удалённого файла при установке, то можно запустить «калькулятор штампов» на JavaScript — и сгенерировать собственный локальный статичный список серверов в этом формате).
Для своего тестирования DNSCrypt я использовал OpenDNS от Cisco в качестве удалённого DNS-сервиса. При первых запросах производительность DNSCrypt оказалась немного хуже, чем у обычного DNS, но затем DNSCrypt Proxy кэширует результаты. Самые медленные запросы обрабатывались в районе 200 мс, в то время как средние — примерно за 30 мс. (У вас результаты могут отличаться в зависимости от провайдера, рекурсии при поиске домена и других факторов). В целом, я не заметил замедления скорости при просмотре веб-страниц.
Основное преимущество DNSCrypt в том, что он похож на «обычный» DNS. Хорошо это или плохо, но он передаёт UDP-трафик по порту 443 — тот же порт используется для безопасных веб-соединений. Это даёт относительно быстрый резолвинг адресов и снижает вероятность блокировки на файрволе провайдера. Чтобы ещё больше снизить вероятность блокировки, можно изменить конфигурацию клиента и передавать запросы по TCP/IP (как показало тестирование, это минимально влияет на время отклика). Так шифрованный DNS-трафик для большинства сетевых фильтров похож на трафик HTTPS — по крайней мере, с виду.

Показан трафик DNSCrypt и локальный трафик DNSCrypt Proxy. Снифер Wireshark говорит, что это трафик HTTPS, потому что я форсировал использование TCP. Если пустить его по UDP, то Wireshark увидит трафик Chrome QUIC
С другой стороны, DNSCrypt для шифрования не полагается на доверенные центры сертификации — клиент должен доверять открытому ключу подписи, выданному провайдером. Этот ключ подписи используется для проверки сертификатов, которые извлекаются с помощью обычных (нешифрованных) DNS-запросов и используются для обмена ключами с использованием алгоритма обмена ключами X25519. В некоторых (более старых) реализациях DNSCrypt есть условие для сертификата на стороне клиента, который может использоваться в качестве схемы управления доступом. Это позволяет им журналировать ваш трафик независимо от того, с какой IP-адреса вы пришли, и связывать его с вашим аккаунтом. Такая схема не используется в DNSCrypt 2.
С точки зрения разработчика немного сложно работать с DNSCrypt. «DNSCrypt не особенно хорошо документирован, и не так много его реализаций», — говорит Крикет Лю из Infoblox. На самом деле мы смогли найти только единственный клиент в активной разработке — это DNSCrypt Proxy, а OpenDNS прекратил поддерживать его разработку.
Интересный выбор криптографии в DNSCrypt может напугать некоторых разработчиков. Протокол использует Curve25519 (RFC 8032), X25519 (RFC 8031) и Chacha20Poly1305 (RFC 7539). Одна реализация алгоритма X24419 в криптографических библиотеках Pyca Python помечена как «криптографически опасная», потому что с ней очень легко ошибиться в настройках. Но основной используемый криптографический алгоритм Curve25519, является «одной из самых простых эллиптических кривых для безопасного использования», — сказал Денис.
Разработчик говорит, что DNSCrypt никогда не считался стандартом IETF, потому что был создан добровольцами без корпоративной «крыши». Представление его в качестве стандарта «потребовало бы времени, а также защиты на заседаниях IETF», — сказал он. «Я не могу себе этого позволить, как и другие разработчики, которые работают над ним в свободное время. Практически все ратифицированные спецификации, связанные с DNS, фактически написаны людьми из одних и тех же нескольких компаний, из года в год. Если ваш бизнес не связан с DNS, то действительно тяжело получить право голоса».
Хотя несколько DNS-сервисов используют DNSCrypt (например, CleanBrowsing для блокировки «взрослого» контента и Cisco OpenDNS для блокировки вредоносных доменов), новые ориентированные на приватность DNS-провайдеры (в том числе Google, Cloudflare и Quad9) отказались от DNSCrypt и выбрали одну из других, одобренных группой IETF технологий: DNS по TLS и DNS по HTTPS. Сейчас DNSCrypt Proxy поддерживает DNS по HTTPS и указывает Cloudflare, Google и Quad9 в настройках по умолчанию.

TLS стал приоритетом для CloudFlare, когда понадобилось усилить шифрование веб-трафика для защиты от слежки
Скрещивание с TLS
У DNS по TLS (Transport Layer Security) несколько преимуществ перед DNSCrypt. Во-первых, это предлагаемый стандарт IETF. Также он довольно просто работает по своей сути — принимает запросы стандартного формата DNS и инкапсулирует их в зашифрованный TCP-трафик. Кроме шифрования на основе TLS, это по существу то же самое, что и отправка DNS по TCP/IP вместо UDP.
Существует несколько рабочих клиентов для DNS по TLS. Самый лучший вариант, который я нашел, называется Stubby, он разработан в рамках проекта DNS Privacy Project. Stubby распространяется в составе пакета Linux, но есть также версия для MacOS (устанавливается с помощью Homebrew) и версия для Windows, хотя работа над последней ещё не завершена.
Хотя мне удалось стабильно запускать Stubby на Debian после сражения с некоторыми зависимостями, этот клиент регулярно падал в Windows 10 и имеет тенденцию зависать на MacOS. Если вы ищете хорошее руководство по установке Stubby на Linux, то лучшая найденная мной документация — это пост Фрэнка Сантосо на Reddit. Он также написал shell скрипт для установки на Raspberry Pi.
Положительный момент в том, что Stubby допускает конфигурации с использованием нескольких служб на основе DNS по TLS. Файл конфигурации на YAML позволяет настроить несколько служб IPv4 и IPv6 и включает в себя настройки для SURFNet, Quad9 и других сервисов. Однако реализация YAML, используемая Stubby, чувствительна к пробелам, поэтому будьте осторожны при добавлении новой службы (например, Cloudflare). Сначала я использовал табы — и всё поломал.
Клиенты DNS по TLS при подключении к серверу DNS осуществляют аутентификацию с помощью простой инфраструктуры открытых ключей (Simple Public Key Infrastructure, SPKI). SPKI использует локальный криптографический хэш сертификата провайдера, обычно на алгоритме SHA256. В Stubby этот хэш хранится как часть описания сервера в файле конфигурации YAML, как показано ниже:
После установления TCP-соединения клиента с сервером через порт 853 сервер представляет свой сертификат, а клиент сверяет его с хэшем. Если всё в порядке, то клиент и сервер производят рукопожатие TLS, обмениваются ключами и запускают зашифрованный сеанс связи. С этого момента данные в зашифрованной сессии следуют тем же правилам, что и в DNS по TCP.
После успешного запуска Stubby я изменил сетевые настройки сети DNS, чтобы направлять запросы на 127.0.0.1 (localhost). Сниффер Wireshark хорошо показывает этот момент переключения, когда трафик DNS становится невидимым.
Переключаемся с обычного трафика DNS на шифрование TLS
Хотя DNS по TLS может работать как DNS по TCP, но шифрование TLS немного сказывается на производительности. Запросы dig к Cloudflare через Stubby у меня выполнялись в среднем около 50 миллисекунд (у вас результат может отличаться), в то время как простые DNS-запросы к Cloudflare получают ответ менее чем за 20 мс.
Частично замедление работы происходит на стороне сервера из-за лишнего использования TCP. Обычно DNS работает по быстрому протоколу UDP: отправил и забыл, в то время как сообщение TCP требует согласования соединения и проверки получения пакета. Основанная на UDP версия DNS по TLS под названием DNS over Datagram Transport Layer Security (DTLS) сейчас в экспериментальной разработке — она может увеличить производительность протокола.
Здесь тоже имеется проблема с управлением сертификатами. Если провайдер удалит сертификат и начнёт использовать новый, то в настоящее время нет чистого способа обновления данных SPKI на клиентах, кроме вырезания старого и вставки нового сертификата в файл конфигурации. Прежде чем с этим разберутся, было бы полезно использовать какую-то схему управления ключами. И поскольку сервис работает на редком порту 853, то с высокой вероятностью DNS по TLS могут заблокировать на файрволе.
Но это не проблема для лидера нашего хит-парада — DNS по HTTPS. Он проходит через большинство файрволов, словно тех не существует.

Google и Cloudflare, похоже, одинаково видят будущее зашифрованного DNS
DNS по HTTPS: DoH!
И Google, и Cloudflare, кажется, видят протокол DNS по HTTPS, также известный как DoH, как самый перспективный вариант для шифрования DNS. Опубликованный в виде черновика стандарта IETF, протокол DoH инкапсулирует DNS-запросы в пакеты HTTPS, превращения их в обычный зашифрованный веб-трафик.
Запросы отправляются как HTTP POST или GET с телом в формате сообщения DNS (датаграммы из обычных DNS-запросов) или как запрос HTTP GET в формате JSON (если вы не против небольшого оверхеда). И здесь нет никаких проблем с управлением сертификатами. Как и при обычном веб-трафике HTTPS, для подключения через DoH не требуется аутентификация, а сертификат проверяется центром сертификации.

Фиксация DNS-транзакции через DoH. Видно только HTTPS, TLS и ничего больше
HTTPS — довольно громоздкий протокол для запросов DNS, особенно в формате JSON, поэтому придётся смириться с некоторым снижением производительности. Необходимые ресурсы на стороне сервера почти наверняка заставят прослезиться администратора обычного DNS-сервера. Но простота работы с хорошо понятными веб-протоколами делает разработку как клиентского, так и серверного кода для DoH намного более доступной для разработчиков, собаку съевших на веб-приложениях (всего несколько недель назад инженеры Facebook выпустили концепт сервера и клиента DoH на Python).
В результате, хотя на спецификациях RFC для DoH ещё не просохли чернила, уже готов к работе целый ряд клиентов DNS по HTTPS. Правда, некоторые из них заточены под конкретных провайдеров DNS. Потеря производительности во многом зависит от сервера и от качества конкретного клиента.
Например, возьмём клиент туннелирования Argo от Cloudflare (aka cloudflared). Это многофункциональный инструмент туннелирования, предназначенный в первую очередь для установления безопасного канала для связи веб-серверов с CDN-сетью Cloudflare. DNS по HTTPS — просто ещё одна служба, которую теперь поддерживает CDN.
Это можно исправить одним из трёх способов. Первый вариант: установить устройство с локальным хостом ( 127.0.0.1 для IPv4 и ::1 для IPv6) как основной DNS-сервер в сетевой конфигурации, а затем добавить 1.1.1.1 в качестве дополнительного резолвера. Это рабочий вариант, но он не идеален с точки зрения приватности и производительности. Лучше добавить URL сервера из командной строки при загрузке:
Если вы уверены, что хотите перейти на DNS-сервер от Cloudflare, что даёт преимущество автоматического обновления, — то можете настроить его в качестве службы в Linux, используя YAML-файл конфигурации, содержащий адреса IPv4 и IPv6 службы DNS от Cloudflare:
При настройке с правильной восходящей адресацией производительность dig-запросов через Argo широко варьируется: от 12 мс для популярных доменов аж до 131 мс. Страницы с большим количеством межсайтового контента загружаются… немного дольше обычного. Опять же, ваш результат может быть другим — вероятно, он зависит от вашего местоположения и связности. Но это примерно то, чего я ожидал от мрачного протокол DoH.

Как Cloudflare, мы считаем, что туннели иллюстрируют операцию «Арго» лучше, чем Бен Аффлек
Дабы убедиться, что проблема именно в протоколе DoH, а не в программистах Cloudflare, я испытал два других инструмента. Во-первых, прокси-сервер от Google под названием Dingo. Его написал Павел Форемски, интернет-исследователь из Института теоретической и прикладной информатики Академии наук Польши. Dingo работает только с реализацией DoH от Google, но его можно настроить на ближайшую службу Google DNS. Это хорошо, потому что без такой оптимизации Dingo сожрал всю производительность DNS. Запросы dig в среднем выполнялись более 100 миллисекунд.
Во время проверки обработки стандартных запросов службой dns.google.com я наткнулся на альтернативу дефолтному адресу 8.8.8.8 от Google (172.217.8.14, если знаете). Я добавил его в Dingo из командной строки:
Это сократило время отклика примерно на 20%, то есть примерно до того показателя, как у Argo.
А оптимальную производительность DoH неожиданно показал DNSCrypt Proxy 2. После недавнего добавления DoH Cloudflare в курируемый список публичных DNS-сервисов DNSCrypt Proxy почти всегда по умолчанию подключается к Cloudflare из-за низкой задержки этого сервера. Чтобы убедиться, я даже вручную сконфигурировал его под резолвер Cloudflare для DoH, прежде чем запустить батарею dig-запросов.
Все запросы обрабатывались менее чем за 45 миллисекунд — это быстрее, чем собственный клиент Cloudflare, причём с большим отрывом. С сервисом DoH от Google производительность оказалась похуже: запросы обрабатывались в среднем около 80 миллисекунд. Это показатель без оптимизации на ближайший DNS-сервер от Google.
В целом производительность DNSCrypt Proxy по DoH практически неотличима от резолвера DNS по TLS, который я проверял ранее. На самом деле он даже быстрее. Я не уверен, то ли это из-за какой-то особой реализации DoH — может быть, из-за использования стандартного формата сообщений DNS, инкапсулированных в HTTPS, вместо формата JSON — то ли связано с тем, как Cloudflare обрабатывает два разных протокола.
Я не Бэтмен, но моя модель угроз всё равно немного сложнее, чем у большинства людей
Зачем так мучиться?
Я профессиональный параноик. Моя модель угроз отличается от вашей, и я предпочел бы сохранить в безопасности как можно больше своих действий в онлайне. Но учитывая количество нынешних угроз приватности и безопасности из-за манипуляций с трафиком DNS, у многих людей есть веские основания использовать какую-либо форму шифрования DNS. Я с удовольствием обнаружил, что некоторые реализации всех трёх протоколов не оказывают сильно негативного влияния на скорость передачи трафика.
Тем не менее, важно отметить, что одно лишь шифрование DNS не скроет ваши действия в интернете. Если на сервере хостятся несколько сайтов, то расширение TLS под названием Server Name Indicator (SNI), используемое в соединениях HTTPS, всё равно может показать открытым текстом название сайта, на который вы зашли. Для полной конфиденциальности всё равно нужно использовать VPN (или Tor) для такой инкапсуляции трафика, чтобы провайдер или какая-либо другая шпионящая сторона не могла вытянуть метаданные из пакетов. Но ни один из перечисленных сервисов не работает с Tor. И если против вас работает правительственное агентство, то ни в чём нельзя быть уверенным.
Другая проблема в том, что, хотя прекрасные ребята из сообщества DNSCrypt проделали большую работу, но такая приватность по-прежнему слишком сложна для обычных людей. Хотя некоторые из этих DNS-клиентов для шифрования оказалось относительно легко настроить, но ни один из них нельзя назвать гарантированно простым для нормальных пользователей. Чтобы эти услуги стали действительно полезными, их следует плотнее интегрировать в железо и софт, который покупают люди — домашние маршрутизаторы, операционные системы для персональных компьютеров и мобильных устройств.
Интернет-провайдеры наверняка постараются активнее монетизировать обычный DNS-трафик, и никуда не исчезнут государственные агентства и преступники, которые стремятся использовать его во вред пользователю. Но маловероятно, что крупные разработчики ОС стремятся надёжно защитить DNS доступным для большинства людей способом, потому что они часто заинтересованы в монетизации, как и интернет-провайдеры. Кроме того, эти разработчики могут столкнуться с сопротивлением изменениям со стороны некоторых правительств, которые хотят сохранить возможности мониторинга DNS.
Так что в ближайшее время эти протоколы останутся инструментом для тех немногих людей, кто реально заботится о конфиденциальности своих данных и готов для этого немного потрудиться. Надеюсь, сообщество вокруг DNSCrypt продолжит свою активность и продвинет ситуацию вперёд.









