CAA kaydı nedir?
CAA (Certificate Authority Authorization), bir alan adı için SSL/TLS sertifikası düzenlemesine hangi Sertifika Yetkililerinin (CA) izinli olduğunu belirleyen DNS kayıt türüdür. CAA, bir saldırgan CA'nın güvenliğini ele geçirse bile yetkisiz sertifika düzenlenmesini engelleyen bir güvenlik denetimidir.
CAA kayıtları neden önemlidir?
CAA kaydı bulunmadığında yüzlerce güvenilir CA'dan herhangi biri alan adınız için sertifika düzenleyebilir. Bu durum şu riskleri doğurur:
- CA güvenliğinin ele geçirilmesi: Güvenilir CA'lardan birinin güvenliği ihlal edilirse saldırganlar alan adınız için sertifika alabilir.
- Hatalı düzenleme: CA'lar zaman zaman sertifikaları yanlışlıkla düzenleyebilir.
- Sosyal mühendislik: Saldırganlar bir CA çalışanını yetkisiz sertifika vermeye ikna etmeye çalışabilir.
CAA kayıtları, sertifika düzenleyebilecek CA'ları sınırlandırarak saldırı yüzeyini küçültür.
CAA nasıl çalışır?
1. Alan adı sahibi yayınlar: CAA kayıtları DNS'e eklenir.
2. Sertifika talep edilir: Başvuru sahibi bir CA'dan sertifika ister.
3. CA kontrol eder: CA, alan adının CAA kayıtlarını sorgular.
4. CA düzenler: İstek yalnızca yetkiliyse (veya hiç CAA kaydı yoksa) kabul edilir.
5. Yetki yoksa: CA isteği reddetmelidir.
Zorunlu CA denetimi
Eylül 2017'den beri tüm CA'ların sertifika düzenlemeden önce CAA kayıtlarını kontrol etmesi zorunludur. Bu kural CA/Browser Forum Temel Gereksinimleri'nin bir parçasıdır.
CAA kayıt biçimi
example.com. IN CAA 0 issue "letsencrypt.org"
Bileşenler:
- 0: Bayraklar (0 = kritik değil, 128 = kritik).
- issue/issuewild/iodef: Özellik etiketi.
- "letsencrypt.org": Özellik değeri (yetkili CA).
Özellik etiketleri
| Etiket | Amaç | Örnek |
|---|---|---|
| issue | Tüm sertifikalar için CA'ya izin verme | issue "letsencrypt.org" |
| issuewild | Joker sertifikalar için CA'ya izin verme | issuewild "digicert.com" |
| iodef | Yetkisiz girişimleri bildirme | iodef "mailto:[email protected]" |
CAA kayıt örnekleri
Tek CA (yalnızca Let's Encrypt)
example.com. CAA 0 issue "letsencrypt.org"
Birden çok CA
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issue "digicert.com"
example.com. CAA 0 issue "sectigo.com"
Joker kısıtlaması
Normal sertifikalar için Let's Encrypt'e, joker sertifikalar için DigiCert'e izin verin:
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "digicert.com"
Tümünü reddetme (sertifika yok)
Hiçbir zaman sertifika almaması gereken alan adları için:
example.com. CAA 0 issue ";"
Bildirimle birlikte
example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 iodef "mailto:[email protected]"
Yaygın CA tanımlayıcıları
| CA | Tanımlayıcı |
|---|---|
| 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 |
Kullanacağınız tanımlayıcının doğru biçimini CA'nızın belgelerinden doğrulayın.
CAA kayıtlarını uygulama
DNS sağlayıcısı üzerinden
Çoğu DNS sağlayıcısının arayüzünde CAA kayıtlarını destekleyen bir seçenek bulunur.
Zone dosyası üzerinden
; 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]"
CAA kalıtımı
CAA kayıtları DNS hiyerarşisini izler:
- example.com üzerindeki CAA kayıtları alt alan adlarına uygulanır.
- Alt alan adları kendi CAA kayıtlarını tanımlayarak üst kaydı geçersiz kılabilir.
- CAA kaydı yoksa herhangi bir CA sertifika düzenleyebilir.
example.com. CAA 0 issue "letsencrypt.org" ; Applies to all
api.example.com. CAA 0 issue "digicert.com" ; Override for api
CAA kayıtlarını denetleme
dig kullanarak:dig example.com CAA
; ANSWER SECTION:
example.com. 300 IN CAA 0 issue "letsencrypt.org"
DomScan kullanarak:
curl "https://domscan.net/v1/health?domain=example.com"
# Reports hasCAA in security details
CAA için en iyi uygulamalar
1. CAA'yı her zaman yapılandırın: Saldırı yüzeyini azaltın.
2. Kullandığınız tüm CA'ları ekleyin: CDN veya bulut sağlayıcısının CA'sını unutmayın.
3. iodef kurun: Yetkisiz girişimlerden haberdar olun.
4. Zorunlu kılmadan önce test edin: CA'larınızın hâlâ sertifika düzenleyebildiğini doğrulayın.
5. Kayıtları güncel tutun: Yeni sertifika istemeden önce yeni CA'ları ekleyin.
Yaygın CAA sorunları
Sertifika yenilemesi başarısız: CA, CAA kayıtlarında yoktur; sertifikanın süresi dolmadan ekleyin. CDN sertifikası başarısız: CDN sağlayıcısının CA'sına izin verilmemiştir; CDN'nin hangi CA'yı kullandığını kontrol edin. Alt alan adında CAA eksik: Alt alan adı üst kaydın CAA'sını devralır; gerekiyorsa özel kayıt tanımlayın.CAA, her alan adının uygulaması gereken basit ama güçlü bir güvenlik denetimidir.