Che cos'è un record CAA?
Un record CAA (Certificate Authority Authorization) è un tipo di record DNS che specifica quali autorità di certificazione (CA) sono autorizzate a emettere certificati SSL/TLS per un dominio. CAA è un controllo di sicurezza che impedisce l'emissione non autorizzata di certificati anche quando un aggressore compromette una CA.
Perché i record CAA sono importanti
Senza record CAA, una qualunque delle centinaia di CA attendibili potrebbe emettere un certificato per il tuo dominio. Questo crea diversi rischi:
- Compromissione della CA: se una CA attendibile viene compromessa, gli aggressori potrebbero ottenere certificati per il tuo dominio.
- Emissione errata: occasionalmente le CA emettono certificati in modo scorretto.
- Ingegneria sociale: gli aggressori potrebbero indurre una CA a emettere certificati non autorizzati.
I record CAA riducono la superficie di attacco limitando le CA che possono emettere certificati per il dominio.
Come funzionano i record CAA
1. Il proprietario del dominio pubblica i record CAA nel DNS.
2. Il richiedente del certificato chiede un certificato a una CA.
3. La CA controlla i record CAA del dominio.
4. La CA emette il certificato solo se autorizzata, oppure se non esistono record CAA.
5. Se non è autorizzata, la CA deve rifiutare la richiesta.
Controllo obbligatorio da parte delle CA
Dal settembre 2017 tutte le CA devono controllare i record CAA prima di emettere certificati. È un requisito delle CA/Browser Forum Baseline Requirements.
Formato del record CAA
example.com. IN CAA 0 issue "letsencrypt.org"
Componenti:
- 0: flag (0 = non critico, 128 = critico).
- issue/issuewild/iodef: tag della proprietà.
- "letsencrypt.org": valore della proprietà, cioè la CA autorizzata.
Tag delle proprietà
| Tag | Scopo | Esempio |
|---|---|---|
| issue | Autorizza la CA per tutti i certificati | issue "letsencrypt.org" |
| issuewild | Autorizza la CA per i certificati wildcard | issuewild "digicert.com" |
| iodef | Segnala i tentativi non autorizzati | iodef "mailto:[email protected]" |
Esempi di record CAA
Una sola CA (solo Let's Encrypt)
example.com. CAA 0 issue "letsencrypt.org"
Più CA
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
Restrizione per i wildcard
Consenti Let's Encrypt per i certificati normali e DigiCert per i wildcard:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
Nega tutto (nessun certificato)
Utile per i domini che non dovrebbero mai avere certificati:
example.com. CAA 0 issue ";"
Con reportistica
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:[email protected]"
Identificatori comuni delle CA
| CA | Identificatore |
|---|---|
| Let's Encrypt | letsencrypt.org |
| DigiCert | digicert.com |
| Sectigo (Comodo) | sectigo.com |
| GlobalSign | globalsign.com |
| GoDaddy | godaddy.com |
| Amazon | amazon.com |
| Google Trust Services | pki.goog |
Consulta la documentazione della tua CA per usare l'identificatore esatto.
Implementare i record CAA
Tramite il provider DNS
La maggior parte dei provider DNS supporta i record CAA nella propria interfaccia.
Tramite un file di zona
; Allow Let's Encrypt and DigiCert
@ IN CAA 0 issue "letsencrypt.org"
@ IN CAA 0 issue "digicert.com"
@ IN CAA 0 iodef "mailto:[email protected]"
Ereditarietà dei record CAA
I record CAA seguono la gerarchia DNS:
- Se example.com ha record CAA, questi si applicano ai sottodomini.
- I sottodomini possono avere record CAA propri, che sovrascrivono quelli del genitore.
- In assenza di record CAA, qualunque CA può emettere certificati.
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
Controllare i record CAA
Con dig:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
Con DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
Procedure consigliate per i record CAA
1. Configura sempre CAA: riduci la superficie di attacco.
2. Includi tutte le CA che usi: non dimenticare le CA del CDN o del provider cloud.
3. Configura iodef: ricevi notifiche sui tentativi non autorizzati.
4. Esegui i test prima di applicare la restrizione: verifica che le tue CA possano ancora emettere certificati.
5. Mantieni aggiornati i record: aggiungi le nuove CA prima di richiedere certificati.
Problemi comuni dei record CAA
Il rinnovo del certificato fallisce: la CA non è presente nei record CAA; aggiungila prima della scadenza del certificato. I certificati del CDN falliscono: la CA del provider CDN non è autorizzata; verifica quale CA usa il CDN. Manca un record CAA sul sottodominio: il sottodominio eredita il CAA del genitore; configura record specifici se necessario.CAA è un controllo di sicurezza semplice ma potente che ogni dominio dovrebbe implementare.