DNSSEC Jarle Greipsland Norid 2012 10 30
Outline Problem: DNS har en protokollsvakhet DNS lynrepetisjon Injisering av falske svar Midlertidige tiltak Løsning: DNSSEC Egenskaper og byggeklosser Signerte data, fraværsbevis, delegeringer DNSSEC validering Konsekvenser Kompleksitet og nye oppgaver Uløste problemer Nye muligheter
Agenda Problemet: DNS-protokollen har en svakhet Midlertidige omgåelser av problemet Ordentlig løsning: DNSSEC Konsekvenser og effekter
Outline Problem: DNS har en protokollsvakhet DNS lynrepetisjon Injisering av falske svar Midlertidige tiltak Løsning: DNSSEC Egenskaper og byggeklosser Signerte data, fraværsbevis, delegeringer DNSSEC validering Konsekvenser Kompleksitet og nye oppgaver Uløste problemer Nye muligheter
DNS struktur. com no org se dnb uio norid vg vgs zzzz test lab kvt mandal Tre-struktur label: 1-63 tegn Domenenavn: liste av labler Vanlig notasjon: mitt.lange.domenenavn.no Maksimal lengde 255 tegn
DNS egenskaper Konsistent navnerom Kan knytte informasjon i form av poster til navn Oppslag basert på fullt domenenavn Distribuert vedlikehold av underdomener ved delegering Posttyper for å strukturere navnerommet (SOA-poster, NS-poster) Anvendbart for alle applikasjoner Enkel programvare for å bruke systemet Raske oppslag, svar bestående av post-sett Tilgjengelighet viktigere enn garantert konsistens Navnetjenere, resolvere og stub-resolvere Resolvere kan cache poster for senere bruk
DNS posttyper Poster (resource records) angir informasjon knyttet til domenenavnet: A Angir en IPv4-adresse AAAA Angir en IPv6-adresse CNAME Angir kanonisk navn (domenenavnet er et alias) MX Angir e-postkontor for domenenavnet SRV Angir lokasjon og tjenesteparametre for en tjeneste beskrevet i DNS. NS Angir at et (under)domene er delegert til en navngitt navnetjener SOA Angir start of a zone of authority samt DNS-interne parametre... stadig nye kommer til
DNS-oppslag A? vg.no A? vg.no Root no NS... A? vg.no ISP resolver Brukerapplikasjon.no NS A 195.88.54.16.no DNS vg.no NS... A? vg.no vg.no NS A 195.88.54.16 vg.no DNS Applikasjonen har innebygd stub resolver Stub resolver konfigurert av ISP eller lokal admin Stub resolver er liten og enkel
Hva var problemet? A? vg.no A? vg.no Root no NS... A? vg.no ISP resolver Bruker applikasjon.no NS vg.no A?.no DNS vg.no NS... A? vg.no vg.no A 6.6.6.6 vg.no NS vg.no DNS A 195.88.54.16 Angriper
Resolvermatch Hvordan gjenkjenner en resolver svar på oppslag? dst-a dst-p src-a src-p qid qname answer dst-addr: Delegeringer har oftest 2-3 navnetjenere dst-port: Alltid port 53 src-addr: Kjent for angriper src-port: (Tidligere) fast eller valgt ved oppstart qid: Tilfeldig tall valgt av resolver qname: Navnet det spørres om
Angrepsalternativer Hvor mange alternativer må en angriper forsøke? Felt Biter qname 0 (kjent) qid 16 dst-port 0 (alltid port 53) dst-addr 1-2 (2.5 navnetjenere i gjennomsnitt) src-addr 0 (angrepsmålet) src-port 0 Totalt 18, dvs. 1 av 2 18 250k
Hva er problemet?.no NS Root.no DNS A? q868.vg.no no NS... A? q868.vg.no vg.no NS... A? q868.vg.no ISP resolver A? q868.vg.no? <> vg.no NS ns.vg.no ns.vg.no A 6.6.6.6 Bruker applikasjon vg.no NS vg.no DNS NXDOMAIN NS ns-foo.linpro.net Angriper Falsk NS vg.no IP=6.6.6.6
Outline Problem: DNS har en protokollsvakhet DNS lynrepetisjon Injisering av falske svar Midlertidige tiltak Løsning: DNSSEC Egenskaper og byggeklosser Signerte data, fraværsbevis, delegeringer DNSSEC validering Konsekvenser Kompleksitet og nye oppgaver Uløste problemer Nye muligheter
Midlertidige tiltak Implementer BCP-38 globalt; dvs. gjør det umulig å sende trafikk med forfalskede avsenderadresser inn i Internett Sperr for uautorisert tilgang til resolvere La resolveren bruke mer enn én avsenderport Eksempel: La resolver bruke 4096 avsenderporter 2 18 2 12 = 2 30 1milliard La resolveren variere store/små bokstaver www.norid.no Www.nORiD.nO Gir én ekstra bit tilfeldighet per tegn i [a-z] Dette varer ikke evig...
Outline Problem: DNS har en protokollsvakhet DNS lynrepetisjon Injisering av falske svar Midlertidige tiltak Løsning: DNSSEC Egenskaper og byggeklosser Signerte data, fraværsbevis, delegeringer DNSSEC validering Konsekvenser Kompleksitet og nye oppgaver Uløste problemer Nye muligheter
DNSSEC egenskaper Autentisering av avsender Integritetskontroll for DNS data Ingen kondidensialitet / kryptering av data Pre-beregning av data, dvs. ikke store beregningsbehov ved publisering Beskytter ikke mot DoS-angrep Signaleringsmekanismer mellom autoritativ navnetjener og resolver om bruken av DNSSEC Bakoverkompatibel de usikrede delene av DNS fungerer som før
DNSSEC byggeklosser Hash-funksjoner ( enveisfunksjoner ) Matematisk funksjon over en angitt datamengde Lite ressurskrevende å beregne Resultat utgjør (vanligvis) mindre datamengde enn opprinnelig Umulig å gå fra resultat til opprinnelig datamengde 0 sjanse for å finne to datamengder med samme hash-verdi Hashverdien kan i noen sammenhenger behandles som representant for datamengde. Offentlig nøkkel-kryptografi Nøkkelpar En privat/hemmelig nøkkel En offentlig/publisert nøkkel En signatur generert over et datasett av den private nøkkelen kan valideres av den offentlige nøkkelen
Signert sone ZSK secret key www A 158.38.130.37 www RRSIG A 5 3 60... RRSIG er signatur generert over postsettet RRSIG har gyldig fra/gyldig til tidsmerker (UTC) RRSIG er statisk, varierer ikke per oppslag
Signert sone med NSEC-poster ZSK secret key www A 158.38.130.37 www RRSIG A 5 3 60... www NSEC zzz A RRSIG NSEC www RRSIG NSEC 5 2 60...... ingen navn her... zzz A 1.2.3.4 NSEC kan benekte eksistens av navn i gitt intervall NSEC kan benekte eksistens av posttyper for noden
Signert sone med KSK /ZSK @ DNSKEY 257 3 5 AwEAAZY... @ DNSKEY 256 3 5 AwEAAc5... @ RRSIG DNSKEY 5 1... KSK secret key ZSK secret key www A 158.38.130.37 www RRSIG A 5 3 60... Ønsker å jevnlig bytte ut ZSK. Publiserer ZSK og KSK i DNSKEY-poster KSK brukes kun til å signere DNSKEY-settet
Signert delegering @ DNSKEY 256 3 5 AwEAAc5... del NS ns1.del.no. del RRSIG NS 5 2... del DS 18937 B5C4... del RRSIG DS 5 2... @ DNSKEY 257 3 5 AwEAAdhJA... @ DNSKEY 256 3 5 BQEAA... @ NS ns1.del.no. @ RRSIG DNSKEY 5 2... ZSK secret key KSK secret key ZSK secret key DS (delegation signer) er en hash av en KSK fra barnsonen
Nye posttyper for DNSSEC host.example.com. 86400 IN RRSIG A 5 3 86400 ( 20030322173103 20030220173103 2642 example.com. ojb1w6wngv+ldvq3wdg0mqkg5iehjrip8wtr PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t GNazPwQKkRN20XPXV6nwwfoXmJQbsLNrLfkG J5D6fwFm8nN+6pBzeDQfsS3Ap3o= ) alfa.example.com. 86400 IN NSEC host.example.com. ( A MX RRSIG NSEC TYPE1234 )
Nye posttyper for DNSSEC dskey.example.com. 86400 IN DNSKEY 256 3 5 ( AQOeiiR0GOMYkDshWoSKz9Xz fwjr1aytsmx3tgkjanxvbfi/ 2pHm822aJ5iI9BMzNXxeYCmZ DRD99WYwYqUSdjMmmAphXdvx egxd/m5+x7orzkbambcvdflu Uh6DhweJBjEVv5f2wwjM9Xzc nof+epbtg9dmbmadjfdc2w/r ljwvfw== ) ; key id = 60485 dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A98631FAD1A292118 )
DNSSEC med validering Root Secret KSK Root A? q868.vg.no no NS... A? q868.vg.no Root Public KSK ISP resolver A? q868.vg.no Bruker applikasjon.no NS.no DNS vg.no NS... vg.no DS 5 2 10F6... vg.no RRSIG DS 5 2... <> vg.no NS ns.vg.no ns.vg.no A 6.6.6.6 vg.no NS vg.no DNS Angriper Falsk NS vg.no IP=6.6.6.6 En validerende resolver kan signalisere at den kan DNSSEC En publiserende navnetjener kan sende med ekstra-informasjon
DNSSEC med validering Root Secret KSK Root A? q868.vg.no no NS... A? q868.vg.no Root Public KSK ISP resolver A? q868.vg.no Bruker applikasjon.no NS.no DNS vg.no NS... A? q868.vg.no <> vg.no NS ns.vg.no ns.vg.no A 6.6.6.6 vg.no NS vg.no DNS Angriper NXDOMAIN vg.no SOA... vg.no RRSIG SOA... Falsk NS vg.no IP=6.6.6.6 vg.no NSEC a.vg.no NS SOA NSEC RRSIG... vg.no RRSIG NSEC 5 2... post.vg.no NSEC www.vg.no A NSEC RRSIG... post.vg.no RRSIG NSEC 5 2...
NSEC3 Problem: Zone walking Kan følge NSEC-postene gjennom alle navnene i en sone Gir istedet bevis for ikke-eksistens i et hashet navnerom a b c d e ax/l8x9...nsec3 e33ixaa... e33ixaa...nsec3 gnh09qv... gnh09qv...nsec3 jaa1+kf... jaa1+kf...nsec3 muu8vpx... muu8vpx...nsec3 x8halp7... Dersom H(qname) er dekket av en NSEC3-post finnes ikke navnet.
Outline Problem: DNS har en protokollsvakhet DNS lynrepetisjon Injisering av falske svar Midlertidige tiltak Løsning: DNSSEC Egenskaper og byggeklosser Signerte data, fraværsbevis, delegeringer DNSSEC validering Konsekvenser Kompleksitet og nye oppgaver Uløste problemer Nye muligheter
DNSSEC, Norid, registrarer,... Norid Signert sonefil m/ds-poster Root DNS EPP m/dnskey.no NS + DS Registrar Nøkkelansvarlig.no DNS DNSKEY Usignert sone Signert sone vg.no NS + DS Abonnent DNSKEY Soneeditor vg.no DNS
Konsekvenser og spørsmål Alt blir mer komplekst mer kompetanse Valg/implementasjon av løsninger Drift Feilsøking Volumhåndtering av kryptonøkler en utfordring Nøkkelrullering Drift av DNS må automatiseres Litt mer ressurskrevende (minne, CPU, nettkapasitet) Infrastrukturen ikke lenger så tilgivende overfor feil Hvordan oppmuntre til bruk av sikker infrastruktur? Hvordan måle suksess? Hvem betaler?
Uløste problemer Ikke-sikrede domener Ikke-validerende resolvere beskytter ikke brukerne Sikring av kanal mellom resolver og stub-resolver Løser ikke IP-kapringsproblem Typosquatting/fishing onlinebanken.no vs oniinebanken.no Administrativ kapring av domene Lure registry til endringer (eier, NS, DNSSEC-nøkler)
Nye muligheter Kan stole på sikkerhetskritiske data i DNS dersom en kan stole på DNS. SSHFP. Kan publisere offentlig del av hostnøkkel for ssh-tjenere. IPSECKEY. Samme for ipsec-anvendelser. TLSA. Kan angi hvilke (få) sertifikatutstedere (av mange) som er gyldige for tjenester tilknyttet et domene. _443._tcp.www.example.com. IN TLSA ( 0 0 1 d2abde240d7cd3ee6b4b28c54df034b9 7983a1d16e8a410e4561cb106618e971 ) The Internet of things. Kan gjøre det enklere å sikre kommunikasjon mellom store antall forskjellige enheter.
Spørsmål?