Kratak odgovor
DNSSEC (Domain Name System Security Extensions) omogućava DNS resolveru da proveri da li je odgovor za domen zaista objavio vlasnik njegove DNS zone i da li je odgovor izmenjen usput. Time otežava podmetanje lažne IP adrese i trovanje DNS keša. DNSSEC ne šifruje saobraćaj, ne skriva DNS upite i ne štiti sajt od hakovanja; za šifrovanu vezu i dalje je potreban SSL/TLS sertifikat.
Koji problem DNSSEC rešava
Kada otvorite domen, uređaj pita DNS resolver za njegov A, AAAA ili drugi zapis. Klasičan DNS je napravljen u vreme kada autentičnost odgovora nije bila osnovni zahtev. Ako napadač uspe da podmetne lažan odgovor, korisnik može biti poslat na pogrešan server iako je ukucao tačnu adresu.
DNSSEC DNS podacima dodaje kriptografski potpis. Resolver koji proverava DNSSEC može da potvrdi poreklo i integritet odgovora. Ako potpis nije validan, odgovor odbacuje umesto da korisnika pošalje na adresu kojoj ne može da veruje.
Kako radi lanac poverenja
Potpis samo po sebi nije dovoljan: resolver mora da zna kom ključu može da veruje. Zato DNSSEC koristi lanac poverenja od korene DNS zone, preko registra ekstenzije kao što su .rs ili .com, do vašeg domena. U zoni domena nalaze se javni ključevi i potpisi, a kod registra se objavljuje DS zapis koji povezuje domen sa njegovim ključem.
DNSKEYobjavljuje javni ključ DNS zoneRRSIGje potpis nad grupom DNS zapisaDSkod registra povezuje roditeljsku zonu sa ključem domena- resolver proverava potpise redom, sve do poznatog korenog ključa poverenja
Vlasnik sajta obično ne pravi ove zapise ručno. DNS provajder potpisuje zonu, a registrar omogućava uključivanje DNSSEC-a ili unos dobijenog DS zapisa.
Od čega DNSSEC štiti, a od čega ne
- štiti od prihvatanja falsifikovanih ili izmenjenih DNS podataka kada resolver radi validaciju
- otežava DNS spoofing i cache poisoning napade koji korisnike usmeravaju na pogrešnu adresu
- ne šifruje sadržaj DNS upita; za privatnost postoje zasebni protokoli kao DoH i DoT
- ne šifruje vezu između posetioca i sajta; to radi HTTPS
- ne sprečava krađu lozinke registrara, kompromitovan WordPress ili napad na sam server
- ne filtrira phishing domen koji je napadač legitimno registrovao i potpisao
DNSSEC potvrđuje da je DNS odgovor autentičan. Ne potvrđuje da je sadržaj na toj adresi bezbedan.
Kako bezbedno uključiti DNSSEC
Najjednostavniji slučaj je kada registrar i DNS provajder rade zajedno: u panelu uključite DNSSEC, a sistem automatski potpiše zonu i objavi potreban DS zapis. Ako su registrar i DNS hosting odvojeni, redosled je važan:
- prvo uključite potpisivanje kod provajdera koji drži autoritativne nameservere
- kopirajte tačne
DSpodatke koje provajder generiše: key tag, algoritam, digest tip i digest - unesite ih kod registrara domena i sačekajte da se lanac pojavi u DNS-u
- proverite domen alatom kao što su DNSViz ili
dig +dnssec - tek posle uspešne provere smatrajte podešavanje završenim
shelldig vasdomen.rs A +dnssec dig vasdomen.rs DNSKEY +dnssec dig vasdomen.rs DS +short
Najopasnija greška: stari DS zapis
Ako promenite DNS provajdera ili nameservere, a kod registra ostane DS zapis za stari ključ, resolver dobija potpise koji se ne uklapaju u lanac poverenja. Rezultat nije samo upozorenje: resolver koji validira DNSSEC vraća grešku, pa sajt i email mogu delovati potpuno nedostupno.
Zato DNSSEC ne gasite brisanjem ključeva nasumičnim redom. Kod migracije pratite postupak oba provajdera: prenesite potpisivanje i lanac poverenja planski, ili prvo uklonite DS kod registra, sačekajte da stari podatak istekne iz keša, pa tek onda ugasite staro potpisivanje. Vreme čekanja zavisi od TTL vrednosti, isto kao kod DNS propagacije.
Česta pitanja
- Da li je DNSSEC isto što i SSL sertifikat?
- Nije. DNSSEC proverava autentičnost DNS podataka pre povezivanja, dok SSL/TLS šifruje vezu između pregledača i servera. Za potpuniji lanac zaštite koriste se zajedno.
- Da li DNSSEC šifruje DNS upite?
- Ne. DNSSEC potpisuje podatke da bi se proverili poreklo i integritet, ali upit ostaje čitljiv. Privatnost DNS upita rešavaju drugi protokoli, kao DNS over HTTPS i DNS over TLS.
- Zašto domen ne radi posle uključivanja DNSSEC-a?
- Najčešći uzrok je da DS zapis kod registra ne odgovara ključu kojim je trenutna DNS zona potpisana. Resolver tada odbacuje odgovor. Proverite DS, DNSKEY i nameservere, naročito ako je DNS skoro preseljen.
- Kako mogu da proverim da li DNSSEC radi?
- Koristite DNSViz ili terminalske upite `dig domen A +dnssec`, `dig domen DNSKEY +dnssec` i `dig domen DS`. Važno je proveriti ceo lanac, ne samo prisustvo jednog zapisa.
Reference
Osnivač NIJEFILA DOO. Piše o hostingu, DNS-u, email infrastrukturi i serverskoj administraciji.