Czym jest DNSSEC?
DNSSEC (Domain Name System Security Extensions) to zestaw kryptograficznych rozszerzeń DNS, które uwierzytelniają odpowiedzi DNS przez dodawanie do rekordów podpisów cyfrowych i uniemożliwiają atakującym fałszowanie lub modyfikowanie danych DNS.Jak działa DNSSEC
Chain of Trust:
Root Zone (.)
├── Signs: .com zone key
│ └── KSK (Key Signing Key)
│ └── ZSK (Zone Signing Key)
│
TLD Zone (.com)
├── Signs: example.com zone key
│ └── DS Record points to child KSK
│
Domain Zone (example.com)
├── Signs: All DNS records
│ └── RRSIG (Record Signature)
│ └── DNSKEY (Public keys)
│
Resolver validates entire chain from root
Typy rekordów DNSSEC
| Rekord | Zastosowanie | Opis |
|---|---|---|
| RRSIG | Podpis | Podpis kryptograficzny każdego zestawu rekordów |
| DNSKEY | Klucz publiczny | Publiczne klucze podpisujące strefę (KSK i ZSK) |
| DS | Delegation Signer | Skrót KSK strefy podrzędnej w strefie nadrzędnej |
| NSEC/NSEC3 | Uwierzytelnione zaprzeczenie | Potwierdza, że rekord nie istnieje |
Typy kluczy
| Klucz | Zastosowanie | Częstotliwość rotacji |
|---|---|---|
| KSK (Key Signing Key) | Podpisuje rekordy DNSKEY | Co rok lub rzadziej |
| ZSK (Zone Signing Key) | Podpisuje wszystkie pozostałe rekordy | Co miesiąc do kwartału |
Proces walidacji DNSSEC
1. Klient wysyła do resolvera DNS zapytanie o rekord A domeny example.com
2. Resolver pobiera rekord A oraz podpis RRSIG
3. Resolver pobiera DNSKEY, aby zweryfikować RRSIG
4. Resolver sprawdza rekord DS względem DNSKEY
5. Łańcuch jest kontynuowany aż do strefy głównej, a każdy poziom zostaje zweryfikowany
6. Jeśli wszystkie podpisy są prawidłowe, odpowiedź zostaje uwierzytelniona
Zagrożenia, którym zapobiega DNSSEC
| Atak | Opis | Ochrona DNSSEC |
|---|---|---|
| Zatrucie pamięci podręcznej | Wstrzyknięcie fałszywych rekordów do pamięci podręcznej | Podpisy wykrywają manipulację |
| Atak pośrednika | Przechwytywanie i modyfikowanie odpowiedzi | Walidacja kryptograficzna kończy się niepowodzeniem |
| Podszywanie się pod DNS | Zwracanie fałszywych adresów IP | Sfałszowane rekordy nie mają prawidłowego podpisu |
Względy implementacyjne
- Wydajność: Większe odpowiedzi z powodu podpisów (~1000-4000 bytes vs ~100 bytes)
- Zarządzanie kluczami: Wymaga bezpiecznego generowania, przechowywania i rotacji kluczy
- Podpisywanie strefy: Po zmianie rekordów strefę trzeba podpisać ponownie
- Obsługa przez resolver: Klienci potrzebują resolverów weryfikujących DNSSEC
Dobre praktyki
1. Używaj algorytmu 13 lub 14: ECDSA zapewnia mniejsze podpisy niż RSA
2. Automatyzuj rotację kluczy: Używaj narzędzi takich jak OpenDNSSEC do obsługi cyklu życia kluczy
3. Monitoruj wygaśnięcie: Podpisy RRSIG mają okresy ważności
4. Testuj przed wdrożeniem: Weryfikuj strefę za pomocą narzędzi takich jak dnsviz.net
5. Planuj sytuacje awaryjne: Dokumentuj procedury wymiany kluczy
DNSSEC zapewnia niezbędną ochronę integralności DNS i sprawia, że użytkownicy trafiają do prawidłowych miejsc docelowych, a nie na serwery kontrolowane przez atakujących.