CAA DNS Records

Het CAA record is een DNS record dat domeineigenaren extra controle geeft over SSL certificaten die worden uitgegeven voor diens domeinen - je geeft er mee aan welke CA certificaten mag uitgeven voor jouw domeinen. Het CAA record werd al in 2013 een erkende standaard. Ondanks dat het vaak wordt gebruikt, was het niet verplicht. Per september 2017 is het voor Certificaat uitgevers verplicht het CAA-record van een domeinnaam te controleren, als onderdeel van de uitgifte van een certificaat. Het is voor domeineigenaren niet verplicht het record te vullen.

Wat is een CAA DNS Record?

Een Certificate Authority Authorization record, oftewel een CAA DNS record, is ontworpen om domein eigenaren de mogelijkheid te bieden om aan te geven welk CA root certificaat gebruikt mag worden om certificaten mee te ondertekenen voor het domein in kwestie. Omdat dit certificaat toebehoort aan een bepaalde certificaat autoriteit, kan hiermee effectief aangegeven worden welke certificaten uitgegeven mogen worden voor een domein. Dit voorkomt dat het uitgeven van een certificaat door een andere CA dat de gekozen CA gedaan kan worden.

Voorbeeld: Door onderstaand record aan te maken voor sslcertificaten.nl geven we aan dat certificaten voor dit domein alleen uitgegeven mogen worden door Sectigo/Comodo:

IN CAA 0 issue "comodoca.com"

of

 IN CAA 0 issue "comodo.com"

Een domeinnaamhouder kan meerdere CAA-records toevoegen aan het DNS, om zo verschillende CA's toestemming te geven een SSL certificaat voor een domein uit te geven. Het toevoegen van een CAA-record is niet verplicht, de controle erop door CA's is dit dus wel.

Wat zijn de voordelen?

Een CAA DNS record biedt de mogelijkheid om meer controle te krijgen over het uitgeven van certificaten voor een domein. Een domein eigenaar kan dit zelf regelen zonder dat hier medewerking vanuit de CA voor nodig is, en zelf bepalen welke CA's certificaten mogen uitgeven voor zijn of haar domeinen. De CAA standaard biedt verder de mogelijkheid aan CA's om contact met op te laten nemen en melding te maken van foutief aangevraagde certificaten. Hierdoor krijgt je zelf meer inzicht in eventuele foutieve of fraudulente aanvragen voor het domein. Ondanks deze beperkingen zit je echter niet vast aan een CA. Met het record kunnen er alsnog certificaten aan worden gevraagd bij andere CA's.

Wat zijn de nadelen?

  • Het controleren van en waar nodig acteren op een CAA record is tot september 2017 vrijblijvend. Een CA is dan nog niet verplicht om een CAA record te controleren, ook is deze niet verplicht te handelen naar het record als deze wel gecontroleerd is en gevonden wordt. Per 8 september 2017 is dit voor CA's wel verplicht.
  • Omdat DNS van zichzelf geen sterk beveiligd systeem is en potentieel omzeild kan worden waardoor hackers DNS-instellingen kunnen aanpassen, biedt een CAA record maar een beperkte beveiliging. Het is daarom aan te raden om ook DNSSEC in te stellen. DNSSEC beveiligt de instellingen van een domeinnaam door een versleutelde handtekening toe te voegen aan de DNS-records.
  • Er treedt mogelijk vertraging op bij het aanvragen van een certificaat. Indien een CA het record controleert en ziet dat zij niet voorkomen in de aanwezige CAA records dan kunnen zij de aanvraag afwijzen of vragen de records aan te passen. Het is dus, vooral in grote organisaties, van belang het certificaatbeheer onderling goed af te stemmen. Met deze tool kun je snel de voor jouw domein uitgegeven domeinen opzoeken.

Hoe stel ik CAA in?

CAA is een uniek DNS record type, waarvoor ondersteuning vanuit de DNS-beheerder vereist is. In veel gevallen zijn dit de registrar (de partij waar je domein is geregistreerd) of de hostingpartij waar je website is ondergebracht. Helaas zetten vele partijen nog verouderde DNS-software in zonder ondersteuning voor CAA, maar er is een duidelijke stijgende lijn te zien in de ondersteuning van hostingpartijen voor CAA en daarmee het gebruik van CAA records.

