On Wed, Aug 12, 2020 at 12:51:34PM +0200, Peter van Dijk wrote: > (I changed the subject because this has turned into a solution > conversation, instead of a use case conversation) > > On Tue, 2020-08-11 at 21:49 -0400, Paul Wouters wrote: > > On Mon, 10 Aug 2020, Peter van Dijk wrote: > > > > > On Thu, 2020-08-06 at 23:04 -0400, Paul Wouters wrote: > > > > In the case of encrypted DNS to authoritative servers, those servers > > > > obviously can have an cryptographic ID based on FQDN. > > > > > > This is not obvious. It would be great if it was; but it isn't. > > > > Sorry, I did not realise it was not obvious to everyone, so let me > > clarify: > > > > _853._dot.ns0.nohats.ca. IN TLSA <blob> > > _443._doh.ns0.nohats.ca. IN TLSA <blob> > > Yes, that part seems obvious (if we assume the records live with the > child, which I guess is obvious from your 'national MITM' argument in > other threads). Many other aspects are not obvious. Some examples > follow. > > Delegation NS records are not signed, so do we stick -those- (or a hash > of the NSset perhaps?) into DS?
Note that DNS does not guarantee coherence between record types, so that would presumably need to be individual NSnames. > Can we find those TLSA records without leaking the names of the name > servers we are looking for, or do we decide that name server names are > not a privacy leak? I think that the destination IP mostly gives away the name server name. It is zone name that should be treated as sensitive if at all possible, and should not be disclosed to unauthenticated servers. > Do we move delegation-revalidation from 'possibly later' to 'always do > that first', so that we get signed NS records before we look for TLSA? I don't see obvious connection between this and delegation-revalidation. > Do we expect resolvers to issue a couple of TLSA queries per NS before > getting to the actual end user's question? Issuing the TLSA queries can be problematic if the nameserver is in-zone. Things get even worse if nameserver is located in child zone of zone it serves (thankfully, I do not think the latter happens much). And thinking about it, one would also need to use dedicated connection (or unencrypted UDP) for the queries, because otherwise leaks information about the zone if the nsname is inside one of the zones it is serving. Reusing the connection would also need post-hoc authentication, which is nontrivial to implement correctly. Getting around these would need stapling. Also, if nameserver already has authenticated connection to the same nameserver, there is no need to open another one to issue queries for different zone. > 'Put TLSA records in your zone' is not a protocol. I'm sure we can > define a protocol that revolves around TLSA, but your description is > not yet it. That is what I mean by 'this is not obvious'. And presumably the records would have to have usage 2 or 3, as there are no built-in trust anchors (or at least I hope so!). > > This uses the unique FQDN of each nameserver's name. You can have > > multiple TLSA records if you use different keys on some of your > > nameservers (eg some outsourced to an ANYcloud provider) > > Assuming you use vanity names in the outsourcing (i.e. ns5.nohats.ca is > actually a CloudFlare name server). If you don't use vanity names, the > scaling mentioned just below comes for free because the outsourced > operator would own the TLSA records (i.e. nohats.ca IN NS > paul.cloudflare.com). > > > Note that this scales with the nameserver. For example by publishing the > > above, the libreswan.org domain would also have dot/doh published as it > > is using the same nameservers. > > This, to me, is the main selling point of tying key publication to NS > names instead of zone names. In general it is useful to consider who should control a piece of data and how to give that party actual control of it. In this case, nameserver operators should control their authentication keys. -Ilari _______________________________________________ dns-privacy mailing list [email protected] https://www.ietf.org/mailman/listinfo/dns-privacy
