DNS-over-TLS has recently become a welcome addition to the range of security protocols supported by DNS. It joins TSIG, SIG(0) and DNSSEC to add privacy, and, in the absence of validating stub resolvers, necessary data integrity on the link between a full-service resolver and the users stub resolver. (The authenticated source feature of TLS may also offer some additional benefits for those of a nervous disposition.) Good stuff.
What is not good stuff is when implementers suggest that any specific security protocol is capable of doing more that it says on its tin. Protocol designers, and especially security protocol designers, are cautious people and careful to define precisely, or as precisely as the English language is capable of, the functionality of their design in its specification (in our case RFCs). It has been suggested that ubiquitous DNS-over-TLS (stub to resolver, resolver to authoritative sources) is functionally equivalent to DNSSEC. It is not. Both DNSSEC and TLS do what they say on their tin. No more and no less.
DNSSEC is designed to ensure DNS data originates only from the authoritative source and is unchanged at the termination of the DNSSEC scope (when the DNS data is validated). It does so by digitally signing the zone (technically RRsets within the zone) using RRSIG records and by providing a verifiable chain of trust, typically via the DNS delegation hierarchy (DS records). DNSSEC can be viewed as an application-specific content security and authentication protocol. That’s what it says on its tin (RFC 4033 and many others).
TLS provides integrity, privacy and source authentication for data supplied to the TLS software via some API (not defined by TLS) from some application (not defined by TLS). The application may obtain the data it supplies to TLS by self creation, from RAM, from a filesystem, a remote location or by some other esoteric process, any or all of which may be vulnerable. If the data supplied by the application, for example, a web server, a DNS resolver or a mail system, is clean, corrupt, has been hacked or is otherwise maliciously modified TLS will simply ensure the clean, corrupt, hacked or otherwise modified data is delivered unchanged to the TLS peer. TLS is a powerful and highly efficient general purpose (non application-specific) secure communications and end-entity authentication protocol. That’s what it says on its tin (RFC 8446 and many others).
(There is one application-specific data content element within TLS. During the handshake phase a certificate, typically an X.509 certificate, is normally supplied and validated before the connection can be established. The certificate validation process is not specified within TLS but determined by the certificate type. For example, the X.509 certificate validation process is defined by RFC 5280 and others.)
TLS plays a vital role in securing access to many services and will contribute its own unique capabilities to DNS.
The bottom line: If you want your clients to have privacy, secure last-mile communications and are content to hope the data you are sending is correct, then DNS-over-TLS is for you; If you want your clients to have privacy, secure last-mile communications and want to ensure the data you are sending is correct, then you need both DNS-over-TLS and DNSSEC.
There is, however, another reason to welcome DNS-over-TLS. TLS has been around, in one form or another (including its SSL ancestor), for about 26 years, DNSSEC for about half that period. TLS/SSL has had 5 minor surgeries and one, recent, major surgery (TLS 1.3). TLS penetration rates are high, partly driven by the inherent benefits of the protocol, partly by threat of obliteration by the search engines if not implemented. (Does that constitute a modest carrot and a very big stick?) Whatever the reasons, TLS has always taken a pragmatic approach to implementation while maintaining the highest levels of security. Perhaps the DNS community needs to review critically the implementation details of DNSSEC with the objective of radically improving its penetration rate.
DNSSEC is, arguably, the only application-specific content security protocol the Internet has. That has meant wrestling with its unique and complex implementation problems. But let’s stop fighting the theory wars of the past (DNSSEC works) and admit we need some, perhaps major, surgery to make it practical.
Problems, comments, suggestions, corrections (including broken links) or something to add? Please take the time from a busy life to 'mail us' (at top of screen), the webmaster (below) or info-support at zytrax. You will have a warm inner glow for the rest of the day.
Contents
tech info
guides home
dns articles
intro
contents
1 objectives
big picture
2 concepts
3 reverse map
4 dns types
quickstart
5 install bind
6 samples
reference
7 named.conf
8 zone records
operations
9 howtos
10 tools
11 trouble
programming
12 bind api's
security
13 dns security
bits & bytes
15 messages
resources
notes & tips
registration FAQ
dns resources
dns rfcs
change log
This work is licensed under a
Creative Commons License.
If you are happy it's OK - but your browser is giving a less than optimal experience on our site. You could, at no charge, upgrade to a W3C STANDARDS COMPLIANT browser such as Firefox
Search
Share
Page
Resources
Systems
FreeBSD
NetBSD
OpenBSD
DragonFlyBSD
Linux.org
Debian Linux
Software
LibreOffice
OpenOffice
Mozilla
GitHub
GNU-Free SW Foundation
get-dns
Organizations
Open Source Initiative
Creative Commons
Misc.
Ibiblio - Library
Open Book Project
Open Directory
Wikipedia
Site
Copyright © 1994 - 2024 ZyTrax, Inc. All rights reserved. Legal and Privacy |
site by zytrax hosted by javapipe.com |
web-master at zytrax Page modified: January 20 2022. |