Рассмотрим способ, которым
Для гарантирования end-to-end защиты транзакций запросов и ответов DNS необходимы дополнительные меры защиты (отличные от тех, которые определены в спецификации
Механизмы
Первой задачей является создание цифровых подписей для ресурсных записей в зонном файле. RRSIG. Строка, содержащая открытый ключ, который используется для проверки подписи (в RRSIG ), содержится в ресурсной записи с типом DNSKEY. Другой тип ресурсной записи, NSEC (Next Secure) используется для перечисления типов ресурсных записей (в каноническом порядке), существующих в данном домене. Подписи (т.е. ресурсные записи RRSIG ) для данного типа ресурсных записей создаются, кроме того, для обеспечения аутентифицированного доказательства невозможности создания ответов на запросы для несуществующего типа ресурсных записей. Дополнительно существует необязательный тип ресурсной записи DS (Delegation Signer) для случая, когда зона хочет разрешать выполнить проверку подлинности открытых ключей своих дочерних зон. Детальный синтаксис каждого из этих дополнительных типов ресурсных записей, введенных спецификацией RRSIG, потому что именно она содержит строку подписи.
Ресурсная запись RRSIG, подобно другим ресурсным записям, содержит поля имени собственника, TTL, класс, RRType и RDATA. Цифровая подпись и вся связанная с ней информация находится в поле RDATA. Расположение поля RDATA в ресурсной записи RRSIG со всеми подполями показано ниже. Также приведено краткое описание каждого подполя.
| RRRtype Covered | Algorihm Code | Labels |
| Original TTL | ||
| Signature Expiration | ||
| Signature Inception | ||
| Key Tag | Signer's NAme | |
| Encoded Signature | ||
RRType Covered имеет тип ресурсной записи, для которого RRSIG содержит подпись.
Поле Algorithm Code есть целое число, равное коду соответствующего криптографического алгоритма, использованного для создания подписи.
Поля Labels и Original TTL содержат количество ресурсных записей, для которых создана подпись, и значение TTL для множества ресурсных записей, для которых создана данная подпись.
Значения Signature Expiration и Signature Inception являются абсолютными значениями времени, которые определяют период действительности подписи, – период времени, в течение которого данная RRSIG считается действительной для зоны.
Поля Key Tag и Signer’s Name являются хэшем и доменным именем (FQDN) для ресурсной записи DNSKEY, которая будет использоваться клиентом для проверки действительности подписи.
Наконец, последнее поле содержит саму подпись.
Зона, которая содержит эти дополнительные ресурсные записи наряду с обычными ресурсными записями, называется подписанной зоной. Name-сервер, который создает такие подписанные зоны и включает в свой ответ соответствующие подписи (т.е. соответствующие RRSIG ) вместе в запрошенными ресурсными записями, называется
поддерживающим
Ответ, пришедший из подписанной зоны, называется подписанным ответом. Resolver, который имеет возможность проверять подписи в подписанном ответе,
называется поддерживающий
Процессы
Операциями resolver’а являются:
Операции name-сервера с
DNSKEY DNSKEY )SEP ) в ресурсной записи DNSKEY, который присутствует в открытых ключах, называемых
Причина, лежащая в основе создания двух типов пар ключей, состоит в определении отдельного набора функций для каждого типа ключа для того, чтобы уменьшить сложность задач, связанных с обновлением ключей и переподписыванием зоны. DNSKEY ) и является тем ключом, который передается родительской зоне для использования его при аутентифицированном делегировании. Аутентифицированное делегирование выполняется посредством создания ресурсной записи DS, содержащей хэш дочернего RRSIG ), используя свой собственный
Ключ
При создании пар ключей
Выбор алгоритма цифровой подписи основывается на принятых стандартах. Обычно рассматриваются следующие алгоритмы:
Из этих трех алгоритмов наиболее широко распространены RSA и DSA. С точки зрения производительности RSA и DSA имеют сопоставимую скорость создания подписи, но DSA является более медленным при проверке, а RSA — более быстрым. Единственным обязательным для реализации в
Выбор длины ключа определяется соотношением между риском компрометации ключа и производительностью. Производительность определяется временем создания подписи и временем проверки подписи. Длина пакета DNS-ответа также должна учитываться, потому что ресурсные записи DNSKEY посылаются в DNSKEY ), в этом случае производительность не является решающим фактором. Однако компрометация ключа
При выборе длины ключа для
Выбор периода использования (периода обновления) определяется риском раскрытия ключа. В случае DNSKEY, и частота изменения данного множества ресурсных записей также маленькая). Минимальная вероятность раскрытия ключа (небольшой объем данных, доступный для угадывания
В случае ключа DNSKEY, тем самым количество создаваемых подписей больше). Этот фактор в сочетании с относительно небольшой длиной ключа приводит к тому, что период действительности ключей
Рекомедация:
Длина ключа для
С точки зрения количества создаваемых ключей каждого типа ( DNSKEY, но соответствующая закрытая часть (DNSKEY дает возможность resolver’ам кэшировать и устанавливать доверие к новому ключу так, что они могут немедленно после обновления использовать новый ключ для проверки подписи.
Любое ПО name-сервера поддерживающего (имеющейся в BIND 9.3.x):
dnssec-keygen –a algorithm –b bits –n type [options] name
где algorithm может быть один из следующих:
bits (длина ключа) имеет следующие диапазоны:
type может быть одним из ZONE или HOST. В принципе, могут быть добавлены и любые другие типы ключей.
name есть имя собственника ключа (обычно имя домена).
Данная команда создает два файла: один содержит открытый ключ, а другой файл — соответствующий ему закрытый ключ. Имена этих файлов следующие:
K<domain_name>+algorithm_id+Key_id.key K<domain_name>+algorithm_id+Key_id.private
domain_name является значением параметра name, указанного в командной строке. Algorithm_id может быть следующим:
3 – DSA
5 – RSAMD5
key_id есть уникальный идентификатор созданного ключа, созданного программой.
Например, для создания example.ru, должна быть выполнена следующая команда:
dnssec-keygen –a RSAMD5 –b 1024 –n ZONE example.ru
Будут созданы следующие файлы, содержащие закрытый и открытый ключи:
Kexample.ru.+005+28345.private Kexample.ru.+005+28345.key
В этих именах файлов 005 определяет algorithm_id и 28345 есть уникальный идентификатор ключа.
В *.key файле информация открытого ключа имеет тот же самый синтаксис, что и ресурсной записи в зонном файле. Содержимое файла Kexample.ru.+005+28345.key следующее:
example.ru IN DNSSEC 256 3 5 BQFG...... (строка ключа в Base64)
Следовательно, содержимое файла с открытым ключом может быть добавлено к содержимому зонного файла с помощью следующей команды:
cat *.key >> /var/named/zonedb.example.ru
После того как ресурсная запись DNSKEY, содержащая открытый ключ, добавлена в зонный файл, зоны должен быть увеличен до того, как будет выполнено подписывание зоны.
Закрытые ключи из
Данная стратегия неосуществима в ситуациях, когда поддерживающий
shell, из которого вызывается утилита создания ключа, должен быть недоступен для всех, за исключением администратора зоны.K<zonename>.AlgorithmID+<keytag>.private в BIND), должна быть недоступна и невидима для всех, за исключением администратора зоны.Рекомендация:
Закрытые ключи, соответствующие как
Проверка данных зоны resolver’ом начинается с того, что resolver знает открытый ключ данной зоны (той, чьи данные он проверяет) или любой из открытых ключей зон, расположенных выше в дереве DNS. Если проверяемая зона (например, example.ru ) поддерживает безопасность (т.е. поддерживает .ru ) — нет, то точка доверия начинается с самой зоны. Если зона родителя (зона .ru ) поддерживает безопасность, а зона выше по дереву (зона root) — нет, начальной точкой доверия является родитель (т.е. зона .ru ). Если зона root поддерживает безопасность, то она становится исходной точкой доверия.
В любом случае открытый ключ данной начальной точки должен быть известен resolver’ам. Такие открытые ключи, известные resolver’ам, называются доверенными anchor’ами. Поскольку не существует возможности средствами DNS выполнить проверку этих открытых ключей, открытый ключ доверенного anchor’а должен распространяться внешним по отношению к DNS способом. Данное распространение может быть осуществлено с использованием таких каналов, как web-сайты или e-mail.
Список доверенных anchor’ов в поддерживающем
Тогда статус ответа (безопасный или небезопасный) зависит от списка хранящихся в resolver’е доверенных anchor’ов и от того, из какой зоны получен ответ.
(рис 8.2) "Острова" подписанных зонРезультат приведен в таблице.
| Доверенный anchor, инсталированный в поддерживающий |
Статус | ||
|---|---|---|---|
| www.example.ru | www.example.org | www.example.com | |
| None | |||
| Root | Secure | ||
| .org | Secure | ||
| example.com | Secure | ||
При подписывании зонного файла выполняется следующая последовательность действий:
NSEC для каждого имени собственника в зоне.SEP в RDATA в ресурсной записи DNSKEY и NSEC ).Рекомендации:
DNSKEY вместе в ресурсной записью RRSIG должны быть размещены в первичном авторитетном name-сервере.RRSIG ресурсными записями затем могут быть записаны в первичный авторитетный name-сервер. Исключением является случай, когда name-сервер поддерживает динамические обновления. В этом случае Приведем пример, иллюстрирующий использование программы подписывания зоны (
dnssec-signzone –o <name of zone> -k <name of file containing KSK> <location of zone file> <name of file containing ZSK>
Для подписывания данных из зоны example.ru с Kexample.ru.+005+76425.key, и
dnssec-signzone –o example.ru -k Kexample.ru.+005+76425.key /var/named/zonedb.example.ru Kexample.ru.+005+28345.key
Процесс подписывания зонного файла состоит из следующих шагов:
TTL, классом и RRType );RRSIG.Ключ DNSKEY, а ключ
До тех пор, пока все зоны не станут подписанными, возможна ситуация, при которой зона является подписанной, но ее родитель не является подписанной зоной. Единственной точкой доверия для поддерживающего
Будем считать, что цепочка доверия начинается с домена X и заканчивается доменом Y. Обычно домен X является непосредственным родителем Y и называется родительской зоной. Родительская зона обеспечивает доказательство достоверности открытого ключа дочерней зоны, подписывая ее ключ. Данная подпись хранится в ресурсной записи, называемой Delegation Signer ( DS ). Родительская зона также должна быть подписанной зоной, потому что неподписанная зона не умеет создавать подписи. Таким образом, подписанная зона может быть одного из следующих типов.
При защите данных зоны с помощью цифровой подписи в изолированной безопасной зоне следует выполнить следующие действия:
DNSKEY в зонный файл;Для DS. Он подписывает эту ресурсную запись DS, создавая ресурсную запись RRSIG. Родителю передается ключ DS и снова подписывать ее. Для уменьшения подобной административной нагрузки родительской зоне передается ключ DNSKEY ; все остальные ресурсные записи в зонном файле подписываются DS, содержащую ключ RRSIG. Ключ
Просуммируем дополнительные задачи, которые имеют место при
DS. Родитель также создает цифровую подпись (ресурсную запись RRSIG ) для данной ресурсной записи DS. Эта запись включается в информацию делегирования.Зона, подписывающая ответ, является конечной точкой в цепочке доверия. Предварительно необходимо установить доверие к
Для понимания обработки аутентифицированной ссылки, которая находится у родителя, необходимо посмотреть, как обрабатывается обычная ссылка DNS. В обычном DNS-запросе зона, которая не имеет авторитетной информации, относящейся к запросу для доменного имени в дочерней зоне, предоставляет ссылку, указывая множество ресурсных записей NS и соответствующие относящиеся к ним ресурсные записи (ресурсные записи, которые содержат IP-адреса серверов, указанных в ресурсных записях NS). При обычной обработке DNS-запроса следование по этим ссылкам будет следующим шагом обработки. Однако данный процесс является недостаточным с точки зрения установления цепочки доверия; информация о множестве ресурсных записей NS и связанных с ними ресурсными записями не может считаться аутентичной, потому что они не подписаны закрытым ключом аутентичного источника. DS.
Рассмотрим пример того, как поддерживающий example.ru. Resolver, следуя по своей цепочке доверия, начинающейся от доверенного anchor’а, аутентифицирует открытый ключ для зоны .ru и тем самым доверяет ему. Следовательно, он доверяет ресурсным записям NS и DS в зоне .ru. Из ресурсной записи NS и связанных с ней ресурсных записей resolver определяет, что авторитетный name-сервер для example.ru есть ns.example.ru, и он также знает его IP-адрес. Используя данную информацию, он идет на ns.example.ru и получает ключ example.ru из его множества ресурсных записей DNSKEY. Он вычисляет хэш данного ключа и сравнивает его с хэшем в ресурсной записи DS его родительской зоны .ru. Равенство этих двух хэшей означает, что ссылка из .ru зоны на example.ru зону аутентифицирована; аутентифицирован также и ключ example.ru зоны. Так как ключ example.ru, resolver может получить ключ example.ru аутентифицированным способом. Так как ключ example.ru, действительность любого подписанного ответа из данной зоны может быть определена с использованием ключа
Информация делегирования в родительской зоне в случае
DS, которая включает в себя хэш RRSIG, которая является подписью для ресурсной записи DS.Некоторые name-серверы могут быть авторитетными для одних зон и не являться авторитетными для других. Для зон, для которых они не являются авторитетными, они выполняют кэширование ресурсных записей из предыдущих запросов, полученных для этих зон. Поддерживающий
RRSIG прошла успешно. Проверка считается успешной, если может быть сформирована действительная цепочка от множества ресурсных записей до некоторого доверенного anchor’а. В этом случае множество ресурсных записей будет помещено в кэш и удалено, когда данные не будут считаться своевременными (в соответствии со значением TTL ) или более не проверяемыми (в соответствии с периодом действительности RRSIG ).DS ). Небезопасные множества ресурсных записей обрабатываются тем же способом, что и безопасные, но локальная политика на конечной системе может определить, что не следует доверять небезопасным делегированиям или данным в ответе.RRSIG ) не проходит или содержит некорректные поля (например, RRSIG истекла). Политика кэширования определяет, что делать с такими множествами ресурсных записей. Они могут быть либо отброшены, либо помещены в специальный BAD кэш, содержащий только те множества ресурсных записей, которые определены как фальшивые.Когда поддерживающий
Поддерживающие AD ) бит в заголовке указывает, что множества ресурсных записей в ответе прошли или не прошли все проверки безопасности, выполненные кэширующим name-сервером. Клиент может решить, полагаться ли ему на данную проверку или выполнить свое собственное множество проверок безопасности.
В некоторых случаях клиент может захотеть получить фальшивые данные от кэширующего name-сервера. В этом случае клиент посылает запрос с установленным Checking Disabled ( CD ) битом в заголовке DNS-сообщения. Это дает поддерживающему BAD кэша. Клиент должен затем выполнить свою собственную проверку множества ресурсных записей в ответе. В таких типах ответов сервер не устанавливает AD бит, указывая, что ответ не прошел все проверки безопасности, выполняемые сервером.
Спецификации
Так как большинство запросов первоначально исходят от stub resolver’а (от имени ПО клиента, требующего доступ к ресурсу в Интернете), защита сообщения DNS ответа должна также обеспечиваться для stub resolver’а от рекурсивного name-сервера. Способ обеспечения защиты на этом участке, который часто называется DNS "last hop", определяется природой stub resolver’а и топологией сети.
Stub resolver может:
Большинство stub resolver’ов, существующих сегодня, не поддерживают AD бита в заголовке сообщения в полученном ответе. Данные типы stub resolver’ов могут затем использовать этот бит в качестве признака того, что рекурсивный name-сервер имеет возможность проверять действительность подписей для данных в ответе.
В некоторых ситуациях установление доверенного пути между stub resolver’ами и рекурсивными name-серверами не предоставляется возможным. Примером является ситуация, когда рекурсивный name-сервер не расположен в административном домене предприятия, а выполняется у провайдера. В такой ситуации end-to-end защита может быть обеспечена только при наличии поддерживающего CD ) бит в свои сообщения запроса.
Напомним возможные операции над зонным файлом при выполнении динамических обновлений. Можно считать, что имеются две основные операции: добавление ресурсных записей и их удаление. Обновление можно рассматривать как комбинацию из операций добавления и удаления. В небезопасной зоне добавление и удаление ресурсных записей не вызывают никакой другой операции в оставшихся ресурсных записях в зонном файле. Однако в безопасной зоне существует NSEC -ресурсная запись (и соответствующая RRSIG -ресурсная запись) на каждую область в пространстве имен.
Имеется одна NSEC -ресурсная запись для каждого уникального имени владельца в зоне. Данная NSEC -ресурсная запись указывает на следующее имя владельца в каноническом порядке (упорядоченность, полученная лексикографической сортировкой доменных имен внутри зоны). NSEC -ресурсная запись для последнего имени владельца в каноническом порядке указывает на имя корня зоны (другими словами, имя зоны). Следовательно, концептуально эти записи образуют
Рассмотрим содержимое ресурсных записей NSEC для зоны example.ru. Предположим следующую каноническую упорядоченность доменных имен в зоне:
example.ru IN SOA ns.example.ru admin.example.ru (12985 3600 2700 800 3600) IN RRSIG ( SOA ) IN NS ns.example.ru. IN RRSIG ( NS ) IN MX mail.example.ru. IN RRSIG ( MX ) marketing.example.ru IN A 192.253.101.9 IN RRSIG ( A ) IN MX mail.example.ru IN RRSIG ( MX ) sales.example.ru IN NS ns.example.ru. IN RRSIG ( NS ) www.exapmle.ru IN A 192.253.101.10 IN RRSIG ( A )
Псевдоформат (содержащий только информационные поля) NSEC -ресурсных записей, который охватывает интервалы пространства имен, относящиеся к доменным именам и типам ресурсных записей, что находятся в каждом имени в зонном файле, является следующим (ниже приведены четыре ресурсных записи NSEC ):
example.ru IN NSEC marketing.example.ru (SOA NS MX RRSIG NSEC) marketing.example.ru IN NSEC sales.example.ru (A MX RRSIG NSEC) sales.example.ru IN NSEC www.example.ru (NS RRSIG NSEC) www.example.ru IN NSEC example.ru (A RRSIG NSEC)
Заметим, что существует столько NSEC -ресурсных записей, сколько уникальных доменных имен в зоне. NSEC -ресурсная запись, чье имя есть example.ru, ссылается на следующий домен в каноническом порядке (например, marketing.example.ru ). То же самое выполняется для NS-ресурсных записей, относящихся к доменам marketing.example.ru и sales.example.ru. NSEC -ресурсная запись, относящаяся к последнему доменному имени (т.е, www.example.ru ), ссылается на первое доменное имя в зоне (т.е. example.ru ).
Когда получен запрос для " package.example.ru IN A " (т.е. запрос для зоны, которой не существует), авторитетный сервер отвечает NSEC множеством ресурсных записей, доказывая, что имя не существует в зоне. В данном случае ответ от сервера будет состоять из обычного DNS-ответа, указывающего, что имя не существует, и следующей информации:
marketing.example.ru. NSEC ресурсная запись, указывающая, что не существует авторитетных имен между marketing.example.ru. и sales.example.ru.www.example.ru. NSEC -ресурсная запись (последний домен в зоне), доказывающая, что не существует расширений имен в формате wildcard в зоне, которые могут быть расширены таким образом, чтобы соответствовать запросу;RRSIG -ресурсные записи для каждой из вышеупомянутых NSEC -записей, используемые для аутентификации.Модификации NSEC -ресурсных записей, выполняется при следующих операциях:
Предположим, что новый почтовый хост добавлен в домен www.example.ru. Такое изменение требует добавления MX-ресурсной записи к данному имени домена. Следовательно, NSEC -ресурсная запись для www.example.ru должна быть модифицирована следующим образом:
www.example.ru IN NSEC example.ru ( A MX RRSIG NSEC )
Предположим, что предприятие example.ru решило, что больше не требуется отдельного почтового сервера для сотрудников отдела маркетинга. Такое изменение требует удаления почтового сервера ( RRType = MX ) из домена marketing.example.ru. Модифицированная NSEC -ресурсная запись теперь выглядит следующим образом:
marketing.example.ru IN NSEC sales.example.ru (A RRSIG NSEC)
Чтобы заказчики могли работать в режиме on-line, предприятие решило добавить отдельный домен websales.example.ru. Также был добавлен отдельный name-сервер и множество новых хостов. Этот новый домен требует следующих изменений в зонном файле:
Добавление NSEC -ресурсной записи для нового домена. В этом случае должна быть добавлена NSEC -ресурсная запись для доменного имени websales.example.ru и должно быть определено ее расположение в каноническом порядке. Данная NSEC -ресурсная запись должна быть вставлена таким образом, чтобы указывать на следующее доменное имя в новом каноническом порядке. Добавляемый name-сервер и существовавшие ранее хосты должны отображаться в этой новой ресурсной записи посредством того, что NS и А указываются в поле списка типов ресурсных записей, как показано ниже. Соответствующая RRSIG -ресурсная запись должна быть создана.
websales.example.ru IN NSEC www.example.ru (A NS RRSIG NSEC)
NSEC -ресурсная запись, относящаяся к домену, непосредственно предшествующая добавленному домену (в каноническом порядке) должна быть модифицирована таким образом, чтобы указывать на только что добавленный домен. NSEC -ресурсная запись должна теперь указывать на домен websales.example.ru.
sales.example.ru IN NSEC websales.example.ru (A RRSIG NSEC)
NSEC -множеству ресурсных записей.Предположим, предприятие решило, что все продажи теперь будут осуществляться только через Интернет. Так как хосты были созданы для выполнения данной функции в новом домене websales.example.ru, хосты в домене sales.example.ru больше не нужны. Поэтому все ресурсные записи, принадлежащие домену, должны быть удалены из зоны. Данное изменение включает следующие операции:
NSEC -ресурсная запись, соответствующая удаляемому домену, должна быть удалена, т.е. NSEC -ресурсная запись, относящаяся к домену sales.example.ru, удаляется;NSEC -ресурсная запись, относящаяся к домену, непосредственно предшествующему удаленному домену, модифицируется таким образом, чтобы указывать на домен, непосредственно следующий за удаленным доменом (т.е. запись должна указывать на ту, на которую указывала удаленная NSEC -ресурсная запись). В данном случае NSEC -ресурсная запись для marketing.example.ru должна указывать на домен websales.example.ru следующим образом:
marketing.example.ru IN NSEC websales.example.ru (A MX RRSIG NSEC)
Перечислим основные принципы, которым необходимо следовать при развертывании
DNSKEY вместе с его RRSIG -ресурсной записью должны быть записаны в зонный файл первичного авторитетного name-сервера.RRSIG -ресурсными записями может затем быть записано в зонный файл первичного авторитетного name-сервера. Исключением является случай, когда name-сервер поддерживает динамические обновления. При этом ключ Обеспечение безопасности сервисов DNS гарантирует только аутентификацию источника и защиту целостности данных. Такая защита не обеспечивает конфиденциальность, которая и не нужна, потому что DNS содержит открытые данные. Такие возможности, как split DNS, предоставляют определенный способ скрытия информации о внутренней сети, но реализация этого не предусмотрена в существующей спецификации протокола DNS.
Существует вероятность, что атакующий попытается получить информацию о локальной сети с использованием сервисов DNS и использует данную информацию для выполнения атаки. Некоторые типы информации, например, IP-адреса публичных серверов, предназначены для того, чтобы быть доступными всем. Что касается другой информации, администратору DNS рекомендуется выполнить определенные действия при создании зонного файла, которые бы сводили раскрытие локальной сети к минимуму. Данный процесс должен быть выполнен до подписывания зоны. Информация о сети, которая должна быть абсолютно закрытой, не должна публиковаться в DNS совсем.
Первое действие, которое должен предпринять администратор DNS, – это гарантировать, что значения данных ресурсной записи SOA являются корректными. Значения в данной ресурсной записи определяют взаимодействие между первичным и вторичными серверами в зоне, а именно, с какой периодичностью вторичные серверы должны выполнять зонные пересылки с первичного сервера. Эти данные также содержат минимальное значение TTL, которое говорит клиентским resolver’ам, как долго находятся данные в кэше. Смысл этих полей следующий:
Serial number в SOA RDATA используется для указания вторичным серверам, что произошли изменения в зоне и зонная пересылка должна быть выполнена. Данное значение должно возрастать при изменении данных в зоне.Refresh value говорит вторичным серверам, сколько секунд проходит между зонными пересылками. Для зон, которые часто обновляются, данное значение должно быть маленьким (от 20 минут до 2 часов). Для зон, которые обновляются не часто, может быть указано большее число (от 2 до 12 часов). Для подписанных зон данное значение не должно быть больше, чем длина периода действительности RRSIG, чтобы гарантировать, что вторичные зоны не содержат зон с истекшими RRSIG. Данное значение также может зависеть от ограничений, связанных с шириной пропускания на стороне первичного сервера. Заметим, что если первичный сервер создает сообщение NOTIFY при своем обновлении, вторичный сервер будет немедленно выполнять зонную пересылку и не ждать, пока нужно будет обновлять с соответствии со значением refresh.Retry value является периодом времени, через который вторичный сервер должен попытаться выполнить зонную пересылку, если предыдущая попытка окончилась неудачно. Данное значение должно быть делителем значения refresh. Возможный диапазон значений для данного поля может быть от 5 минут до 1 часа.Expire value является временем, в течение которого вторичный сервер должен считать зонную информацию действительной, если он не может установить соединение с первичным сервером для получения обновления. Данное поле позволяет вторичным серверам продолжать функционировать при различных сетевых сбоях. Значение зависит от частоты изменений в зоне и надежности соединения между name-серверами, оно может быть от 2 до 4 недель.minimum TTL является значением по умолчанию для всех множеств ресурсных записей в зоне, если они сами не имеют собственного значения TTL, указанного в зонном файле. Данное значение зависит от того, как часто информация изменяется в зоне. Если зона статическая, значение может быть большим; если динамическая, значение должно быть маленьким. Однако для зон, которые используют Рекомендации:
TTL должно быть между 30 секундами и 24 часами, чтобы гарантировать, что устаревшие множества ресурсных записей будут очищены из кэшей клиентов.Существует несколько типов ресурсных записей, которые сообщают информацию о сети, хостах или сервисах. К этим ресурсным записям относятся Responsible Person ( RP ) запись, Host Information ( HINFO ) запись, Location ( LOC ) запись и различные Text рекурсивные записи ( TXT ). Хотя данные типы записей предназначены для информирования пользователей, не имеющих плохих намерений, они также позволяют атакующему получить информацию о хостах в локальной сети для того, чтобы попытаться использовать их уязвимости. Например, атакующий может запросить HINFO -записи, просмотреть перечисленные хосты и определить ОС и платформы, которые имеют известные уязвимости. Следовательно, следует быть очень осторожным, включая данные типы записей в зонный файл.
Рекомендации:
Самым лучшим способом минимизировать последствия компрометации ключа является ограничение периода действительности RRSIG как в самой зоне, так и в родительской зоне. Это позволяет ограничить время, в течение которого атакующий может использовать скомпрометированный ключ для подделки ответов. Атакующий, который имеет скомпрометированный ключ DS -ресурсной записи, которая является точкой делегирования у родителя. Но если определить данный период действительности коротким, то потребуется частое переподписывание в зонном файле родителя.
Для минимизации влияния скомпрометированного ключа RRSIG, охватывающей DS -ресурсные записи, в диапазоне от нескольких дней до одной недели. Данное переподписывание не требует частого обновления
Рекомендации:
Мы рассмотрели операции развертывания и использования возможностей
Ключи, используемые для подписывания зоны (
RRSIG, но нет возможности подписать новые данные зоны.При плановом обновлении ключа период времени, после которого ключи должны быть изменены, определяется несколькими факторами:
Основываясь на этих факторах, в каждой зоне определяется частота обновления ключей для DNSKEY, в то время как ключ
RDATA в ресурсной записи изменяются (например, IP-адрес сервера изменился, и, следовательно, существующая ресурсная запись A должна быть заменена);RRSIG.Рекомендация:
Ключ
Воздействие обновления ключа на оставшуюся часть DNS зависит от того, является ли безопасная зона локально безопасной или глобально безопасной (как часть цепочки доверия).
Зона, которая является
Решение состоит в предварительном опубликовании нового открытого ключа перед тем, как выполнить обновление. Администратор DNS должен опубликовать новый ключ как ресурсную запись DNSKEY в зонном файле перед тем, как он будет использоваться для создания подписей. Процесс состоит в следующем:
DNSKEY -ресурсная запись);DNSKEY -ресурсная запись);TTL для записи зоны;DNSKEY -ресурсную запись из множества ключей зоны и сделать истекшими RRSIG -ресурсные записи;DNSKEY множество ресурсных записей новым ключом Следует помнить, что обновлять ключ DNSKEY из множества ключей, при этом продолжая подписывать зону старым DNSKEY, до тех пор, пока RRSIG в зоне не истекут. Данная процедура позволяет администратору выполнять обновление ключа оптимально.
Зоны, которые заранее опубликовывают новый открытый ключ, должны соблюдать следующие принципы:
TTL завершался до времени обновления ключа;RRSIG -ресурсную запись) для оставшихся ключей ( DNSKEY -ресурсные записи) в зонном файле.При обновлении
Операции, выполняемые при обновлении ключа
Ключ DS, которая содержит хэш дочернего ключа DS своим собственным ключом
DS -ресурсную запись (которая заменит старую DS -ресурсную запись), содержащую хэш нового ключа DS -ресурсную запись.Для того чтобы родитель мог аутентифицировать новый ключ DNSKEY -множество ресурсных записей, используя DNSKEY -ресурсные записи существующего ключа вместе с новой DNSKEY -ресурсной записью для KSK2. Затем создаются две подписи (две RRSIG -ресурсные записи) – одна с использованием существующего ключа DNSKEY множество ресурсных записей вместе с RRSIG -ресурсными записями (во множественном числе, потому что существуют две подписи, соответствующие ключам
example.ru DNSKEY <key-id: 43543> /* новый KSK*/
example.ru DNSKEY <key-id: 78546> /* существующий KSK*/
example.ru DNSKEY <key-id: 98342> /* ZSK*/
example.ru RRSIG (DNSKEY) <signer:example.ru signing-key:78546>
/* весь DNSKEY RRset подписан существующим KSK */
example.ru RRSIG (DNSKEY) <signer:example.ru signing-key:43543>
/* весь DNSKEY RRset подписан новым KSK */
При получении данной информации родитель выполняет следующие действия:
DNSKEY, которое включает новый ключ KSK2. Это выполняется с использованием первой из RRSIG -ресурсных записей заново созданного DNSKEY -множества ресурсных записей, (записи, в которой указан 78456 в качестве ключа подписывания) и своей собственной DS -ресурсной записи;RRSIG -ресурсную запись (запись, в которой указан 43543 в качестве ключа подписывания) из DNSKEY -множества ресурсных записей;DS -ресурсную запись, содержащую хэш нового ключа KSK2;RRSIG для новой DS -ресурсной записи ключа KSK2.Когда данные задачи выполнены родителем, процесс обновления ключа DS -ресурсной записью. Это аналогично обновлению любого другого множества ресурсных записей, которое включает создание, если требуется, любых новых RRSIG. Данное обновление может выполняться автоматически. Это означает, что старая DS -ресурсная запись может быть сброшена и одновременно новая DS -ресурсная запись добавлена. При этом будет выполнено только одно переподписывание в зоне.
Делегированная дочерняя зона должна сохранять истекший ключ DS для гарантии целостности цепочки аутентификации при обновлении ключа
Аварийное обновление ключа происходит тогда, когда один или более ключей в зоне (
Администратор DNS может обновить компрометированный ключ DNSKEY -ресурсную запись, уже опубликованную в зоне в качестве части набора ключей зоны (первые три шага в процессе, который рассматривался ранее), следующий шаг зависит от того, является ли ключ компрометированным.
Если используемый в текущий момент ключ TTL, потому что новый ключ уже опубликован к данному моменту. Администратор может просто удалить старые RRSIG из зоны и переподписать новым ключом
Если новый ключ RRSIG ; должно быть переподписано только множество ключей зоны. Также возможно просто удалить компрометированный ключ и заменить его новым ключом
Однако существует опасность, что атакующий использовал скомпрометированный ключ
Когда компрометирован ключ
Рекомендация:
Администратор DNS должен иметь способ аварийного контактирования с администратором родительской зоны, чтобы иметь возможность выполнять аварийное обновление ключа
Зонный файл переподписывается (т.е. заново создаются RRSIG -ресурсные записи), в следующих ситуациях:
Существуют две стратегии для переподписывания данных зоны.
Полное переподписывание. Все существующие записи подписи ( RRSIG -ресурсные записи) удаляются, зонный файл сортируется заново, все NSEC -ресурсные записи создаются, и, наконец, создаются новые записи подписи. Полное переподписывание выполняется в следующих ситуациях:
NSEC ресурсные записи модифицированы, потому что существующее множество ресурсных записей удалено, NSEC -ресурсные записи добавлены, потому что новое множество ресурсных записей добавлено в зонный файл. В этом случае подписи создаются только для тех ресурсных записей, которые были изменены. Инкрементальное переподписывание выполняется, когда изменения в содержимом зонного файла минимальны, что обычно бывает после динамического обновления.Рекомендации:
RRSIG -ресурсных записей, существующих в зоне. Это уменьшит риск того, что подписанная зона будет фиктивной в результате истекших подписей.SOA ресурсной записи должен быть увеличен перед переподписыванием зонного файла. Если данная операция не сделана, вторичные name-серверы могут не получить новые подписи, потому что они выполняют обновление исключительно на основе соответствия серийного номера SOA. В результате этого некоторые поддерживающие безопасность resolver’ы не будут иметь возможность проверять подписи (и таким образом иметь безопасный ответ), а другие — будут.Рассмотрим способ, которым
Для гарантирования end-to-end защиты транзакций запросов и ответов DNS необходимы дополнительные меры защиты (отличные от тех, которые определены в спецификации
Механизмы
Первой задачей является создание цифровых подписей для ресурсных записей в зонном файле. RRSIG. Строка, содержащая открытый ключ, который используется для проверки подписи (в RRSIG ), содержится в ресурсной записи с типом DNSKEY. Другой тип ресурсной записи, NSEC (Next Secure) используется для перечисления типов ресурсных записей (в каноническом порядке), существующих в данном домене. Подписи (т.е. ресурсные записи RRSIG ) для данного типа ресурсных записей создаются, кроме того, для обеспечения аутентифицированного доказательства невозможности создания ответов на запросы для несуществующего типа ресурсных записей. Дополнительно существует необязательный тип ресурсной записи DS (Delegation Signer) для случая, когда зона хочет разрешать выполнить проверку подлинности открытых ключей своих дочерних зон. Детальный синтаксис каждого из этих дополнительных типов ресурсных записей, введенных спецификацией RRSIG, потому что именно она содержит строку подписи.
Ресурсная запись RRSIG, подобно другим ресурсным записям, содержит поля имени собственника, TTL, класс, RRType и RDATA. Цифровая подпись и вся связанная с ней информация находится в поле RDATA. Расположение поля RDATA в ресурсной записи RRSIG со всеми подполями показано ниже. Также приведено краткое описание каждого подполя.
| RRRtype Covered | Algorihm Code | Labels |
| Original TTL | ||
| Signature Expiration | ||
| Signature Inception | ||
| Key Tag | Signer's NAme | |
| Encoded Signature | ||
RRType Covered имеет тип ресурсной записи, для которого RRSIG содержит подпись.
Поле Algorithm Code есть целое число, равное коду соответствующего криптографического алгоритма, использованного для создания подписи.
Поля Labels и Original TTL содержат количество ресурсных записей, для которых создана подпись, и значение TTL для множества ресурсных записей, для которых создана данная подпись.
Значения Signature Expiration и Signature Inception являются абсолютными значениями времени, которые определяют период действительности подписи, – период времени, в течение которого данная RRSIG считается действительной для зоны.
Поля Key Tag и Signer’s Name являются хэшем и доменным именем (FQDN) для ресурсной записи DNSKEY, которая будет использоваться клиентом для проверки действительности подписи.
Наконец, последнее поле содержит саму подпись.
Зона, которая содержит эти дополнительные ресурсные записи наряду с обычными ресурсными записями, называется подписанной зоной. Name-сервер, который создает такие подписанные зоны и включает в свой ответ соответствующие подписи (т.е. соответствующие RRSIG ) вместе в запрошенными ресурсными записями, называется
поддерживающим
Ответ, пришедший из подписанной зоны, называется подписанным ответом. Resolver, который имеет возможность проверять подписи в подписанном ответе,
называется поддерживающий
Процессы
Операциями resolver’а являются:
Операции name-сервера с
DNSKEY DNSKEY )SEP ) в ресурсной записи DNSKEY, который присутствует в открытых ключах, называемых
Причина, лежащая в основе создания двух типов пар ключей, состоит в определении отдельного набора функций для каждого типа ключа для того, чтобы уменьшить сложность задач, связанных с обновлением ключей и переподписыванием зоны. DNSKEY ) и является тем ключом, который передается родительской зоне для использования его при аутентифицированном делегировании. Аутентифицированное делегирование выполняется посредством создания ресурсной записи DS, содержащей хэш дочернего RRSIG ), используя свой собственный
Ключ
При создании пар ключей
Выбор алгоритма цифровой подписи основывается на принятых стандартах. Обычно рассматриваются следующие алгоритмы:
Из этих трех алгоритмов наиболее широко распространены RSA и DSA. С точки зрения производительности RSA и DSA имеют сопоставимую скорость создания подписи, но DSA является более медленным при проверке, а RSA — более быстрым. Единственным обязательным для реализации в
Выбор длины ключа определяется соотношением между риском компрометации ключа и производительностью. Производительность определяется временем создания подписи и временем проверки подписи. Длина пакета DNS-ответа также должна учитываться, потому что ресурсные записи DNSKEY посылаются в DNSKEY ), в этом случае производительность не является решающим фактором. Однако компрометация ключа
При выборе длины ключа для
Выбор периода использования (периода обновления) определяется риском раскрытия ключа. В случае DNSKEY, и частота изменения данного множества ресурсных записей также маленькая). Минимальная вероятность раскрытия ключа (небольшой объем данных, доступный для угадывания
В случае ключа DNSKEY, тем самым количество создаваемых подписей больше). Этот фактор в сочетании с относительно небольшой длиной ключа приводит к тому, что период действительности ключей
Рекомедация:
Длина ключа для
С точки зрения количества создаваемых ключей каждого типа ( DNSKEY, но соответствующая закрытая часть (DNSKEY дает возможность resolver’ам кэшировать и устанавливать доверие к новому ключу так, что они могут немедленно после обновления использовать новый ключ для проверки подписи.
Любое ПО name-сервера поддерживающего (имеющейся в BIND 9.3.x):
dnssec-keygen –a algorithm –b bits –n type [options] name
где algorithm может быть один из следующих:
bits (длина ключа) имеет следующие диапазоны:
type может быть одним из ZONE или HOST. В принципе, могут быть добавлены и любые другие типы ключей.
name есть имя собственника ключа (обычно имя домена).
Данная команда создает два файла: один содержит открытый ключ, а другой файл — соответствующий ему закрытый ключ. Имена этих файлов следующие:
K<domain_name>+algorithm_id+Key_id.key K<domain_name>+algorithm_id+Key_id.private
domain_name является значением параметра name, указанного в командной строке. Algorithm_id может быть следующим:
3 – DSA
5 – RSAMD5
key_id есть уникальный идентификатор созданного ключа, созданного программой.
Например, для создания example.ru, должна быть выполнена следующая команда:
dnssec-keygen –a RSAMD5 –b 1024 –n ZONE example.ru
Будут созданы следующие файлы, содержащие закрытый и открытый ключи:
Kexample.ru.+005+28345.private Kexample.ru.+005+28345.key
В этих именах файлов 005 определяет algorithm_id и 28345 есть уникальный идентификатор ключа.
В *.key файле информация открытого ключа имеет тот же самый синтаксис, что и ресурсной записи в зонном файле. Содержимое файла Kexample.ru.+005+28345.key следующее:
example.ru IN DNSSEC 256 3 5 BQFG...... (строка ключа в Base64)
Следовательно, содержимое файла с открытым ключом может быть добавлено к содержимому зонного файла с помощью следующей команды:
cat *.key >> /var/named/zonedb.example.ru
После того как ресурсная запись DNSKEY, содержащая открытый ключ, добавлена в зонный файл, зоны должен быть увеличен до того, как будет выполнено подписывание зоны.
Закрытые ключи из
Данная стратегия неосуществима в ситуациях, когда поддерживающий
shell, из которого вызывается утилита создания ключа, должен быть недоступен для всех, за исключением администратора зоны.K<zonename>.AlgorithmID+<keytag>.private в BIND), должна быть недоступна и невидима для всех, за исключением администратора зоны.Рекомендация:
Закрытые ключи, соответствующие как
Проверка данных зоны resolver’ом начинается с того, что resolver знает открытый ключ данной зоны (той, чьи данные он проверяет) или любой из открытых ключей зон, расположенных выше в дереве DNS. Если проверяемая зона (например, example.ru ) поддерживает безопасность (т.е. поддерживает .ru ) — нет, то точка доверия начинается с самой зоны. Если зона родителя (зона .ru ) поддерживает безопасность, а зона выше по дереву (зона root) — нет, начальной точкой доверия является родитель (т.е. зона .ru ). Если зона root поддерживает безопасность, то она становится исходной точкой доверия.
В любом случае открытый ключ данной начальной точки должен быть известен resolver’ам. Такие открытые ключи, известные resolver’ам, называются доверенными anchor’ами. Поскольку не существует возможности средствами DNS выполнить проверку этих открытых ключей, открытый ключ доверенного anchor’а должен распространяться внешним по отношению к DNS способом. Данное распространение может быть осуществлено с использованием таких каналов, как web-сайты или e-mail.
Список доверенных anchor’ов в поддерживающем
Тогда статус ответа (безопасный или небезопасный) зависит от списка хранящихся в resolver’е доверенных anchor’ов и от того, из какой зоны получен ответ.
(рис 8.2) "Острова" подписанных зонРезультат приведен в таблице.
| Доверенный anchor, инсталированный в поддерживающий |
Статус | ||
|---|---|---|---|
| www.example.ru | www.example.org | www.example.com | |
| None | |||
| Root | Secure | ||
| .org | Secure | ||
| example.com | Secure | ||
При подписывании зонного файла выполняется следующая последовательность действий:
NSEC для каждого имени собственника в зоне.SEP в RDATA в ресурсной записи DNSKEY и NSEC ).Рекомендации:
DNSKEY вместе в ресурсной записью RRSIG должны быть размещены в первичном авторитетном name-сервере.RRSIG ресурсными записями затем могут быть записаны в первичный авторитетный name-сервер. Исключением является случай, когда name-сервер поддерживает динамические обновления. В этом случае Приведем пример, иллюстрирующий использование программы подписывания зоны (
dnssec-signzone –o <name of zone> -k <name of file containing KSK> <location of zone file> <name of file containing ZSK>
Для подписывания данных из зоны example.ru с Kexample.ru.+005+76425.key, и
dnssec-signzone –o example.ru -k Kexample.ru.+005+76425.key /var/named/zonedb.example.ru Kexample.ru.+005+28345.key
Процесс подписывания зонного файла состоит из следующих шагов:
TTL, классом и RRType );RRSIG.Ключ DNSKEY, а ключ
До тех пор, пока все зоны не станут подписанными, возможна ситуация, при которой зона является подписанной, но ее родитель не является подписанной зоной. Единственной точкой доверия для поддерживающего
Будем считать, что цепочка доверия начинается с домена X и заканчивается доменом Y. Обычно домен X является непосредственным родителем Y и называется родительской зоной. Родительская зона обеспечивает доказательство достоверности открытого ключа дочерней зоны, подписывая ее ключ. Данная подпись хранится в ресурсной записи, называемой Delegation Signer ( DS ). Родительская зона также должна быть подписанной зоной, потому что неподписанная зона не умеет создавать подписи. Таким образом, подписанная зона может быть одного из следующих типов.
При защите данных зоны с помощью цифровой подписи в изолированной безопасной зоне следует выполнить следующие действия:
DNSKEY в зонный файл;Для DS. Он подписывает эту ресурсную запись DS, создавая ресурсную запись RRSIG. Родителю передается ключ DS и снова подписывать ее. Для уменьшения подобной административной нагрузки родительской зоне передается ключ DNSKEY ; все остальные ресурсные записи в зонном файле подписываются DS, содержащую ключ RRSIG. Ключ
Просуммируем дополнительные задачи, которые имеют место при
DS. Родитель также создает цифровую подпись (ресурсную запись RRSIG ) для данной ресурсной записи DS. Эта запись включается в информацию делегирования.Зона, подписывающая ответ, является конечной точкой в цепочке доверия. Предварительно необходимо установить доверие к
Для понимания обработки аутентифицированной ссылки, которая находится у родителя, необходимо посмотреть, как обрабатывается обычная ссылка DNS. В обычном DNS-запросе зона, которая не имеет авторитетной информации, относящейся к запросу для доменного имени в дочерней зоне, предоставляет ссылку, указывая множество ресурсных записей NS и соответствующие относящиеся к ним ресурсные записи (ресурсные записи, которые содержат IP-адреса серверов, указанных в ресурсных записях NS). При обычной обработке DNS-запроса следование по этим ссылкам будет следующим шагом обработки. Однако данный процесс является недостаточным с точки зрения установления цепочки доверия; информация о множестве ресурсных записей NS и связанных с ними ресурсными записями не может считаться аутентичной, потому что они не подписаны закрытым ключом аутентичного источника. DS.
Рассмотрим пример того, как поддерживающий example.ru. Resolver, следуя по своей цепочке доверия, начинающейся от доверенного anchor’а, аутентифицирует открытый ключ для зоны .ru и тем самым доверяет ему. Следовательно, он доверяет ресурсным записям NS и DS в зоне .ru. Из ресурсной записи NS и связанных с ней ресурсных записей resolver определяет, что авторитетный name-сервер для example.ru есть ns.example.ru, и он также знает его IP-адрес. Используя данную информацию, он идет на ns.example.ru и получает ключ example.ru из его множества ресурсных записей DNSKEY. Он вычисляет хэш данного ключа и сравнивает его с хэшем в ресурсной записи DS его родительской зоны .ru. Равенство этих двух хэшей означает, что ссылка из .ru зоны на example.ru зону аутентифицирована; аутентифицирован также и ключ example.ru зоны. Так как ключ example.ru, resolver может получить ключ example.ru аутентифицированным способом. Так как ключ example.ru, действительность любого подписанного ответа из данной зоны может быть определена с использованием ключа
Информация делегирования в родительской зоне в случае
DS, которая включает в себя хэш RRSIG, которая является подписью для ресурсной записи DS.Некоторые name-серверы могут быть авторитетными для одних зон и не являться авторитетными для других. Для зон, для которых они не являются авторитетными, они выполняют кэширование ресурсных записей из предыдущих запросов, полученных для этих зон. Поддерживающий
RRSIG прошла успешно. Проверка считается успешной, если может быть сформирована действительная цепочка от множества ресурсных записей до некоторого доверенного anchor’а. В этом случае множество ресурсных записей будет помещено в кэш и удалено, когда данные не будут считаться своевременными (в соответствии со значением TTL ) или более не проверяемыми (в соответствии с периодом действительности RRSIG ).DS ). Небезопасные множества ресурсных записей обрабатываются тем же способом, что и безопасные, но локальная политика на конечной системе может определить, что не следует доверять небезопасным делегированиям или данным в ответе.RRSIG ) не проходит или содержит некорректные поля (например, RRSIG истекла). Политика кэширования определяет, что делать с такими множествами ресурсных записей. Они могут быть либо отброшены, либо помещены в специальный BAD кэш, содержащий только те множества ресурсных записей, которые определены как фальшивые.Когда поддерживающий
Поддерживающие AD ) бит в заголовке указывает, что множества ресурсных записей в ответе прошли или не прошли все проверки безопасности, выполненные кэширующим name-сервером. Клиент может решить, полагаться ли ему на данную проверку или выполнить свое собственное множество проверок безопасности.
В некоторых случаях клиент может захотеть получить фальшивые данные от кэширующего name-сервера. В этом случае клиент посылает запрос с установленным Checking Disabled ( CD ) битом в заголовке DNS-сообщения. Это дает поддерживающему BAD кэша. Клиент должен затем выполнить свою собственную проверку множества ресурсных записей в ответе. В таких типах ответов сервер не устанавливает AD бит, указывая, что ответ не прошел все проверки безопасности, выполняемые сервером.
Спецификации
Так как большинство запросов первоначально исходят от stub resolver’а (от имени ПО клиента, требующего доступ к ресурсу в Интернете), защита сообщения DNS ответа должна также обеспечиваться для stub resolver’а от рекурсивного name-сервера. Способ обеспечения защиты на этом участке, который часто называется DNS "last hop", определяется природой stub resolver’а и топологией сети.
Stub resolver может:
Большинство stub resolver’ов, существующих сегодня, не поддерживают AD бита в заголовке сообщения в полученном ответе. Данные типы stub resolver’ов могут затем использовать этот бит в качестве признака того, что рекурсивный name-сервер имеет возможность проверять действительность подписей для данных в ответе.
В некоторых ситуациях установление доверенного пути между stub resolver’ами и рекурсивными name-серверами не предоставляется возможным. Примером является ситуация, когда рекурсивный name-сервер не расположен в административном домене предприятия, а выполняется у провайдера. В такой ситуации end-to-end защита может быть обеспечена только при наличии поддерживающего CD ) бит в свои сообщения запроса.
Напомним возможные операции над зонным файлом при выполнении динамических обновлений. Можно считать, что имеются две основные операции: добавление ресурсных записей и их удаление. Обновление можно рассматривать как комбинацию из операций добавления и удаления. В небезопасной зоне добавление и удаление ресурсных записей не вызывают никакой другой операции в оставшихся ресурсных записях в зонном файле. Однако в безопасной зоне существует NSEC -ресурсная запись (и соответствующая RRSIG -ресурсная запись) на каждую область в пространстве имен.
Имеется одна NSEC -ресурсная запись для каждого уникального имени владельца в зоне. Данная NSEC -ресурсная запись указывает на следующее имя владельца в каноническом порядке (упорядоченность, полученная лексикографической сортировкой доменных имен внутри зоны). NSEC -ресурсная запись для последнего имени владельца в каноническом порядке указывает на имя корня зоны (другими словами, имя зоны). Следовательно, концептуально эти записи образуют
Рассмотрим содержимое ресурсных записей NSEC для зоны example.ru. Предположим следующую каноническую упорядоченность доменных имен в зоне:
example.ru IN SOA ns.example.ru admin.example.ru (12985 3600 2700 800 3600) IN RRSIG ( SOA ) IN NS ns.example.ru. IN RRSIG ( NS ) IN MX mail.example.ru. IN RRSIG ( MX ) marketing.example.ru IN A 192.253.101.9 IN RRSIG ( A ) IN MX mail.example.ru IN RRSIG ( MX ) sales.example.ru IN NS ns.example.ru. IN RRSIG ( NS ) www.exapmle.ru IN A 192.253.101.10 IN RRSIG ( A )
Псевдоформат (содержащий только информационные поля) NSEC -ресурсных записей, который охватывает интервалы пространства имен, относящиеся к доменным именам и типам ресурсных записей, что находятся в каждом имени в зонном файле, является следующим (ниже приведены четыре ресурсных записи NSEC ):
example.ru IN NSEC marketing.example.ru (SOA NS MX RRSIG NSEC) marketing.example.ru IN NSEC sales.example.ru (A MX RRSIG NSEC) sales.example.ru IN NSEC www.example.ru (NS RRSIG NSEC) www.example.ru IN NSEC example.ru (A RRSIG NSEC)
Заметим, что существует столько NSEC -ресурсных записей, сколько уникальных доменных имен в зоне. NSEC -ресурсная запись, чье имя есть example.ru, ссылается на следующий домен в каноническом порядке (например, marketing.example.ru ). То же самое выполняется для NS-ресурсных записей, относящихся к доменам marketing.example.ru и sales.example.ru. NSEC -ресурсная запись, относящаяся к последнему доменному имени (т.е, www.example.ru ), ссылается на первое доменное имя в зоне (т.е. example.ru ).
Когда получен запрос для " package.example.ru IN A " (т.е. запрос для зоны, которой не существует), авторитетный сервер отвечает NSEC множеством ресурсных записей, доказывая, что имя не существует в зоне. В данном случае ответ от сервера будет состоять из обычного DNS-ответа, указывающего, что имя не существует, и следующей информации:
marketing.example.ru. NSEC ресурсная запись, указывающая, что не существует авторитетных имен между marketing.example.ru. и sales.example.ru.www.example.ru. NSEC -ресурсная запись (последний домен в зоне), доказывающая, что не существует расширений имен в формате wildcard в зоне, которые могут быть расширены таким образом, чтобы соответствовать запросу;RRSIG -ресурсные записи для каждой из вышеупомянутых NSEC -записей, используемые для аутентификации.Модификации NSEC -ресурсных записей, выполняется при следующих операциях:
Предположим, что новый почтовый хост добавлен в домен www.example.ru. Такое изменение требует добавления MX-ресурсной записи к данному имени домена. Следовательно, NSEC -ресурсная запись для www.example.ru должна быть модифицирована следующим образом:
www.example.ru IN NSEC example.ru ( A MX RRSIG NSEC )
Предположим, что предприятие example.ru решило, что больше не требуется отдельного почтового сервера для сотрудников отдела маркетинга. Такое изменение требует удаления почтового сервера ( RRType = MX ) из домена marketing.example.ru. Модифицированная NSEC -ресурсная запись теперь выглядит следующим образом:
marketing.example.ru IN NSEC sales.example.ru (A RRSIG NSEC)
Чтобы заказчики могли работать в режиме on-line, предприятие решило добавить отдельный домен websales.example.ru. Также был добавлен отдельный name-сервер и множество новых хостов. Этот новый домен требует следующих изменений в зонном файле:
Добавление NSEC -ресурсной записи для нового домена. В этом случае должна быть добавлена NSEC -ресурсная запись для доменного имени websales.example.ru и должно быть определено ее расположение в каноническом порядке. Данная NSEC -ресурсная запись должна быть вставлена таким образом, чтобы указывать на следующее доменное имя в новом каноническом порядке. Добавляемый name-сервер и существовавшие ранее хосты должны отображаться в этой новой ресурсной записи посредством того, что NS и А указываются в поле списка типов ресурсных записей, как показано ниже. Соответствующая RRSIG -ресурсная запись должна быть создана.
websales.example.ru IN NSEC www.example.ru (A NS RRSIG NSEC)
NSEC -ресурсная запись, относящаяся к домену, непосредственно предшествующая добавленному домену (в каноническом порядке) должна быть модифицирована таким образом, чтобы указывать на только что добавленный домен. NSEC -ресурсная запись должна теперь указывать на домен websales.example.ru.
sales.example.ru IN NSEC websales.example.ru (A RRSIG NSEC)
NSEC -множеству ресурсных записей.Предположим, предприятие решило, что все продажи теперь будут осуществляться только через Интернет. Так как хосты были созданы для выполнения данной функции в новом домене websales.example.ru, хосты в домене sales.example.ru больше не нужны. Поэтому все ресурсные записи, принадлежащие домену, должны быть удалены из зоны. Данное изменение включает следующие операции:
NSEC -ресурсная запись, соответствующая удаляемому домену, должна быть удалена, т.е. NSEC -ресурсная запись, относящаяся к домену sales.example.ru, удаляется;NSEC -ресурсная запись, относящаяся к домену, непосредственно предшествующему удаленному домену, модифицируется таким образом, чтобы указывать на домен, непосредственно следующий за удаленным доменом (т.е. запись должна указывать на ту, на которую указывала удаленная NSEC -ресурсная запись). В данном случае NSEC -ресурсная запись для marketing.example.ru должна указывать на домен websales.example.ru следующим образом:
marketing.example.ru IN NSEC websales.example.ru (A MX RRSIG NSEC)
Перечислим основные принципы, которым необходимо следовать при развертывании
DNSKEY вместе с его RRSIG -ресурсной записью должны быть записаны в зонный файл первичного авторитетного name-сервера.RRSIG -ресурсными записями может затем быть записано в зонный файл первичного авторитетного name-сервера. Исключением является случай, когда name-сервер поддерживает динамические обновления. При этом ключ Обеспечение безопасности сервисов DNS гарантирует только аутентификацию источника и защиту целостности данных. Такая защита не обеспечивает конфиденциальность, которая и не нужна, потому что DNS содержит открытые данные. Такие возможности, как split DNS, предоставляют определенный способ скрытия информации о внутренней сети, но реализация этого не предусмотрена в существующей спецификации протокола DNS.
Существует вероятность, что атакующий попытается получить информацию о локальной сети с использованием сервисов DNS и использует данную информацию для выполнения атаки. Некоторые типы информации, например, IP-адреса публичных серверов, предназначены для того, чтобы быть доступными всем. Что касается другой информации, администратору DNS рекомендуется выполнить определенные действия при создании зонного файла, которые бы сводили раскрытие локальной сети к минимуму. Данный процесс должен быть выполнен до подписывания зоны. Информация о сети, которая должна быть абсолютно закрытой, не должна публиковаться в DNS совсем.
Первое действие, которое должен предпринять администратор DNS, – это гарантировать, что значения данных ресурсной записи SOA являются корректными. Значения в данной ресурсной записи определяют взаимодействие между первичным и вторичными серверами в зоне, а именно, с какой периодичностью вторичные серверы должны выполнять зонные пересылки с первичного сервера. Эти данные также содержат минимальное значение TTL, которое говорит клиентским resolver’ам, как долго находятся данные в кэше. Смысл этих полей следующий:
Serial number в SOA RDATA используется для указания вторичным серверам, что произошли изменения в зоне и зонная пересылка должна быть выполнена. Данное значение должно возрастать при изменении данных в зоне.Refresh value говорит вторичным серверам, сколько секунд проходит между зонными пересылками. Для зон, которые часто обновляются, данное значение должно быть маленьким (от 20 минут до 2 часов). Для зон, которые обновляются не часто, может быть указано большее число (от 2 до 12 часов). Для подписанных зон данное значение не должно быть больше, чем длина периода действительности RRSIG, чтобы гарантировать, что вторичные зоны не содержат зон с истекшими RRSIG. Данное значение также может зависеть от ограничений, связанных с шириной пропускания на стороне первичного сервера. Заметим, что если первичный сервер создает сообщение NOTIFY при своем обновлении, вторичный сервер будет немедленно выполнять зонную пересылку и не ждать, пока нужно будет обновлять с соответствии со значением refresh.Retry value является периодом времени, через который вторичный сервер должен попытаться выполнить зонную пересылку, если предыдущая попытка окончилась неудачно. Данное значение должно быть делителем значения refresh. Возможный диапазон значений для данного поля может быть от 5 минут до 1 часа.Expire value является временем, в течение которого вторичный сервер должен считать зонную информацию действительной, если он не может установить соединение с первичным сервером для получения обновления. Данное поле позволяет вторичным серверам продолжать функционировать при различных сетевых сбоях. Значение зависит от частоты изменений в зоне и надежности соединения между name-серверами, оно может быть от 2 до 4 недель.minimum TTL является значением по умолчанию для всех множеств ресурсных записей в зоне, если они сами не имеют собственного значения TTL, указанного в зонном файле. Данное значение зависит от того, как часто информация изменяется в зоне. Если зона статическая, значение может быть большим; если динамическая, значение должно быть маленьким. Однако для зон, которые используют Рекомендации:
TTL должно быть между 30 секундами и 24 часами, чтобы гарантировать, что устаревшие множества ресурсных записей будут очищены из кэшей клиентов.Существует несколько типов ресурсных записей, которые сообщают информацию о сети, хостах или сервисах. К этим ресурсным записям относятся Responsible Person ( RP ) запись, Host Information ( HINFO ) запись, Location ( LOC ) запись и различные Text рекурсивные записи ( TXT ). Хотя данные типы записей предназначены для информирования пользователей, не имеющих плохих намерений, они также позволяют атакующему получить информацию о хостах в локальной сети для того, чтобы попытаться использовать их уязвимости. Например, атакующий может запросить HINFO -записи, просмотреть перечисленные хосты и определить ОС и платформы, которые имеют известные уязвимости. Следовательно, следует быть очень осторожным, включая данные типы записей в зонный файл.
Рекомендации:
Самым лучшим способом минимизировать последствия компрометации ключа является ограничение периода действительности RRSIG как в самой зоне, так и в родительской зоне. Это позволяет ограничить время, в течение которого атакующий может использовать скомпрометированный ключ для подделки ответов. Атакующий, который имеет скомпрометированный ключ DS -ресурсной записи, которая является точкой делегирования у родителя. Но если определить данный период действительности коротким, то потребуется частое переподписывание в зонном файле родителя.
Для минимизации влияния скомпрометированного ключа RRSIG, охватывающей DS -ресурсные записи, в диапазоне от нескольких дней до одной недели. Данное переподписывание не требует частого обновления
Рекомендации:
Мы рассмотрели операции развертывания и использования возможностей
Ключи, используемые для подписывания зоны (
RRSIG, но нет возможности подписать новые данные зоны.При плановом обновлении ключа период времени, после которого ключи должны быть изменены, определяется несколькими факторами:
Основываясь на этих факторах, в каждой зоне определяется частота обновления ключей для DNSKEY, в то время как ключ
RDATA в ресурсной записи изменяются (например, IP-адрес сервера изменился, и, следовательно, существующая ресурсная запись A должна быть заменена);RRSIG.Рекомендация:
Ключ
Воздействие обновления ключа на оставшуюся часть DNS зависит от того, является ли безопасная зона локально безопасной или глобально безопасной (как часть цепочки доверия).
Зона, которая является
Решение состоит в предварительном опубликовании нового открытого ключа перед тем, как выполнить обновление. Администратор DNS должен опубликовать новый ключ как ресурсную запись DNSKEY в зонном файле перед тем, как он будет использоваться для создания подписей. Процесс состоит в следующем:
DNSKEY -ресурсная запись);DNSKEY -ресурсная запись);TTL для записи зоны;DNSKEY -ресурсную запись из множества ключей зоны и сделать истекшими RRSIG -ресурсные записи;DNSKEY множество ресурсных записей новым ключом Следует помнить, что обновлять ключ DNSKEY из множества ключей, при этом продолжая подписывать зону старым DNSKEY, до тех пор, пока RRSIG в зоне не истекут. Данная процедура позволяет администратору выполнять обновление ключа оптимально.
Зоны, которые заранее опубликовывают новый открытый ключ, должны соблюдать следующие принципы:
TTL завершался до времени обновления ключа;RRSIG -ресурсную запись) для оставшихся ключей ( DNSKEY -ресурсные записи) в зонном файле.При обновлении
Операции, выполняемые при обновлении ключа
Ключ DS, которая содержит хэш дочернего ключа DS своим собственным ключом
DS -ресурсную запись (которая заменит старую DS -ресурсную запись), содержащую хэш нового ключа DS -ресурсную запись.Для того чтобы родитель мог аутентифицировать новый ключ DNSKEY -множество ресурсных записей, используя DNSKEY -ресурсные записи существующего ключа вместе с новой DNSKEY -ресурсной записью для KSK2. Затем создаются две подписи (две RRSIG -ресурсные записи) – одна с использованием существующего ключа DNSKEY множество ресурсных записей вместе с RRSIG -ресурсными записями (во множественном числе, потому что существуют две подписи, соответствующие ключам
example.ru DNSKEY <key-id: 43543> /* новый KSK*/
example.ru DNSKEY <key-id: 78546> /* существующий KSK*/
example.ru DNSKEY <key-id: 98342> /* ZSK*/
example.ru RRSIG (DNSKEY) <signer:example.ru signing-key:78546>
/* весь DNSKEY RRset подписан существующим KSK */
example.ru RRSIG (DNSKEY) <signer:example.ru signing-key:43543>
/* весь DNSKEY RRset подписан новым KSK */
При получении данной информации родитель выполняет следующие действия:
DNSKEY, которое включает новый ключ KSK2. Это выполняется с использованием первой из RRSIG -ресурсных записей заново созданного DNSKEY -множества ресурсных записей, (записи, в которой указан 78456 в качестве ключа подписывания) и своей собственной DS -ресурсной записи;RRSIG -ресурсную запись (запись, в которой указан 43543 в качестве ключа подписывания) из DNSKEY -множества ресурсных записей;DS -ресурсную запись, содержащую хэш нового ключа KSK2;RRSIG для новой DS -ресурсной записи ключа KSK2.Когда данные задачи выполнены родителем, процесс обновления ключа DS -ресурсной записью. Это аналогично обновлению любого другого множества ресурсных записей, которое включает создание, если требуется, любых новых RRSIG. Данное обновление может выполняться автоматически. Это означает, что старая DS -ресурсная запись может быть сброшена и одновременно новая DS -ресурсная запись добавлена. При этом будет выполнено только одно переподписывание в зоне.
Делегированная дочерняя зона должна сохранять истекший ключ DS для гарантии целостности цепочки аутентификации при обновлении ключа
Аварийное обновление ключа происходит тогда, когда один или более ключей в зоне (
Администратор DNS может обновить компрометированный ключ DNSKEY -ресурсную запись, уже опубликованную в зоне в качестве части набора ключей зоны (первые три шага в процессе, который рассматривался ранее), следующий шаг зависит от того, является ли ключ компрометированным.
Если используемый в текущий момент ключ TTL, потому что новый ключ уже опубликован к данному моменту. Администратор может просто удалить старые RRSIG из зоны и переподписать новым ключом
Если новый ключ RRSIG ; должно быть переподписано только множество ключей зоны. Также возможно просто удалить компрометированный ключ и заменить его новым ключом
Однако существует опасность, что атакующий использовал скомпрометированный ключ
Когда компрометирован ключ
Рекомендация:
Администратор DNS должен иметь способ аварийного контактирования с администратором родительской зоны, чтобы иметь возможность выполнять аварийное обновление ключа
Зонный файл переподписывается (т.е. заново создаются RRSIG -ресурсные записи), в следующих ситуациях:
Существуют две стратегии для переподписывания данных зоны.
Полное переподписывание. Все существующие записи подписи ( RRSIG -ресурсные записи) удаляются, зонный файл сортируется заново, все NSEC -ресурсные записи создаются, и, наконец, создаются новые записи подписи. Полное переподписывание выполняется в следующих ситуациях:
NSEC ресурсные записи модифицированы, потому что существующее множество ресурсных записей удалено, NSEC -ресурсные записи добавлены, потому что новое множество ресурсных записей добавлено в зонный файл. В этом случае подписи создаются только для тех ресурсных записей, которые были изменены. Инкрементальное переподписывание выполняется, когда изменения в содержимом зонного файла минимальны, что обычно бывает после динамического обновления.Рекомендации:
RRSIG -ресурсных записей, существующих в зоне. Это уменьшит риск того, что подписанная зона будет фиктивной в результате истекших подписей.SOA ресурсной записи должен быть увеличен перед переподписыванием зонного файла. Если данная операция не сделана, вторичные name-серверы могут не получить новые подписи, потому что они выполняют обновление исключительно на основе соответствия серийного номера SOA. В результате этого некоторые поддерживающие безопасность resolver’ы не будут иметь возможность проверять подписи (и таким образом иметь безопасный ответ), а другие — будут.Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.