DNSSEC: интернет-стандарты для аутентифицированного разрешения имен

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

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

Что такое DNSSEC?

Расширения безопасности системы доменных имен (DNSSEC) связаны с различными интернет-стандартами, которые расширяют систему доменных имен до идентификации источника и при этом обеспечивают подлинность и целостность данных. После того как первоначальная версия DNSSEC 1999 года оказалась непригодной для больших сетей, прошло несколько лет, прежде чем расширения для безопасности DNS были наконец опубликованы в трех RFC (Requests for Comments) RFC 4033, RFC 4034 и RFC 4035 в 2005 году, что сделало DNSSEC стандартной практикой в США. В 2010 году эта технология была применена на корневом уровне интернета, а именно на 13 корневых серверах имен, которые отвечают за разрешение имен доменов верхнего уровня (.com, .co.uk и т.д.).

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

Метод шифрования: цепочка доверия DNSSEC

Каждый сервер имен в системе доменных имен отвечает за определенную зону. В этом индивидуальном файле зоны DNS хранит полный список всех записей ресурсов, которые описывают его зону. По этой причине каждый сервер имен имеет свой собственный ключ подписи зоны, что позволяет безопасным записям ресурсов оставаться закрытыми и защищенными. Открытая часть ключа подписи зоны интегрируется в файл зоны в виде ресурсной записи DNSKEY и используется для того, чтобы убедиться, что каждая часть информации в зоне имеет подпись. При этом создаются ресурсные записи RRSIG, которые поставляются в сопровождении данной ресурсной записи. Эта комбинация остается нетронутой независимо от того, хранится ли она в кэше или передается на другой сервер имен. В заключительной части своего путешествия она попадает к запрашиваемому клиенту, который может проверить подпись с помощью DNS-резольвера и открытого ключа.

Чтобы упростить процесс управления ключами и создать цепочку доверия, наряду с ключом подписи зоны существует синтаксически идентичный ключ-подпись (KSK), который служит для подтверждения личности. Этот ключ-подпись служит просто для обеспечения подлинности данного ключа зонной подписи. Хеш-значение ключа подписи хранится в записи DNS родительской зоны в качестве доверенного ключа, то есть разрешителю может быть просто предоставлен доступ к открытому ключу для самой верхней зоны — корневого уровня.

Оценка со стороны распознавателя

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

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

DNSSEC — текущая ситуация

Из-за сложных условий сделать DNSSEC доступным для всех довольно сложно; технология должна поддерживаться как со стороны поставщика услуг присутствия, так и со стороны посетителей. Владельцы доменов должны исходить из того, что регистратор поддерживает процедуру шифрования и инициирования. Пользователи не могут повлиять на то, защищен ли сайт с помощью подписей DNSSEC, и нуждаются в проверяющем резолвере. Поэтому, чтобы воспользоваться этой защитой DNS, необходимо либо загрузить и использовать частный резолвер, например Bind, либо воспользоваться расширением браузера, например Mozilla Firefox’s DNSSEC Validator, либо искать провайдера, который проверяет подписи DNSSEC. В любом случае, вы должны знать, что DNSSEC только авторизует разрешение имен; передаваемые данные не получают никакой защиты. Это означает, что необходимо сочетать эту технологию с протоколами шифрованной передачи данных, такими как TSL. Возможны также следующие проблемы, которые могут привести к задержке в принятии вашей технологии защиты DNS: 

  • Из-за повышенной нагрузки на сервер имен могут быть легче осуществлены атаки типа «отказ в обслуживании» (которые останавливают работу вашей службы).
     
  • Цепочка доверия DNSSEC подвергается большей опасности нарушения, поскольку открытые ключи передаются по системе доменных имен.
     
  • Без проверяющего DNS-резольвера возможна успешная атака между клиентом и сервером имен провайдера, даже если DNSSEC проверяет подлинность подписи.

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

Оцените статью
cdelat.ru
Добавить комментарий