Связь всех устройств и сервисов в интернете легко осуществляется благодаря работе DNS. Без этого блага нас ожидали бы ужасные неудобства! Ведь чтобы компьютеры могли найти друг друга после того, как вы ввели соответствующий адрес, необходимо преобразовать его в набор чисел — другого языка компьютеры просто не знают, — а уже затем установится соединение. Система доменных имен (Domain Name System — DNS) и занимается этой трансляцией адресов (доменов) в числа (IP-адреса). Когда система была впервые реализована, она не была защищена. Через некоторое время использования обнаружились уязвимости, связанные, в частности, с возможной подменой ответа DNS-сервера. Решением стала технология проверки безопасности в виде расширения DNSSEC, которое может быть добавлено к существующим DNS-протоколам. Попробуем разобраться, что это такое, как оно работает и почему так важно.

Обращаемся к истокам

Мы уже уделяли время фундаментальному понятию DNS. Поскольку DNSSEC непосредственно закрывает недостатки функционирования системы доменных имен — обратимся к ее механизму еще раз.

Когда пользователь запрашивает информацию о том или ином домене (например, www.jino.ru), то в первую очередь этот запрос отправляется на корневой DNS-сервер. Управление «корнем» продублировано между 12 операторами, совместно координирующими вопросы его касающиеся. Это независимые организации, среди которых некоммерческие ассоциации, университеты и лаборатории министерства США во главе с ICANN. Корневых серверов всего 13, они разбросаны по всему миру и содержат информацию только о нижестоящих DNS-серверах, обслуживающих домены верхнего уровня, такие как .com, .ru или .рф. В случае с www.jino.ru корневой сервер сообщает адрес DNS-сервера, отвечающего за домен .ru, и запрос перенаправляется к нему, а оттуда — на DNS-сервер для домена jino.ru и так далее.

Описание работы DNS
Описание работы DNS

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

Проблемы в раю

Система доменных имен изначально не подразумевала применения механизмов защиты, поскольку создателями преследовались иные цели. Недостатки в DNS вскрылись спустя несколько лет после ее реализации и вылились в масштабные исследования после публикации Стивеном Беллоуином первой статьи на эту тему. А настоящая шумиха поднялась в 2008 году, когда Дэн Камински показал, что может повлечь за собой незащищенность системы доменных имен. В чем же состоит проблема, которая взбудоражила интернет-сообщество? DNS оказалась уязвима для MITM-атаки (или «человек посередине») и отравления DNS-кэша. В итоге это приводит к перенаправлению на мошеннические сайты в результате использования поддельных данных. На данный момент у хакеров целый арсенал инструментов для того, чтобы нанести вред, если передача данных не защищена с помощью DNSSEC.

К примеру, пользователь вводит адрес internet-magazin.ru, и DNS начинает искать IP сервера, где располагается сайт. Злоумышленники наполняют кэш DNS-сервера своими данными, пользователь попадает на фальшивый ресурс, а компьютер никак не может проверить аутентичность полученной адресной информации. При этом сложно явно обнаружить подлог, поскольку в строке браузера будет значиться адрес «интернет-магазина». Черное дело сделано — путем хитрых манипуляций киберпреступники получают доступ к учетной записи, возможность выкрасть пароли или реквизиты кредитных карт, шанс перехватывать сообщения и публиковать выгодную им информацию. Действительно пугающими могут стать возможные последствия, если учесть, что круг пользователей, для которых один DNS-сервер может преобразовывать домены в IP-адреса, насчитывает тысячи людей.

Приведем еще один занятный пример. Как известно, серверы электронной почты используют DNS для маршрутизации своих сообщений, а, значит, могут быть чувствительны к проблемам безопасности в инфраструктуре DNS. В 2014 году ученые из университета Карнеги-Меллон в США провели расследование. Они выяснили, что электронная почта, которая должна была быть отправлена через серверы Yahoo!, Hotmail и Gmail, вместо этого проходила через почтовые серверы злоумышленников. Атакующие использовали многолетнюю уязвимость в системе доменных имен — отсутствие проверки ответов в ряду серверов.

И мы подходим к идее о том, что развернуть сквозной протокол — это единственный способ обезопасить себя на длительное время. DNSSEC появился на свет не сразу, но стал помощником в предотвращении обнаруживающихся по сей день прецедентов использования основного изъяна в DNS. С 2007 года минуло нескольких проб, и в 2011 году DNSSEC был официально развернут в корневой зоне для доменов верхнего уровня .org, .com, .net и .edu. Далее последовало внедрение технологии и для других доменных имен, которое продолжается до сих пор.

