SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 1 / 32© SpeedPartner GmbH
Sichere Wegweiser im Internet:
DNSSEC im praktischen Einsatz
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 2 / 32© SpeedPartner GmbH
Inhalte
● Einführung/Überblick
● DNSSEC
● Tools
● Mögliche Einsatzszenarien
● Stolpersteine / Praxis
● Links / Hilfen
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 3 / 32© SpeedPartner GmbH
Über mich
● Stefan Neufeind
● Aus Neuss
● Tätig für SpeedPartner GmbH, ein Internet-Service-Provider (ISP)
(Consulting, Entwicklung, Administration)
● Individuelle TYPO3-Entwicklungen
● Hosting, Housing, Managed Services
● Domains / Domain-Services
● xDSL, IP-Upstream, IPv6, DNSSEC
● Aktive Mitarbeit im Community-Umfeld (PHP/PEAR, TYPO3, Linux)
● Freier Autor für z.B. t3n, iX, Internet World, ...
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 4 / 32© SpeedPartner GmbH
Einführung/Überblick
Das „Telefonbuch des Internet“:
● Anfrage stellen
● Antwort(en) erhalten
Vielseitig einsetzbar:
● Auflösung zu Adressen
● IPv4 (A), IPv6 (AAAA)
● Auflösung zu Verweisen
● Mail-Dienste (MX), Hostverweise auf andere Namen (CNAME)
● Vielzahl Zusatzeinträge
● Verweise auf Dienste (SRV) – z.B. für XMPP
● Kontakteinträge (NAPTR) – z.B. für SIP-Erreichbarkeiten
● Beliebige Texteinträge (TXT)
● Schlüssel, Geo-Positionen, ...
Client Provider
(Resolver)
www.linuxtag.org ? AAAA
2a01:198:12::13
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 5 / 32© SpeedPartner GmbH
Einführung/Überblick
Auflösung mit Hierarchien und Verweisen:
● Client fragt DNS-Resolver
● Resolver löst ab Wurzel (root) auf
● Verfolgen aller Verweise
DNS-Resolver
Server für
root (.)
198.41.0.4
(a.root-servers.net)
Server für
.org
199.19.56.1
(a0.org. ...)
Server für
linuxtag.org
91.184.37.10
(ns1.linuxtag.net)
www.linuxtag.org
?
frag
a0.org.afilias-nst.info
www.linuxtag.org ? AAAA
frag ns1.linuxtag.net
www.linuxtag.org ? A
2a01:198:12::13
1.
2.
3.
www.linuxtag.org
? AAAA
2a01:198:12::13
Antwort korrekt und unverfälscht?
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 6 / 32© SpeedPartner GmbH
Einführung/Überblick
Korrektheit / Vertrauenswürdigkeit:
● DNS ist „unsicher“
● 1 Paket (UDP), 1 Antwort
● Leicht verfälschbar
● DNS-Spoofing: falsche Antworten einschleusen
● Cache-Poisoning: falsche Antworten im DNS-Cache platzieren
Lösungsansätze:
● Prüfung auf höherer Ebene
● SSL: Name im Zertifikat korrekt? CA vertrauenswürdig? → siehe Comodo-Hack
● Unmittelbare Prüfung überhaupt möglich?
● Cache-Poisoning ggf. jedoch bereits erfolgt!
● Prüfung auf DNS-Ebene
● Und dann evtl. zusätzlich (!) z.B. SSL-Zertifikate per DNSSEC validieren
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 7 / 32© SpeedPartner GmbH
Einführung/Überblick
DNSSEC für „vertrauenswürdiges DNS“:
● Public-key-Kryptographie / Digitale Signaturen
● Ermöglicht Prüfung der DNS-Antworten
● Prüfung der Quelle
● Prüfung der Integrität
● Prüfung entlang der DNS-Hierarchie-Kette
● Keine Verschlüsselung
● DNS-Antworten les- und cachebar
● Authentizität der Antworten - nicht Vertraulichkeit
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 8 / 32© SpeedPartner GmbH
DNSSEC
DNSSEC für „vertrauenswürdiges DNS“:
● Erfordert keine Ende-zu-Ende-Verbindung
● Stufenweise Auflösung/Validierung möglich
● Cachen/Weitergabe von Antworten möglich
● Validierende Stelle muss vertrauenswürdig sein
● Verbindung muss vertrauenswürdig / abgesicher sein
● Optimal: Lokal validieren :-)
Validierender
Resolver
Client Authoritativer
Server
Vertrauenswürdige Verbindung
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 9 / 32© SpeedPartner GmbH
DNSSEC
Arbeitsweise:
● Public-key-Kryptographie (asymmetrisch)
● Mindestens 1 Key, in der Regel 2
● Zone-Signing-Key (ZSK) → für Signierung des Inhalts einer Zone (resource records)
● Key-Signing-Key (KSK) → für Signierung des/der Zone-Signing-Key(s)
● Zusätzliche DNS-Records
● DNSKEY: Public Key(s), für ZSK und KSK → für Prüfungen der Signaturen
● DS: Hash des Public-Key (KSK) der nächsten Ebene → verweist auf gültigen DNSKEYs
● RRSIG: Signatur für Antworten (resource records) → für Validierung der Antwort (RRs)
● NSEC/NSEC3: Nachweis für Nicht-Existenz von Einträgen
● Auch Nicht-Existenz von Records (NXDOMAIN) muss vertrauenswürdig prüfbar sein
● Zu vermeiden: Abzählbarkeit der Zone → Vertrauliche Information!
Möglich per NSEC3 statt NSEC
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 10 / 32© SpeedPartner GmbH
DNSSEC
Arbeitsweise:
● Beispiel DNS-Records einer Zone:
Ressource-Records:
six53.net. 2811 IN A 91.184.36.210
Signatur für Ressource-Records:
six53.net. 2811 IN RRSIG A 8 2 3600 20110331000000 (
20110317000000 56311 six53.net.
FiGGxP++9EZctArEFzrnf3YIFLQJNBO2TVLUJJnqPrhF
SqHyxnPuLgFrwYMsk1qn1AZk9+bXaONP9s6uQ7m4AkEN
bej4A6IxGttoNFNaPX8Nm/y7Jg+jX9Ux7c/Bprq0xNIn
dhuGN2hWaAaqQLKR30X1ld0v5GTgJHxsY8oUdvI= )
Public-Keys:
six53.net. 2101 IN DNSKEY 256 3 8 (
AwEAAbxzsCoIXMZ6mybrLYMsO+4uOxMESrnS0Gem61fM
qCd62i+PQxsu5Yi9Qq+ZJ35Uc3D7UMOGkY83W2SfXOIf
bFNOF3v8gQMZtmDD7D3X7ubQZ3gTKGBEgbP3eXlln9vS
MBiHY8XUE4Wml8Ku6ONPckbSS0xq59Wt7FCAV50+OX0/
) ; key id = 56311
8 = Algorithmus:
RSASHA256
2 = Digest: SHA-2
3600 = TTL
20110331000000 =
Ablauf Gültigkeit
20110317000000 =
Beginn Gültigkeit
56311 = ID für Key
256 = Zone Signing
Key (257 für KSK)
3 = Protokoll:
DNSSEC
8 = Algorithmus:
RSASHA256
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 11 / 32© SpeedPartner GmbH
DNSSEC
Hierarchische Beziehung/Validierung der Signaturen:
● Public-Key der Wurzel muss bekannt sein („trust-anchor“)
● Root-Zone enthält folgende Einträge:
● NS-Einträge für .net-Nameserver (Verweis)
● DNSKEY (Public-Key) der Root-Zone
● Signatur (RRSIG) über NS-Einträge
● Ein/mehrere DS-Einträge als Hash über
Public-Key der .net-Zone
● .net-Zone enthält
● NS-Einträge für six53.net-Nameserver (Verweis)
● DNSKEY (Public-Key) der .net-Zone
● Signatur (RRSIG) über NS-Einträge
● Ein/mehrere DS-Einträge als Hash über
Public-Key der six53.net-Zone
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 12 / 32© SpeedPartner GmbH
DNSSEC
www
mail
imap
smtp
117f
d4f1
626a
2d7c
hash
Nicht-Existenz von Records (NXDOMAIN):
● NSEC: Elemente abzählbar (Datenschutz-Problem)
● NSEC3: Abzählbarkeit durch vorheriges Hashing vermieden
www
mail
imap
smtp
imap
mail
smtp
www
sort
117f
2d7c
626a
d4f1
sort
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 13 / 32© SpeedPartner GmbH
DNSSEC
Nicht-Existenz von Records (NXDOMAIN):
● NSEC: Elemente abzählbar (Datenschutz-Problem)
Frage: Existiert „ldap.example.com“?
Antwort: zwischen „imap“ und „mail“ sind keine Einträge vorhanden.
● NSEC3: Abzählbarkeit durch vorheriges Hashing vermieden
Hash H(„ldap“) ist „de16“
Frage: Existiert „de16“?
Antwort: zwischen „626a“ und „d4f1“ sind keine Einträge vorhanden.
$ dig +dnssec ldap.example.com
imap.example.com. 7200 IN NSEC mail.example.com. A RRSIG NSEC
$ dig +dnssec ldap.example.com
626A.example.com.7200 IN NSEC3 1 0 10 5AD4B3 D4F1 A RRSIG
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 14 / 32© SpeedPartner GmbH
DNSSEC
Optional: Verwendung mehrerer Keys / Hashes:
● Verwendung von separatem Zone Signing Key (ZSK) um
diesen z.B. regelmäßig einfach wechseln zu können
● Wechsel des Key Signing Key (KSK) erfordert Aktualisierung der Eltern-Zone
● Mehrere Hashes mit unterschiedlichen Algorithmen / Digests möglich
für Verbesserung der Kompatibilität (z.B. DS mit SHA1 und SHA256)
● Mehrere Schlüssel während Schlüsselwechsel („Key rollover“) benötigt
● Neue Schlüssel hinzufügen
● Ausreichende Propagierung neuer Einträge abwarten (Ablauf Cache über die
Hierarchie-Ebenen hinweg)
● Alte Keys entfernen
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 15 / 32© SpeedPartner GmbH
DNSSEC
Verbreitung von DNSSEC bei TLDs:
● Root seit 15.07.2010 signiert
● Root-Signaturen in allen aktuellen Resolvern mitgeliefert
● 69 TLDs derzeit bereits signiert
( siehe Reports: http://fupps.com/dnssec/gdr/, http://stats.research.icann.org/dns/tld_report/ )
● TLDs wie .at oder .de derzeit mit DNSSEC Testbed
● .de übernimmt DNSSEC ab 31.5.2011 in Produktion
DLV als Alternative für die Übergangszeit:
● „Domain lookaside validation“ (DLV) des ISC (http://dlv.isc.org/) als zusätzliche Wurzel nutzbar
● Einträge kostenfrei möglich
● „Authentifizierung“ durch Hinzufügen spezieller Einträge in der eigenen Zone
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 16 / 32© SpeedPartner GmbH
DNSSEC
Technik für Validierung:
● EDNS-Unterstützung benötigt
● Existierte bereits vor DNSSEC-Einführung als Standard (EDNS0 von 1999)
● DNS: max. 512 Byte pro UDP-Antwort
EDNS: größere UDP-Antworten, bis 4096 Byte
● Große Antworten (evtl. auch per TCP) auch bisher schon für große Zonen benötigt:
z.B. 20x AAAA-Einträgen (20x 128Bit) passen nicht in 512 Byte
● DNSSEC-Antwort benötigt mit allen Inhalten z.B. leicht 1500/1600 Byte!
● Ermöglicht zusätzliche Flags bei Abfragen/Antworten (für DNSSEC benötigt)
● Nicht-DNSSEC-fähige Software kann von validierendem Resolver im Fehlerfall
trotzdem „SERVFAIL“ als Antwort erhalten
● DNSSEC-fähige Software kann zusätzliche Möglichkeiten nutzen
● Explizite Anforderung von Signaturprüfung durch den Resolver;
Rückmeldung ob geprüft wurde
● Explizite Anforderung von ungeprüften Antworten
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 17 / 32© SpeedPartner GmbH
Tools
Validierung:
Mit DNSSEC-Prüfung
(absichtlich fehlgeschlagen!)
Ohne DNSSEC-Prüfung
Am Beispiel: www.dnssec-failed.org
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 18 / 32© SpeedPartner GmbH
Tools
Validierung:
● Fehlschlagende, validierende Abfrage:
● Abfrage ohne Prüfung („check disabled“):
● Erfolgreiche Abfrage:
$ dig +dnssec www.dnssec-failed.org
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL
;; flags: qr rd ra; QUERY: 1, ANSWER: 0
$ dig +cd +dnssec www.dnssec-failed.org
;; ->>HEADER<<- opcode: QUERY, status: NOERROR
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 2
;; ANSWER SECTION:
www.dnssec-failed.org. 5620 IN A 68.87.64.48
$ dig +dnssec www.six53.net
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25913
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 13
;; ANSWER SECTION:
www.six53.net. 3600 IN A 91.184.36.210
www.six53.net. 3600 IN RRSIG A 8 3 3600 20110331000000 20110317000000
56311 six53.net. FKFMYF2BJRhCGqLjFjFeqxDaMBGdF/1yh7Y8kFBbjbq68mKldvQINBbY
S+X3RJn2LD7JbHRZ/qcFzTfAkHutR9RiPD59PP/5oQmU/zR/lg1IayVWNPp0zNotNVLZ[...]
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 19 / 32© SpeedPartner GmbH
Tools
Validierung:
● Überprüfen der Zertifikatskette:
● (theoretisch) auch per dig möglich mit „+sigchase“
● Mittel der Wahl „drill“ (basierend auf ldns)
● Von Zone zum root: „sigchase“-Modus
● Vom root zur Zone: „trace“-Modus (umfangreiche Ausgaben aller Keys!)
$ drill -D -S -k root.key six53.net
DNSSEC Trust tree:
six53.net. (A)
|---six53.net. (DNSKEY keytag: 56311 alg: 8 flags: 256)
|---six53.net. (DNSKEY keytag: 29596 alg: 8 flags: 257)
|---six53.net. (DS keytag: 29596 digest type: 1)
|---net. (DNSKEY keytag: 3980 alg: 8 flags: 256)
|---net. (DNSKEY keytag: 35886 alg: 8 flags: 257)
|---net. (DS keytag: 35886 digest type: 2)
|---. (DNSKEY keytag: 21639 alg: 8 flags: 256)
|---. (DNSKEY keytag: 19036 alg: 8 flags: 257)
$ drill -D -T -k root.key six53.net
Verweise auf verwendete
Schlüssel (DNSKEYs)
256=ZSK, 257=KSK
Root-Key separat
benötigt
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 20 / 32© SpeedPartner GmbH
Tools
DNSSEC-Server:
● Resolver:
● Unbound
● BIND
● Authoritative Server:
● NSD
● BIND
● PowerDNS 3.0 (noch nicht erschienen)
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 21 / 32© SpeedPartner GmbH
Tools
Recursor mit Unbound:
● root-Key benötigt (bei vielen Distributionen bereits im Paket enthalten)
● unbound-anchor pflegt root.key bei Aktualisierungen (ggf. Cronjob einrichten)
● DNSSEC-Validierung aktivieren (unbound.conf)
● optional: Zusätzliche Datei mit DNSKEY/DS-Einträgen für eine „island of trust“
● optional: unbound für Anfrage gegen nicht-delegierte Zone konfigurieren
$ unbound-anchor -a root.key
server:
auto-trust-anchor-file: "root.key"
dlv-anchor-file: "dlv.key"
trust-anchor-file: "my.keys"
stub-zone:
name: "six53.net"
stub-host: localhost
stub-addr: 127.0.0.1
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 22 / 32© SpeedPartner GmbH
Tools
Recursor mit Bind:
● root-Key downloaden (Achtung! Prüfung des Schlüssels per DNSSEC o.ä. notwendig!)
● DS (Signatur) hieraus erstellen
● Als Key für root ergänzen und DNSSEC aktivieren (named.conf)
● Bind ab 9.8.0 liefert root.key mit; „dnssec-enable“ damit ausreichend
managed-keys {
"." initial-key 257 3 8 "AwEAAagAIKlVZrp...";
};
options {
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto; // DLV
}
/usr/local/sbin/dnssec-dsfromkey -2 -f /path/to/keyfile .
$ dig . dnskey
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 23 / 32© SpeedPartner GmbH
Tools
Authoritativer Server mit Bind / NSD:
● Key generieren
● Ohne -f um einen ZSK zu erzeugen
● Zone signieren („BIND smart-signing“)
● Erfordert Cronjob zur Aktualisierung
● -o für Zone Origin; optional: -f für Ausgabe-Datei
● BIND: DNSSEC aktivieren (named.conf)
● NSD: Zone hinzufügen; signierte Zonen automatisch erkannt
options {
dnssec-enable yes;
}
$ dnssec-keygen -a algo -b bits -f ksk example.com
$ dnssec-signzone -S -o example.com zone.db
zone:
name: "example.com"
zonefile: "zone.db.signed"
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 24 / 32© SpeedPartner GmbH
Tools
Authoritativer Server mit Bind / NSD:
● Alternativ: BIND auto-signing
● Keys hier in „mykeydir“ erwartet
● Signaturen werden automatisch erneuert etc.
● Initiale Signierung durchführen
zone "example.com" in {
type master;
key-directory "mykeydir";
update-policy local;
auto-dnssec maintain;
sig-validity-interval 30; // days
file "example.com";
};
$ rndc signzone example.com
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 25 / 32© SpeedPartner GmbH
Tools
Dynamische Updates mit Bind:
● per nsupdate (RFC 2136, von April 1997)
● Abgesichert per SIG(0) mit Public-Private-Key
● SIG(0) Schlüsselpaar erzeugen:
● Public-Key zum DNS hinzufügen:
● Update-Policy definieren:
● nsupdate durchführen:
$ dnssec-keygen -C -a algo -b bits -n HOST -T KEY my.name.
my.name. IN KEY 512 3 3 CLb...gaNM
update-policy {
grant local-ddns zonesub ANY;
grant my.name. zonesub A AAAA MX TXT;
};
$ nsupdate -l
$ nsupdate -k Kmy.name*.private
Nsupdate-Kommandos (Auswahl):
server addr [port]
zone zonename
prereq nxdomain domain
update delete name [ttl] [type [data]]
update add domain ttl type data
show
send
answer
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 26 / 32© SpeedPartner GmbH
Mögliche Einsatzszenarien
Validierung von SSH-Fingerprints mit OpenSSH:
● Für offiziellen OpenSSH nur über Patches verfügbar
● z.B. Fedora liefert standardmäßig einen angepassten OpenSSH-Client aus
● Aktivierung per „VerifyHostKeyDNS“-Parameter
● Ermöglicht SSH-Fingerprint-Prüfung als zusätzliches Entscheidungskriterium (Modus „Ask“)
oder erlaubt automatisches akzeptieren von validen Fingerprints (Modus „Yes“)
● Beispiel:
demo.example.com. 300 IN SSHFP 1 1 ACC2E1E597682DE96AFAEC2D0C6E8D7E9625B7A0
$ ssh demo.example.com
The authenticity of host 'demo.example.com
(10.0.0.2)' can't be established.
RSA key fingerprint is
03:c0:1a:bd:5f:cd:2c:e1:e6:91:b7:58:80:d7:0f:d9.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting
(yes/no)?
Ohne SSHFP/VerifyHostKeyDNS: Mit SSHFP/VerifyHostKeyDNS:
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 27 / 32© SpeedPartner GmbH
Mögliche Einsatzszenarien
DNSSEC-Validator für Firefox:
● http://www.dnssec-validator.cz/
● Zeigt Status der Prüfung in der URL-Zeile
● Verwendet ldns-Library für Prüfung
SSL-Prüfung per DNSSEC:
● http://mens.de/:/bo
● Aktuell Implementierungen im Status „proof-of-concept“
● Arbeitet unter Linux per LD_PRELOAD / OpenSSL
● Funktioniert mit Vielzahl von SSL-Anwendungen
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 28 / 32© SpeedPartner GmbH
Stolpersteine / Praxis
Komplexität von DNS nicht unterschätzen:
● Timestamps in RRSIGs
● Angegeben in UTC – nicht lokaler Zeit
● Konsistente Zoneneinträge
● Konsistente Daten auf Master-/Slave-Server
● Absicherung Updates an Signatur-Server (z.B. mit SIG(0) / TSIG)
● Keyrollover
● Zone Signing Key (ZSK): erst neue Keys verteilen, dann neue Signaturen
● Key Signing Key (KSK): Aktualisierung bei Parent-Zone (z.B. Registry) erforderlich
● DNSSEC-Prüfung schlägt fehl?
● Dienste nicht erreichbar
● Haltezeit fehlerhafte Einträge in DNS-Caches
● Monitoring (Verfügbarkeit, Signaturen, Updates, ...)
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 29 / 32© SpeedPartner GmbH
Stolpersteine / Praxis
Die Leistungen von six53.net rund um DNS und Domains:
● Aktuell: Dual-Stack (IPv4/IPv6), DNSSEC, Anycast
● Zuverlässig: DNSSEC, Redundanzen, sicherer Betrieb
● Verfügbar:
● Bereits „heute“ und ohne große Vorarbeiten nutzbar
● Professioneller 24/7-Betrieb
● Performant, Verteilter Betrieb per Anycast + Unicast
● Erprobt:
● Intensiv getestet, Erfahrung mit Domains (direkter Registrar, Whitelabel-Domainlösung)
● Flexibel:
● Per Web, API, dynamic updates, hidden primary; mit z.B. TSIG und SIG(0)
● Integration in bestehende Landschaften möglich
● Professionelle Lösung: Schulung, Consulting, Individuelle Lösungen
Kostenfreie Betaphase
Jetzt anmelden:
http://six53.net/
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 30 / 32© SpeedPartner GmbH
Links / Hilfen
DNSSEC reference card:
● Zum nachschlagen, ausdrucken und verschenken :-)
● Doppelseitig DIN-A5; seit dieser Woche erste „Beta-Version“ veröffentlicht
http://six53.net/refcard
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 31 / 32© SpeedPartner GmbH
Links / Hilfen
DNSSEC-Validator Firefox: http://www.dnssec-validator.cz/
DNSSEC-Funktionstests:
● http://dnssec-or-not.org/
● http://dnssectest.sidn.nl/
● http://dnscheck.iis.se/
● http://dnssec-debugger.verisignlabs.com/
● http://test-ipv6.com/
● http://www.dnssec-failed.org/
Visualisierung: http://dnsviz.net/
DNSSEC Reference-Card: http://six53.net/refcard
DNSSEC im praktischen Einsatz
LinuxTag, 13.05.2011
Seite: 32 / 32© SpeedPartner GmbH
Kontakt
Danke fürs Zuhören
sowie
viel Erfolg und Spaß
mit DNSSEC!
Link zu den Slides: http://talks.speedpartner.de
DNSSEC reference card: http://six53.net/refcard
Bei Fragen stehen wir selbstverständlich gerne zur Verfügung:
Stefan Neufeind, neufeind@speedpartner.de
SpeedPartner GmbH, http://www.speedpartner.de/

Contenu connexe

En vedette (20)

Topologia xD
Topologia xDTopologia xD
Topologia xD
 
Tecnicas de estudio(expo)
Tecnicas de estudio(expo)Tecnicas de estudio(expo)
Tecnicas de estudio(expo)
 
Aldeas y reconstrucción
Aldeas y reconstrucciónAldeas y reconstrucción
Aldeas y reconstrucción
 
Glandula tiroides
Glandula tiroidesGlandula tiroides
Glandula tiroides
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 
Y despues de la eso 2015
Y despues de la eso 2015Y despues de la eso 2015
Y despues de la eso 2015
 
Avila ancajima
Avila ancajimaAvila ancajima
Avila ancajima
 
2ºbachillerato artaza romo, 15-16
2ºbachillerato artaza romo, 15-162ºbachillerato artaza romo, 15-16
2ºbachillerato artaza romo, 15-16
 
Presentacion trabajo
Presentacion trabajoPresentacion trabajo
Presentacion trabajo
 
Repetitivas
RepetitivasRepetitivas
Repetitivas
 
Trabajo csg cris,esther,ibai,luzmi 3
Trabajo csg cris,esther,ibai,luzmi 3Trabajo csg cris,esther,ibai,luzmi 3
Trabajo csg cris,esther,ibai,luzmi 3
 
presentacion
presentacionpresentacion
presentacion
 
Desastres naturales[1]
Desastres naturales[1]Desastres naturales[1]
Desastres naturales[1]
 
4 DBH AMAITU ETA GERO 2014
4 DBH AMAITU ETA GERO  20144 DBH AMAITU ETA GERO  2014
4 DBH AMAITU ETA GERO 2014
 
¿Y despues de la ESO ?
¿Y despues de la ESO ?¿Y despues de la ESO ?
¿Y despues de la ESO ?
 
A empresa e o seu contorno
A empresa e o seu contornoA empresa e o seu contorno
A empresa e o seu contorno
 
Sichere it infrastruktur
Sichere it infrastrukturSichere it infrastruktur
Sichere it infrastruktur
 
El Llanto Mas Amargo
El Llanto Mas AmargoEl Llanto Mas Amargo
El Llanto Mas Amargo
 
Ungehindert Inklusiv! - Report über wirkungsvolle Projekte im Bereich Inklusion
Ungehindert Inklusiv! - Report über wirkungsvolle Projekte im Bereich InklusionUngehindert Inklusiv! - Report über wirkungsvolle Projekte im Bereich Inklusion
Ungehindert Inklusiv! - Report über wirkungsvolle Projekte im Bereich Inklusion
 
Proyecto de gestion tecnologica y educativa
Proyecto de gestion tecnologica y educativaProyecto de gestion tecnologica y educativa
Proyecto de gestion tecnologica y educativa
 

Plus de SpeedPartner GmbH

Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenSpeedPartner GmbH
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVGSpeedPartner GmbH
 
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the webXUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the webSpeedPartner GmbH
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenSpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-DomainSpeedPartner GmbH
 
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunityLeben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunitySpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner GmbH
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSpeedPartner GmbH
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSpeedPartner GmbH
 

Plus de SpeedPartner GmbH (20)

Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVG
 
Secure PHP environment
Secure PHP environmentSecure PHP environment
Secure PHP environment
 
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the webXUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
 
PHP-Applikationen mit PEAR
PHP-Applikationen mit PEARPHP-Applikationen mit PEAR
PHP-Applikationen mit PEAR
 
PHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEARPHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEAR
 
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-ApplikationenWebsockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
News from PEAR
News from PEARNews from PEAR
News from PEAR
 
PEAR - An introduction
PEAR - An introductionPEAR - An introduction
PEAR - An introduction
 
Suchmaschinen-Optimierung
Suchmaschinen-OptimierungSuchmaschinen-Optimierung
Suchmaschinen-Optimierung
 
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
 
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer CommunityLeben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeasSystem-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
 
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen EinsatzSicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
 

Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz

  • 1. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 1 / 32© SpeedPartner GmbH Sichere Wegweiser im Internet: DNSSEC im praktischen Einsatz
  • 2. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 2 / 32© SpeedPartner GmbH Inhalte ● Einführung/Überblick ● DNSSEC ● Tools ● Mögliche Einsatzszenarien ● Stolpersteine / Praxis ● Links / Hilfen
  • 3. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 3 / 32© SpeedPartner GmbH Über mich ● Stefan Neufeind ● Aus Neuss ● Tätig für SpeedPartner GmbH, ein Internet-Service-Provider (ISP) (Consulting, Entwicklung, Administration) ● Individuelle TYPO3-Entwicklungen ● Hosting, Housing, Managed Services ● Domains / Domain-Services ● xDSL, IP-Upstream, IPv6, DNSSEC ● Aktive Mitarbeit im Community-Umfeld (PHP/PEAR, TYPO3, Linux) ● Freier Autor für z.B. t3n, iX, Internet World, ...
  • 4. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 4 / 32© SpeedPartner GmbH Einführung/Überblick Das „Telefonbuch des Internet“: ● Anfrage stellen ● Antwort(en) erhalten Vielseitig einsetzbar: ● Auflösung zu Adressen ● IPv4 (A), IPv6 (AAAA) ● Auflösung zu Verweisen ● Mail-Dienste (MX), Hostverweise auf andere Namen (CNAME) ● Vielzahl Zusatzeinträge ● Verweise auf Dienste (SRV) – z.B. für XMPP ● Kontakteinträge (NAPTR) – z.B. für SIP-Erreichbarkeiten ● Beliebige Texteinträge (TXT) ● Schlüssel, Geo-Positionen, ... Client Provider (Resolver) www.linuxtag.org ? AAAA 2a01:198:12::13
  • 5. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 5 / 32© SpeedPartner GmbH Einführung/Überblick Auflösung mit Hierarchien und Verweisen: ● Client fragt DNS-Resolver ● Resolver löst ab Wurzel (root) auf ● Verfolgen aller Verweise DNS-Resolver Server für root (.) 198.41.0.4 (a.root-servers.net) Server für .org 199.19.56.1 (a0.org. ...) Server für linuxtag.org 91.184.37.10 (ns1.linuxtag.net) www.linuxtag.org ? frag a0.org.afilias-nst.info www.linuxtag.org ? AAAA frag ns1.linuxtag.net www.linuxtag.org ? A 2a01:198:12::13 1. 2. 3. www.linuxtag.org ? AAAA 2a01:198:12::13 Antwort korrekt und unverfälscht?
  • 6. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 6 / 32© SpeedPartner GmbH Einführung/Überblick Korrektheit / Vertrauenswürdigkeit: ● DNS ist „unsicher“ ● 1 Paket (UDP), 1 Antwort ● Leicht verfälschbar ● DNS-Spoofing: falsche Antworten einschleusen ● Cache-Poisoning: falsche Antworten im DNS-Cache platzieren Lösungsansätze: ● Prüfung auf höherer Ebene ● SSL: Name im Zertifikat korrekt? CA vertrauenswürdig? → siehe Comodo-Hack ● Unmittelbare Prüfung überhaupt möglich? ● Cache-Poisoning ggf. jedoch bereits erfolgt! ● Prüfung auf DNS-Ebene ● Und dann evtl. zusätzlich (!) z.B. SSL-Zertifikate per DNSSEC validieren
  • 7. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 7 / 32© SpeedPartner GmbH Einführung/Überblick DNSSEC für „vertrauenswürdiges DNS“: ● Public-key-Kryptographie / Digitale Signaturen ● Ermöglicht Prüfung der DNS-Antworten ● Prüfung der Quelle ● Prüfung der Integrität ● Prüfung entlang der DNS-Hierarchie-Kette ● Keine Verschlüsselung ● DNS-Antworten les- und cachebar ● Authentizität der Antworten - nicht Vertraulichkeit
  • 8. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 8 / 32© SpeedPartner GmbH DNSSEC DNSSEC für „vertrauenswürdiges DNS“: ● Erfordert keine Ende-zu-Ende-Verbindung ● Stufenweise Auflösung/Validierung möglich ● Cachen/Weitergabe von Antworten möglich ● Validierende Stelle muss vertrauenswürdig sein ● Verbindung muss vertrauenswürdig / abgesicher sein ● Optimal: Lokal validieren :-) Validierender Resolver Client Authoritativer Server Vertrauenswürdige Verbindung
  • 9. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 9 / 32© SpeedPartner GmbH DNSSEC Arbeitsweise: ● Public-key-Kryptographie (asymmetrisch) ● Mindestens 1 Key, in der Regel 2 ● Zone-Signing-Key (ZSK) → für Signierung des Inhalts einer Zone (resource records) ● Key-Signing-Key (KSK) → für Signierung des/der Zone-Signing-Key(s) ● Zusätzliche DNS-Records ● DNSKEY: Public Key(s), für ZSK und KSK → für Prüfungen der Signaturen ● DS: Hash des Public-Key (KSK) der nächsten Ebene → verweist auf gültigen DNSKEYs ● RRSIG: Signatur für Antworten (resource records) → für Validierung der Antwort (RRs) ● NSEC/NSEC3: Nachweis für Nicht-Existenz von Einträgen ● Auch Nicht-Existenz von Records (NXDOMAIN) muss vertrauenswürdig prüfbar sein ● Zu vermeiden: Abzählbarkeit der Zone → Vertrauliche Information! Möglich per NSEC3 statt NSEC
  • 10. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 10 / 32© SpeedPartner GmbH DNSSEC Arbeitsweise: ● Beispiel DNS-Records einer Zone: Ressource-Records: six53.net. 2811 IN A 91.184.36.210 Signatur für Ressource-Records: six53.net. 2811 IN RRSIG A 8 2 3600 20110331000000 ( 20110317000000 56311 six53.net. FiGGxP++9EZctArEFzrnf3YIFLQJNBO2TVLUJJnqPrhF SqHyxnPuLgFrwYMsk1qn1AZk9+bXaONP9s6uQ7m4AkEN bej4A6IxGttoNFNaPX8Nm/y7Jg+jX9Ux7c/Bprq0xNIn dhuGN2hWaAaqQLKR30X1ld0v5GTgJHxsY8oUdvI= ) Public-Keys: six53.net. 2101 IN DNSKEY 256 3 8 ( AwEAAbxzsCoIXMZ6mybrLYMsO+4uOxMESrnS0Gem61fM qCd62i+PQxsu5Yi9Qq+ZJ35Uc3D7UMOGkY83W2SfXOIf bFNOF3v8gQMZtmDD7D3X7ubQZ3gTKGBEgbP3eXlln9vS MBiHY8XUE4Wml8Ku6ONPckbSS0xq59Wt7FCAV50+OX0/ ) ; key id = 56311 8 = Algorithmus: RSASHA256 2 = Digest: SHA-2 3600 = TTL 20110331000000 = Ablauf Gültigkeit 20110317000000 = Beginn Gültigkeit 56311 = ID für Key 256 = Zone Signing Key (257 für KSK) 3 = Protokoll: DNSSEC 8 = Algorithmus: RSASHA256
  • 11. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 11 / 32© SpeedPartner GmbH DNSSEC Hierarchische Beziehung/Validierung der Signaturen: ● Public-Key der Wurzel muss bekannt sein („trust-anchor“) ● Root-Zone enthält folgende Einträge: ● NS-Einträge für .net-Nameserver (Verweis) ● DNSKEY (Public-Key) der Root-Zone ● Signatur (RRSIG) über NS-Einträge ● Ein/mehrere DS-Einträge als Hash über Public-Key der .net-Zone ● .net-Zone enthält ● NS-Einträge für six53.net-Nameserver (Verweis) ● DNSKEY (Public-Key) der .net-Zone ● Signatur (RRSIG) über NS-Einträge ● Ein/mehrere DS-Einträge als Hash über Public-Key der six53.net-Zone
  • 12. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 12 / 32© SpeedPartner GmbH DNSSEC www mail imap smtp 117f d4f1 626a 2d7c hash Nicht-Existenz von Records (NXDOMAIN): ● NSEC: Elemente abzählbar (Datenschutz-Problem) ● NSEC3: Abzählbarkeit durch vorheriges Hashing vermieden www mail imap smtp imap mail smtp www sort 117f 2d7c 626a d4f1 sort
  • 13. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 13 / 32© SpeedPartner GmbH DNSSEC Nicht-Existenz von Records (NXDOMAIN): ● NSEC: Elemente abzählbar (Datenschutz-Problem) Frage: Existiert „ldap.example.com“? Antwort: zwischen „imap“ und „mail“ sind keine Einträge vorhanden. ● NSEC3: Abzählbarkeit durch vorheriges Hashing vermieden Hash H(„ldap“) ist „de16“ Frage: Existiert „de16“? Antwort: zwischen „626a“ und „d4f1“ sind keine Einträge vorhanden. $ dig +dnssec ldap.example.com imap.example.com. 7200 IN NSEC mail.example.com. A RRSIG NSEC $ dig +dnssec ldap.example.com 626A.example.com.7200 IN NSEC3 1 0 10 5AD4B3 D4F1 A RRSIG
  • 14. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 14 / 32© SpeedPartner GmbH DNSSEC Optional: Verwendung mehrerer Keys / Hashes: ● Verwendung von separatem Zone Signing Key (ZSK) um diesen z.B. regelmäßig einfach wechseln zu können ● Wechsel des Key Signing Key (KSK) erfordert Aktualisierung der Eltern-Zone ● Mehrere Hashes mit unterschiedlichen Algorithmen / Digests möglich für Verbesserung der Kompatibilität (z.B. DS mit SHA1 und SHA256) ● Mehrere Schlüssel während Schlüsselwechsel („Key rollover“) benötigt ● Neue Schlüssel hinzufügen ● Ausreichende Propagierung neuer Einträge abwarten (Ablauf Cache über die Hierarchie-Ebenen hinweg) ● Alte Keys entfernen
  • 15. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 15 / 32© SpeedPartner GmbH DNSSEC Verbreitung von DNSSEC bei TLDs: ● Root seit 15.07.2010 signiert ● Root-Signaturen in allen aktuellen Resolvern mitgeliefert ● 69 TLDs derzeit bereits signiert ( siehe Reports: http://fupps.com/dnssec/gdr/, http://stats.research.icann.org/dns/tld_report/ ) ● TLDs wie .at oder .de derzeit mit DNSSEC Testbed ● .de übernimmt DNSSEC ab 31.5.2011 in Produktion DLV als Alternative für die Übergangszeit: ● „Domain lookaside validation“ (DLV) des ISC (http://dlv.isc.org/) als zusätzliche Wurzel nutzbar ● Einträge kostenfrei möglich ● „Authentifizierung“ durch Hinzufügen spezieller Einträge in der eigenen Zone
  • 16. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 16 / 32© SpeedPartner GmbH DNSSEC Technik für Validierung: ● EDNS-Unterstützung benötigt ● Existierte bereits vor DNSSEC-Einführung als Standard (EDNS0 von 1999) ● DNS: max. 512 Byte pro UDP-Antwort EDNS: größere UDP-Antworten, bis 4096 Byte ● Große Antworten (evtl. auch per TCP) auch bisher schon für große Zonen benötigt: z.B. 20x AAAA-Einträgen (20x 128Bit) passen nicht in 512 Byte ● DNSSEC-Antwort benötigt mit allen Inhalten z.B. leicht 1500/1600 Byte! ● Ermöglicht zusätzliche Flags bei Abfragen/Antworten (für DNSSEC benötigt) ● Nicht-DNSSEC-fähige Software kann von validierendem Resolver im Fehlerfall trotzdem „SERVFAIL“ als Antwort erhalten ● DNSSEC-fähige Software kann zusätzliche Möglichkeiten nutzen ● Explizite Anforderung von Signaturprüfung durch den Resolver; Rückmeldung ob geprüft wurde ● Explizite Anforderung von ungeprüften Antworten
  • 17. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 17 / 32© SpeedPartner GmbH Tools Validierung: Mit DNSSEC-Prüfung (absichtlich fehlgeschlagen!) Ohne DNSSEC-Prüfung Am Beispiel: www.dnssec-failed.org
  • 18. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 18 / 32© SpeedPartner GmbH Tools Validierung: ● Fehlschlagende, validierende Abfrage: ● Abfrage ohne Prüfung („check disabled“): ● Erfolgreiche Abfrage: $ dig +dnssec www.dnssec-failed.org ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL ;; flags: qr rd ra; QUERY: 1, ANSWER: 0 $ dig +cd +dnssec www.dnssec-failed.org ;; ->>HEADER<<- opcode: QUERY, status: NOERROR ;; flags: qr rd ra cd; QUERY: 1, ANSWER: 2 ;; ANSWER SECTION: www.dnssec-failed.org. 5620 IN A 68.87.64.48 $ dig +dnssec www.six53.net ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25913 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 13 ;; ANSWER SECTION: www.six53.net. 3600 IN A 91.184.36.210 www.six53.net. 3600 IN RRSIG A 8 3 3600 20110331000000 20110317000000 56311 six53.net. FKFMYF2BJRhCGqLjFjFeqxDaMBGdF/1yh7Y8kFBbjbq68mKldvQINBbY S+X3RJn2LD7JbHRZ/qcFzTfAkHutR9RiPD59PP/5oQmU/zR/lg1IayVWNPp0zNotNVLZ[...]
  • 19. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 19 / 32© SpeedPartner GmbH Tools Validierung: ● Überprüfen der Zertifikatskette: ● (theoretisch) auch per dig möglich mit „+sigchase“ ● Mittel der Wahl „drill“ (basierend auf ldns) ● Von Zone zum root: „sigchase“-Modus ● Vom root zur Zone: „trace“-Modus (umfangreiche Ausgaben aller Keys!) $ drill -D -S -k root.key six53.net DNSSEC Trust tree: six53.net. (A) |---six53.net. (DNSKEY keytag: 56311 alg: 8 flags: 256) |---six53.net. (DNSKEY keytag: 29596 alg: 8 flags: 257) |---six53.net. (DS keytag: 29596 digest type: 1) |---net. (DNSKEY keytag: 3980 alg: 8 flags: 256) |---net. (DNSKEY keytag: 35886 alg: 8 flags: 257) |---net. (DS keytag: 35886 digest type: 2) |---. (DNSKEY keytag: 21639 alg: 8 flags: 256) |---. (DNSKEY keytag: 19036 alg: 8 flags: 257) $ drill -D -T -k root.key six53.net Verweise auf verwendete Schlüssel (DNSKEYs) 256=ZSK, 257=KSK Root-Key separat benötigt
  • 20. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 20 / 32© SpeedPartner GmbH Tools DNSSEC-Server: ● Resolver: ● Unbound ● BIND ● Authoritative Server: ● NSD ● BIND ● PowerDNS 3.0 (noch nicht erschienen)
  • 21. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 21 / 32© SpeedPartner GmbH Tools Recursor mit Unbound: ● root-Key benötigt (bei vielen Distributionen bereits im Paket enthalten) ● unbound-anchor pflegt root.key bei Aktualisierungen (ggf. Cronjob einrichten) ● DNSSEC-Validierung aktivieren (unbound.conf) ● optional: Zusätzliche Datei mit DNSKEY/DS-Einträgen für eine „island of trust“ ● optional: unbound für Anfrage gegen nicht-delegierte Zone konfigurieren $ unbound-anchor -a root.key server: auto-trust-anchor-file: "root.key" dlv-anchor-file: "dlv.key" trust-anchor-file: "my.keys" stub-zone: name: "six53.net" stub-host: localhost stub-addr: 127.0.0.1
  • 22. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 22 / 32© SpeedPartner GmbH Tools Recursor mit Bind: ● root-Key downloaden (Achtung! Prüfung des Schlüssels per DNSSEC o.ä. notwendig!) ● DS (Signatur) hieraus erstellen ● Als Key für root ergänzen und DNSSEC aktivieren (named.conf) ● Bind ab 9.8.0 liefert root.key mit; „dnssec-enable“ damit ausreichend managed-keys { "." initial-key 257 3 8 "AwEAAagAIKlVZrp..."; }; options { dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; // DLV } /usr/local/sbin/dnssec-dsfromkey -2 -f /path/to/keyfile . $ dig . dnskey
  • 23. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 23 / 32© SpeedPartner GmbH Tools Authoritativer Server mit Bind / NSD: ● Key generieren ● Ohne -f um einen ZSK zu erzeugen ● Zone signieren („BIND smart-signing“) ● Erfordert Cronjob zur Aktualisierung ● -o für Zone Origin; optional: -f für Ausgabe-Datei ● BIND: DNSSEC aktivieren (named.conf) ● NSD: Zone hinzufügen; signierte Zonen automatisch erkannt options { dnssec-enable yes; } $ dnssec-keygen -a algo -b bits -f ksk example.com $ dnssec-signzone -S -o example.com zone.db zone: name: "example.com" zonefile: "zone.db.signed"
  • 24. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 24 / 32© SpeedPartner GmbH Tools Authoritativer Server mit Bind / NSD: ● Alternativ: BIND auto-signing ● Keys hier in „mykeydir“ erwartet ● Signaturen werden automatisch erneuert etc. ● Initiale Signierung durchführen zone "example.com" in { type master; key-directory "mykeydir"; update-policy local; auto-dnssec maintain; sig-validity-interval 30; // days file "example.com"; }; $ rndc signzone example.com
  • 25. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 25 / 32© SpeedPartner GmbH Tools Dynamische Updates mit Bind: ● per nsupdate (RFC 2136, von April 1997) ● Abgesichert per SIG(0) mit Public-Private-Key ● SIG(0) Schlüsselpaar erzeugen: ● Public-Key zum DNS hinzufügen: ● Update-Policy definieren: ● nsupdate durchführen: $ dnssec-keygen -C -a algo -b bits -n HOST -T KEY my.name. my.name. IN KEY 512 3 3 CLb...gaNM update-policy { grant local-ddns zonesub ANY; grant my.name. zonesub A AAAA MX TXT; }; $ nsupdate -l $ nsupdate -k Kmy.name*.private Nsupdate-Kommandos (Auswahl): server addr [port] zone zonename prereq nxdomain domain update delete name [ttl] [type [data]] update add domain ttl type data show send answer
  • 26. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 26 / 32© SpeedPartner GmbH Mögliche Einsatzszenarien Validierung von SSH-Fingerprints mit OpenSSH: ● Für offiziellen OpenSSH nur über Patches verfügbar ● z.B. Fedora liefert standardmäßig einen angepassten OpenSSH-Client aus ● Aktivierung per „VerifyHostKeyDNS“-Parameter ● Ermöglicht SSH-Fingerprint-Prüfung als zusätzliches Entscheidungskriterium (Modus „Ask“) oder erlaubt automatisches akzeptieren von validen Fingerprints (Modus „Yes“) ● Beispiel: demo.example.com. 300 IN SSHFP 1 1 ACC2E1E597682DE96AFAEC2D0C6E8D7E9625B7A0 $ ssh demo.example.com The authenticity of host 'demo.example.com (10.0.0.2)' can't be established. RSA key fingerprint is 03:c0:1a:bd:5f:cd:2c:e1:e6:91:b7:58:80:d7:0f:d9. No matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)? Ohne SSHFP/VerifyHostKeyDNS: Mit SSHFP/VerifyHostKeyDNS:
  • 27. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 27 / 32© SpeedPartner GmbH Mögliche Einsatzszenarien DNSSEC-Validator für Firefox: ● http://www.dnssec-validator.cz/ ● Zeigt Status der Prüfung in der URL-Zeile ● Verwendet ldns-Library für Prüfung SSL-Prüfung per DNSSEC: ● http://mens.de/:/bo ● Aktuell Implementierungen im Status „proof-of-concept“ ● Arbeitet unter Linux per LD_PRELOAD / OpenSSL ● Funktioniert mit Vielzahl von SSL-Anwendungen
  • 28. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 28 / 32© SpeedPartner GmbH Stolpersteine / Praxis Komplexität von DNS nicht unterschätzen: ● Timestamps in RRSIGs ● Angegeben in UTC – nicht lokaler Zeit ● Konsistente Zoneneinträge ● Konsistente Daten auf Master-/Slave-Server ● Absicherung Updates an Signatur-Server (z.B. mit SIG(0) / TSIG) ● Keyrollover ● Zone Signing Key (ZSK): erst neue Keys verteilen, dann neue Signaturen ● Key Signing Key (KSK): Aktualisierung bei Parent-Zone (z.B. Registry) erforderlich ● DNSSEC-Prüfung schlägt fehl? ● Dienste nicht erreichbar ● Haltezeit fehlerhafte Einträge in DNS-Caches ● Monitoring (Verfügbarkeit, Signaturen, Updates, ...)
  • 29. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 29 / 32© SpeedPartner GmbH Stolpersteine / Praxis Die Leistungen von six53.net rund um DNS und Domains: ● Aktuell: Dual-Stack (IPv4/IPv6), DNSSEC, Anycast ● Zuverlässig: DNSSEC, Redundanzen, sicherer Betrieb ● Verfügbar: ● Bereits „heute“ und ohne große Vorarbeiten nutzbar ● Professioneller 24/7-Betrieb ● Performant, Verteilter Betrieb per Anycast + Unicast ● Erprobt: ● Intensiv getestet, Erfahrung mit Domains (direkter Registrar, Whitelabel-Domainlösung) ● Flexibel: ● Per Web, API, dynamic updates, hidden primary; mit z.B. TSIG und SIG(0) ● Integration in bestehende Landschaften möglich ● Professionelle Lösung: Schulung, Consulting, Individuelle Lösungen Kostenfreie Betaphase Jetzt anmelden: http://six53.net/
  • 30. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 30 / 32© SpeedPartner GmbH Links / Hilfen DNSSEC reference card: ● Zum nachschlagen, ausdrucken und verschenken :-) ● Doppelseitig DIN-A5; seit dieser Woche erste „Beta-Version“ veröffentlicht http://six53.net/refcard
  • 31. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 31 / 32© SpeedPartner GmbH Links / Hilfen DNSSEC-Validator Firefox: http://www.dnssec-validator.cz/ DNSSEC-Funktionstests: ● http://dnssec-or-not.org/ ● http://dnssectest.sidn.nl/ ● http://dnscheck.iis.se/ ● http://dnssec-debugger.verisignlabs.com/ ● http://test-ipv6.com/ ● http://www.dnssec-failed.org/ Visualisierung: http://dnsviz.net/ DNSSEC Reference-Card: http://six53.net/refcard
  • 32. DNSSEC im praktischen Einsatz LinuxTag, 13.05.2011 Seite: 32 / 32© SpeedPartner GmbH Kontakt Danke fürs Zuhören sowie viel Erfolg und Spaß mit DNSSEC! Link zu den Slides: http://talks.speedpartner.de DNSSEC reference card: http://six53.net/refcard Bei Fragen stehen wir selbstverständlich gerne zur Verfügung: Stefan Neufeind, neufeind@speedpartner.de SpeedPartner GmbH, http://www.speedpartner.de/