CAI Technology
Menu ☰
aegis · · 6 min citire

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.

CAI Technology · Ultima revizuire: 09.05.2026
CAA Records: protecție împotriva certificate mis-issuance pentru domeniul vostru

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:

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”

  1. Atacator face un BGP hijack scurt sau compromite registrar-ul
  2. Schimbă temporar înregistrările DNS ale domeniului firma.ro
  3. Cere certificat la Let’s Encrypt cu validare HTTP-01 (challenge file plasat pe site-ul deturnat)
  4. Let’s Encrypt verifică challenge-ul → emite cert
  5. 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:

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:

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


Întrebări tehnice? Scrieți la tehnic@caitech.ro.

Începem cu o conversație de 30 de minute.

Audit AI-readiness gratuit pentru companii peste 50 angajați. Răspundem în 24 de ore.