Введение в DNSSEC

DNSSEC (DNS Security Extensions) предполагает цифровое подписывание данных DNS-сервера, чтобы быть уверенными в их достоверности, при помощи пар ключей. Определяющую роль играет подпись «корня», с которой начинается последовательный процесс проверки подписей. Подлинность всего доменного имени полностью подтверждается только совокупностью всех ключей и подписей.

Мы попробуем обрисовать этот принцип работы в общих чертах, а здесь можно найти детальное описание и терминологию, если это необходимо. Итак, DNSSEC использует систему ключей (публичного и приватного) для каждой зоны и цифровых подписей. Цифровые подписи хранятся на серверах имен DNS наряду с общими типами записей. Приватный ключ зоны подписывает ответы на DNS-запросы, а публичный проверяет подпись. Если цифровые подписи у данных подтверждаются при помощи публичного ключа, тогда они пройдут дальше к клиентскому компьютеру, выполняющему запрос. Использование подписей гарантирует, что ответ поступает с авторитетного сервера и не был никем изменен. Если подтверждение не будет получено, то домен не будет преобразован.

В DNSSEC выстраивается надежная цепочка доверия, которая распространяется от вышестоящей зоны в нижестоящую. Когда резолвер — распознаватель (в большинстве случаев — DNS-сервер провайдера) запрашивает данные у другого сервера, также требуется ключ, связанный с этой зоной. Серверы, отвечающие за домены на каждом уровне, удостоверяют публичные ключи для зон более низкого уровня. Вышестоящий сервер предоставляет резолверу информацию для аутентификации нижестоящего сервера, чьи ответы и подписи резолвер проверяет на достоверность.

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

На схеме ниже можно проследить последовательную проверку ответов на всех уровнях.

Принцип работы DNSSEC
Принцип работы DNSSEC

Обратите внимание на то, что DNSSEC не обеспечивает конфиденциальность данных, поскольку не включает методы шифрования. Также не решается проблема доверия пользователя к резолверу и возможность MITM-атаки между ними. Мы указали, что в большинстве случаев резолверами выступают серверы интернет-провайдера, но существуют и публичные DNS-резолверы от Google, Яндекса или OpenDNS. Из перечисленных DNSSEC поддерживается только Google. Вопрос о порядочности резолвера остается открытым, а атака посредника не исключается, поскольку общение между пользователем и резолвером DNSSEC не покрывает (для этого разработан протокол DNSCrypt, который, правда, так и не стал общепризнанным стандартом). Однако DNSSEC все равно является одним из необходимых элементов в системе интернет-безопасности, без которого невозможно ее полное функционирование.

Подключение DNSSEC на «Джино»

Поддержка DNSSEC доступна для всех клиентов, чьи домены .ru, .su и .рф зарегистрированы или находятся под управлением «Джино», то есть должно быть подтверждено право управления ими. В ином случае домен нужно будет перенести.

Активация DNSSEC происходит в контрольной панели в разделе «Управление доменами» после нажатия на кнопку «Настройки» домена. Возможны два варианта развития событий: если домен привязан к NS-серверам «Джино» (ns1.jino.ru, ns2.jino.ru и т. п.), то при нажатии на кнопку «Включить», «Джино» возьмет всю работу по созданию ключей и последующей их публикации вместе с подписями на себя; в противном случае вам придется самостоятельно заняться генерацией ключей или получить их у провайдера DNS, куда направлен домен, а после указать их.

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

Важно:

  • Данные DNS сами по себе не защищены от атак, а, значит, злоумышленники могут нарушить их целостность.
  • Расширение DNSSEC — одна из составляющих безопасности сайтов и единственный способ подтвердить полученные ответы на DNS-запросы.
  • DNSSEC на «Джино» доступна для доменов .ru, .su и .рф с подтвержденным правом управления и не требует длительного времени на подключение.
Приложение «Джино.Ключ»
Служба техподдержки
Нашли ошибку в тексте? Выделите ее и нажмите Ctrl + Enter
© «Джино», 2003–2018. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи № 150549 от 09.03.2017. Правовая информация. Карта сайта