DNSSEC – jak działa zabezpieczenie systemu DNS od środka
DNSSEC (Domain Name System Security Extensions) to zestaw rozszerzeń protokołu DNS, którego zadaniem jest zapewnienie autentyczności i integralności odpowiedzi DNS.
Bardzo ważne:
DNSSEC nie szyfruje ruchu DNS.
Jego zadaniem jest odpowiedź na pytanie:
Czy odpowiedź DNS rzeczywiście pochodzi z właściwej strefy i nie została zmieniona?
Dlaczego DNSSEC jest potrzebny?
Bez DNSSEC:
User
|
DNS Query
|
Attacker
|
Fake DNS Response
|
User
Atakujący może próbować podstawić fałszywy adres IP.
Przykład:
bank.com
↓
203.0.113.50 ❌
zamiast:
bank.com
↓
198.51.100.25 ✅
Użytkownik nie ma sposobu, aby sprawdzić, która odpowiedź jest prawdziwa.
Co zapewnia DNSSEC?
DNSSEC gwarantuje:
- ✅ autentyczność odpowiedzi,
- ✅ integralność danych,
- ✅ ochronę przed cache poisoning,
- ✅ ochronę przed spoofingiem odpowiedzi DNS.
Nie zapewnia natomiast:
- ❌ poufności,
- ❌ szyfrowania,
- ❌ anonimowości.
DNS a DNSSEC
Klasyczny DNS:
Client
↓
Resolver
↓
Authoritative DNS
↓
IP Address
DNSSEC:
Client
↓
Resolver
↓
Authoritative DNS
↓
IP Address
+
Digital Signature
Jak działa DNSSEC?
Podstawowa idea:
Każda strefa DNS posiada:
Private Key
Public Key
Administrator podpisuje rekordy:
DNS Records
↓
Private Key
↓
Digital Signature
Klient może zweryfikować podpis.
Rekordy DNSSEC
Najważniejsze rekordy:
DNSKEY
RRSIG
DS
NSEC
NSEC3
Każdy pełni inną funkcję.
DNSKEY
DNSKEY zawiera klucz publiczny strefy.
Schemat:
example.com
↓
DNSKEY
↓
Public Key
Klucz prywatny nigdy nie opuszcza serwera.
RRSIG
Każdy podpis wygląda mniej więcej tak:
A Record
↓
Sign
↓
RRSIG
Przykład:
example.com
A 192.0.2.10
↓
RRSIG
Resolver sprawdza:
DNSKEY
+
RRSIG
↓
VALID
Łańcuch zaufania
Najważniejszy element DNSSEC.
Nie wystarczy znać klucz publiczny.
Trzeba jeszcze wiedzieć, że można mu ufać.
Schemat:
Root
↓
.com
↓
example.com
Każdy poziom podpisuje kolejny.
Rekord DS
DS oznacza:
Delegation Signer
To on łączy dwie strefy.
Przykład:
Root
↓
DS
↓
.com
↓
DS
↓
example.com
Powstaje:
Chain of Trust
Root Zone
Na szczycie znajduje się:
.
(Root)
Root posiada własny klucz.
Schemat:
Root
↓
Signs
↓
TLD
Weryfikacja odpowiedzi
Przykład:
www.example.com
↓
192.0.2.10
+
RRSIG
Resolver:
DNSKEY
↓
Verify Signature
↓
VALID
Jeżeli podpis jest poprawny:
Accept
Jeżeli nie:
Reject
NSEC
Co jeśli rekord nie istnieje?
Przykład:
abcd.example.com
DNSSEC musi udowodnić, że rzeczywiście nie istnieje.
Do tego służy:
NSEC
Problem NSEC
NSEC ujawnia kolejność rekordów.
Można było:
example.com
↓
Subdomain Enumeration
czyli poznawać nazwy domen.
NSEC3
Rozwiązaniem jest:
NSEC3
Zamiast nazw używane są skróty.
Schemat:
example.com
↓
Hash
↓
NSEC3
Utrudnia to enumerację strefy.

