DNSSEC: чому ваш домен без криптографічного підпису - це як будинок із незамкненими дверима
Уявіть: ви набираєте адресу свого банку в браузері. Сторінка виглядає ідентично. Логотип, кольори, поля для логіна - все на місці. Тільки це не ваш банк. Це підробка, на яку вас непомітно перенаправив зловмисник, підмінивши DNS-відповідь десь між вами і справжнім сервером. Ви вводите пароль - і все, гра закінчена. Звучить як сценарій фільму? Це реальна атака, яка називається DNS spoofing, і від неї щороку страждають мільйони користувачів. Єдиний надійний щит - технологія DNSSEC. І якщо ви досі її не увімкнули, ваш домен стоїть із настіж відчиненими дверима.
Що таке DNSSEC і чому звичайний DNS - це листівка без конверта
Коли ви вводите адресу сайту, ваш браузер звертається до DNS-серверів, щоб перетворити ім'я домену на IP-адресу. Проблема в тому, що класичний DNS-протокол створювали у 1983 році. Тоді інтернет був маленьким, усі знали один одного, і про безпеку ніхто особливо не думав. DNS-запити й відповіді літають мережею у відкритому вигляді - без шифрування, без перевірки автентичності.
DNSSEC (Domain Name System Security Extensions) - це набір розширень, які додають до DNS-відповідей криптографічні підписи. Принцип простий: кожен запис у DNS-зоні підписується приватним ключем, а будь-хто може перевірити цей підпис за допомогою публічного ключа. Якщо зловмисник спробує підсунути підроблену відповідь, підпис не зійдеться - і резолвер відхилить фальшивку.
Гарна аналогія: звичайний DNS - це листівка поштою. Будь-хто по дорозі може прочитати, підмінити або написати нову від вашого імені. DNSSEC - це листівка з нотаріально завіреним підписом. Прочитати все ще можна, але підробити - ні.

Від чого DNSSEC захищає, а від чого - ні
Перш ніж кидатися вмикати все підряд, давайте чесно розберемося з межами цієї технології. DNSSEC - не срібна куля. Ось що вона реально робить:
- Захищає від DNS spoofing/cache poisoning - атак, коли зловмисник підміняє DNS-відповідь і перенаправляє трафік на свій сервер
- Гарантує цілісність даних - ви впевнені, що DNS-запис не модифікований по дорозі
- Забезпечує автентифікацію джерела - відповідь дійсно прийшла від авторитетного сервера, а не від самозванця
- Підтримує ланцюг довіри - від кореневої зони до вашого конкретного домену, ланка за ланкою
А ось чого DNSSEC не робить:
- Не шифрує DNS-запити (для цього потрібні DoH або DoT)
- Не захищає від DDoS-атак на DNS-сервери
- Не замінює SSL/TLS-сертифікати
- Не приховує, які сайти ви відвідуєте
"DNSSEC не вирішує всіх проблем безпеки DNS, але без нього решта заходів будуються на хиткому фундаменті. Це як ставити броньовані двері на будинок без стін." - Paul Vixie, один із архітекторів сучасного DNS
Як працює ланцюг довіри: від кореня до вашого домену
Найелегантніша частина DNSSEC - ієрархічна модель довіри. Вона працює як система нотаріусів, де кожен наступний рівень підтверджується попереднім.
- Коренева зона (root) - підписана ключами, які контролює ICANN. Це "головний нотаріус" усього інтернету. Церемонія підписання кореневого ключа - реальна подія з фізичними сейфами, смарт-картками та камерами.
- Зона верхнього рівня (.ua, .com, .org) - реєстр TLD публікує свій ключ, підписаний кореневою зоною. Для .ua це UA-NIC.
- Ваш домен (example.com.ua) - ви генеруєте ключі, а хеш вашого публічного ключа (DS-запис) передаєте в зону верхнього рівня через реєстратора.
- Резолвер перевіряє весь ланцюг - від вашого домену до кореня. Якщо хоча б одна ланка зламана - відповідь відхиляється.
Звучить складно? На практиці - два типи ключів. KSK (Key Signing Key) - головний ключ, який підписує інші ключі. Як генеральний директор, що підписує довіреність. ZSK (Zone Signing Key) - робочий ключ, який підписує конкретні DNS-записи. Як менеджер, що підписує щоденні документи.

