DNS

Domain Name System

💬❗ Was ist DNS?

  • Wofür wird es benötigt?
  • Wie funktioniert es?
  • Verzeichnisdienst

    • Client-/Server-Architektur
    • hiearchisch, verteilter
  • „Telefonbuch“ des Internets

  • insbesondere für Auflösung von Domainnamen zu IP-Adressen

    • …und andere Informationen begrenzter Datenmenge…
      • die dezentral bereitgestellt werden
      • die gecached werden dürfen
  • ersetzt ergänzt /etc/hosts (bzw. C:\Windows\System32\drivers\etc\hosts)

📝❗ FiSi AP2 Analyse Sommer 2023 Aufgabe 4

📝❗ FiSi AP2 Analyse Winter 2021 Aufgabe 4b-c

Inhaltsverzeichnis

URI, URL, Domänennamen, Zonen

URI

Uniform (Universal) Resource Identifier

Werden insbesondere im WWW für Hyperlinks verwendet

❓❗ Was sind URIs?

URIs sind einheitlich aufgebaut:

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

(RFC 3986)

URL, URN

flowchart TB
  URI --> URL
  URI --> URN
  URI --> data

Uniform Resource Locator identifizieren Ressourcen mittels Adresse

  • Schema entspricht dem „primären Zugriffsmechanismus“ z.B. http, https, ftp, file, mailto, tel
  • z.B. https://de.wikipedia.org/wiki/Uniform_Resource_Locator, git://github.com/johannesloetzsch/LF10b.git

Uniform Resource Name identifiziert inhaltsgleiche Ressourcen anhand eines dauerhaft gültigen, eindeutigen Namens

  • Schema sollte „urn“ sein
  • Namensräume werden von IANA vergeben
  • z.B. urn:ISBN:978-3-14-220108-5

Data-URLs identifizierten Ressourcen direkt über ihren Inhalt

  • müssen die Kodierung benennen
  • z.B. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAXUlEQVQY073MvQ2CUADE8R90tOzgFkzgMg7gLs7BCDYmhD0sTV7F2Vi8EF5nuOpyH3/+rW4fhMvPDh3r4Stcwxxe4dbEh3co4ROedddXowmlyrYwtoj3sIRHc3S+vgySGhd7StmKAAAAAElFTkSuQmCC

FQDN

Fully Qualified Domain Name

  • werden im hier-part von URIs verwendet
  • enden auf einen Punkt (der aber oft weggelassen wird)

DNS-Zonen

Teil des Domänenbaums, für den ein Nameserver zuständig ist

Root-Server, Root Hint

Arten von Nameservern

❓❗ Wie funktionieren die unterschiedlichen Arten von DNS-Servern?

  • Warum ist es oft sinnvoll, einen vom ISP bereitgestellten Recursive Resolver und im eigenen Netz nur Forwarding Nameserver zu verwenden?

Beispiel: Was ist alles nötig, um eine IP für de.wikipedia.org. zu erhalten?

flowchart LR
  classDef forwarding fill:#ccf
  classDef recursive fill:#afa
  classDef authoritative fill:#fc9
  subgraph Client[localhost]
   client_app{{Anwendung}}
   client_os{{Betriebssystem}}
   client_hosts["/etc/hosts"]
   client_ns([Stub Resolver]):::forwarding
   client_conf["/etc/resolv.conf\nnameserver 192.168.0.1"]
   client_cache[Cache]
   client_app -- 1a --> client_os
   client_os -- 1b --> client_hosts
   client_os -- 1c --> client_ns
   client_ns -- 1d --> client_cache
   client_ns -- 1e --> client_conf
  end
  subgraph Router[router.local\n192.168.0.1]
   router_ns([Forwarding NS]):::forwarding
   router_cache[Cache]
   router_ns -- 3 --> router_cache
  end
  subgraph ISP[ns.isp.com]
    isp_ns((Recursive NS)):::recursive
    isp_cache[Cache]
    isp_root_hint[Root Hint\na.root-servers.net]
    isp_ns -- 5,7,9 --> isp_cache
    isp_ns -- 6a --> isp_root_hint
  end
  root[(a.root-servers.net\nNS .\norg.                    2756    IN      NS      a0.org.afilias-nst.info.)]:::authoritative
  org[(a0.org.afilias-nst.info\nNS org.\nwikipedia.org.          12831   IN      NS      ns0.wikimedia.org.)]:::authoritative
  wikipedia[(ns0.wikimedia.org\nNS wikipedia.org.\nde.wikipedia.org.       21434   IN      CNAME   dyna.wikimedia.org.\ndyna.wikimedia.org.     180     IN      A       185.15.59.224)]:::authoritative
  client_ns -- 2 --> router_ns
  router_ns -- 4 --> isp_ns
  isp_ns -- 6b --> root
  isp_ns -- 8 --> org
  isp_ns -- 10 --> wikipedia
6b: Welche Nameserver sind für die Zone `org.` zuständig?
    org.                    2756    IN      NS      a0.org.afilias-nst.info.

 8: Welche Nameserver sind für die Zone `wikipedia.org.` zuständig?
    wikipedia.org.          12831   IN      NS      ns0.wikimedia.org.

10: Unter welcher IP ist der Host `de.wikipedia.org.` erreichbar?
    de.wikipedia.org.       21434   IN      CNAME   dyna.wikimedia.org.
    dyna.wikimedia.org.     180     IN      A       185.15.59.224

Authoritative

  • Zuständig für eine Zone
  • (Hoffentlich) unter Kontrolle des Domaininhabers

