Great and detailed feedback on our first draft, Andrew.  I'll take a reply
in detail, point-by-point, when I start working on -01 with my co-authors
and contributors.

Thanks
Jason


On 7/13/09 4:29 PM, "Andrew Sullivan" <a...@shinkuro.com> wrote:

> Dear colleagues,

On Thu, Jul 09, 2009 at 11:23:48AM -0400, Livingood, Jason
> wrote:
> If anyone is interested and has time before IETF 75, I¹m happy to
> take
> feedback before then obviously.  Please note that there is a list of
> open
> items at the end, which we plan to address in subsequent versions.

I
> have read draft-livingood-dns-redirect-00.  I have some (actually,
many)
> comments.  I write as a contributor of the DNS Operations
working group and
> not in any other capacity (especially not as co-chair
of DNSEXT).  I will
> leave it for others to debate the extent to which
the document actually
> proposes changes to the DNS protocol.  I
apologise for the length of this
> mail, but it seemed best to me to go
over the document in detail.

To begin
> with, I must state that I am opposed to adopting the draft as
it stands as a
> working group item with a target of BCP.  That said, I
agree that if people
> are going to do these sorts of things, it'd be
better that we have a document
> to explain what the least bad way to do
them is (although one might be excused
> for wondering what "least bad"
means in a context such as this).  It is a fact
> that people are doing
these DNS tricks, and we will not be saved from them by
> refusing to
talk about them any more than we were saved from the
> stupidest
possible NAT implementations by the IETF's collective refusal to
> work
on NAT.  Still, I am not sure that the document as it currently
> stands
represents that "least bad", so there's some work to do.

First, in
> section 3 we have a note that there are alternative
strategies to DNS
> redirects.  It is one thing to rule discussion of
those alternatives out of
> scope; it is quite another to present the
alternatives as completely neutral.
> This discussion should be
strengthened to point out that performing redirects
> in the DNS have
extremely wide consequences, and that the DNS-based approach
> is a
terribly blunt instrument to perform what is intended to be
> surgical
redirections, akin to doing an appendectomy with a club.  In
> addition,
I think the discussion should point out that DNS-based
> redirection
violates the basic principle of the DNS: it is supposed to be
> a
distributed, loosely-coherent database of records originally provided
by
> authoritative sources of data.  DNS redirections violate that
principle by
> design, even if they do it for the noblest reasons.  This
is an important
> factor in the discussion of DNSSEC, to which I'll turn
near the end of this
> message.

I note this text in section 5.1.3:

   Design considerations for the
> Web Error Search and Malicious Site
   Protection services should include
> properly and promptly
   terminating non-HTTP connection requests.

I would
> find it helpful if the draft included some text explaining how
to terminate
> "non-HTTP connection requests" (and make a subsequent
connection request
> operate correctly)?  There's nothing in the DNS
request that would tell a
> resolver whether the DNS query was happening
because the client planned to
> make an http connection as opposed to
something else.  Is the idea to monitor
> DNS requests, then sniff the
traffic to see if it's an HTTP request and then
> do something with that
knowledge?  (This sounds just shy of practically
> impossible to me, but
I'd be happy to be wrong.)  What about https requests?
> Surely,
malware people will quickly learn to send the requests via https
> if
that's a clear path, so that won't work.  And anyway, one can't
> sniff
encrypted traffic.

In section 5.2.3, it says

   A range of resource
> records may be redirected, such as A,
   AAAA, MX, SRV, and NAPTR records, in
> order to fulfill the objective
   of preventing access to certain network
> elements containing malicious
   content or which and in some way used to
> transmit, relay, or
   otherwise transfer malicious content.  All other
> resource record
   types must be answered as if there was no redirection.

I
> think the last sentence is just a rhetorical flourish.  It seems to
say that
> any RR may be redirected, depending on the objective; but
other ones must
> (MUST?  I suppose this depends on where one stands on
2119 language in BCPs.
> If the authors want 2119 language, there are
some other places that could do
> with it too) be answered as if there
were no redirection.  This boils down to,
> "Redirect whatever you think
you need to."  So the last sentence in the quoted
> bit is just
decoration: it merely makes the passage read as though the
> technique
isn't too invasive, but it has no practical effect.  (Section 5.5
> has
this, too.)

