Утечка DNS: что это такое и как ее устранить с помощью утилиты DNSCrypt. Установка DNSCrypt (dnscrypt-proxy) в Windows, Linux и MacOS

Корпорация по управлению доменными именами и IP-адресами (ICANN) готовится к замене криптографических ключей защиты DNS-серверов 11 октября. Если что-то пойдет не так, у миллионов пользователей возникнут проблемы с интернетом.

Система адресации Всемирной паутины устроена таким образом, чтобы нам не приходилось запоминать цифровые IP сайтов - достаточно знать URL на естественном языке (например, сайт вместо 80.93.184.195). DNS-сервер (от англ. Domain Name System) выполнит задачу переводчика за нас и определит, какой веб-ресурс мы ищем, набирая тот или иной адрес или кликая по строке выдачи поисковика.

С тех пор как Сеть стала площадкой для бизнеса, с каждым годом росло число жертв кибермошенников, которые перехватывали запрос пользователя к DNS-серверу и вместо нужного сайта перенаправляли его на подставной, порой визуально неотличимый от оригинала. Поэтому в 2010 году ICANN ввела систему ключей KSK (от англ. Key Signing Key) - расширений безопасности системы доменных имен (DNS Security, или DNSSEC), срок замены которых давно истек.

Зоны корневых DNS-серверов

Источник: Википедия.

Ключевая дата

KSK используются для дополнительной защиты запросов пользователей к системе DNS. Они устанавливаются в конфигуратор (якорь доверия) на серверы корневых (валидирующие резолверы) и локальных (рекурсивные резолверы) доменных зон и обеспечивают гарантию соответствия указанного в запросе URL подлинному IP-адресу. KSK по регламенту подлежат замене каждые пять лет. Но поскольку срок полномочий правительства США по управлению доменными именами истек, а многие крупные операторы оказались не готовы, решили не спешить.

Всерьез про обновление ключей заговорили в июле 2016 года, а на днях корпорация объявила готовность номер один - 11 октября запланирована деактивация действующей версии KSK и переход к новой. Поскольку у операторов было достаточно времени на обновление конфигураторов резолверов, смена ключей должна пройти автоматически и незаметно для остального мира. Более того, двое из каждых трех пользователей интернета вообще не имеют отношения к DNSSEC.

Безопасность ценой риска

Однако, по оценке самой ICANN, существует вероятность, что некоторые резолверы по каким-то причинам оставят в якоре доверия старые ключи - в таком случае DNS-сервер просто не сможет понять, какой сайт у него запрашивают. При этом в силу особенностей валидации ключей корневой доменной зоны так называемыми авторитетными DNS-серверами (отвечающими за домены первого порядка, например, зону.ru) последствия могут проявиться спустя двое суток.

Криптографические офицеры ICANN предупреждают, что для 750 млн рядовых пользователей это может обернуться непредсказуемыми ошибками доступа к странице в браузере (типа «server failure» и SERVFAIL) или загрузкой сайта без картинок, сбоями при обмене почтой, битыми сообщениями и общим замедлением быстродействия Сети. Более серьезные последствия грозят автоматизированным системам и сервисам, подключенным к DNSSEC - сломается не просто синхронизация времени, а весь электронный документооборот.

Помимо этого, ICANN ожидает существенный рост вычислительной нагрузки на всю иерархию DNS из-за увеличения числа запросов на обновление KSK от операторов со старыми ключами. Результаты мониторинга ситуации обещают публиковать на сайте корпорации.

Любой человек, который задумывается об анонимности в интернете знает отличный способ скрыть свой IP-адрес в интернете – это VPN-сервис. Однако даже при VPN-соединении зачастую запросы к DNS-серверу остаются незащищенными, и можно запросто отследить куда идут ваши DNS-запросы. По другому это называется “DNSleaks” или «утечка DNS».

Давайте рассмотрим поподробнее что такое DNS и какие существуют проблемы.

Как известно, каждый компьютер в сети Интернет имеет свой IP-адрес, не зная IP-адреса компьютера, невозможно отправить ему информацию или запрос. IP-адрес имеет вид 4-х байтового числа, разделенного точками (например, 162.234.12.110 или 78.31.54.226).

Для простого человека запомнить большое количество IP-адресов не легко, поэтому в начале развития сети Интернет возникла необходимость в средстве, которое должно было бы облегчить жизнь пользователям Интернета. Таким средством стала ДНС — система доменных имен. ДНС сервер — это средство, которое позволяет определить IP-адрес по доменному имени.

К примеру вы ввели в строке браузера адрес сайта, браузер послал запрос на DNS-сервер, который указан в настройках вашего интернет-подключения. Сервер отправляет обратно пакет с ответом, в котором содержится IP-адрес нужного сайта.

С одной стороны всё сделано удобно – вы просто воткнули кабель в сетевую карту, вам автоматически присвоили DNS-сервер провайдера с быстрым откликом и всё работает. Но с другой стороны есть две проблемы при такой схеме:

