SlideShare une entreprise Scribd logo
1  sur  83
https://www.nlnetlabs.nl/
DNS privacy in theory and practice
Ralph Dolmans Martin Hoffmann
ralph@nlnetlabs.nl martin@nlnetlabs.nl
APRICOT 2019
https://www.nlnetlabs.nl/
Goal of this talk
● Become familiar with the privacy implication in DNS
● Understand how recent developments can reduce these privacy
implications
● Learn how to configure DNS software to make use of these recent
developments
https://www.nlnetlabs.nl/
Privacy in DNS
● DNS data is public
● Until recently no privacy considerations in the DNS protocol
● 30+ year old protocol
● Transactions should not be public
● Almost every Internet activity starts with a DNS query
https://www.nlnetlabs.nl/
DNS data disclosure
stub
185.49.140.10
.
nl.
nlnetlabs.nl.
resolver
178.62.200.226
MX nlnetlabs.nl
178.62.200.226
MX nlnetlabs.nl
178.62.200.226
MX nlnetlabs.nl
185.49.140.10
MX nlnetlabs.nl
178.62.200.226
stub
185.49.140.20
MX nlnetlabs.nl
185.49.140.20
MX nlnetlabs.nl
185.49.140.225
stub
185.49.140.225
https://www.nlnetlabs.nl/
Stub resolver→ resolver
https://www.nlnetlabs.nl/
Resolver authoritative name server→ resolver
https://www.nlnetlabs.nl/
● We will use the Unbound resolver in our examples
● https://nlnetlabs.nl/unbound/
● Can be installed from distribution package:
● apt install unbound
● brew install unbound
● Windows installer available
https://www.nlnetlabs.nl/
Unbound: minimal installation - 1/2
● Configure DNSSEC root key (if not already done by distribution
package)
● Get key:
● Add key to Unbound config:
$ unbound-anchor -a /usr/local/etc/unbound/root.key
auto-trust-anchor-file: /usr/local/etc/unbound/root.key
https://www.nlnetlabs.nl/
Unbound: minimal installation - 2/2
● Set access control list:
access-control:127.0.0.0/8 allow
access-contol: ::1 allow
https://www.nlnetlabs.nl/
/ Stubby
● We will use the Stubby DNS privacy stub resolver in our examples
● getdns proxy daemon
● Installation:
● brew install stubby
● Install using windows installer
● Compile from source for Linux
https://www.nlnetlabs.nl/
Stubby as minimal proxy
● Listen on local address and send queries to upstream resolver
● Configure OS to send all queries to stubby
● Set DNS server to stubby listen address in Network settings
● /etc/resolv.conf
listen_addresses:
- 127.0.0.1
- 0::1
upstream_recursive_servers:
- address_data: 178.62.200.226
https://www.nlnetlabs.nl/
Privacy and the IETF
● July 2013: RFC6973 - Privacy Considerations for Internet Protocols
● May 2014: RFC7258 - Pervasive Monitoring Is an Attack
● Pervasive monitoring is a technical attack that should be mitigated in the design
of IETF protocols, where possible.
https://www.nlnetlabs.nl/
Privacy Threat Mitigation
● Privacy Considerations for Internet Protocols, RFC6973
● 6.1 Data Minimization
● “Reducing the amount of data exchanged reduces the amount of data that
can be misused or leaked.”
● 6.3 Security
● “Confidentiality: Keeping data secret from unintended listeners.”
https://www.nlnetlabs.nl/
Privacy Threat Mitigation
● Data minimisation
● →  Limit the number of DNS queries
● Minimise the data disclosed in DNS transactions
● Security
● Hide transaction by using encryption
● Limit data disclosure to authenticated parties
https://www.nlnetlabs.nl/
Limit the number of DNS queries
● At stub: not much that can be done
● At recursive resolver: multiple (non-exclusive) options
● Local root
● Aggressive NSEC
https://www.nlnetlabs.nl/
RFC7706 – root zone in resolver
● Get complete root zone locally
● No need to expose privacy sensitive data to the root anymore
https://www.nlnetlabs.nl/
Unbound: root zone in resolver
● Auth-zone functionality in Unbound since version 1.7.0
● AXFR/IXFR and HTTP zone transfer
● NOTIFY support
● Reading from and writing to file
https://www.nlnetlabs.nl/
Unbound: root zone in resolver
auth-zone:
name: "."
master: 199.9.14.201 # b.root-servers.net
master: 192.33.4.12 # c.root-servers.net
master: 199.7.91.13 # d.root-servers.net
master: 192.5.5.241 # f.root-servers.net
master: 192.112.36.4 # g.root-servers.net
master: 193.0.14.129 # k.root-servers.net
master: 192.0.47.132 # xfr.cjr.dns.icann.org
master: 192.0.32.132 # xfr.lax.dns.icann.org
master: 2001:500:200::b # b.root-servers.net
master: 2001:500:2::c # c.root-servers.net
master: 2001:500:2d::d # d.root-servers.net
master: 2001:500:2f::f # f.root-servers.net
master: 2001:500:12::d0d # g.root-servers.net
master: 2001:7fd::1 # k.root-servers.net
master: 2620:0:2830:202::132 # xfr.cjr.dns.icann.org
master: 2620:0:2d0:202::132 # xfr.lax.dns.icann.org
fallback-enabled: yes
for-downstream: no
for-upstream: yes
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
Unbound: local TLD
● Not limited to the root zone
auth-zone:
name: "se"
fallback-enabled: yes
for-downstream: no
master: zonedata.iis.se
zonefile: “se.zone”
https://www.nlnetlabs.nl/
RFC8198 - Aggressive NSEC
● Use cached NSEC and NSEC3 records to synthesise answers
● Negative answers (NODATA and NXDOMAIN)
● Wildcard answers
● Does not work for NSEC3 opt-out
https://www.nlnetlabs.nl/
NSEC
apricot-demo.nlnetlabs.nl. SOA [..]
NS albatross
albatross.apricot-demo.nlnetlabs.nl. A 185.49.140.60
zebra.apricot-demo.nlnetlabs.nl. A 185.49.140.70
apricot-demo.nlnetlabs.nl. NSEC albatross.apricot-demo.nlnetlabs.nl. [..]
albatross.apricot-demo.nlnetlabs.nl. NSEC zebra.apricot-demo.nlnetlabs.nl. [..]
zebra.apricot-demo.nlnetlabs.nl. NSEC apricot-demo.nlnetlabs.nl. [..]
Unsigned zone:
NSEC records generated after zone signing:
https://www.nlnetlabs.nl/
NSEC proof of non existence
$ dig tiger.apricot-demo.nlnetlabs.nl +dnssec
; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> tiger.apricot-demo.nlnetlabs.nl +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58617
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;tiger.apricot-demo.nlnetlabs.nl. IN A
;; AUTHORITY SECTION:
albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
albatross.apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..]
apricot-demo.nlnetlabs.nl. 3600 IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..]
apricot-demo.nlnetlabs.nl. 3600 IN SOAns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1550139530 14400 3600 604800 3600
apricot-demo.nlnetlabs.nl. 3600 IN RRSIG SOA [..]
https://www.nlnetlabs.nl/
NSEC proof of non existence
$ dig elephant.apricot-demo.nlnetlabs.nl +dnssec
; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> elephant.apricot-demo.nlnetlabs.nl +dnssec
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13618
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;elephant.apricot-demo.nlnetlabs.nl. IN A
;; AUTHORITY SECTION:
albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
albatross.apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..]
apricot-demo.nlnetlabs.nl. 3600 IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..]
apricot-demo.nlnetlabs.nl. 3600 IN SOAns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1550139530 14400 3600 604800 3600
apricot-demo.nlnetlabs.nl. 3600 IN RRSIG SOA [..]
https://www.nlnetlabs.nl/
Using cached NSEC records
● NSEC records in cache after tiger.apricot-demo.nlnetlabs.nl query:
● These records can be used to return an NXDOMAIN answer for
elephant.apricot-demo.nlnetlabs.nl Aggressive use of NSEC→ 
● Less upstream queries
albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
apricot-demo.nlnetlabs.nl. 3600IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
https://www.nlnetlabs.nl/
Unbound: Aggressive NSEC
● Disabled by default (for now)
● Limited to NSEC (for now)
aggressive-nsec: yes
https://www.nlnetlabs.nl/
Aggressive NSEC – NODATA
● Cached NSEC records can also be used to synthesise NODATA answers
● MX query for albatross.apricot-demo.nlnetlabs.nl can be answered
without upstream query
albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
https://www.nlnetlabs.nl/
Aggressive NSEC – Wildcard records
● Cached wildcard + NSEC records can also be used to synthesise
wildcard answers
● TXT query for camel.apricot-demo.nlnetlabs.nl can be answered
without upstream query
● camel.apricot-demo.nlnetlabs.nl provably non existent
● TXT record in cache →  camel.apricot-demo.nlnetlabs.nl TXT “wildcard record”
albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
*.apricot-demo.nlnetlabs.nl. 3600 IN TXT “wildcard record”
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
Privacy Threat Mitigation
● Data minimisation
● Limit the number of DNS queries
● →  Minimise the data disclosed in DNS transactions
● Security
● Hide transaction by using encryption
● Limit data disclosure to authenticated parties
https://www.nlnetlabs.nl/
DNS data disclosure with ECS
stub
185.49.140.10
.
nl.
nlnetlabs.nl.
resolver
178.62.200.226
MX nlnetlabs.nl
178.62.200.226
MX nlnetlabs.nl
178.62.200.226MX nlnetlabs.nl
185.49.140.10
MX nlnetlabs.nl
178.62.200.226
ECS 185.49.140.0/24
https://www.nlnetlabs.nl/
ECS - 0 source prefix length
● RFC7871, section 7.1.2:
● “A SOURCE PREFIX-LENGTH value of 0 means that the Recursive Resolver MUST
NOT add the client's address information to its queries.”
● Not honored by OpenDNS :(
https://www.nlnetlabs.nl/
EDNS Client Subnet
● From stub
● Set EDNS Client Subnet prefix to /0
● From resolver
● Do not use EDNS Client Subnet
● (set ECS prefix to /0 when forwarding)
https://www.nlnetlabs.nl/
DNS data disclosure with ECS
(/0 source prefix)
stub
185.49.140.10
.
nl.
nlnetlabs.nl.
resolver
178.62.200.226
MX nlnetlabs.nl
178.62.200.226
MX nlnetlabs.nl
178.62.200.226
MX nlnetlabs.nl
185.49.140.10
ECS 0.0.0.0/0
MX nlnetlabs.nl
178.62.200.226
ECS /0
https://www.nlnetlabs.nl/
Unbound: EDNS Client Subnet
● Default off, no need to change for privacy aware resolver
● Forwarding /0 not implemented yet
https://www.nlnetlabs.nl/
Stubby: ECS /0
● Always send ECS 0 source prefix option:
edns_client_subnet_private : 1
https://www.nlnetlabs.nl/
dig zebra.apricot-demo.nlnetlabs.nl
@8.8.8.8
https://www.nlnetlabs.nl/
dig zebra.apricot-demo.nlnetlabs.nl
@8.8.8.8 +subnet=0.0.0.0/0
https://www.nlnetlabs.nl/
QNAME minimisation
● DNS Query Name Minimisation to Improve Privacy, RFC7816:
● “The request is done with:
● the QTYPE NS,
● the QNAME which is the original QNAME, stripped to just one label more
than the zone for which the server is authoritative.”
https://www.nlnetlabs.nl/
Without QNAME minimisation
stub
.
nl.
nlnetlabs.nl.
resolver
AAAA hello.nlnetlabs.nl
AAAA hello.nlnetlabs.nl
AAAA hello.nlnetlabs.nl
hello.nlnetlabs.nl.
AAAA hello.nlnetlabs.nl
AAAA hello.nlnetlabs.nl
https://www.nlnetlabs.nl/
With QNAME minimisation
stub
.
nl.
nlnetlabs.nl.
resolver
NS nl
NS nlnetlabs.nl
AAAA hello.nlnetlabs.nl
hello.nlnetlabs.nl.
AAAA hello.nlnetlabs.nl
NS hello.nlnetlabs.nl
https://www.nlnetlabs.nl/
QNAME minimisation issues
● Lot of queries for some domains, e.g.
0.1.0.0.0.0.0.0.0.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.9.b.4.0.a.2.ip6.arpa.
● Queries for NS QTYPE not always (correctly) answered
● Unclear when to stop resolving
● RFC8020- NXDOMAIN: There Really Is Nothing Underneath
https://www.nlnetlabs.nl/
Empty-non-terminals
● Existing name without records
● Example zone with records for nlnetlabs.nl, www.nlnetlabs.nl and
a.b.nlnetlabs.nl
● b.nlnetlabs.nl is an empty-non-terminal
● Existing name without records
● Example zone with records for nlnetlabs.nl, www.nlnetlabs.nl and
a.b.nlnetlabs.nl
● b.nlnetlabs.nl is an empty-non-terminal
nlnetlabs.nl
www.nlnetlabs.nl b.nlnetlabs.nl
a.b.nlnetlabs.nl
https://www.nlnetlabs.nl/
QNAME minimisation in Unbound
● Do QNAME minimisation with QTYPE=A
● Limit number of queries
● Limit QNAME minimisation iterations to 10
● Always append one label for the first 4 queries
● Continue without minimisation when RCODE != NOERROR
● Exception for DNSSEC signed domains
● Not in strict mode
https://www.nlnetlabs.nl/
QNAME minimisation in Unbound
● Enable QNAME minimisation (default):
● QNAME minimisation in strict mode (not recommended):
qname-minimisation: yes
qname-minimisation-strict: yes
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
Privacy Threat Mitigation
● Data minimisation
● Limit the number of DNS queries
● Minimise the data disclosed in DNS transactions
● Security
● →  Hide transaction by using encryption
● →  Limit data disclosure to authenticated parties
https://www.nlnetlabs.nl/
DPRIVE
● DNS Privacy Considerations (RFC7626)
● Initial focus on stub –> resolver
● DNS-over-TLS
● Needs TCP
● Own port (853)
https://www.nlnetlabs.nl/
DNS over TCP
● Most DNS traffic currently UDP
● Changes are needed in DNS software to better handle the increased TCP
load
● RFC7766
● Query pipelining / out of order processing
● Connection reuse
● TCP fast open
https://www.nlnetlabs.nl/
Connection reuse
● Limit the TCP
connection setup
latency
SYN
SYN + ACK
ACK + DNS Query
DNS response
DNS query
DNS response
TCP handshake
https://www.nlnetlabs.nl/
Query pipelining
● Do not wait for a reply
before sending the
next query
SYN
SYN + ACK
ACK + DNS QUERY
DNS response
DNS query
DNS response
TCP handshake
DNS query
DNS response
https://www.nlnetlabs.nl/
In order processing
Q1
R2
Q2
STUB RESOLVER AUTH
Q1
Q2
Q3
Q3
R3
R1R1
R2
R3
https://www.nlnetlabs.nl/
Out of order processing
Q1
R2
Q2
STUB RESOLVER AUTH
Q1
Q2Q3
Q3
R3
R1R1
R2
R3
https://www.nlnetlabs.nl/
Stubby: Connection reuse
● Connection reuse and query pipelining by default
● Keep idle TCP connections open:
idle_timeout: 10000
https://www.nlnetlabs.nl/
Unbound: Query pipelining / OOOP
● Downstream persistent connections in Unbound for many years
● Downstream out of order processing since Unbound 1.9.0
● No configuration change needed
● Upstream connection reuse not yet in Unbound
https://www.nlnetlabs.nl/
Unbound – handling persistent client
connections
● Number of incoming tcp connections:
● TCP idle timeout (in msec):
Incoming-num-tcp: ??
tcp-idle-timeout: 30000
incoming-num-tcp: 128
https://www.nlnetlabs.nl/
TCP fast open
● Save one RTT by putting
application data in SYN
and SYN-ACK packets
● Server-side generated
security cookie to
authenticate client
SYN
SYN + ACK + Cookie
ACK + DNS QUERY
DNS response
SYN + Cookie + DNS Query
SYN + ACK + DNS response
1st TCP handshake
(no cookie at client)
2nd TCP handshake
(cookie at client)
https://www.nlnetlabs.nl/
TCP fast open on OS
● Linux: net.ipv4.tcp_fastopen=N*
● OSX: net.inet.tcp.fastopen=N*
● FreeBSD: net.inet.tcp.fastopen.server_enabled=1
● * 1 = client, 2 = server, 3 = client+server
https://www.nlnetlabs.nl/
Unbound/getdns: TCP fast open
● Unbound
● --enable-tfo-client
● --enable-tfo-server
● getdns
● Enabled by default if available
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
TLS recap
● Provides secure application layer communication channel
● Encryption of data
● Authentication of server
● Identification using digital certificate
● Containing public key which is used to generate session key
● Dedicated port or connection upgrade using STARTTLS
https://www.nlnetlabs.nl/
DNS-over-TLS
● Uses dedicated port: 853
● Strict privacy vs opportunistic privacy (RFC8310)
● Mitigate against passive or active attacks
● Authentication
● Authentication domain name or SPKI pin set needed at client
● Trusted CA bundle or TLSA record may be needed at client
● Chicken/egg problem for TLSA: solution DNSSEC chain extension
https://www.nlnetlabs.nl/
Setup DNS-over-TLS server
● Generate key and certificate
● Self signed
● CA (letsencrypt) signed
openssl req -newkey rsa:2048 -nodes -keyout privkey.pem -x509 -days 365 -out certificate.pem
./certbot-auto certonly --standalone -d albatross.apricot-demo.nlnetlabs.nl
https://www.nlnetlabs.nl/
Unbound: DNS-over-TLS server
● TLS for client
server:
interface: 0.0.0.0@853
interface: ::0@853
tls-service-key: "/etc/letsencrypt/live/albatross.apricot-demo.nlnetlabs.nl/privkey.pem"
tls-service-pem: "/etc/letsencrypt/live/albatross.apricot-demo.nlnetlabs.nl/fullchain.pem"
do-udp: no
udp-upstream-without-downstream: yes
https://www.nlnetlabs.nl/
getdns_query
● Test our DoT resolver using getdns_query:
getdns_query -L -m @178.62.200.226~albatross.apricot-demo.nlnetlabs.nl 2019.apricot.net
https://www.nlnetlabs.nl/
https://www.nlnetlabs.nl/
Stubby DNS-over-TLS
● Opportunistic privacy by default
● Configure strict privacy with CA authentication:
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_ca_path: "/etc/ssl/certs/"
upstream_recursive_servers:
- address_data: 178.62.200.226
tls_auth_name: "albatross.apricot-demo.nlnetlabs.nl"
https://www.nlnetlabs.nl/
Get SPKI pin set
● Get SPKI pinset (Base64 encoded sha256 hash of public key
fingerprint):
openssl s_client -connect 178.62.200.226:853 -servername albatross.apricot-demo.nlnetlabs.nl 1>&/dev/null |
openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary |
openssl enc -base64
https://www.nlnetlabs.nl/
Stubby – SPKI pin set authentication
● No ca_path required for SPKI pin set authentication
● Configure strict SPKI authentication in stubby:
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
upstream_recursive_servers:
- address_data: 178.62.200.226
tls_auth_name: "albatross.apricot-demo.nlnetlabs.nl"
tls_pubkey_pinset:
- digest: "sha256"
value: aZgr7RhoLDAvug16/FeebD02E2s5+Y5LJKG1jcBVNCA=
https://www.nlnetlabs.nl/
Unbound: DNS-over-TLS client
● Forward all data to DoT resolver using Unbound
server:
tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"
forward-zone:
name: "."
forward-tls-upstream: yes
forward-addr: 178.62.200.226@853#albatross.apricot-demo.nlnetlabs.nl
https://www.nlnetlabs.nl/
Android Pie
● Opportunistic DoT by default
● Probing queries to port 853 to
detect DoT support
● Strict privacy possible after
providing authentication domain
name
● Device’s CA store used to
authenticate the certificate
Image from: android-developers.googleblog.com
https://www.nlnetlabs.nl/
DNS-over-TLS server monitoring
● Monitor for certificate expiration!
● It’s just TLS, existing TLS monitoring tools should work
● View certificate (including expiration date):
openssl s_client -connect 178.62.200.226:853 -servername albatross.apricot-demo.nlnetlabs.nl |
openssl x509 -noout -text
https://www.nlnetlabs.nl/
Cert renewal
● You might want to reuse the private key (when using public key for
authentication), in that case:
● Generate certificate signing request using existing key
● Get self signed certificate using CSR
● , or get Let’s encrypt certificate using CSR
openssl req -key privkey.pem -new -out request.csr
openssl x509 -req -days 365 -in request.csr -signkey privkey.pem -out certificate.pem
./certbot-auto certonly --standalone -d albatross.apricot-demo.nlnetlabs.nl --csr request.csr
https://www.nlnetlabs.nl/
DNS-over-HTTPS
● DNS payload wrapped in HTTP transactions
● HTTP 2 with TLS
● Port 443, hides DNS transactions
https://www.nlnetlabs.nl/
DoT vs DoH
● DNS-over-HTTP
● Easier for browser apps
● Hides DNS traffic in regular HTTP traffic
● Mature transport ecosystem
● DNS-over-TLS
● DNS as we know it
https://www.nlnetlabs.nl/
Trusted Recursive Resolver
● List of DoH resolvers in browser
● Used instead of configured system resolver
● Bypass local policies
● Guaranteed to work, no middleboxes hampering lookups
● Privacy impact depends on used resolver
https://www.nlnetlabs.nl/
Privacy at the resolver
● Be aware of information logged on your machines
● Limit privacy sensitive data in your logs
● Do you really need to store the client addresses?
● Limit data to personnel who need it for operational purposes
● Store data for shortest operationally feasible period
● Consider encrypting and/or anonymising the data
https://www.nlnetlabs.nl/
Encryption resolver auth→ resolver
● DPRIVE rechartered in May 2018
● Security between resolver and authoritative is next
● Need to authenticate many servers, manual configuration is not going to
work here
● Magic NS names to detect SPKI fingerprint (DNSCurve style)
● TLSA at _853._tcp.ns.example.net
● ..?
https://www.nlnetlabs.nl/
“best” set-up
● Multiple scenarios possible
● Local resolver
● Public resolver
● Local with forwarding to public
● Randomise forwards selection, or not?
https://www.nlnetlabs.nl/
Questions?
Ralph Dolmans Martin Hoffmann
ralph@nlnetlabs.nl martin@nlnetlabs.nl

Contenu connexe

Tendances

Security Ninjas: An Open Source Application Security Training Program
Security Ninjas: An Open Source Application Security Training ProgramSecurity Ninjas: An Open Source Application Security Training Program
Security Ninjas: An Open Source Application Security Training Program
OpenDNS
 

Tendances (20)

An Overview of DNSSEC
An Overview of DNSSECAn Overview of DNSSEC
An Overview of DNSSEC
 
#NSD15 - Attaques DDoS Internet et comment les arrêter
#NSD15 - Attaques DDoS Internet et comment les arrêter#NSD15 - Attaques DDoS Internet et comment les arrêter
#NSD15 - Attaques DDoS Internet et comment les arrêter
 
Security Ninjas: An Open Source Application Security Training Program
Security Ninjas: An Open Source Application Security Training ProgramSecurity Ninjas: An Open Source Application Security Training Program
Security Ninjas: An Open Source Application Security Training Program
 
Volker Fröhlich - How to Debug Common Agent Issues
Volker Fröhlich - How to Debug Common Agent IssuesVolker Fröhlich - How to Debug Common Agent Issues
Volker Fröhlich - How to Debug Common Agent Issues
 
Signing DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutionsSigning DNSSEC answers on the fly at the edge: challenges and solutions
Signing DNSSEC answers on the fly at the edge: challenges and solutions
 
DNS over HTTPS
DNS over HTTPSDNS over HTTPS
DNS over HTTPS
 
DNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security ExtensionsDNSSEC - Domain Name System Security Extensions
DNSSEC - Domain Name System Security Extensions
 
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacks
 
ModSecurity and NGINX: Tuning the OWASP Core Rule Set
ModSecurity and NGINX: Tuning the OWASP Core Rule SetModSecurity and NGINX: Tuning the OWASP Core Rule Set
ModSecurity and NGINX: Tuning the OWASP Core Rule Set
 
Hta r33
Hta r33Hta r33
Hta r33
 
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
BlueHat v17 || TLS 1.3 - Full speed ahead... mind the warnings - the great, t...
 
Sullivan white boxcrypto-baythreat-2013
Sullivan white boxcrypto-baythreat-2013Sullivan white boxcrypto-baythreat-2013
Sullivan white boxcrypto-baythreat-2013
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
 
Blackholing from a_providers_perspektive_theo_voss
Blackholing from a_providers_perspektive_theo_vossBlackholing from a_providers_perspektive_theo_voss
Blackholing from a_providers_perspektive_theo_voss
 
"A rootkits writer’s guide to defense" - Michal Purzynski
"A rootkits writer’s guide to defense" - Michal Purzynski"A rootkits writer’s guide to defense" - Michal Purzynski
"A rootkits writer’s guide to defense" - Michal Purzynski
 
Nanog66 vicente de luca fast netmon
Nanog66 vicente de luca fast netmonNanog66 vicente de luca fast netmon
Nanog66 vicente de luca fast netmon
 
Scapy TLS: A scriptable TLS 1.3 stack
Scapy TLS: A scriptable TLS 1.3 stackScapy TLS: A scriptable TLS 1.3 stack
Scapy TLS: A scriptable TLS 1.3 stack
 
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
 
ION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSECION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSEC
 
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
 

Similaire à DNS privacy in theory and practice

Tim eberhard bajug3_talk
Tim eberhard bajug3_talkTim eberhard bajug3_talk
Tim eberhard bajug3_talk
Tim Eberhard
 

Similaire à DNS privacy in theory and practice (20)

BSides Rochester 2018: Chris Partridge: Turning Domain Data Into Domain Intel...
BSides Rochester 2018: Chris Partridge: Turning Domain Data Into Domain Intel...BSides Rochester 2018: Chris Partridge: Turning Domain Data Into Domain Intel...
BSides Rochester 2018: Chris Partridge: Turning Domain Data Into Domain Intel...
 
DNS Over HTTPS by Michael Casadevall
DNS Over HTTPS by Michael CasadevallDNS Over HTTPS by Michael Casadevall
DNS Over HTTPS by Michael Casadevall
 
Get your instance by name integration of nova, neutron and designate
Get your instance by name  integration of nova, neutron and designateGet your instance by name  integration of nova, neutron and designate
Get your instance by name integration of nova, neutron and designate
 
Encrypted DNS research @ nic.at
Encrypted DNS research @ nic.atEncrypted DNS research @ nic.at
Encrypted DNS research @ nic.at
 
Tim eberhard bajug3_talk
Tim eberhard bajug3_talkTim eberhard bajug3_talk
Tim eberhard bajug3_talk
 
ION Islamabad - Deploying DNSSEC
ION Islamabad - Deploying DNSSECION Islamabad - Deploying DNSSEC
ION Islamabad - Deploying DNSSEC
 
ION Hangzhou - Why Deploy DNSSEC?
ION Hangzhou - Why Deploy DNSSEC?ION Hangzhou - Why Deploy DNSSEC?
ION Hangzhou - Why Deploy DNSSEC?
 
8 technical-dns-workshop-day4
8 technical-dns-workshop-day48 technical-dns-workshop-day4
8 technical-dns-workshop-day4
 
Understanding and Deploying DNSSEC, by Champika Wijayatunga [APRICOT 2015]
Understanding and Deploying DNSSEC, by Champika Wijayatunga [APRICOT 2015]Understanding and Deploying DNSSEC, by Champika Wijayatunga [APRICOT 2015]
Understanding and Deploying DNSSEC, by Champika Wijayatunga [APRICOT 2015]
 
Red Team Methodology - A Naked Look
Red Team Methodology - A Naked LookRed Team Methodology - A Naked Look
Red Team Methodology - A Naked Look
 
Tools kali
Tools kaliTools kali
Tools kali
 
Quad9 and DNS Privacy
Quad9 and DNS PrivacyQuad9 and DNS Privacy
Quad9 and DNS Privacy
 
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
DNSSEC Tutorial, by Champika Wijayatunga [APNIC 38]
 
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and PrivacyClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
ClickHouse Defense Against the Dark Arts - Intro to Security and Privacy
 
"Giving the bad guys no sleep"
"Giving the bad guys no sleep""Giving the bad guys no sleep"
"Giving the bad guys no sleep"
 
HSB - Secure DNS en BGP ontwikkelingen - Benno Overeinder
HSB - Secure DNS en BGP ontwikkelingen - Benno OvereinderHSB - Secure DNS en BGP ontwikkelingen - Benno Overeinder
HSB - Secure DNS en BGP ontwikkelingen - Benno Overeinder
 
Namespaces for Local Networks
Namespaces for Local NetworksNamespaces for Local Networks
Namespaces for Local Networks
 
DNS resolver 1.1.1.1 from Cloudflare
DNS resolver 1.1.1.1 from CloudflareDNS resolver 1.1.1.1 from Cloudflare
DNS resolver 1.1.1.1 from Cloudflare
 
A curious case of broken DNS responses (Coloclue Presents - Nov 2019)
A curious case of broken DNS responses (Coloclue Presents - Nov 2019)A curious case of broken DNS responses (Coloclue Presents - Nov 2019)
A curious case of broken DNS responses (Coloclue Presents - Nov 2019)
 
Advertising Fraud Detection at Scale at T-Mobile
Advertising Fraud Detection at Scale at T-MobileAdvertising Fraud Detection at Scale at T-Mobile
Advertising Fraud Detection at Scale at T-Mobile
 

Plus de APNIC

Plus de APNIC (20)

APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119
 
draft-harrison-sidrops-manifest-number-01, presented at IETF 119
draft-harrison-sidrops-manifest-number-01, presented at IETF 119draft-harrison-sidrops-manifest-number-01, presented at IETF 119
draft-harrison-sidrops-manifest-number-01, presented at IETF 119
 
Making an RFC in Today's IETF, presented by Geoff Huston at IETF 119
Making an RFC in Today's IETF, presented by Geoff Huston at IETF 119Making an RFC in Today's IETF, presented by Geoff Huston at IETF 119
Making an RFC in Today's IETF, presented by Geoff Huston at IETF 119
 
IPv6 Operational Issues (with DNS), presented by Geoff Huston at IETF 119
IPv6 Operational Issues (with DNS), presented by Geoff Huston at IETF 119IPv6 Operational Issues (with DNS), presented by Geoff Huston at IETF 119
IPv6 Operational Issues (with DNS), presented by Geoff Huston at IETF 119
 
Is DNS ready for IPv6, presented by Geoff Huston at IETF 119
Is DNS ready for IPv6, presented by Geoff Huston at IETF 119Is DNS ready for IPv6, presented by Geoff Huston at IETF 119
Is DNS ready for IPv6, presented by Geoff Huston at IETF 119
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
 
APNIC Update and RIR Policies for ccTLDs, presented at APTLD 85
APNIC Update and RIR Policies for ccTLDs, presented at APTLD 85APNIC Update and RIR Policies for ccTLDs, presented at APTLD 85
APNIC Update and RIR Policies for ccTLDs, presented at APTLD 85
 
NANOG 90: 'BGP in 2023' presented by Geoff Huston
NANOG 90: 'BGP in 2023' presented by Geoff HustonNANOG 90: 'BGP in 2023' presented by Geoff Huston
NANOG 90: 'BGP in 2023' presented by Geoff Huston
 
DNS-OARC 42: Is the DNS ready for IPv6? presentation by Geoff Huston
DNS-OARC 42: Is the DNS ready for IPv6? presentation by Geoff HustonDNS-OARC 42: Is the DNS ready for IPv6? presentation by Geoff Huston
DNS-OARC 42: Is the DNS ready for IPv6? presentation by Geoff Huston
 
APAN 57: APNIC Report at APAN 57, Bangkok, Thailand
APAN 57: APNIC Report at APAN 57, Bangkok, ThailandAPAN 57: APNIC Report at APAN 57, Bangkok, Thailand
APAN 57: APNIC Report at APAN 57, Bangkok, Thailand
 
Lao Digital Week 2024: It's time to deploy IPv6
Lao Digital Week 2024: It's time to deploy IPv6Lao Digital Week 2024: It's time to deploy IPv6
Lao Digital Week 2024: It's time to deploy IPv6
 
AINTEC 2023: Networking in the Penumbra!
AINTEC 2023: Networking in the Penumbra!AINTEC 2023: Networking in the Penumbra!
AINTEC 2023: Networking in the Penumbra!
 
CNIRC 2023: Global and Regional IPv6 Deployment 2023
CNIRC 2023: Global and Regional IPv6 Deployment 2023CNIRC 2023: Global and Regional IPv6 Deployment 2023
CNIRC 2023: Global and Regional IPv6 Deployment 2023
 
AFSIG 2023: APNIC Foundation and support for Internet development
AFSIG 2023: APNIC Foundation and support for Internet developmentAFSIG 2023: APNIC Foundation and support for Internet development
AFSIG 2023: APNIC Foundation and support for Internet development
 

Dernier

( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
 
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
nirzagarg
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 

Dernier (20)

𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
Pirangut | Call Girls Pune Phone No 8005736733 Elite Escort Service Available...
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
Thalassery Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call G...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
 
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 

DNS privacy in theory and practice

  • 1. https://www.nlnetlabs.nl/ DNS privacy in theory and practice Ralph Dolmans Martin Hoffmann ralph@nlnetlabs.nl martin@nlnetlabs.nl APRICOT 2019
  • 2. https://www.nlnetlabs.nl/ Goal of this talk ● Become familiar with the privacy implication in DNS ● Understand how recent developments can reduce these privacy implications ● Learn how to configure DNS software to make use of these recent developments
  • 3. https://www.nlnetlabs.nl/ Privacy in DNS ● DNS data is public ● Until recently no privacy considerations in the DNS protocol ● 30+ year old protocol ● Transactions should not be public ● Almost every Internet activity starts with a DNS query
  • 4. https://www.nlnetlabs.nl/ DNS data disclosure stub 185.49.140.10 . nl. nlnetlabs.nl. resolver 178.62.200.226 MX nlnetlabs.nl 178.62.200.226 MX nlnetlabs.nl 178.62.200.226 MX nlnetlabs.nl 185.49.140.10 MX nlnetlabs.nl 178.62.200.226 stub 185.49.140.20 MX nlnetlabs.nl 185.49.140.20 MX nlnetlabs.nl 185.49.140.225 stub 185.49.140.225
  • 7. https://www.nlnetlabs.nl/ ● We will use the Unbound resolver in our examples ● https://nlnetlabs.nl/unbound/ ● Can be installed from distribution package: ● apt install unbound ● brew install unbound ● Windows installer available
  • 8. https://www.nlnetlabs.nl/ Unbound: minimal installation - 1/2 ● Configure DNSSEC root key (if not already done by distribution package) ● Get key: ● Add key to Unbound config: $ unbound-anchor -a /usr/local/etc/unbound/root.key auto-trust-anchor-file: /usr/local/etc/unbound/root.key
  • 9. https://www.nlnetlabs.nl/ Unbound: minimal installation - 2/2 ● Set access control list: access-control:127.0.0.0/8 allow access-contol: ::1 allow
  • 10. https://www.nlnetlabs.nl/ / Stubby ● We will use the Stubby DNS privacy stub resolver in our examples ● getdns proxy daemon ● Installation: ● brew install stubby ● Install using windows installer ● Compile from source for Linux
  • 11. https://www.nlnetlabs.nl/ Stubby as minimal proxy ● Listen on local address and send queries to upstream resolver ● Configure OS to send all queries to stubby ● Set DNS server to stubby listen address in Network settings ● /etc/resolv.conf listen_addresses: - 127.0.0.1 - 0::1 upstream_recursive_servers: - address_data: 178.62.200.226
  • 12. https://www.nlnetlabs.nl/ Privacy and the IETF ● July 2013: RFC6973 - Privacy Considerations for Internet Protocols ● May 2014: RFC7258 - Pervasive Monitoring Is an Attack ● Pervasive monitoring is a technical attack that should be mitigated in the design of IETF protocols, where possible.
  • 13. https://www.nlnetlabs.nl/ Privacy Threat Mitigation ● Privacy Considerations for Internet Protocols, RFC6973 ● 6.1 Data Minimization ● “Reducing the amount of data exchanged reduces the amount of data that can be misused or leaked.” ● 6.3 Security ● “Confidentiality: Keeping data secret from unintended listeners.”
  • 14. https://www.nlnetlabs.nl/ Privacy Threat Mitigation ● Data minimisation ● → Limit the number of DNS queries ● Minimise the data disclosed in DNS transactions ● Security ● Hide transaction by using encryption ● Limit data disclosure to authenticated parties
  • 15. https://www.nlnetlabs.nl/ Limit the number of DNS queries ● At stub: not much that can be done ● At recursive resolver: multiple (non-exclusive) options ● Local root ● Aggressive NSEC
  • 16. https://www.nlnetlabs.nl/ RFC7706 – root zone in resolver ● Get complete root zone locally ● No need to expose privacy sensitive data to the root anymore
  • 17. https://www.nlnetlabs.nl/ Unbound: root zone in resolver ● Auth-zone functionality in Unbound since version 1.7.0 ● AXFR/IXFR and HTTP zone transfer ● NOTIFY support ● Reading from and writing to file
  • 18. https://www.nlnetlabs.nl/ Unbound: root zone in resolver auth-zone: name: "." master: 199.9.14.201 # b.root-servers.net master: 192.33.4.12 # c.root-servers.net master: 199.7.91.13 # d.root-servers.net master: 192.5.5.241 # f.root-servers.net master: 192.112.36.4 # g.root-servers.net master: 193.0.14.129 # k.root-servers.net master: 192.0.47.132 # xfr.cjr.dns.icann.org master: 192.0.32.132 # xfr.lax.dns.icann.org master: 2001:500:200::b # b.root-servers.net master: 2001:500:2::c # c.root-servers.net master: 2001:500:2d::d # d.root-servers.net master: 2001:500:2f::f # f.root-servers.net master: 2001:500:12::d0d # g.root-servers.net master: 2001:7fd::1 # k.root-servers.net master: 2620:0:2830:202::132 # xfr.cjr.dns.icann.org master: 2620:0:2d0:202::132 # xfr.lax.dns.icann.org fallback-enabled: yes for-downstream: no for-upstream: yes
  • 21. https://www.nlnetlabs.nl/ Unbound: local TLD ● Not limited to the root zone auth-zone: name: "se" fallback-enabled: yes for-downstream: no master: zonedata.iis.se zonefile: “se.zone”
  • 22. https://www.nlnetlabs.nl/ RFC8198 - Aggressive NSEC ● Use cached NSEC and NSEC3 records to synthesise answers ● Negative answers (NODATA and NXDOMAIN) ● Wildcard answers ● Does not work for NSEC3 opt-out
  • 23. https://www.nlnetlabs.nl/ NSEC apricot-demo.nlnetlabs.nl. SOA [..] NS albatross albatross.apricot-demo.nlnetlabs.nl. A 185.49.140.60 zebra.apricot-demo.nlnetlabs.nl. A 185.49.140.70 apricot-demo.nlnetlabs.nl. NSEC albatross.apricot-demo.nlnetlabs.nl. [..] albatross.apricot-demo.nlnetlabs.nl. NSEC zebra.apricot-demo.nlnetlabs.nl. [..] zebra.apricot-demo.nlnetlabs.nl. NSEC apricot-demo.nlnetlabs.nl. [..] Unsigned zone: NSEC records generated after zone signing:
  • 24. https://www.nlnetlabs.nl/ NSEC proof of non existence $ dig tiger.apricot-demo.nlnetlabs.nl +dnssec ; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> tiger.apricot-demo.nlnetlabs.nl +dnssec ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58617 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;tiger.apricot-demo.nlnetlabs.nl. IN A ;; AUTHORITY SECTION: albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC albatross.apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..] apricot-demo.nlnetlabs.nl. 3600 IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..] apricot-demo.nlnetlabs.nl. 3600 IN SOAns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1550139530 14400 3600 604800 3600 apricot-demo.nlnetlabs.nl. 3600 IN RRSIG SOA [..]
  • 25. https://www.nlnetlabs.nl/ NSEC proof of non existence $ dig elephant.apricot-demo.nlnetlabs.nl +dnssec ; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> elephant.apricot-demo.nlnetlabs.nl +dnssec ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13618 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;elephant.apricot-demo.nlnetlabs.nl. IN A ;; AUTHORITY SECTION: albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC albatross.apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..] apricot-demo.nlnetlabs.nl. 3600 IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY apricot-demo.nlnetlabs.nl. 3600 IN RRSIG NSEC [..] apricot-demo.nlnetlabs.nl. 3600 IN SOAns.nlnetlabs.nl. ralph.nlnetlabs.nl. 1550139530 14400 3600 604800 3600 apricot-demo.nlnetlabs.nl. 3600 IN RRSIG SOA [..]
  • 26. https://www.nlnetlabs.nl/ Using cached NSEC records ● NSEC records in cache after tiger.apricot-demo.nlnetlabs.nl query: ● These records can be used to return an NXDOMAIN answer for elephant.apricot-demo.nlnetlabs.nl Aggressive use of NSEC→ ● Less upstream queries albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC apricot-demo.nlnetlabs.nl. 3600IN NSEC albatross.apricot-demo.nlnetlabs.nl. NS SOA RRSIG NSEC DNSKEY
  • 27. https://www.nlnetlabs.nl/ Unbound: Aggressive NSEC ● Disabled by default (for now) ● Limited to NSEC (for now) aggressive-nsec: yes
  • 28. https://www.nlnetlabs.nl/ Aggressive NSEC – NODATA ● Cached NSEC records can also be used to synthesise NODATA answers ● MX query for albatross.apricot-demo.nlnetlabs.nl can be answered without upstream query albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC
  • 29. https://www.nlnetlabs.nl/ Aggressive NSEC – Wildcard records ● Cached wildcard + NSEC records can also be used to synthesise wildcard answers ● TXT query for camel.apricot-demo.nlnetlabs.nl can be answered without upstream query ● camel.apricot-demo.nlnetlabs.nl provably non existent ● TXT record in cache → camel.apricot-demo.nlnetlabs.nl TXT “wildcard record” albatross.apricot-demo.nlnetlabs.nl. 3600 IN NSEC zebra.apricot-demo.nlnetlabs.nl. A RRSIG NSEC *.apricot-demo.nlnetlabs.nl. 3600 IN TXT “wildcard record”
  • 32. https://www.nlnetlabs.nl/ Privacy Threat Mitigation ● Data minimisation ● Limit the number of DNS queries ● → Minimise the data disclosed in DNS transactions ● Security ● Hide transaction by using encryption ● Limit data disclosure to authenticated parties
  • 33. https://www.nlnetlabs.nl/ DNS data disclosure with ECS stub 185.49.140.10 . nl. nlnetlabs.nl. resolver 178.62.200.226 MX nlnetlabs.nl 178.62.200.226 MX nlnetlabs.nl 178.62.200.226MX nlnetlabs.nl 185.49.140.10 MX nlnetlabs.nl 178.62.200.226 ECS 185.49.140.0/24
  • 34. https://www.nlnetlabs.nl/ ECS - 0 source prefix length ● RFC7871, section 7.1.2: ● “A SOURCE PREFIX-LENGTH value of 0 means that the Recursive Resolver MUST NOT add the client's address information to its queries.” ● Not honored by OpenDNS :(
  • 35. https://www.nlnetlabs.nl/ EDNS Client Subnet ● From stub ● Set EDNS Client Subnet prefix to /0 ● From resolver ● Do not use EDNS Client Subnet ● (set ECS prefix to /0 when forwarding)
  • 36. https://www.nlnetlabs.nl/ DNS data disclosure with ECS (/0 source prefix) stub 185.49.140.10 . nl. nlnetlabs.nl. resolver 178.62.200.226 MX nlnetlabs.nl 178.62.200.226 MX nlnetlabs.nl 178.62.200.226 MX nlnetlabs.nl 185.49.140.10 ECS 0.0.0.0/0 MX nlnetlabs.nl 178.62.200.226 ECS /0
  • 37. https://www.nlnetlabs.nl/ Unbound: EDNS Client Subnet ● Default off, no need to change for privacy aware resolver ● Forwarding /0 not implemented yet
  • 38. https://www.nlnetlabs.nl/ Stubby: ECS /0 ● Always send ECS 0 source prefix option: edns_client_subnet_private : 1
  • 41. https://www.nlnetlabs.nl/ QNAME minimisation ● DNS Query Name Minimisation to Improve Privacy, RFC7816: ● “The request is done with: ● the QTYPE NS, ● the QNAME which is the original QNAME, stripped to just one label more than the zone for which the server is authoritative.”
  • 42. https://www.nlnetlabs.nl/ Without QNAME minimisation stub . nl. nlnetlabs.nl. resolver AAAA hello.nlnetlabs.nl AAAA hello.nlnetlabs.nl AAAA hello.nlnetlabs.nl hello.nlnetlabs.nl. AAAA hello.nlnetlabs.nl AAAA hello.nlnetlabs.nl
  • 43. https://www.nlnetlabs.nl/ With QNAME minimisation stub . nl. nlnetlabs.nl. resolver NS nl NS nlnetlabs.nl AAAA hello.nlnetlabs.nl hello.nlnetlabs.nl. AAAA hello.nlnetlabs.nl NS hello.nlnetlabs.nl
  • 44. https://www.nlnetlabs.nl/ QNAME minimisation issues ● Lot of queries for some domains, e.g. 0.1.0.0.0.0.0.0.0.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.9.b.4.0.a.2.ip6.arpa. ● Queries for NS QTYPE not always (correctly) answered ● Unclear when to stop resolving ● RFC8020- NXDOMAIN: There Really Is Nothing Underneath
  • 45. https://www.nlnetlabs.nl/ Empty-non-terminals ● Existing name without records ● Example zone with records for nlnetlabs.nl, www.nlnetlabs.nl and a.b.nlnetlabs.nl ● b.nlnetlabs.nl is an empty-non-terminal ● Existing name without records ● Example zone with records for nlnetlabs.nl, www.nlnetlabs.nl and a.b.nlnetlabs.nl ● b.nlnetlabs.nl is an empty-non-terminal nlnetlabs.nl www.nlnetlabs.nl b.nlnetlabs.nl a.b.nlnetlabs.nl
  • 46. https://www.nlnetlabs.nl/ QNAME minimisation in Unbound ● Do QNAME minimisation with QTYPE=A ● Limit number of queries ● Limit QNAME minimisation iterations to 10 ● Always append one label for the first 4 queries ● Continue without minimisation when RCODE != NOERROR ● Exception for DNSSEC signed domains ● Not in strict mode
  • 47. https://www.nlnetlabs.nl/ QNAME minimisation in Unbound ● Enable QNAME minimisation (default): ● QNAME minimisation in strict mode (not recommended): qname-minimisation: yes qname-minimisation-strict: yes
  • 50. https://www.nlnetlabs.nl/ Privacy Threat Mitigation ● Data minimisation ● Limit the number of DNS queries ● Minimise the data disclosed in DNS transactions ● Security ● → Hide transaction by using encryption ● → Limit data disclosure to authenticated parties
  • 51. https://www.nlnetlabs.nl/ DPRIVE ● DNS Privacy Considerations (RFC7626) ● Initial focus on stub –> resolver ● DNS-over-TLS ● Needs TCP ● Own port (853)
  • 52. https://www.nlnetlabs.nl/ DNS over TCP ● Most DNS traffic currently UDP ● Changes are needed in DNS software to better handle the increased TCP load ● RFC7766 ● Query pipelining / out of order processing ● Connection reuse ● TCP fast open
  • 53. https://www.nlnetlabs.nl/ Connection reuse ● Limit the TCP connection setup latency SYN SYN + ACK ACK + DNS Query DNS response DNS query DNS response TCP handshake
  • 54. https://www.nlnetlabs.nl/ Query pipelining ● Do not wait for a reply before sending the next query SYN SYN + ACK ACK + DNS QUERY DNS response DNS query DNS response TCP handshake DNS query DNS response
  • 55. https://www.nlnetlabs.nl/ In order processing Q1 R2 Q2 STUB RESOLVER AUTH Q1 Q2 Q3 Q3 R3 R1R1 R2 R3
  • 56. https://www.nlnetlabs.nl/ Out of order processing Q1 R2 Q2 STUB RESOLVER AUTH Q1 Q2Q3 Q3 R3 R1R1 R2 R3
  • 57. https://www.nlnetlabs.nl/ Stubby: Connection reuse ● Connection reuse and query pipelining by default ● Keep idle TCP connections open: idle_timeout: 10000
  • 58. https://www.nlnetlabs.nl/ Unbound: Query pipelining / OOOP ● Downstream persistent connections in Unbound for many years ● Downstream out of order processing since Unbound 1.9.0 ● No configuration change needed ● Upstream connection reuse not yet in Unbound
  • 59. https://www.nlnetlabs.nl/ Unbound – handling persistent client connections ● Number of incoming tcp connections: ● TCP idle timeout (in msec): Incoming-num-tcp: ?? tcp-idle-timeout: 30000 incoming-num-tcp: 128
  • 60. https://www.nlnetlabs.nl/ TCP fast open ● Save one RTT by putting application data in SYN and SYN-ACK packets ● Server-side generated security cookie to authenticate client SYN SYN + ACK + Cookie ACK + DNS QUERY DNS response SYN + Cookie + DNS Query SYN + ACK + DNS response 1st TCP handshake (no cookie at client) 2nd TCP handshake (cookie at client)
  • 61. https://www.nlnetlabs.nl/ TCP fast open on OS ● Linux: net.ipv4.tcp_fastopen=N* ● OSX: net.inet.tcp.fastopen=N* ● FreeBSD: net.inet.tcp.fastopen.server_enabled=1 ● * 1 = client, 2 = server, 3 = client+server
  • 62. https://www.nlnetlabs.nl/ Unbound/getdns: TCP fast open ● Unbound ● --enable-tfo-client ● --enable-tfo-server ● getdns ● Enabled by default if available
  • 64. https://www.nlnetlabs.nl/ TLS recap ● Provides secure application layer communication channel ● Encryption of data ● Authentication of server ● Identification using digital certificate ● Containing public key which is used to generate session key ● Dedicated port or connection upgrade using STARTTLS
  • 65. https://www.nlnetlabs.nl/ DNS-over-TLS ● Uses dedicated port: 853 ● Strict privacy vs opportunistic privacy (RFC8310) ● Mitigate against passive or active attacks ● Authentication ● Authentication domain name or SPKI pin set needed at client ● Trusted CA bundle or TLSA record may be needed at client ● Chicken/egg problem for TLSA: solution DNSSEC chain extension
  • 66. https://www.nlnetlabs.nl/ Setup DNS-over-TLS server ● Generate key and certificate ● Self signed ● CA (letsencrypt) signed openssl req -newkey rsa:2048 -nodes -keyout privkey.pem -x509 -days 365 -out certificate.pem ./certbot-auto certonly --standalone -d albatross.apricot-demo.nlnetlabs.nl
  • 67. https://www.nlnetlabs.nl/ Unbound: DNS-over-TLS server ● TLS for client server: interface: 0.0.0.0@853 interface: ::0@853 tls-service-key: "/etc/letsencrypt/live/albatross.apricot-demo.nlnetlabs.nl/privkey.pem" tls-service-pem: "/etc/letsencrypt/live/albatross.apricot-demo.nlnetlabs.nl/fullchain.pem" do-udp: no udp-upstream-without-downstream: yes
  • 68. https://www.nlnetlabs.nl/ getdns_query ● Test our DoT resolver using getdns_query: getdns_query -L -m @178.62.200.226~albatross.apricot-demo.nlnetlabs.nl 2019.apricot.net
  • 70. https://www.nlnetlabs.nl/ Stubby DNS-over-TLS ● Opportunistic privacy by default ● Configure strict privacy with CA authentication: dns_transport_list: - GETDNS_TRANSPORT_TLS tls_authentication: GETDNS_AUTHENTICATION_REQUIRED tls_ca_path: "/etc/ssl/certs/" upstream_recursive_servers: - address_data: 178.62.200.226 tls_auth_name: "albatross.apricot-demo.nlnetlabs.nl"
  • 71. https://www.nlnetlabs.nl/ Get SPKI pin set ● Get SPKI pinset (Base64 encoded sha256 hash of public key fingerprint): openssl s_client -connect 178.62.200.226:853 -servername albatross.apricot-demo.nlnetlabs.nl 1>&/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
  • 72. https://www.nlnetlabs.nl/ Stubby – SPKI pin set authentication ● No ca_path required for SPKI pin set authentication ● Configure strict SPKI authentication in stubby: dns_transport_list: - GETDNS_TRANSPORT_TLS tls_authentication: GETDNS_AUTHENTICATION_REQUIRED upstream_recursive_servers: - address_data: 178.62.200.226 tls_auth_name: "albatross.apricot-demo.nlnetlabs.nl" tls_pubkey_pinset: - digest: "sha256" value: aZgr7RhoLDAvug16/FeebD02E2s5+Y5LJKG1jcBVNCA=
  • 73. https://www.nlnetlabs.nl/ Unbound: DNS-over-TLS client ● Forward all data to DoT resolver using Unbound server: tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt" forward-zone: name: "." forward-tls-upstream: yes forward-addr: 178.62.200.226@853#albatross.apricot-demo.nlnetlabs.nl
  • 74. https://www.nlnetlabs.nl/ Android Pie ● Opportunistic DoT by default ● Probing queries to port 853 to detect DoT support ● Strict privacy possible after providing authentication domain name ● Device’s CA store used to authenticate the certificate Image from: android-developers.googleblog.com
  • 75. https://www.nlnetlabs.nl/ DNS-over-TLS server monitoring ● Monitor for certificate expiration! ● It’s just TLS, existing TLS monitoring tools should work ● View certificate (including expiration date): openssl s_client -connect 178.62.200.226:853 -servername albatross.apricot-demo.nlnetlabs.nl | openssl x509 -noout -text
  • 76. https://www.nlnetlabs.nl/ Cert renewal ● You might want to reuse the private key (when using public key for authentication), in that case: ● Generate certificate signing request using existing key ● Get self signed certificate using CSR ● , or get Let’s encrypt certificate using CSR openssl req -key privkey.pem -new -out request.csr openssl x509 -req -days 365 -in request.csr -signkey privkey.pem -out certificate.pem ./certbot-auto certonly --standalone -d albatross.apricot-demo.nlnetlabs.nl --csr request.csr
  • 77. https://www.nlnetlabs.nl/ DNS-over-HTTPS ● DNS payload wrapped in HTTP transactions ● HTTP 2 with TLS ● Port 443, hides DNS transactions
  • 78. https://www.nlnetlabs.nl/ DoT vs DoH ● DNS-over-HTTP ● Easier for browser apps ● Hides DNS traffic in regular HTTP traffic ● Mature transport ecosystem ● DNS-over-TLS ● DNS as we know it
  • 79. https://www.nlnetlabs.nl/ Trusted Recursive Resolver ● List of DoH resolvers in browser ● Used instead of configured system resolver ● Bypass local policies ● Guaranteed to work, no middleboxes hampering lookups ● Privacy impact depends on used resolver
  • 80. https://www.nlnetlabs.nl/ Privacy at the resolver ● Be aware of information logged on your machines ● Limit privacy sensitive data in your logs ● Do you really need to store the client addresses? ● Limit data to personnel who need it for operational purposes ● Store data for shortest operationally feasible period ● Consider encrypting and/or anonymising the data
  • 81. https://www.nlnetlabs.nl/ Encryption resolver auth→ resolver ● DPRIVE rechartered in May 2018 ● Security between resolver and authoritative is next ● Need to authenticate many servers, manual configuration is not going to work here ● Magic NS names to detect SPKI fingerprint (DNSCurve style) ● TLSA at _853._tcp.ns.example.net ● ..?
  • 82. https://www.nlnetlabs.nl/ “best” set-up ● Multiple scenarios possible ● Local resolver ● Public resolver ● Local with forwarding to public ● Randomise forwards selection, or not?
  • 83. https://www.nlnetlabs.nl/ Questions? Ralph Dolmans Martin Hoffmann ralph@nlnetlabs.nl martin@nlnetlabs.nl