Andrew,

I "attended" (remotely) the behave group Tuesday, and heard your
presentation to dnsop Tuesday as well, and I have to say I'm impressed
with the work your group is doing, even (especially?) the bits I don't
really understand.  :)

Andrew Sullivan wrote:
> Dear colleagues,
> 
> Despite the speed with which I went through the dns64 issue, there is
> in fact something in this that could really do with some attention.
> Again, this isn't a WG document and really needs to be discussed in
> behave, but I'll make a more detailed plea here now that you all heard
> me talking really fast saying something.
> 
> Suppose that we have a security-aware, non-validating stub behind a
> translator.  On query it sets DO and does not set CD.
> 
> The translator is a validating, recursive resolver that also performs
> the translation function (a "translating validator", for short).

Ok so far.

> The general principle is that we MUST validate before translation.
> So, the translating validator queries for the AAAA record, doesn't get
> one, queries for the A record, and gets one with all the DNSSEC data
> necessary for validation.  The translating validator successfully
> validates the A record.  Now, it translates.
> 
> To perform the translation, it moves the A record to the additional
> section, strips off all the RRSIG and other DNSSEC-relevant data,
> synthesizes the AAAA record to match the A record, and sets the AD
> bit.  It then ships the resulting response to the stub.

Here is where the alarm bells go off in my head. From 4035, Section 3.1.6:
        A security-aware name server MUST NOT set the AD bit in a
        response unless the name server considers all RRsets in the
        Answer and Authority sections of the response to be authentic.

(Also see 3.2.3, and the rules for validation in Section 5.)

That section is talking about validation of the response, the type of
synthesis that you're describing is not even considered in the
document (or anywhere else in DNSSEC unless I miss my guess). The only
place that this kind of synthesis IS mentioned in 4035 is in
relationship to CNAME RRs synthesized from DNAMEs in Section 3:

        A security aware name server that synthesizes CNAME RRs from
        DNAME RRs as described in [RFC2672] SHOULD NOT generate
        signatures for the synthesized CNAME RRs.

> The question is whether that's broken in such a way that it will break
> any clients.  In particular, are there clients that will get heartburn
> if AD is set on a response when there's otherwise apparently no
> security data in the response?

You're asking the wrong question. The real question is, is it OK to
set the AD bit for a synthesized response in the first place, to which
I would say "clearly it is not." Of course there are a lot of people
on this list more knowledgeable about the protocol stuff than I am,
but to my mind this seems like a slam dunk.

Furthermore, NAT64/DNS64 already provides a mechanism for the owner of
the v4-only host to set up the translation on _their_ end, which could
of course include proper DNSSEC signatures on the AAAA records for
their NAT64 box.

> For background, the extant -02 draft doesn't do it as outlined above.
> It said instead that the translating validator MUST NOT set the AD
> bit, because the answer being returned isn't actually validatable.

It isn't that it isn't validatable, it's that the data in the answer
section is not the data that was actually validated.

> The counter-argument, raised by Dave Thaler, is that RFC 4035 allows
> the validator to set AD if it knows it can trust the answer

I disagree with Dave's reading, see above. You also seem to be munging
the plain-english version of the term "answer" with the DNS meaning of
"data in the answer section of the packet" which is dangerous.

> (and of
> course, the validator can know that: it validated the response from
> the DNS, and it knows the prefix it is using).  In addition, Dave
> reports that there is an implementation that uses the AD bit, in a
> secure-last-hop context, as a boolean security flag such that
> applications can make different decisions based on whether AD was
> set.  So he has a use case that he wants supported.

Unfortunately this part of the argument muddies the water quite a bit
because now you're talking about "local policy," which I'm using here
as a DNSSEC term of art that can (for better or worse) be applied with
a broad brush to cover a multitude of sins.

One potential meaning of a validated DNSSEC response (and even the
protocol geeks disagree on exactly what it _should_ mean) is that when
I as an end user receive a validated response to my query for
blah.example.com I can connect directly to that IP address with a very
high degree of confidence that whoever controls the example.com zone
intends that IP address to be the one, true, blah.example.com. (Note
my sneaky use of the word "direct" in that sentence.)

That's great if I'm in the 1% of Internet users that actually can
connect directly to anything. If I'm in the other 99% (yeah, I'm
exaggerating) then there is almost certainly some kind of middleware
box between me and the rest of the Internet controlled by (you guessed
it) _local policy_. Given that I already have to trust whoever is
running the network (or built the box) to deal honestly with my
packets as they go from my host, through locally controlled
middleware, out to the Internet, and back; what harm does a "local
policy" of setting the AD bit for synthesized DNS64 answers cause?
Furthermore, if the person controlling the network is a bad actor,
they are just going to do it anyway, regardless of what the protocol
says.

So now that I've spoken firmly out of both sides of my mouth, for me
personally I think this _is_ a violation of 4035, but it is probably a
necessary one.

Now the bad news, I don't know the answer to your actual question
(will a stub choke on AD being set without the signature data in the
answer). Hopefully the folks at nlnet labs are paying attention to
this thread, since they are doing "bleeding edge" work on validating
resolver stuff with unbound.

Hopefully someone more knowledgeable than I can prove me wrong on one
or more points, but in any case I hope this helps stir up some
discussion, or is otherwise useful.


Doug
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to