DNSSEC – jak działa zabezpieczenie systemu DNS od środka
Algorytmy

DNSSEC – jak działa zabezpieczenie systemu DNS od środka

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.

 

DNSSEC – jak działa zabezpieczenie systemu DNS od środka
DNSSEC – jak działa zabezpieczenie systemu DNS od środka

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.

Polecane wpisy
Algorytmy w analizie danych (Big Data): wyciąganie wniosków z ogromnych zbiorów danych
Algorytmy w analizie danych (Big Data): wyciąganie wniosków z ogromnych zbiorów danych

📊 Algorytmy w analizie danych (Big Data): wyciąganie wniosków z ogromnych zbiorów danych 🌐 Wprowadzenie do analizy Big Data W Czytaj dalej

Bezpieczne generowanie liczb losowych w kryptografii: dlaczego jest kluczowe?
Bezpieczne generowanie liczb losowych w kryptografii: dlaczego jest kluczowe?

🔐 Bezpieczne generowanie liczb losowych w kryptografii: dlaczego jest kluczowe? W kryptografii, algorytmy odgrywają kluczową rolę w zapewnieniu bezpieczeństwa danych. Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.