Покрокове увімкнення DNSSEC: без паніки і за 30 хвилин
Тепер до практики. Процес залежить від того, де ви керуєте DNS - у реєстратора чи на власному сервері. Розглянемо обидва сценарії.
Сценарій 1: DNS у реєстратора або хостера (Cloudflare, Namecheap, GoDaddy тощо)
- Зайдіть у панель керування DNS вашого провайдера
- Знайдіть розділ DNSSEC (зазвичай у налаштуваннях домену)
- Натисніть "Enable DNSSEC" - провайдер автоматично згенерує ключі та підпише зону
- Скопіюйте DS-запис, який з'явиться на екрані
- Додайте цей DS-запис у панелі вашого реєстратора домену (якщо DNS і реєстратор - різні компанії)
- Зачекайте 24-48 годин на пропагацію
Сценарій 2: Власний DNS-сервер (BIND, PowerDNS, Knot DNS)
Тут складніше. Вам потрібно вручну згенерувати KSK і ZSK, підписати зону, налаштувати автоматичну ротацію ключів і передати DS-запис реєстратору. Для BIND 9.16+ це виглядає приблизно так: увімкніть dnssec-policy у конфігурації зони - і сервер зробить більшість роботи сам.
Критично важливий момент: після увімкнення обов'язково перевірте роботу DNSSEC за допомогою інструментів dnsviz.net або verisignlabs.com/dnssec/. Неправильно налаштований DNSSEC гірший за його відсутність - він просто зробить ваш домен недоступним для всіх резолверів, що валідують підписи.
Що може піти не так: помилки, від яких сивіють адміни
Я бачив десятки випадків, коли DNSSEC ламав сайти. Не тому, що технологія погана - а тому, що люди забувають про обслуговування. Ось таблиця типових проблем:
| Проблема | Симптом | Рішення |
|---|---|---|
| Протерміновані підписи (RRSIG expired) | Сайт недоступний для користувачів із валідуючими резолверами (Google DNS, Cloudflare DNS) | Налаштувати автоматичне перепідписання зони. У BIND - параметр dnssec-policy з автоматичною ротацією |
| Невідповідність DS-запису у реєстратора | Ланцюг довіри розірваний, SERVFAIL при запитах | Оновити DS-запис після кожної ротації KSK |
| Перенесення домену до іншого реєстратора | DS-запис загублено, DNSSEC "зависає" | Перед трансфером видалити DS-запис, після - додати новий |
| Занадто великі DNS-відповіді | Пакети не проходять через старі фаєрволи, що блокують DNS поверх TCP | Переконатися, що TCP/53 відкритий, використовувати EDNS0 |
| Забули про NSEC/NSEC3 | Зловмисник може "пройтися" по всіх записах зони (zone walking) | Використовувати NSEC3 із salt для приховування вмісту зони |
Найпідступніша пастка - ротація ключів. ZSK зазвичай міняють кожні 1-3 місяці, KSK - раз на 1-2 роки. Якщо забути оновити DS-запис у реєстратора після зміни KSK, ваш сайт просто зникне з інтернету для значної частини користувачів. Причому в логах хостингу все буде ідеально - проблема на рівні DNS, який на хостингу не відображається.

Стан DNSSEC у 2025: хто вже захистився, а хто тягне гуму
Глобальне впровадження DNSSEC досі нагадує клаптикову ковдру. За даними APNIC, станом на початок 2025 року лише близько 40% доменів верхнього рівня мають повну підтримку DNSSEC. А серед конкретних доменів ситуація ще скромніша.
Лідери - скандинавські країни. У зоні .se (Швеція) DNSSEC підтримують понад 80% доменів. У .nl (Нідерланди) - близько 60%. А ось у .com - лише приблизно 7-8%. Для .ua картина ще скромніша, хоча технічна підтримка з боку UA-NIC давно працює.
Чому так повільно? Три причини:
- Складність - для малого бізнесу налаштування виглядає як квантова фізика
- Ризик поламати все - один невірний крок, і домен стає недоступним
- "Мене ще не зламали" - класична помилка виживших. Ви не знаєте, скільки разів ваші відвідувачі потрапляли на підроблені сторінки
Але тренд очевидний. Google, Cloudflare, Quad9 - всі великі публічні DNS-резолвери вже валідують DNSSEC. Це означає, що сайт із поламаним DNSSEC для мільйонів користувачів просто перестане існувати. А сайт без DNSSEC - вразливий до підміни.
Що робити прямо зараз: мінімальний план дій
Якщо ви дочитали до цього місця, у вас вже на 90% більше знань про DNSSEC, ніж у середнього власника сайту. Ось конкретний план:
- Перевірте поточний стан - відкрийте dnssec-debugger.verisignlabs.com і введіть свій домен. За 10 секунд побачите, чи працює DNSSEC
- Виберіть провайдера з автоматичним DNSSEC - Cloudflare, Amazon Route 53, Namecheap пропонують увімкнення в один клік
- Увімкніть DNSSEC і додайте DS-запис - інструкція для вашого конкретного провайдера займає 5-10 хвилин читання
- Налаштуйте моніторинг - сервіс на кшталт DNSViz або звичайний cron із dig +dnssec покаже проблеми до того, як їх побачать користувачі
- Задокументуйте дату ротації ключів - поставте нагадування в календар, щоб не забути оновити DS-запис
Весь процес для домену на Cloudflare займає буквально 15 хвилин. Для власного BIND-сервера - годину з тестуванням. Це менше часу, ніж ви витратили на вибір аватарки для корпоративного месенджера.
Питання не в тому, чи потрібен вам DNSSEC. Питання в тому, скільки ще днів ваш домен буде стояти без замка на дверях - поки хтось нарешті не вирішить зайти?