De opbouw van een CAA record is als volgt:

 flag tag ca
  • De 'flag' kan enkel de waarde 0 of 128 zijn. In vrijwel alle gevallen is ‘0’ echter correct. We adviseren je dit dan ook aan te houden.
  • De 'tag' geeft aan wat voor type CAA record het betreft. Mogelijke waarden zijn issue, issuewild of iodef. Hierbij heb je de volgende mogelijkheden;
    • 'issue' geeft aan dat er enkel een ‘normaal’ SSL-certificaat uitgegeven mag worden door de betreffende CA.
    • 'issuewild' geeft aan dat er een wildcard certificaat uitgegeven mag worden door de CA.
    • 'iodef' wordt gebruikt voor meldingen van mislukte certificaatuitgifte naar het vermelde e-mail adres.
  • De ‘ca’ geeft aan welke certificaatautoriteit(en) toestemming hebben certificaten uit te geven.
  • Het is ook mogelijk om voor een domeinnaam een extra policy in te stellen. Hierin kun je bijvoorbeeld aangeven dat er voor een bepaalde domeinnaam alleen maar EV SSL certificaten uitgegeven mogen worden. Bijvoorbeeld:

    CAA 0 issue "www.xolphin.nl; policy=ev"

Omdat er meerdere waarden mogelijk zijn, zijn er vaak meerdere CAA records benodigd. Voor het genereren van een CAA record kun je de volgende tool gebruiken: https://sslmate.com/labs/caa/. Deze tool geeft vervolgens een DNS (CAA) record terug, dat je naar je DNS zone kunt kopiëren. Een DNS zone met de simpelste vorm van CAA ziet er als volgt uit:

CAA DNS Records 1

DNS zone met enkel CAA record voor DV certificaten van Comodo, geen meldingen. Het is mogelijk meerdere certificaatautoriteiten toe te staan door meerdere CAA records toe te voegen, als volgt:

CAA DNS Records 2

DNS zone met twee CAA records, om certificaatuitgifte van DV certificaten van zowel Comodo als GeoTrust toe te staan, geen meldingen.

Om ook meldingen te ontvangen van gefaalde certificaatuitgiftes, bijvoorbeeld omdat het certificaat uitgegeven moest worden door een certificaat autoriteit welke niet in het CAA record opgenomen staat, kun je een iodef CAA record toevoegen:

CAA DNS records 3
DNS zone met drie CAA records, om certificaatuitgifte van DV certificaten van Comodo en GeoTrust toe te staan, en met meldingen naar abuse@xolphin.com

Door ‘issue’ bij GeoTrust te vervangen met ‘issuewild’, stel je GeoTrust in staat wildcard certificaten uit te geven, en Comodo enkel DV certificaten. Wanneer Comodo in dit geval bijvoorbeeld probeert een wildcard certificaat uit te geven, zul je hier een melding van ontvangen op abuse@xolphin.com.

CAA met DNSSEC en CT

DNS is in de kern een onveilig systeem omdat het in theorie mogelijk is voor onbevoegden om DNS records aan te passen. DNSSEC is een extra beveiligingslaag waarmee je dit kunt voorkomen, door een digitale handtekening te koppelen aan een bepaalde ‘DNS zone’. Hierdoor kan de geldigheid van DNS structureel gecontroleerd worden om misbruik te voorkomen. Bij het gebruik van CAA records groeit het belang van een veilig DNS. Als hackers in staat zijn de DNS aan te passen, verliest CAA zijn waarde omdat de CAA records dan ook aangepast kunnen worden.

CAA is ook een goede aanvulling op Certificate Transparency (CT): beide controlemechanismen hebben hetzelfde doel, namelijk het risico verkleinen dat 'verkeerde' certifcaten worden uitgegeven voor een bepaald domein. Maar waar CAA dit voor een certificaat uitgifte doet, doet CT dit juist erna.

point up