Podpisywanie strefy
Administrator wykonuje:
Zone File
↓
Sign
↓
Signed Zone
Efekt:
A
AAAA
MX
TXT
NS
↓
Signed
KSK i ZSK
DNSSEC używa zwykle dwóch kluczy.
KSK
Key Signing Key
oraz
ZSK
Zone Signing Key
Dlaczego dwa klucze?
Schemat:
KSK
↓
Signs
↓
DNSKEY
ZSK
↓
Signs
↓
Zone Records
Dzięki temu rotacja kluczy jest łatwiejsza.
Rotacja kluczy
Co pewien czas:
Old Key
↓
New Key
Schemat:
KSK v1
↓
KSK v2
↓
KSK v3
To ogranicza skutki ewentualnego wycieku.
Walidujący resolver
Resolver sprawdza:
DNSKEY
↓
DS
↓
RRSIG
↓
VALID?
Jeżeli wszystko się zgadza:
Return Answer
Gdy podpis jest błędny
RRSIG INVALID
↓
SERVFAIL
Resolver odrzuca odpowiedź.
DNSSEC a HTTPS
Bardzo ważne:
DNSSEC nie zastępuje TLS.
Schemat:
DNSSEC
↓
Correct IP
↓
TLS
↓
Encrypted HTTPS
Czyli:
DNSSEC odpowiada:
Czy trafiłem na właściwy adres?
TLS odpowiada:
Czy komunikacja jest szyfrowana?
DNSSEC a DoH
To często mylone pojęcia.
DNSSEC:
Authenticity
DoH:
Encryption
Razem:
DNSSEC
+
DoH
↓
Secure DNS
DNSSEC a DoT
Podobnie:
DoT
↓
TLS
↓
Encrypted DNS
DNSSEC nadal odpowiada za integralność.
DNSSEC a DANE
Jednym z ciekawych zastosowań DNSSEC jest DANE (DNS-Based Authentication of Named Entities).
Schemat:
DNSSEC
↓
TLSA Record
↓
Certificate Validation
DANE pozwala publikować informacje o certyfikatach TLS bezpośrednio w DNS, wykorzystując zaufanie zapewniane przez DNSSEC.
Zalety DNSSEC
✔ Cache Poisoning Protection
✔ DNS Spoofing Protection
✔ Data Integrity
✔ Authentication
✔ Chain of Trust
Ograniczenia
DNSSEC nie chroni przed:
❌ DDoS
❌ Malware
❌ Phishing Site
❌ Stolen Certificate
❌ Traffic Encryption
To tylko jedna z warstw bezpieczeństwa.
DNSSEC i Post-Quantum
Obecnie DNSSEC korzysta z klasycznych algorytmów podpisu (np. RSA lub ECDSA, a w niektórych wdrożeniach także Ed25519).
W przyszłości może wyglądać to następująco:
ML-DSA
↓
DNSKEY
↓
Signed Zone
Migracja do podpisów odpornych na komputery kwantowe będzie jednak wymagała zmian w oprogramowaniu serwerów DNS, resolverów i rejestrów domen.
Jak DNSSEC łączy się z wcześniejszymi tematami?
Internet Security
|
+---------+---------+
| |
DNSSEC TLS 1.3
| |
Verify DNS Data Encrypt Traffic
| |
+---------+---------+
|
HTTPS Connection
|
X25519 / ML-KEM (future)
|
HKDF
|
AES-GCM / ChaCha20-Poly1305
Najważniejsze do zapamiętania
DNSSEC
→ chroni odpowiedzi DNS
DNSKEY
→ klucz publiczny strefy
RRSIG
→ podpis rekordów
DS
→ buduje łańcuch zaufania
KSK
→ podpisuje klucze
ZSK
→ podpisuje rekordy strefy
NSEC3
→ chroni przed łatwą enumeracją nazw
DNSSEC nie szyfruje zapytań DNS i nie zastępuje HTTPS. Jego zadaniem jest zapewnienie, że odpowiedź DNS jest autentyczna i nie została zmieniona podczas przesyłania. W połączeniu z TLS 1.3, DoH/DoT i nowoczesną kryptografią stanowi jedną z kluczowych warstw bezpieczeństwa współczesnego Internetu.






