Autorizace certifikační autority pomocí záznamů DNS CAA
Záznamy CAA v DNS umožňují vám definovat, které certifikační autority (CA) jsou oprávněny vydávat SSL/TLS certifikáty pro vaši doménu. Jedná se o nástroj, který vám dává kontrolu nad tím, kdo může generovat certifikáty pro váš web.
Co je to DNS CAA?
CAA je typ záznamu DNS, který slouží jako instrukce pro certifikační autority. Určuje, zda je CA oprávněna vydat certifikát pro danou doménu. V podstatě definujete, které CA mohou vydávat SSL/TLS certifikáty pro vaši doménu. Implementace záznamů CAA je od konce roku 2017 povinná, ale dosud je používá relativně malá část webových stránek (méně než 5 %).
Představme si situaci, kdy web „gf.dev“ (vlastněný etechblog.cz) má následující nastavení 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"
Z uvedeného je zřejmé, že certifikát pro doménu gf.dev může být vydán pouze certifikačními autoritami DigiCert, Comodo a Let’s Encrypt. Pokud byste se pokusili získat certifikát od Thawte nebo jiné CA, vydání by nebylo možné. Některé záznamy mají parametr „issue“ a jiné „issuewild“. Pojďme si vysvětlit, co znamenají:
- issue – umožňuje CA vydávat certifikáty pouze pro konkrétní doménu.
- issuewild – umožňuje CA vydávat zástupné certifikáty, které platí pro doménu i její subdomény.
Záznam CAA podporuje také iodef (Incident Object Description Exchange Format), který umožňuje CA odesílat oznámení o porušení na zadané kontaktní údaje (e-mail).
Důsledky chybějícího záznamu CAA
Pokud doména nemá záznam CAA, jakákoli CA může podepsat certifikát pro danou doménu, což představuje bezpečnostní riziko. Kdokoliv může vygenerovat CSR (Certificate Signing Request) a nechat si pro doménu vydat certifikát od libovolné autority.
Pro lepší pochopení se podívejme na použité zkratky:
- DNS – Domain Name System (systém doménových jmen)
- CA – Certificate Authority (certifikační autorita)
- CAA – Certification Authority Authorization (autorizace certifikační autority)
- TLS – Transport Layer Security (zabezpečení transportní vrstvy)
- SSL – Secure Socket Layer
Ověření DNS CAA záznamů
Záznamy CAA můžete ověřit několika způsoby. Pokud preferujete práci v terminálu, použijte příkaz dig:
dig caa $VASEWEBOVESTRANKY.COM
Například pro doménu etechblog.cz.com:
[email protected]:~# dig caa etechblog.cz.com ; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa etechblog.cz.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: ;etechblog.cz.com. IN CAA ;; ANSWER SECTION: etechblog.cz.com. 3600 IN CAA 0 issuewild "comodoca.com" etechblog.cz.com. 3600 IN CAA 0 issuewild "letsencrypt.org" etechblog.cz.com. 3600 IN CAA 0 issue "comodoca.com" etechblog.cz.com. 3600 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes" etechblog.cz.com. 3600 IN CAA 0 issue "letsencrypt.org" etechblog.cz.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]:~#
Pro online testování použijte Tester DNS CAA.
Přidání záznamu CAA
Přidání záznamu CAA je technicky stejné jako přidávání jiných DNS záznamů (A, NS, CNAME, atd.).
Pokud používáte Cloudflare, přejděte do sekce DNS a zvolte přidání záznamu typu CAA. U GoDaddy najdete tuto možnost ve správě DNS. V případě potíží se obraťte na svého poskytovatele DNS/hostingu.
Závěrem
Zavedení záznamů CAA přidává vašim webovým stránkám další vrstvu zabezpečení a je zdarma. Neměly by být tedy ignorovány.
Líbil se vám tento článek? Sdílejte jej s ostatními!