1) Отсутствует шифрование соединения . Это значит что любой злоумышленник сможет перехватить ваш трафик и сделать подмену IP-адреса. Например, показать вам поддельную страницу интернет-банка. Также желательно скрыть этот трафик от провайдера или от правоохранительных органов (мало ли что J).

2) DNS-сервера провайдеров по закону обязаны сохранять логи (с какого IP, на какие сайты заходили, и время соединения), а также по запросу от правоохранительных органов предоставлять эти логи (я надеюсь, все знали это? J). Скажу даже больше, 99% DNS-серверов мира пишут логи и не скрывают этого.

Если вдруг вы не хотите чтобы ваши данные кто то перехватывал или читал логи ваших посещений есть надёжный вариант. Что нужно сделать:

1) Нужно зашифровать соединение. Для этого существует программа DNSproxy. Она соединяется к DNS-серверу не напрямую, а зашифровано через DNS-резольвер (он просто редиректит запросы на DNS-сервер). В свою очередь резольвер передаёт данные DNS-серверу тоже по зашифрованному соединению. То есть таким образом с помощью снифферов (например WIreshark) можно лишь узнать IP-адрес резольвера. Но поскольку пакеты зашифрованы с помощью «Elliptic curve cryptography» (эллиптическая криптография), то с каким конкретно DNS-сервером мы обмениваемся данными определить невозможно.

2) Нужно использовать DNS-сервера, которые не ведут логов. Как Вы сами понимаете, сервера провайдера сразу отпадают. Также для анонимности нельзя использовать DNS-сервера Гугла или Яндекса, поскольку они честно признаются в хранении информации (почитайте их Соглашения о Конфиденциальности). Но есть DNS-сервера, которые нам помогут. Это www.opennicproject.org . На сайте написано, что сервера не пишут никаких логов (ну что ж, поверим). Но, к сожалению, эти сервера нестабильны и иногда отваливаются. Для решения этой проблемы можно использовать программу «Acrylic DNS Proxy «. Она позволяет делать запросы не на один DNS-сервер, а на 10 сразу. И пакет с того сервера, который придёт быстрее всех будет принят программой. Следовательно мы решим сразу две задачи – минимизируем потерю скорости запросов (потому что наиболее быстрый обмен данными как правило происходит с DNS-серверами провайдера), и нивелируем нестабильность каких либо серверов.

Итак, нам нужно зашифровать соединение на безопасные DNS сервера. Это пригодится не только для тех, кто не использует VPN (как можно решить проблему утечки DNS будет написано позднее). Начнём:

2) В настройках вашего сетевого подключения нужно прописать вручную DNS-адрес. Заходим «Центр управление сетями и общим доступом» -> «Подключение по локальной сети» -> «Свойства» -> «Протокол интернета версии 4 TCP/IPv4». Там ставим 127.0.0.1. Вторую строчку нужно оставить пустой.

3) Чтобы запустить AcrylicDNSProxy заходим через Пуск и нажимаем «Start Acrylic Service». Должно появиться сообщение об удачном запуске.

4) Теперь проверяем наши DNS-сервера на сайте www.perfect-privacy.com/dns-leaktest . Должно быть примерно так как на скрине:


Рис. 2

Можете добавить файл AcrylicController.exe в автозагрузку.

5) Теперь шифруем наши запросы к DNS-серверам с помощью программы DNScrypt.

6) Распаковываем и запускаем dnscrypt-winclient.exe. Там выбираем свою сетевую карту и нажимаем Install. Теперь соединение с DNS-серверами зашифровано.

7) Проверим что же теперь покажут нам наши сервисы проверки. Заходим на www.perfect-privacy.com/dns-leaktest . Ни один наш сервер не должен определиться.

А если зайти на http://whoer.net , то единственное что он может показать – это адрес DNS-резольвера, через которые проходят DNS-запросы. Сами же сервера «неизвестны».


Рис. 3

VPN + DNS-шифрование

На рисунке указана типичная схема вашего соединения, при подключении к VPN-серверам.


Рис 4.

Как видите, есть уязвимость – DNS-запросы могут отправляться одновременно и через VPN-сервер, и напрямую к указанному DNS-серверу вашего сетевого подключения.

Казалось бы, можно просто вручную прописать DNS-сервер в настройках соединения как 127.0.0.1, чтобы не было никаких лишних запросов к DNS провайдера. Но, очевидно, что при отключении от VPN интернет работать не будет, поскольку при подключении к VPN используются их собственные DNS-сервера. Если же просто вписать два сервера проекта www.opennicproject.org , то это снизит скорость серфинга в интернете, когда VPNбудет отключен. В этом случае так же рекомендуется установить программу AcrylicDNSProxy, которая не позволит упасть скорости серфинга. Но раз установили AcrylicDNSProxy, то почему бы и не установить и DNScrypt?

Если же вы 100% времени пользуетесь VPN-сервисами, то можете просто прописать один IP-адрес в настройках DNS: 127.0.0.1. Этого будет достаточно.

