Blog: Bedre SSL-sikkerhed med DNS

Blev du ramt af Heartbleed? Har du så fået skiftet nøgler og certifikater? Hvad med at få revoket de gamle certifikater? Har du testet at klienter rent faktisk afviser de gamle certifikater? Gik det hele smertefrit?

Denne gang gik det smertefrit fordi alle de involverede har været meget fokuseret på problemet. Men havde det været et lokalt problem der have kompromiteret mine nøgle kunne jeg sagtens have faret vild i en labyrint.

Jeg har tidligere skrevet om at lægge SSL certifikater i DNS for på den måde at give domæneejeren en større kontrol med certifikaterne. Men hvordan foregår det i praksis?

En TLSA-record for en af mine mindre aktive blogs (blog.hacking.dk) ser således ud:

Som en del af hostnavnet angives det er der er tale om et certifikat der bruges på port 443 over TCP for hosten blog.hacking.dk. Selve TLSA-recorden består af 3 tal samt certifikatet som hextal.

Det første tal angiver hvilken type certifikat der er tale om (kaldes
‘certificate usage’ i RFC’en). Det kan være et offentligt CA (type 0), et certifikat udstedt af et offentligt CA (type 1), et privat CA (type 2) eller et certifikat der kan være self-signed (type 3). I det ovenstående eksempel har jeg et AlphaSSL-certifikat og bruger derfor type 1, som angiver at certifikatet både skal matche min TLSA-record og valideres normalt.

Det andet tal angiver hvilken del af certifikatet der skal valideres mod TLSA-recorden. Jeg har valgt at validere hele certifikatet. Det tredje tale angiver at TLSA-recorden indeholder en SHA256-sum af certifikatet. Alternativerne er SHA512 eller at man lægge hele certifikatet uhashet i DNS.

For at tage hashsummen af certifikatet er det vigtigt at man bruger den rigtige udgave. Når jeg sætter Apache eller andre servere op bruger jeg oftest certifikatet i PEM format, men for at generere en TLSA-record skal jeg bruge DER format. Det gøres således:

Det hele skal så bare tastes in i min DNS-opsætning. Hvis man bruger en DNS-udbyder til at hoste ens domæne kræver det selvfølgelig at udbyderen understøtter TLSA-records og DNSSEC er selvfølgelig også en forudsætning. De fleste af mine domæner ligger hos GratisDNS der understøtter begge dele.

DNSSEC kræver stadigvæk at man holder tungen lige i munden, men derudover er det så let at lægge sine certifikater i DNS at der næsten ikke er nogen undskyldning for ikke at gøre det.

Posted in computer.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>