Захистіть свій домен за допомогою DNS-записів CAA
Використання DNS-запису CAA є ефективним способом контролювати, які центри сертифікації (ЦС) можуть видавати сертифікати TLS для вашого домену.
Що таке DNS CAA?
DNS CAA – це особливий тип DNS-запису, який дозволяє вам визначати, які саме ЦС авторизовані для видачі сертифікатів для вашого домену. Фактично, ви даєте чіткі вказівки, які ЦС мають право на видачу SSL/TLS сертифікатів для вашого сайту. Ця технологія стала обов’язковою з кінця 2017 року, хоча наразі її використовує менше 5% веб-сайтів.
Розглянемо приклад. Припустимо, домен “gf.dev” має такі записи CAA:
gf.dev. 3586 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes" gf.dev. 3586 IN CAA 0 issuewild "comodoca.com" gf.dev. 3586 IN CAA 0 issue "comodoca.com" gf.dev. 3586 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes" gf.dev. 3586 IN CAA 0 issuewild "letsencrypt.org" gf.dev. 3586 IN CAA 0 issue "letsencrypt.org"
З наведеного прикладу видно, що сертифікати для “gf.dev” можуть бути видані лише DigiCert, Comodo та Let’s Encrypt. Якщо інший ЦС, наприклад Thawte, спробує видати сертифікат для цього домену, його запит буде відхилено. Записи CAA можуть бути двох видів: одні для звичайних сертифікатів (“issue”), а інші – для підстановочних (“issuewild”).
- issue – дозволяє ЦС видавати сертифікат лише для конкретного домену.
- issuewild – дозволяє ЦС видавати підстановочний сертифікат, який можна використовувати як для домену, так і для його піддоменів.
DNS CAA також підтримує iodef, що дозволяє надсилати сповіщення про порушення (наприклад, спробу видачі несанкціонованого сертифіката) на вказану електронну адресу або контактні дані.
Що станеться, якщо запис CAA відсутній?
Якщо для домену не налаштовано запис CAA, будь-яка особа може створити запит CSR і отримати сертифікат від будь-якого ЦС, що створює загрозу безпеці. Тому використання CAA є важливим елементом захисту.
Зрозуміло?
Ось деякі абревіатури, які ми використовували:
- DNS – система доменних імен (Domain Name System)
- CA – центр сертифікації (Certificate Authority)
- CAA – авторизація центру сертифікації (Certification Authority Authorization)
- TLS – безпека транспортного рівня (Transport Layer Security)
- SSL – рівень захищених сокетів (Secure Sockets Layer)
Як перевірити DNS-запис CAA?
Існує декілька способів перевірити записи CAA. Ви можете скористатися командою dig у терміналі:
dig caa $YOURWEBSITE.COM
Наприклад, для домену “techukraine.net.com” команда може виглядати так:
[email protected]:~# dig caa techukraine.net.com ; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa techukraine.net.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;techukraine.net.com. IN CAA ;; ANSWER SECTION: techukraine.net.com. 3600 IN CAA 0 issuewild "comodoca.com" techukraine.net.com. 3600 IN CAA 0 issuewild "letsencrypt.org" techukraine.net.com. 3600 IN CAA 0 issue "comodoca.com" techukraine.net.com. 3600 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes" techukraine.net.com. 3600 IN CAA 0 issue "letsencrypt.org" techukraine.net.com. 3600 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes" ;; Query time: 7 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Tue Oct 08 07:12:21 UTC 2019 ;; MSG SIZE rcvd: 298 [email protected]:~#
Для віддаленої перевірки ви можете скористатися онлайн-інструментом DNS CAA Tester.
Як додати запис CAA?
Додавання запису CAA аналогічне додаванню інших DNS-записів (A, NS, CNAME тощо).
Наприклад, у Cloudflare перейдіть до розділу “DNS”, натисніть “Додати запис” і виберіть тип “CAA”.
У GoDaddy, перейдіть до “DNS Management” і додайте відповідний запис.
Якщо у вас виникають труднощі, зверніться до свого провайдера DNS або хостингу.
Висновок
Рекомендуємо використовувати записи CAA для підвищення безпеки вашого домену. Додавання цих записів не потребує додаткових витрат, але може суттєво покращити захист вашого веб-сайту.
Сподобалася стаття? Поділіться нею з іншими!