Таким образом, была найдена интересная схема, позволяющая анонимизировать и скрыть DNS-запросы, что немного поможет если столкнётесь с «органами», и если местный злой хакер решит перенаправить DNS-запросы и показывать вашим детям сайты вместо «Ну погоди» — сайты для взрослых.

Примечание: если же вам всё это ни к чему, просто установите AcrylicDNSProxy с указанием серверов вашего провайдера, Яндекса, Гугла и т.д., что даст вам ощутимое ускорение интернет-серфинга.

Спасибо за внимание.

Лайкнуть

Лайкнуть

Твитнуть

Введение

Расскажу о программе, которой пользуюсь уже много лет. Она немного улучшает сетевую безопасность, защищая от подмены сайтов при работе через небезопасные Wi-Fi сети.

Углубляться в технические подробности я не буду. Сжато расскажу суть проблемы, которую начали решать только в последние лет 5, но с помощью DNSCrypt можно защититься уже сегодня.

Небезопасные DNS запросы

Для общения устройств используется способ передачи данных TCP/IP. Это не протокол или набор программ, а концепция (модель) того, как это общение должно происходить.

У TCP/IP много недостатков, но, так как модель «пластичная», её латают и дорабатывают на протяжении более 40 лет своего существования. Например, чтобы никто не видел, что вы вводите на сайтах и получаете в ответ, многие сайты массово перешли на шифрованный протокол

К сожалению, уязвимостей в TCP/IP пока предостаточно. Одно из больных мест - система доменных имён (D omain N ame S ystem, DNS).

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

Проблема в том, что компьютеры безоговорочно доверяют серверам DNS. Если вы подключитесь к публичной Wi-Fi сети в кафе, владелец которой поднял собственный сервер с ложными адресами, есть шанс, что вместо Вконтакте вы откроете обманку, собирающую пароли.

Способов защитить запросы к серверам имён несколько, но операционные системы их не используют. Нужно дорабатывать ОС самостоятельно с помощью отдельных программ.

Simple DNSCrypt

Simple DNSCrypt позволяет легко и просто изменить настройки сетевой карты так, чтобы все запросы шли к DNS серверам с поддержкой DNSSEC. Эта технология позволяет избежать подмены IP-адресов. Как бонус, будут использоваться только уважающие приватность серверы имён, т.е. не сохраняющие обращения пользователей.

Программа ставится просто. Главное правильно выбрать 32- или 64-битную версию, смотря какой разрядности у вас Windows. Разрядность можно посмотреть в Панели управления - Система (в Windows 10 - Параметры - Система - О программе).

После установки и запуска с ярлыка на Рабочем столе настройки менять не нужно. Просто нажмите кнопку «Применить».

Вы увидите, что переключатель пункта «Служба DNSCrypt» установится в зелёное положение «Вкл». Значит, в Windows запустилась новая служба, суть которой - выступать прокси-сервером всех DNS-запросов, перенаправляя их на безопасные сервера (их список есть на вкладке «Резольверы», там ничего трогать не надо).

После нужно лишь щёлкнуть мышью по всем сетевым картам, видимым в нижней части окна, чтобы на них появилась галочка справа вверху.

На этом всё! Защита запросов заработает сразу. Программа будет работать сама по себе.

Если вы продвинутый пользователь и хотите проверить, работает ли DNSCrypt на вашем компьютере, откройте свойства протокола TCP/IPv4 сетевого соединения. DNS-сервер должен быть локальный - 127.0.0.1.

Если при использовании сервера имён 127.0.0.1 сайты открываются - утилита dnscrypt-proxy работает, никто ваши запросы не пишет и провайдер запросы не отслеживает.

Удаляется программа, как и все остальные - через Панель управления.

DNSCypt ≠ полная приватность

Не путайте шифрование DNS с шифрованием всего трафика между вами и сайтами.

DNSCrypt поможет

  • защититься от подмены серверов DNS злоумышленниками,
  • зашифровать DNS запросы.

Утилита не поможет

  • сохранить приватность в интернете,
  • получить доступ к заблокированным в вашей стране сайтам,
  • защитить от подмены, если отредактирован файл hosts на компьютере.

Если вы обеспокоены вопросами конфиденциальности, DNSCrypt выступит лишь вспомогательным инструментом. Для анонимного сёрфинга в интернете используются технологии VPN и/или Tor, тогда шифрование DNS станет дополнительной защитой на случай, если какая-то программа на вашем компьютере запросит IP-адрес домена в обход VPN.

Если использовать DNSCypt без VPN, провайдер по-прежнему будет видеть, что вы обращаетесь к серверу с таким-то IP, и если на сервере с одним IP-адресом хостится несколько сайтов, то определить, на какой именно вы зашли, у него получится с помощью анализа запросов (запись Server Name Indicator передаётся открытым текстом даже при использовании HTTPS).

Другие операционные системы

Шифрование DNS должно работать по умолчанию в любой операционной системе. Но этой функции там нет! Ни в Windows, ни в Linux, ни в Android, нигде нет поддержки DNSCrypt или аналогичной технологии «из коробки».

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то