Класична система доменних імен (DNS) – одна з головних складових роботи Інтернету. Проте у базовому варіанті DNS не має механізму перевірки достовірності даних. Щоб вирішити цю проблему, було розроблено DNSSEC (Domain Name System Security Extensions) – набір розширень до DNS, які додають до системи перевірку цілісності та автентичності даних.
Що таке DNSSEC
DNSSEC — це набір криптографічних розширень для DNS, які дозволяють:
- Перевіряти достовірність записів (автентичність джерела);
- Захищати від підробки та підміни відповідей (integrity protection);
- Будувати довірений ланцюжок від кореня DNS до конкретного домену.
Принцип роботи ґрунтується на цифрових підписах. Кожен DNS-запис підписується приватним ключем. Клієнт (резольвер) отримує не лише значення, а й криптографічний підпис, який можна перевірити за допомогою відкритого ключа, збереженого у батьківській зоні.
Як працює DNSSEC
Візуально дуже спрощено на моєму реальному домені ostrich.kyiv.ua можна побудувати таку графічну схему:

- Створення ключів. Для домену генерується пара ключів:
- KSK (Key Signing Key) — підписує ключі;
- ZSK (Zone Signing Key) — підписує записи у зоні.
- Підпис зон. Усі записи (A, MX, TXT тощо) підписуються за допомогою ZSK.
- Передача відкритого ключа. Хеш відкритого ключа (DS-запис) публікується у батьківській зоні (наприклад, у .ua для домену .com.ua).
- Ланцюг довіри. Коли резольвер отримує відповідь, він перевіряє підпис, а потім перевіряє, чи ключ довірений через ланцюг від кореня DNS.
У результаті користувач може бути впевнений, що отримані DNS-дані — справжні і не були підмінені.
Приклад застосування
Припустимо, користувач заходить на мій сайт. Без DNSSEC хакер може підмінити DNS-відповідь і переспрямувати його на фішинговий сайт. З DNSSEC браузер (через резольвер) отримає лише підписані записи, і якщо підпис не збігається – відповідь буде відхилена. Таким чином, користувач потрапить лише на справжній сервер банку.
Налаштування DNSSEC
Реєстратор мого доменого імені – це локальний провайдер, який нещодавно додав до переліку своїх послуг DNSSEC. Я вирішив скористатися такою можливістю і внести налаштування. Оскільки реєстратором виступає не Cloudflare, а мій локальний провайдер, то необхідно внести налаштування саме на стороні мого провайдера, проте самі дані я буду отримувати від Cloudflare адже наразі на цьому сервері прописані мої DNS записи.
Активувати функцію доволі просто. В панелі Cloudflare необхідно вибрати DNS → Settings → DNSSEC → Enable
У вікні буде згенерована вся необхідна інформація для подальшоїх активації в панелі керування свого реєстратора домену, про що свідчить попередження: “To enable DNSSEC you will need to add this DS record to your registrar. Most registrars will ask for only a few of the fields below. We have instructions for common registrars”.

Мій реєстратор вимагає заповнити лише 4 поля:
- Key tag
- Algorithm
- Digest type
- Digest

Буквально через декілька хвилин, статус DNSSEC зміниться на “Success! ostrich.kyiv.ua is protected with DNSSEC.“

Перевірка
Щоб перевірити чи дійсно зміни застосувалися, достатньо в терміналі виконати наступну команду, яка напряму звернеться до Cloudflare.
dig +dnssec ostrich.kyiv.ua @1.1.1.1
Очікується отримати до звичайного виводу додатковий рядок із записом RRSIG:
ostrich.kyiv.ua. 300 IN RRSIG A 13 3 300 20250926095050 20250924075050 34505 ostrich.kyiv.ua. IQE6axVd6YMeHnyXC2zW9ELt9P+6ZNzuhPbWQ4BqRnAtAGkQtIA7ETiE k/079aSTNqHk+fnnKidHU3Jp5pdORQ==
Цей запис складається з наступних параметрів:
- A – Це означає, що підпис стосується записів типу
A
(IPv4).
- 13 – Алгоритм підпису.
13
= ECDSA Curve P-256 with SHA-256 (сучасний алгоритм, Cloudflare його використовує за замовчуванням).
- 3 – Кількість міток у доменному імені (для
ostrich.kyiv.ua
→ 3:ostrich
,kyiv
,ua
).
- 300 – ТТL у секундах, з яким був підписаний запис (тобто максимальний час кешування цього підпису).
- 20250926095050 – Час закінчення дії підпису (UTC, формат YYYYMMDDHHMMSS). Тут → 26 вересня 2025, 09:50:50 UTC.
- 20250924075050 – Час початку дії підпису (UTC). Тут → 24 вересня 2025, 07:50:50 UTC. (Отже, підпис дійсний лише в цьому проміжку.)
- 34505 – Ідентифікатор ключа DNSKEY, яким зроблено підпис. Резольвер шукає DNSKEY із таким тегом, щоб перевірити підпис.
- ostrich.kyiv.ua. – Домен, якому належить ключ, яким підписано запис.
- IQE6axVd6YM… – Власне криптографічний підпис (base64). Використовується разом із DNSKEY для перевірки достовірності.
Таким чином вже через декілька хвилин після засосування змін можна отримати додатковий захист свого DNS.
Також є ресурс dnssec-analyzer, який візуально покаже чи все добре із валідацією домена.

Висновок
DNSSEC – це важливий крок до підвищення безпеки Інтернету. Він не замінює HTTPS чи VPN, але робить DNS-назви більш надійними.
Для власників сайтів налаштування DNSSEC – це демонстрація турботи про безпеку відвідувачів і готовність до майбутніх стандартів (як-от DANE).
Якщо твій DNS-провайдер підтримує DNSSEC (наприклад, Cloudflare), рекомендується обов’язково його увімкнути.