NFsec Logo

CAA – Certificate Authority Authorization

08/05/2017 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 605, ilość słów: 453)

P

odczas ostatnich testów na SSL Labs zauważyłem nowy wpis, jaki pojawił się na tablicy wyników: DNS CAA: No. O, co chodzi z tym wsparciem dla DNS CAA? CAA jest nowym typem rekordu DNS, który określa, jaki CA (Certificate Authority – określenie organizacji bądź firmy zajmującej się wydawaniem i obsługą elektronicznych certyfikatów) jest uprawniony do wystawienia certyfikatu dla danej domeny. CAA został opisany w RFC 6844 w 2013 roku w celu poprawy siły ekosystemu PKI (Public Key Infrastructure). Niestety przez ostatnie 4 lata pozostawał on tylko w statusie propozycji standardu. Jednak za sprawą ostatniego głosowania CA/Browser Forum ma to się zmienić od 8 września 2017 roku. Po tym czasie standard wydawania certyfikatów zostanie wzbogacony o sprawdzanie rekordów CAA.

Najczęstszą słabością ekosystemu PKI jest fakt, że jakikolwiek urząd certyfikacji może wystawić certyfikat dla dowolnej domeny. Mimo, że w wielu przypadkach CA chciały postępować słusznie, nie było dla nich przewidzianych żadnych technicznych kontroli, które pomogą im w podjęciu decyzji. Skoro ekosystem PKI jest tak słaby, jak jego najsłabsze ogniowo – z setkami urzędów certyfikacji istnieje wiele słabych linków. CAA wykorzystując system DNS buduje mechanizm, który pozwala właścicielowi domeny na stworzenie listy kontrolnej z wykazem urzędów, które mogą wystawiać dla niego certyfikaty. Odbywa się to poprzez rekord zasobu (R]esource R]ecord) o nazwie CAA (typ 257). W ten sposób właściciel ogranicza emisję certyfikatów określając zero lub więcej urzędów certyfikacji. Jeśli dany CA jest uprawniony do wydania certyfikatu jego własna nazwa będzie znajdowała się w rekordzie DNS. Poniżej przykład konfiguracji CAA dla domeny nfsec.org. Poniższy format obsługują serwery w wersji BIND >= 9.9.6, PowerDNS >= 4.0.0, NSD >= 4.0.1, Knot DNS >= 2.2.0:

nfsec.org.	IN	CAA	0 issue "domeny.pl"
nfsec.org.	IN	CAA	0 issuewild ";"
nfsec.org.	IN	CAA	0 iodef "mailto:cert@nfsec.org"

Format dla BIND <9.9.6, NSD <4.0.1:

nfsec.org.	IN	TYPE257	\# 16 00056973737565646F6D656E792E706C
nfsec.org.	IN	TYPE257	\# 12 0009697373756577696C643B
nfsec.org.	IN	TYPE257	\# 27 0005696F6465666D61696C746F3A63657274406E667365632E706C

I to wszystko. Przed wydaniem certyfikatu CA powinien sprawdzić rekord DNS i odmówić wydania, chyba że sam znajduje się na białej liście. Poza dyrektywą “issue” z powyższego przykładu obsługiwane są również dwie inne: “issuewild“, które ograniczają wydawanie certyfikatów typu wildcard, a “iodef” zapewnia wsparcie dla powiadomień w przypadkach, gdy coś pójdzie nie tak.

Do odpytań o rekord CAA potrzebujemy też nowszej wersji dig (np. 9.9.4 z CentOS 7 lub 9.10.3 z Ubuntu 16.04) lub dedykowanego narzędzia. O starsze wersje wpisów możemy odpytać za pomocą typu 257:

~# dig google.com type257
google.com.		86400	IN	TYPE257	\# 19 0005697373756573796D616E7465632E636F6D
google.com.		86400	IN	TYPE257	\# 15 00056973737565706B692E676F6F67

Jeśli chcemy w prosty i szybki sposób stworzyć wpisy dla naszej domeny, możemy skorzystać z generatora od SSLMate. Polecam także rozgryzienie w jaki sposób są tworzone wpisy dla starszej wersji serwerów DNS.

Więcej informacji: CAA Records

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , , , ,

Komentowanie tego wpisu jest zablokowane.