CAA Records: protecție împotriva certificate mis-issuance pentru domeniul vostru
Ce e CAA, cum un atacator poate obține în 30 secunde un certificat TLS valid pentru domeniul vostru fără CAA și cum vă apărați cu o singură linie de DNS.
Pe scurt
CAA (Certification Authority Authorization, RFC 8659) este un record DNS prin care vă declarați explicit ce CA-uri (Certificate Authority) au voie să emită certificate TLS pentru domeniul vostru. Fără CAA, orice CA public-trusted din lume poate emite un certificat valid pentru firma.ro la cerere.
Sună abstract? Atunci câteva incidente reale:
- 2011 Comodo — atacatorul a obținut prin social engineering certificate pentru google.com, yahoo.com, microsoft.com
- 2011 DigiNotar — Iranul a folosit certificate fraudulose împotriva Gmail (300.000 utilizatori afectați)
- 2015 Symantec — a emis cert pentru google.com fără autorizare → Google a depreciat toate cert-urile Symantec în Chrome
Adăugarea unui record CAA vă reduce drastic expunerea: doar CA-urile pe care le aprobați explicit vor putea emite cert pentru domeniul vostru. Configurarea ia 5 minute, costă 0 EUR și e cea mai accesibilă măsură anti-MITM disponibilă.
Cum poate un atacator obține certificat fals pentru domeniul vostru
Scenariul “DNS hijack 1 minut”
- Atacator face un BGP hijack scurt sau compromite registrar-ul
- Schimbă temporar înregistrările DNS ale domeniului
firma.ro - Cere certificat la Let’s Encrypt cu validare HTTP-01 (challenge file plasat pe site-ul deturnat)
- Let’s Encrypt verifică challenge-ul → emite cert
- Atacator restabilește DNS-ul → are deja certificat valid pentru
firma.roîn mână
Cu un record CAA care permite doar letsencrypt.org, atacatorul nu poate trece la o altă CA care ar putea avea verificare mai laxă. Cu un record CAA care interzice complet emiterea de wildcard (issuewild ";"), atacatorul nu poate cere *.firma.ro.
Scenariul “Compromised employee certificate platform”
Mulți developers au acces la platforme de provisioning cert (Cloudflare, AWS Certificate Manager, internal PKI). Dacă un cont e compromis, atacatorul poate genera un certificat pentru orice domeniu din portofoliul firmei. CAA cu iodef=mailto: vă alertează imediat când un CA refuză o cerere care nu se potrivește cu policy-ul vostru — semnal că cineva a încercat ceva suspect.
Anatomia unui record CAA
firma.ro. IN CAA 0 issue "letsencrypt.org"
firma.ro. IN CAA 0 issue "digicert.com"
firma.ro. IN CAA 0 issuewild ";"
firma.ro. IN CAA 0 iodef "mailto:security@firma.ro"
Decodare:
issue "letsencrypt.org"— Let’s Encrypt poate emite cert standardissue "digicert.com"— DigiCert poate emite (backup pentru cert-uri OV/EV)issuewild ";"— niciun CA nu poate emite cert wildcard (*.firma.ro). Asta e mai sever decât issue și e bună pentru organizații care nu folosesc wildcard cert-uri.iodef "mailto:..."— adresă unde CA-urile trimit alertă când refuză o cerere
De ce e CAA mai important în 2026 decât era în 2018
În 2018, doar 30% din CA-urile globale verificau CAA înainte de emitere. Astăzi, prin CA/Browser Forum Baseline Requirements (revizuite anual), toate CA-urile public-trusted sunt obligate să verifice CAA. Browserele (Chrome, Firefox, Safari) refuză cert-urile emise de CA-uri care ignoră CAA → dacă publicați un record CAA, e respectat 100%.
Asta înseamnă că o configurare făcută corect blochează efectiv un întreg vector de atac care înainte era doar parțial protejat.
Implementare în 4 pași
Pas 1 — Inventarul CA-urilor pe care le folosiți
La majoritatea organizațiilor: Let’s Encrypt (auto via certbot/Cloudflare/Caddy) + 1-2 CA backup pentru cert-uri OV/EV (DigiCert, Sectigo, GeoTrust). Verificați în:
- Panel-ul reverse-proxy (Cloudflare/Caddy/nginx config)
- Documentele financiare (factură pentru cert-uri OV anuale)
- Inventarul cert-urilor active:
crt.sh?q=%25.firma.ro
Pas 2 — Adăugați record-urile CAA
La majoritatea registrar-urilor moderni (Cloudflare, Route 53, GoDaddy, Namecheap), CAA e suportat în UI-ul DNS. Pe pfSense / BIND intern: editare zone file directă.
# Adăugare CAA via Cloudflare API (exemplu):
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
-H "Authorization: Bearer $CF_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"type": "CAA",
"name": "firma.ro",
"data": {"flags": 0, "tag": "issue", "value": "letsencrypt.org"}
}'
Pas 3 — Verificare propagare
dig CAA firma.ro
Tool online: https://sslmate.com/caa/ — vizualizator + generator de policy.
Pas 4 — Test efectiv
Încercați să generați cert via certbot cu un alt CA (de exemplu Sectigo). Dacă blocat → CAA funcționează corect. Dacă trece → policy CAA nu e configurat corect sau CA-ul nu respectă specificația (caz rar).
Subdomenii: când CAA părintelui se moștenește
Subdomain-urile fără CAA propriu moștenesc CAA-ul domeniului părinte. Best practice: pentru subdomenii cu nevoi diferite (ex: mail.firma.ro care folosește alt cert), publicați CAA explicit acolo.
mail.firma.ro. IN CAA 0 issue "sectigo.com"
Confuzii frecvente
“CAA îmi blochează renewals automatic.” — Doar dacă aveți un CA care nu e în lista voastră. Dacă publicați letsencrypt.org și folosiți Let’s Encrypt → renewals merg fără probleme.
“E mai sigur să nu am CAA decât să configurez greșit.” — Categoric nu. Lipsa CAA = orice CA poate emite. Configurarea greșită afectează doar voi (cert renewal eșuează) și se observă instant. Categorie de risc complet diferită.
“Hosterul meu nu suportă CAA.” — Schimbați hosterul. Toate registrar-urile moderne (cele recomandate pentru orice firmă serioasă) suportă CAA din 2018.
Verificați acum
ARTEMIS verifică automat prezența CAA în orice audit Site (2 EUR) sau Full (40 EUR). Plus DNSSEC, DMARC, MTA-STS, headers, TLS și încă 22+ verificări.
🔗 Soluții complementare CAI Technology
- ARTEMIS — Verificare automată CAA + DNSSEC + DMARC + 35 alte teste tehnice de securitate.
- Lexnomia — Evaluare conformitate auditor-grade (NIS2 / GDPR / DORA / ISO 27001) — necesar dacă sunteți entitate esențială sau important sub NIS2.
- BeLegal cu SandboxAI — Verificare gratuită compliance UE în 5 minute, ca prim pas.
- Auditope — Audit holistic web (SEO + AI search + Performance + GDPR).
- AriaUnited — Consultanță fonduri europene pentru investiții în infrastructură de securitate cibernetică (PNRR, POIDS).
Întrebări tehnice? Scrieți la tehnic@caitech.ro.