CAA - Certificate Authority Authorization
2020-03-31
CAA je DNS záznam, který určuje, která certifikační autorita (CA) smí vydávat certifikáty obsahující doménové jméno.
Účelem CAA záznamu je redukce rizika, že útočník získá a použije certifikát na stejné jméno od jiné CA (třeba podvodem).
Příklad (nemusí odpovídat skutečnosti!):
cuni.cz. IN CAA 0 issue "sectigo.com"
cuni.cz. IN CAA 0 iodef "mailto:tcs@cuni.cz"
“Pro doménu cuni.cz může vydávat certifikáty jen certifikační autorita Sectigo. Pokud jiná certifikační autorita dostane požadavek o certifikát pro tuto doménu, nechť ho odmítne a pošle o tom report na adresu tcs@cuni.cz.”
Každá CA má identifikační doménové jméno, např.
sectigo.com
- Sectigodigicert.com
- DigiCertletsencrypt.org
- Let’s Encrypt
Kontroluje se existence CAA záznamu pro určité doménové jméno a pak pro poddomény v něm, dokud se CAA záznam nenajde. V tu chvíli se hledání zastaví a vyhodnotí se nalezené CAA záznamy pro jméno/doménu.
Např. pro doménové jméno www.czp.cuni.cz se bude hledat CAA záznam postupně pro
- www.czp.cuni.cz
- czp.cuni.cz
- cuni.cz - zde se najde a dál se nehledá
- cz
Nastavení pro cuni.cz tedy správce domény třetí úrovně může přepsat a povolit si pro vlastní doménu vydávání certifikátů od jiné CA. ALE POZOR - přidáním CAA záznamu do domény zneplatníte CAA záznam v nadřazené doméně. Když už si přidáte do domény CAA záznam, musíte do ní přidat CAA záznamy pro všechny CA, od kterých chcete mít certifikáty. Např. chcete používat TCS certifikáty i Let’s Encrypt certifikáty, musíte mít v doméně CAA záznamy pro obě CA.
Známé problémy
Pokud CAA záznam neexistuje (defaultní stav), tak může certifikát vydat každá CA. Ale DNS server musí v takovém případě vrátit NOERROR (záznam není). Pokud vrátí SERVFAIL, CA certifikát nevydá. Možná příčina:
- selhala DNSSEC validace
- chyba implementace (může pomoct CAA záznam udělat)