Běžíme v testovacím provozu, prosíme o shovívavost a zpětnou vazbu.
Co je CAA záznam a jak omezit vydávání TLS certifikátů

Co je CAA záznam a jak omezit vydávání TLS certifikátů

· 6 min čtení · Tomas Hojgr · DNS pro e-mail

Co je CAA záznam

CAA (Certification Authority Authorization) je typ DNS záznamu, který určuje, které certifikační autority smějí vydávat TLS certifikáty pro vaši doménu. Definuje ho RFC 8659 (nahrazuje starší RFC 6844).

Bez CAA záznamu může TLS certifikát pro vaši doménu vydat jakákoli veřejná certifikační autorita. To znamená, že i útočník, který úspěšně projde doménovou validací (například přes kompromitovaný e-mail nebo DNS), získá platný certifikát. CAA záznam tuto plochu pro útok zmenšuje — certifikační autorita, která není v CAA záznamu uvedená, certifikát nevydá.

Proč CAA záznamy existují

Systém veřejných certifikačních autorit (CA) funguje na principu důvěry: prohlížeč důvěřuje stovkám CA, z nichž každá může vydat certifikát pro jakoukoli doménu. Stačí, aby jedna CA měla slabou validaci nebo byla kompromitována, a útočník získá certifikát pro cizí doménu.

Historické incidenty to potvrzují. V roce 2011 byla plně kompromitována CA DigiNotar a zneužit affiliate registrační autority Comodo — v obou případech útočníci získali platné certifikáty pro domény Googlu, Yahoo a dalších služeb. Tyto události urychlily vývoj mechanismů, které vlastníkům domén dávají kontrolu nad vydáváním certifikátů.

Od 8. září 2017 jsou všechny veřejné certifikační autority povinny kontrolovat CAA záznamy před vydáním certifikátu. Pokud CAA záznam existuje a CA v něm není uvedená, certifikát nevydá. Tuto povinnost stanoví CA/Browser Forum Ballot 187.

Jak CAA funguje

CAA záznam má tři části: flag (příznak), tag (vlastnost) a value (hodnota).

firma.cz.  IN  CAA  0 issue "letsencrypt.org"
  • Flag (0): zatím se používá hodnota 0. Hodnota 128 znamená „critical" — CA, která tento tag nezná, nesmí certifikát vydat.
  • Tag: určuje typ pravidla (viz níže).
  • Value: identifikátor certifikační autority nebo jiná hodnota.

Tagy CAA záznamu

Tag Význam
issue Povoluje CA vydávat běžné certifikáty pro doménu
issuewild Povoluje CA vydávat wildcard certifikáty (*.domena.cz)
iodef URL nebo e-mail pro hlášení porušení CAA politiky

Příklady

Povolit pouze Let's Encrypt:

firma.cz.  IN  CAA  0 issue "letsencrypt.org"
firma.cz.  IN  CAA  0 issuewild ";"

Tento záznam povolí Let's Encrypt vydávat běžné certifikáty a explicitně zakáže všem CA vydávat wildcard certifikáty (hodnota ";" znamená „nikdo"). Bez řádku issuewild by wildcard certifikáty řídil tag issue — tedy vydat by je mohla jen Let's Encrypt.

Povolit dvě CA a přijímat hlášení:

firma.cz.  IN  CAA  0 issue "letsencrypt.org"
firma.cz.  IN  CAA  0 issue "digicert.com"
firma.cz.  IN  CAA  0 iodef "mailto:security@firma.cz"

Zakázat vydávání certifikátů úplně:

firma.cz.  IN  CAA  0 issue ";"

Toto je užitečné pro domény, které nepoužívají HTTPS a nechcete, aby pro ně kdokoli získal certifikát.

Dědičnost CAA záznamů

CAA záznamy fungují hierarchicky. Pokud subdoména nemá vlastní CAA záznam, CA hledá CAA záznam na nadřazené doméně. Řetěz hledání pokračuje až ke kořenové doméně.

Příklad: pro shop.firma.cz CA hledá CAA postupně na:

  1. shop.firma.cz — pokud existuje, použije se
  2. firma.cz — pokud existuje, použije se
  3. cz — pokud existuje, použije se

Díky tomu stačí nastavit CAA záznam na hlavní doméně a automaticky platí pro všechny subdomény. Pokud některá subdoména potřebuje jiná pravidla, nastavíte jí vlastní CAA záznam.

Jak nastavit CAA záznam

1. Zjistěte, které CA používáte

Zkontrolujte, kdo vydal aktuální certifikáty pro vaši doménu a subdomény. Zkontrolujte HTTPS vaší domény — výsledek ukáže vydavatele certifikátu.

Alternativně v terminálu:

openssl s_client -connect firma.cz:443 2>/dev/null | openssl x509 -noout -issuer

