Czym jest rekord CAA?
Rekord CAA (Certificate Authority Authorization) to typ rekordu DNS określający, które urzędy certyfikacji (CA) mogą wystawiać certyfikaty SSL/TLS dla domeny. CAA jest mechanizmem kontroli bezpieczeństwa, który zapobiega nieautoryzowanemu wydaniu certyfikatu nawet wtedy, gdy atakujący naruszy bezpieczeństwo urzędu certyfikacji.
Dlaczego rekordy CAA mają znaczenie
Bez rekordów CAA dowolny z setek zaufanych urzędów certyfikacji mógłby wystawić certyfikat dla Twojej domeny. Stwarza to ryzyko:
- Naruszenie bezpieczeństwa CA: jeśli dowolny zaufany urząd certyfikacji zostanie naruszony, atakujący mogą uzyskać certyfikaty dla Twojej domeny
- Błędne wydanie: urzędy certyfikacji czasami wystawiają certyfikaty nieprawidłowo
- Inżynieria społeczna: atakujący mogą oszukać urząd certyfikacji, aby wydał nieautoryzowane certyfikaty
Rekordy CAA zmniejszają powierzchnię ataku, ograniczając listę CA, które mogą wystawiać certyfikaty dla Twojej domeny.
Jak działa CAA
1. Właściciel domeny publikuje rekordy CAA w DNS
2. Wnioskodawca certyfikatu prosi CA o certyfikat
3. CA sprawdza rekordy CAA domeny
4. CA wystawia certyfikat tylko wtedy, gdy jest upoważniona (lub gdy nie istnieją rekordy CAA)
5. W przypadku braku upoważnienia CA musi odrzucić wniosek
Obowiązkowe sprawdzanie CA
Od września 2017 r. wszystkie CA muszą sprawdzać rekordy CAA przed wydaniem certyfikatu. Jest to część podstawowych wymagań CA/Browser Forum.
Format rekordu CAA
example.com. IN CAA 0 issue "letsencrypt.org"
Składniki:
- 0: flagi (0 = niekrytyczna, 128 = krytyczna)
- issue/issuewild/iodef: tag właściwości
- "letsencrypt.org": wartość właściwości (upoważniona CA)
Tagi właściwości
| Tag | Zastosowanie | Przykład |
|---|---|---|
| issue | Upoważnia CA do wszystkich certyfikatów | issue "letsencrypt.org" |
| issuewild | Upoważnia CA do certyfikatów wildcard | issuewild "digicert.com" |
| iodef | Zgłasza nieupoważnione próby | iodef "mailto:[email protected]" |
Przykłady rekordów CAA
Pojedyncza CA (tylko Let's Encrypt)
example.com. CAA 0 issue "letsencrypt.org"
Wiele CA
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
Ograniczenie certyfikatów wildcard
Zezwól na certyfikaty zwykłe od Let's Encrypt, a na wildcard od DigiCert:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
Odmowa wszystkich (brak certyfikatów)
Przydatne dla domen, które nigdy nie powinny mieć certyfikatów:
example.com. CAA 0 issue ";"
Z raportowaniem
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:[email protected]"
Typowe identyfikatory CA
| CA | Identyfikator |
|---|---|
| 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 |
Sprawdź dokumentację swojej CA, aby użyć dokładnego identyfikatora.
Wdrażanie rekordów CAA
Przez dostawcę DNS
Większość dostawców DNS obsługuje rekordy CAA w swoim interfejsie.
Przez plik strefy
; 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]"
Dziedziczenie CAA
Rekordy CAA podążają za hierarchią DNS:
- Jeśli example.com ma rekordy CAA, dotyczą one subdomen
- Subdomeny mogą mieć własne rekordy CAA (zastępujące rekord nadrzędny)
- Brak rekordów CAA oznacza, że każda CA może wystawić certyfikat
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
Sprawdzanie rekordów CAA
Za pomocą dig:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
Za pomocą DomScan:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
Najlepsze praktyki CAA
1. Zawsze konfiguruj CAA: zmniejszaj powierzchnię ataku
2. Uwzględnij wszystkie używane CA: nie zapomnij o CA dostawcy CDN lub chmury
3. Skonfiguruj iodef: otrzymuj powiadomienia o nieupoważnionych próbach
4. Testuj przed wymuszeniem: sprawdź, czy Twoje CA nadal mogą wystawiać certyfikaty
5. Aktualizuj rekordy: dodaj nowe CA przed zamówieniem certyfikatów
Typowe problemy z CAA
Odnowienie certyfikatu kończy się niepowodzeniem: CA nie ma jej w rekordach CAA, dodaj ją przed wygaśnięciem certyfikatu Certyfikaty CDN nie są wystawiane: CA dostawcy CDN nie jest upoważniona, sprawdź, której CA używa CDN Brak rekordu CAA subdomeny: subdomena dziedziczy rekord CAA domeny nadrzędnej, w razie potrzeby ustaw konkretne rekordyCAA to prosta, ale skuteczna kontrola bezpieczeństwa, którą warto wdrożyć dla każdej domeny.