Section 5.3 ought to point out that legally-mandated DNS
> redirect may
do harm, because the ability to send desirable traffic (such
> as
cease-and-desist emails, for instance) is lost (this is
> especially
important in light of the discussion of proxy servers at the end
> of
5.3.3).  Section 5.3.3 reads like it was written by actual lawyers
(note
> that in my idiolect, "lawyer" is not automatically a term of
derision): there
> are here a lot of and/ors, other slashes, and lists
of possible authorities.
> For readability, I suggest that this be made
simpler and more neutral.  "Legal
> authority" probably covers
everything needed to encompass the various kinds of
> agencies in
question.  I'm also not sure the apparent requirement to disclose
> that
the redirection is enforced by law has any practical value, although
> I
think it's nice if my ISP tells me it's fooling with the bits because
of law
> enforcement rather than local policy.

What is the interaction between the
> manual DNS server reconfiguration
discussed at the end of section 6.3, and the
> persistence
recommendation in section 6.1?  It seems to me all but inevitable
> that
a manual modification will bumped out of the way by a
> subsequent
automatic configuration unless the automatic system is informed of
> the
manual changes.  Therefore, it seems to me that there needs to be
> a
mechanism by which manual configuration changes can be communicated
back up
> to the automatic assigner, so that the manual changes don't
later get undone.
> (It'd probably be enough to specify the ability to
disable the manual changes,
> without perhaps needing to send all the
new configuration to the ISP.)

In
> section 6.4, the text appears to suggest that setting an attribute
in the
> browser will affect how the DNS lookups happen.  I suggest
removing that text
> or else including a pointer to the section in which
you explain why it is a
> bad (not to say "ludicrous") idea.  The
subsequent text is the right direction
> to go: to allow users to opt
out, just change their network configuration.  I
> think some more
exposition of the tradeoffs may be needed, however, since the
> current
text seems to be fairly narrowly tailored to the
> present-era
arrangement where the CPE has a single IPv4 address with a NATted
> LAN
sitting behind it.  Given that some other participants in the IETF
> are
busily telling everyone to assign fairly large IPv6 ranges to
> every
customer, the model in the draft probably needs some more refining.

I
> think the discussion in 7.1 isn't drawing the wanted distinction
quite as
> clearly as it might.  The proposal is that a _good_
redirection captures the
> query, detects it is one of the redirection
targets, and takes the user to a
> web page where the user is told that
they've been redirected.  The complaint
> in 7.1 is really that the
very same redirection has happened, but the user is
> not informed.  The
discussion of "valid reason for the redirection" is just
> a
distraction: the issue isn't whether the redirection is somehow
justified
> (since there are some of us who would reply that such a
redirection is _never_
> justified), but whether the user is told about
it.

Section 7.4 would benefit
> from some characterization of what would be
acceptable additional latency
> introduced by a redirector.  Citations
of user-experience studies would help.
> It seems to me the section is
talking about one of the trade-offs to be made
> when trying to decide
whether to add a redirector, and without some
> well-founded numbers,
this is just hand waving.

Section 7.5 seems to suggest
> that there are cases where it is
acceptable to intercept DNS queries and
> redirect them silently.  These
cases are typified as being "reasonable",
> "justifiable", &c.  The
problem with any of this sort of thing is that it is
> the ISP who gets
to decide what is "reasonable".  I presume that those ISPs
> who are
capturing and blocking or, worse, redirecting all DNS traffic think
> it
_is_ reasonable and justifiable.  Since what is reasonable and
justifiable
> is right at the core of disagreement, reasonableness and
justifiability can't
> be the criteria.  I suggest that discussion be
removed: there just is no
> reason to capture the DNS traffic.  If you
want to turn someone off, _turn
> them off_.

Section 8 could be improved considerably by discussing the way
> that
redirection breaks other protocols.  A diagram that looks very
> like
(e.g.) Figure 5, only with no place in the protocol where the
> Web
response box goes, might make clearer why the redirection
> is
problematic.

Section 9.7 says, "This example represents an improper
> redirect
occurring when a valid DNS RR should have been returned in response
> to
a DNS recursive query for an example website, the resulting
> HTTP
transaction, and that no DNS query or HTTP traffic was sent to the
valid
> authoritative DNS server and valid web server."  This makes it
sound like
> there should be an HTTP request going to the DNS server.  I
know that's not
> the intent, but given that the target audience is
presumably confused about
> the relationship between DNS servers and web
servers (to the point that
> they're willing to break every other
application in the interests of
> supporting the web servers), this
should be cleared up.

Section 10's
> consideration of DNSSEC seems to have some fairly deep
misapprehensions of the
> DNS protocol.  First, it has a completely
naive idea of the actual DNS
> ecosystem.  It starts by shutting down
any discussion of non-stub resolvers on
> the grounds that "DNS
redirections take place on the recursive server", as
> though only one
recursive server could be involved in a resolution request
> from a
stub.  But previously in the draft there was some discussion
> of
networks in households, and so on.  One model of deployment there is
surely
> a gateway server that runs its own DNS recursive resolver, and
provides
> service to all the systems behind it, often with a single
IPv4 anddress and an
> RFC1918-addressed NAT.  Such gateways are obvious
targets for DNSSEC
> deployment.  Now, since they usually get the
address from the ISP via
> automatic means, they will get the DNS
configuration from the ISP.

