Технология DNSSEC разработана как расширение системы DNS для защиты от подмены данных. Позволяет не допустить фишинга, отравления кэша и других интернет-угроз.
Принципы работы
Принцип работы DNSSEC основан на использовании цифровых подписей и построении цепочки доверия. DNSSEC создаёт для каждого типа ресурсных записей специальную ресурсную запись с цифровой подписью. Чтобы сгенерировать цифровую подпись для каких-либо данных, нужен секретный ключ. При этом проверить достоверность цифровой подписи может любой DNS-клиент с помощью открытого ключа. Открытые ключи публикуются в зоне домена в виде ресурсной записи типа DNSKEY. Для проверки открытой части ключа используется цепочка доверия. Проверка достоверности ключа происходит с помощью его отпечатков, предварительно отправленных в родительскую доменную зону в виде ресурсных DS-записей. Отпечатки открытых ключей родительских доменных зон также отправляются в соответствующие для них родительские зоны. Такая цепочка доверия строится до корневой зоны, у которой открытый ключ и его отпечатки опубликованы в официальных документах ICANN — организации ответственной за корневую зону.
DNSSEC использует 2 типа ключей:
- ZSK (Zone Signing Key) — ключ для подписи ресурсных записей зоны;
- KSK (Key Signing Key) — ключ для подписи ключей.
Рекомендуем длину KSK-ключа и период его обновления выбирать больше, чем для ZSK-ключа. ZSK-ключ используется каждый раз, когда происходит редактирование доменной зоны или её обновление. Использование короткого ZSK-ключа облегчает процесс подписи, так как снижает нагрузку на сервер, а небольшой период обновления позволяет поддерживать высокий уровень безопасности. С помощью KSK-ключа производится только подписание ключей. Он используется реже ZSK-ключа. Поэтому длинный ключ не так сильно влияет на производительность. Для длинного ключа можно указать длинный период обновления ключа без ущерба для безопасности. Длинный период обновления KSK позволяет реже передавать DS-записи в родительскую зону.
Для избежания компрометации ключей DNSSEC используется процесс обновления ключей. Ключи обновляются постепенно, чтобы у вторичных серверов и серверов кэширования DNS было достаточно времени для синхронизации с первичным сервером DNS, не допуская сбоев работы домена.
Процесс обновления KSK-ключа:
- Публикация DS-записей нового KSK-ключа в родительской зоне. В DNSmanager следующий KSK-ключ создаётся сразу при подписании домена или сразу после удаления старого KSK-ключа. В таком случае у пользователя появляется возможность заранее опубликовать DS-записи нового ключа. Для корректной работы обновления KSK-ключа DS-записи нового ключа нужно опубликовать в родительской зоне за месяц до конца обновления KSK-ключа.
- Замена KSK-ключа. Активный действующий KSK-ключ заменяется новым KSK-ключом. В DNSmanager замена происходит за 2 недели до конца обновления KSK-ключа.
- Удаление DS-записей старого ключа в родительской зоне. В этот момент DNSmanager генерирует следующий новый ключ, позволяя пользователям одновременно выполнить необходимые действия в родительской зоне: удалить DS-записи старого ключа и добавить DS-записи следующего нового ключа.
Процесс обновления ZSK-ключа:
- Создание и публикация в доменной зоне нового ключа ZSK-ключа. В DNSmanager выполняется за 2 недели до смены ключа. Новый ключ является пассивным и не участвует в процессе подписывания доменной зоны.
- Замена ZSK-ключа. Опубликованный заранее новый ZSK-ключ становится активным. Действующий до этого ZSK-ключ становится пассивным и больше не участвует в процессе подписи.
- Удаление старого пассивного ZSK-ключа. Действие выполняется через 2 недели после замены ZSK-ключа.
При использовании DNSSEC увеличивается размер пакета DNS. Если размер пакета превышает 512 байт, используется протокол TCP. На некоторых маршрутизаторах работа DNS по протоколу TCP может быть запрещена (закрыт порт 53).
При превышении размера MTU пакеты DNS фильтруются. MTU — максимальный размер полезного блока данных одного пакета, который может быть передан без фрагментации. Распространённый размер MTU — 1500 байт.
Включение поддержки DNSSEC
Поддержка DNSSEC доступна для DNS-серверов:
- Bind, начиная с версии 9.8.4;
- PowerDNS, начиная с версии 3.2.
Включить поддержку DNSSEC и настроить параметры ключей может администратор в Настройки → Глобальные настройки. Подробнее см. в статье Глобальные настройки.
Почтовые уведомления
Для включения и поддержки работы DNSSEC нужно вручную публиковать и обновлять DS-записи в родительской доменной зоне. Почтовые уведомления DNSSEC позволяют настроить получение уведомлений о новых DS-записях, требующих публикации. Для этого включите опцию Настройки → Почтовые уведомления → Уведомления от расширения DNSSEC dns-сервера.
Включение защиты DNSSEC домена
Включение состоит из этапов:
- Проверка максимального значения TTL в доменной зоне.
- Подписание доменной зоны.
- Создание цепочки доверия.
Проверка максимального значения TTL в доменной зоне
Для правильного обновления ключей нужно, чтобы максимальное значение TTL в доменной зоне имело значение менее 2 недель (1209600 секунд). Проверьте значения TTL ресурсных записей доменной зоны в Учётные записи → Доменные имена → Записи → столбец TTL, сек. По умолчанию TTL-зоны равно 1 часу (3600 секунд).
Подписание доменной зоны
Включите опцию Учётные записи → Доменные имена → Изменить → Подписать домен и нажмите Ok. Запустится фоновый процесс подписания доменной зоны. В ходе процесса генерируются KSK и ZSK ключи. На время работы процесса в Учётные записи → Доменные имена → столбец Состояние отображается иконка . При успешном подписании доменной зоны иконка изменится на . Для домена становится доступной кнопка DNSSEC и отображается баннер "Есть неопубликованные DS-записи".
Подписание доменной зоны доступно пользователям с уровнем доступа "Пользователь" или "Администратор".
Создание цепочки доверия
Чтобы создать цепочку доверия, нужно передать DS-запись и, если требует регистратор, DNSKEY-записи в родительскую доменную зону. Эти записи доступны в Учётные записи → Доменные имена → DNSSEC.
Для каждой записи из списка DS-записей отображаются данные:
- Начало записи — включает наименование домена, класс и тип ресурсной DS-записи;
- Тег — идентификатор ключа;
- Алгоритм — идентификатор алгоритма шифрования;
- Тип дайджеста — идентификатор типа отпечатка KSK-ключа;
- Дайджест — содержимое отпечатка.
Показать DNSKEY — по нажатию кнопки отображается таблица DNSKEY-записей. Для каждой записи из списка DNSKEY-записей отображаются следующие данные:
- Начало записи — включает наименование домена, класс и тип ресурсной DNSKEY-записи;
- Флаги — идентификатор типа ключа;
- Протокол — номер протокола DNSSEC;
- Алгоритм — идентификатор алгоритма шифрования;
- Публичный ключ — открытая часть ключа;
- Тег — идентификатор KSK-ключа.
Передача DS-записей осуществляется одним из следующих образов:
- Добавить записи через веб-интерфейс панели управления доменом у регистратора доменных имён. Скопируйте DS-записи из DNSmanager. Если у регистратора записи добавляются в виде строк, то объедините значения всех столбцов из таблицы DS-записей в DNSmanager, вставляя пробелы между ними. Если нужно, то также скопируйте DNSKEY-записи.
- Если доменная зона находится вместе с родительской зоной на одном и том же сервере под управлением DNSmanager, нажмите Передать DS-записи в родительскую зону.
- Если подписываемый домен является родительским для домена, находящегося на стороннем сервере, создайте DS-записи дочернего домена в записях родительского домена: Учётные записи → Доменные имена → Записи → Создать. Подробнее см. в статье Создание ресурсных записей доменной зоны.
Один раз в сутки DNSmanager проверяет наличие DS-записей в родительской зоне. Необходимо, чтобы было передано хотя бы по одной DS-записи для каждого KSK-ключа. Успешное прохождение проверки завершает процесс включения защиты DNSSEC. В Учётные записи → Доменные имена → столбец Состояние появится иконка
Отключение защиты DNSSEC домена
Чтобы отключить защиту домена:
- Удалите все DS-записи из родительской доменной зоны и подождите несколько часов.
- Удалите подпись доменной зоны. Для этого включите опцию: Учётные записи → Доменные имена → Изменить → Удалить подпись и нажмите Ok.
Отключить защиту домена может пользователь с уровнем доступа "Пользователь" или "Администратор".
Отключение поддержки DNSSEC
Отключить поддержку DNSSEC может администратор в Настройки → Глобальные настройки. Подробнее см. в статье Глобальные настройки. После подтверждения изменений происходит отписывание всех доменов и удаление всех их ключей.