2. Přidejte CAA záznamy do DNS

V administraci DNS přidejte záznamy typu CAA. Většina DNS panelů (Cloudflare, WEDOS, Forpsi) má CAA jako samostatný typ záznamu.

Pro doménu s certifikátem od Let's Encrypt:

firma.cz.  IN  CAA  0 issue "letsencrypt.org"
firma.cz.  IN  CAA  0 issuewild "letsencrypt.org"
firma.cz.  IN  CAA  0 iodef "mailto:security@firma.cz"

3. Ověřte nastavení

Po přidání záznamů ověřte, že jsou správně publikované. Zkontrolujte je přes DNS lookup nebo v terminálu:

dig firma.cz CAA +short

Očekávaný výstup:

0 issue "letsencrypt.org"
0 issuewild "letsencrypt.org"
0 iodef "mailto:security@firma.cz"

CAA a DNSSEC

CAA záznamy chrání před neoprávněným vydáním certifikátu na úrovni certifikační autority. Ale co když útočník podvrhne samotný CAA záznam v DNS? Pokud útočník odstraní CAA záznam přes DNS spoofing, CA žádné omezení neuvidí a certifikát vydá.

DNSSEC tento problém řeší — kryptograficky podepisuje DNS odpovědi včetně CAA záznamů. Kombinace CAA + DNSSEC poskytuje kompletní ochranu: DNSSEC garantuje pravost DNS odpovědi a CAA omezuje, kdo smí certifikát vydat.

CAA v kontextu e-mailové bezpečnosti

CAA se přímo netýká e-mailové autentizace (SPF, DKIM, DMARC), ale souvisí s ní přes šifrování e-mailového přenosu:

  • MTA-STS vyžaduje platný TLS certifikát na mailserveru. CAA zajistí, že certifikát pro mailserver může vydat jen autorizovaná CA.
  • Webmail a administrace — přihlašovací stránky e-mailových služeb musí mít platný HTTPS certifikát. CAA brání vydání podvodného certifikátu pro tyto stránky.

CAA je součást vícevrstvé ochrany domény: SPF, DKIM a DMARC chrání e-mailovou autentizaci, DNSSEC chrání DNS záznamy a CAA chrání vydávání TLS certifikátů. Zkontrolujte kompletní zabezpečení vaší domény — analyzér ověří všechny vrstvy najednou.

Časté chyby při nastavení CAA

  • Neočekávaný fallback na issue: pokud nenastavíte issuewild, řídí se vydávání wildcard certifikátů tagem issue. To nemusí být problém, ale pokud chcete wildcard certifikáty zakázat úplně, musíte explicitně přidat issuewild ";". Doporučujeme vždy nastavit obě vlastnosti.
  • Chybějící CA v záznamu: po přidání CAA záznamu s jednou CA selže obnovení certifikátu, pokud používáte jinou CA (například na subdoméně). Zkontrolujte všechny aktivní certifikáty před nastavením.
  • Nesprávný identifikátor CA: hodnota v issue musí být přesný identifikátor CA, ne její obchodní název. Například letsencrypt.org, ne Let's Encrypt. Seznam identifikátorů udržuje Common CA Database.

Shrnutí

Vlastnost Hodnota
Typ DNS záznamu CAA (typ 257)
Definováno v RFC 8659
Povinná kontrola od 8. září 2017
Hlavní tagy issue, issuewild, iodef
Dědičnost Ano — z nadřazené domény
Doporučený doplněk DNSSEC

CAA záznam je jednoduchý, ale účinný nástroj pro kontrolu nad TLS certifikáty vaší domény. Nastavení zabere několik minut a výrazně snižuje riziko neoprávněného vydání certifikátu.

Ověřte si HTTPS a certifikáty vaší domény naším analyzérem.

Související články

Co je DNSSEC a jak funguje

Co je DNSSEC a jak funguje

DNSSEC chrání DNS odpovědi kryptografickým podpisem a zabraňuje podvržení SPF, DKIM, DMARC i MX záznamů. Zjistěte, jak funguje a jak ho aktivovat.

· 7 min čtení
DNS záznamy pro e-mail — kompletní průvodce

DNS záznamy pro e-mail — kompletní průvodce

MX, TXT, CNAME, PTR — všechny DNS záznamy potřebné pro fungování a zabezpečení e-mailu na jednom místě. Příklady, pravidla a kontrolní seznam.

· 9 min čtení
MTA-STS a TLS-RPT — šifrování přenosu e-mailů

MTA-STS a TLS-RPT — šifrování přenosu e-mailů

MTA-STS vyžaduje šifrované TLS spojení pro příchozí e-maily a brání downgrade útokům. Zjistěte, jak MTA-STS a TLS-RPT nasadit krok za krokem.

· 9 min čtení