DNS CAA Resource Record
Nel gennaio del 2013 con l’RFC 6844 è stato istituito un nuovo tipo di record DNS di risorsa denominato CAA (Certificate Authority Authorization) che consente di specificare una più Certification Authorities (CAs) autorizzate ad emettere certificati per il dominio. I record CAA consentono di evitare che vengano rilasciati certificati da CA non approvate.
L’RFC 6844 è stata oggetto di discussione da parte del CA/Browser Forum (Certification Authority/Browser) che è un gruppo senza fini di lucro composto da autorità di certificazione (CA, Certification Authority), venditori di browser Web e altre parti interessate che si occupa dell’implementazione delle best practices relative all’uso dei certificati SSL per la protezione delle comunicazioni degli utenti. Il CA/Browser Forum si occupa di definire le procedure da seguire per l’emissione dei diversi certificati.
L’8 settembre 2017 il CA/Browser Forum nello Ballot 187 ha deciso che il controllo dei record CAA da parte delle CA durante il processo di rilascio dei certificati è mandatorio, a riguardo si veda Ballot 187 – Make CAA Checking Mandatory:
“As part of the issuance process, the CA must check for a CAA record for each dNSName in the subjectAltName extension of the certificate to be issued, according to the procedure in RFC 6844, following the processing instructions set down in RFC 6844 for any records found. If the CA issues, they must do so within the TTL of the CAA record, or 8 hours, whichever is greater.”
Quindi sintetizzando ora quando una CA si appresta a rilasciare un certificato possono verificarsi tre differenti scenari:
- Esiste un record CAA che indica la CA che sta emettendo il certificato autorevole e quindi la CA emette il certificato
- Esiste un record CAA che indica come autorevole una CA diversa da quella sta emettendo il certificato e quindi la CA non emette il certificato
- Non è stato configurato alcun record CAA e quindi la CA che sta emettendo il certificato si ritiene autorevole ed emette il certificato
Al link https://caatest.co.uk/ è possibile verificare se per un dominio è stato configurato un record CAA
Il 16 novembre 2017 Azure DNS ha annunciato il supporto ai record CAA, a riguardo si veda il post Azure DNS Updates – CAA Record Support and IPv6 Nameservers pubblicato sul blog dedicato ad Microsoft Azure
The CAA record type supports three properties:
•Flags: An unsigned integer between 0 – 255, used to represent the critical flag that has a specific meaning per the RFC
•Tag: An ASCII string which could be one of the following:
•Issue: allows domain owners to specify CAs that are permitted to issue certificates (all types)
•Issuewild: allows domain owners to specify CAs that are permitted to issue certificates (wildcard certs only)
•Iodef: allows domain owners to specify an email address or hostname to which CAs can notify for certificate issuance requests for domain otherwise not authorized via CAA records
•Value: the value associated with the specific tag used
You can create and manage CAA records via the Azure REST API, PowerShell and CLI.
Per quanto riguarda Let’s Encrypt, come indicato al seguente Certificate Authority Authorization (CAA), nel rispetto dell’implementazione dell’RFC 6844 e della modifica dell’8 settembre 2017 verifica i record CAA prima di rilasciare i certificati per un dominio, ma non supporta il “tree-climbing” che prevede il controllo anche dei domini padre per cui ha richiesto la rimozione al CAB Brower/Forum:
“The CAA RFC specifies an additional behavior called “tree-climbing” that requires CAs to also check the parent domains of the result of CNAME resolution. Let’s Encrypt does not implement tree climbing because it makes expressing certain CAA policies impossible. After discussion on the IETF mailing list, we achieved consensus that tree-climbing in CAA is not ideal, and there’s an erratum for the CAA RFC removing it. That erratum still needs to be voted in by the CA/Browser Forum by September 8 for it to to take effect for publicly trusted CAs.”
A riguardo di veda anche RFC Errata – RFC6844.
Di seguito alcuni esempi di record CAA:
Impostazione della CA Let’Encrypt per il dominio expample.com:
example.com. CAA 0 issue “letsencrypt.org”
Impostazione di due CA per il dominio expample.com:
example.com. CAA 0 issue “letsencrypt.org”
example.com. CAA 0 issue “identrust.com”
Impostazione di un’indirizzo mail a cui ricevere le violazioni alla policy:
example.com. CAA 0 iodef “mailto:example@example.com”
Al seguente CAA Record Helper è disponibile un generatore online di record di risorsa DNS di tipo CAA.
Ho trovato siti certificati da Let’s Encrypt, Kiel Germany
Ho molti dubbi su questa organizzazione.
Difatti ha certificato http://www.coach-charter-italy.com, che è di un’azienda tedesca, ma che sul sito dichiara di essere un’azienda italiana.
Non mi sembra molto legale che possano essere certificati come sicuri, siti che non rispecchiano la realtà.
O mi sbaglio?
Grazie
Gino Gaier
Buongiorno Gino,
e innanzitutto grazie per aver letto il mio e aver lasciato un feedback!
Per quanto riguarda L’et’s Encrypt questa CA automatizzata rilascia certificati per dominii a patto che che ne fa richiesta dimostri di poter controllare tale dominio inserendo specifici file nel sito per cui chiede il certificato o aggingendo record DSN specifici.
Quindi il certificato rilasciato dal Let’s Encrypt certifica solo che relativo ad un nome di dominio e non ad un’azienda, quindi tornardo al tuo esempio se analizzi il cerficato vedrai che il soggetto è CN=coach-charter-italy.com ovvero un nome di dominio, ma non vi sono indicazioni circa OU,O,L,S,C come ad esempio nel cerficato del sito di Microsoft.
E non può che essere così perchè L’et’s Encrypt è una CA automatica senza interazioni umane ed infatti non può rilasciate certificato di tiopo OV (organization validation) a cui tu credo ti riferisca, in sostanza il certificato di L’et’s Encrypt risponde all’esigenza di poter accedere al sito via https garantendoti che il certificato è stato richiesto da qualcuno che aveva il controllo del sito.
Se vuoi approfondire come viene richiesto un certificato a L’et’s Encrypt puoi leggere il mio articolo https://www.ictpower.it/guide/implementazione-di-lets-encrypt-in-ambiente-windows-server-2016.htm
Spero di essere riuscito a chiarire il tuo dubbio.