Recursive

  • Resolved Anfragen rekursiv (Schrittweise vom Root-Server bis zur abgefragten Subdomain)
    • fragt für alle Zonen die jeweiligen Authoritativen Nameserver
  • Wird von ISPs bereitgestellt. Kann im eigenen Netz betrieben werden.

Forwarding (Caching, Stub-Resolver)

  • Macht selbst keine rekursive Namensauflösung
  • Antworted aus dem Cache wenn Eintrag vorhanden und nicht älter als TTL
  • Wenn Eintrag nicht im Cache vorhanden: Fragt anderen Recursive (oder Forwarding) NS
  • Üblicherweise von Routern und Betriebsystemen bereitgestellt.

❓❗ Was muss beachtet werden, wenn lokale Server mittels DNS genutzt werden?

Die Zonen von öffentlichen Domains sind über recursive Abfrage ausgehend von den Root-Servern erreichbar. Für lokale Netze können Authoritative Nameserver betrieben werden, die nicht öffentlich erreichbar sind. Damit Clients diese nutzen können, müssen diese die Nutzung des lokalen DNS-Servers konfigurieren.

📝❗ FiSi AP2 Analyse Sommer 2024 Aufgabe 2b

Resource Records und RR-Typen

Einträge (Zeilen) von Zonendateien

❓❗ Für welche Zwecke werden die folgenden RR-Typen benutzt?

Aufbau und Beispiele:

namettl (Sekunden)classtyperdata
example.com.3600INA172.30.0.7
example.com.3600INAAAA2600:1408:ec00:36::1736:7f24
7.0.30.172.in-addr.arpa.PTRexample.com.
www.example.com.INCNAMEexample.com
example.org.INDNAMEexample.com.
example.com.NSnameserver.example.com.
@3600INSOAmaster.example.com. hostmaster.example.com. ( 2014031700 3600 1800 604800 600 )
example.net.INDNSKEY( 257 3 1 AQOW4333ZLdOHLRk+3Xe6RAaCQAOMhAVJu2Txqmk1Kyc13h69/wh1zhDk2jjqxsN6dVAFi16CUoynd7/EfaXdcjL )
nsf.example.org.RRSIGA 1 3 1000 20060616062444 ( 20060517062444 9927 example.org.mMBIXxXU6buN53GWHTPpwEbse4aR2gNI8rgsg9/x1We23K3gkO5DBjFdty27Fj4FMbQzg0uBuv9aFcPaMyILJg== )
filiale1.example.org.DS52037 1 1 378929E92D7DA04267EE87E802D75C5CA1B5D280
whatever.example.com.3600INTXT"Hello World"
_ldap._tcp.example.com.3600INSRV10 0 389 ldap01.example.com.
example.com.1800INMXmailserver.example.com.
example.com.3600INSPF"v=spf1 mx -all"
mail._domainkey.example.com6000INTXTv=DKIM1; p=76E629F05F70 9EF665853333 EEC3F5ADE69A 2362BECE4065 8267AB2FC3CB 6CBE

💻❗ Wo ist auf Unix-Servern konfiguriert, wie die Namensauflösung stattfinden soll?

cat /etc/resolv.conf /etc/hosts

💻❗ Wie kann man zum debuggen die IP-Adresse(n) zu einem Domainnamen auflösen?

dig afbb.de

nslookup, dig, Alternativen

📝❗ FiSi AP2 Analyse Sommer 2024 Aufgabe 3ab

💻 Wie können für eine Domain alle Records recursiv resolved werden?

dig any afbb.de +trace

Sicherheit

💬❗ Diskutieren Sie die Sicherheit von DNS im Bezug auf

  • Verfügbarkeit, Zensurresistenz
  • Integrität, Authentizität
  • Vertraulichkeit, Anonymität

Welche Gefahren gehen jeweils aus von

  • DNS-Server
  • Clients
  • ISP
  • Dritten
    • Innerhalb der gleichen Broadcastdomain
    • Außerhalb des eigenen Netzes

Wie kann man sich schützen? Welche Grenzen haben diese Maßnahmen?

DNS-Spoofing

  • Angreifer kann sich mittels DHCP-Spoofing als DNS-Server des Netzwerks ausgeben
  • Angreifer kann sich mittels IP-Spoofing als DNS-Server ausgeben
    • Muss Antworten schneller als der korrekte DNS-Server ausliefern
      => kann mit DoS auf DNS-Server kombiniert werden

DNS-Cache-Poisoning

  • Angreifer kann DNS-Anfragen an Recursive oder Forwarding DNS-Server stellen und passende Antworten auf benötigte Rückfragen an nächsten Server selbst senden
  • Wenn DNS-Server die Authentizität/Integrität der gefälschten Antworten nicht prüft:
    • DNS-Server schreibt die manipulierten Daten in den Cache und liefern diese bis zur TTL bei künftigen Anfragen aus

Maßnahmen

DNSSEC

Domain Name System Security Extensions

  • Authentizität wird mittels digitalen Signaturen abgesichert
    • DNSKEY Resource Record beinhaltet öffentlichen Schlüssel der Zone
    • RRSIG Resource Record enthält Signatur für zugehörigen DNS-Record
    • Eine Chain of Trust wird aufgebaut, indem in der Parent-Zone
      • ein DS (Delegation Signer) Resource Record mit dem Hash des Schlüssels der Zone abgelegt wird
      • die Parent-Zone selbst signiert wird
      • der oberste Schlüssel der Kette muss dem Client vorab bekannt sein Vertrauensanker

Vertraulichkeit ist bei DNSSEC nicht vorgesehen. DNS-Daten sind unverschlüsselt!

DNS over TLS (DoT)

DNS over HTTPS (DoH)

  • Anwendung fragt DNS-Server direkt anstatt über das Betriebssystem