There is
> nothing whatever about a given query that could tell you,
"Oops, this one's
> not from a stub; better give it the real DNS."  So,
the draft should address
> the case of a full-service recursing
validating resolver inside the redirect
> boundary.

It is interesting to compare bullet 2 with the advice we editors
> of
the DNS64 document (over in BEHAVE) have received.  In our case,
> the
suggestion has been that, if the security-aware translator validates
the
> answer from the DNS containing an A record, and is going to
provide the
> querying resolver (which set DO=1 and CD=0) an answer, it
is perfectly
> acceptable to set the AD bit in the answer.  This is
because of the language
> in RFC 4035: "The name server side SHOULD set
the AD bit if and only if the
> resolver side considers all RRsets in
the Answer section and any relevant
> negative response RRs in the
Authority section to be authentic."  In the case
> of DNS64/NAT64, the
trick here is to expand the definition of "authentic" to
> include the
NAT64 technique.  I suspect this is really acceptable to
> people
because the DNS64 knows about the NAT64 configuration, and
> is
attempting to hook the querying host up with the target host (and is
just
> compensating for the fact that the v4 and v6 networks are really
different
> networks).  But strictly, the justification for setting the
AD bit is that the
> DNS64 host knows about the NAT64 configuration, and
therefore is in a position
> to assert the authenticity of that address
(having assured itself of the
> authenticity of the destination address).

The redirection case is on purpose
> sending the querying client to some
target host _other than_ the requested
> one.  In some sense, then, the
decision in the draft not to set the AD bit on
> these responses is
praiseworthy.  However, the redirector presumably is
> tightly coupled
to the configuration of redirection and the host that is used
> to offer
landing pages.  Therefore it seems to me by the logic used
> above,
setting the AD bit would not strictly be a violation of the
> protocol,
if it isn't in DNS64.  I confess this conclusion makes me
> extremely
uncomfortable.  

I think a great deal of additional text will be
> needed to explain how
the ISP-provided "mitigating" trust anchor is supposed
> to help solve
the issue that the redirector's answers will fail validation by
> a
downstream validator.  Part of the point of DNSSEC is supposed to be
that we
> can prove delegations haven't been mucked with along the chain
between
> resolvers, and also that the trust across zone cut boundaries
is not broken.
> This is the cryptographic assurance of the integrity
of the distributed
> database I mentioned at the beginning of this
message.  The goal of
> redirection is to subvert that integrity (never
mind whether it's justified --
> that's the goal).  

The only way, it seems to me, that a redirector can use
> an alternative
trust anchor is to get its clients to accept an alternative
> (or,
rather, "additional") root key.  Then any validation chain can
> be
produced using that key, at the cost of a considerable increase in
state on
> the part of the redirector (because presumably the redirector
is going to need
> to remember what queries need supporting keys chasing
all the way down from
> the root.)  If such a system could be built such
that it could be reliably
> deployed, it would amount to a frontal
assault on DNSSEC itself, and on the
> principle of the single root.

And so we arrive at the really fundamental
> problem of the draft: it
presents a plan to fracture the namespace
> selectively.  Sometimes,
just in cases reflected in the redirector's own
> configuration, the
namespace delegation points are _not_ those as reflected in
> a common
hierarchy descended from a root (let's leave aside the "unique
> root"
for the moment, since it's not precisely relevant to this argument),
but
> instead a delegation to some other point.  Under such a model, a
coherent
> distributed database becomes totally unreliable.  We might
say DNSSEC is
> designed to foil the sort of attempt redirection makes
precisely because this
> kind of fracturing undermines the database
itself, and that the result of
> being able to prove you've arrived at
the right host is just a happy
> instantiation of the more general
principle.

It is therefore mind-boggling
> that there is nothing in the Security
Consideration sections of the draft to
> say, "Oh, and we've broken the
DNS Security Extensions, too."  Section 11 also
> includes the following
text, which probably needs to say "no-one" where it
> says "someone":

   Security best practices should be followed regarding
> access to the
   opt-in and opt-out functions, in order that someone other
> than the
   user is able to change the user's DNS Redirect settings.

These
> are all the remarks I have at the moment.

Best regards,

Andrew

-- 
Andrew
> Sullivan
a...@shinkuro.com
Shinkuro,
> Inc.
_______________________________________________
DNSOP mailing
> list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop



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

Reply via email to