[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Q-10: Reaction to "Silly" NXT's



First I'll assume the context of this is that the NXT is in the authority section and appears in one of the messages as described in RFC 2308, including the referral.

At 12:14 +0200 6/3/03, Olaf M. Kolkman wrote:
1. You only process NXT RRs if the zone from which the NXT RR is
  returned is supposed to be secured. This is determined either by the
  DS (or relevant NXT) from the parent zone or by configuration of the
  zone as an island of trust.
The right way to do this step is to take the NXT and it's SIG and try to build a chain of trust back to a configured key. It's not important to establish the configuration of the zone when you are starting from an NXT and SIG (NXT) - and can positively verify them.

On the other hand, making a determination that a NXT and/or SIG is needed if they are absent from a response. In this case, determining that a zone is signed, ergo, expect NXT and SIG is done.

If you do have an NXT and SIG but are unable to establish a chain of trust, you need to determine if the zone is supposed to be signed. It could be that they are stuffed, are replayed, or are just from a cranky old cache with a too-high TTL for the data. Depending on what the reason is (which cannot be decided from the in-band information), you response may vary. But, we have a decidability issue here, so we're stuck.

2. Given that the zone is secure you only process NXT RRs to proof
  non-existence of names or non-existence of RRtypes.
I disagree with this...as before. If I can validate the NXT, the zone must be secured. If I can't I need to either get the NXT (absent but expected) or I discard the NXT (present but unexpected).

3. If either a NXDOMAIN or NOERROR empty answer section is received one
  first verifies the SIG over the NXT RR to check if that has not been
  tampered with. If it has been tampered with mark the answer as
  BAD. (Bad luck, either the zone served incorrect data or your answer
  has been tampered with)

  The SIG(NXT) is correct so we have to verify if the NXT RR is relevant
  to the answer.

  (If the answer is NOERROR and a non-empty answer section we have a
   direct match and the NXT RR is IMHO irrelevant; all the proof
   for the data in the answer section is enclosed in the answer)
This is the step where I realized that there's something missing from the discussion. Once you have cryptographically determined that the NXT is valid (let's assume this is the processing path), then you need to understand the context to see if it is relevant.

In a referral message, with a negative indication for the DS, you need to see that the NXT claims that there is no DS but there is a SIG and NXT for the name, as well as NS's. If that's not the case, the NXT is inappropriate - or falls under the silly state proposal.

If you are worried that a delegation from a secured zone using an experimental version of NXT to another secured zone will now mean that no secure delegation will work, consider that in such a referral, you do not see the NXT, just the DS.

If the answer is an NXDOMAIN, then the NXT is only appropriate if the QNAME is between the owner name and the RDATA's next name.

If the answer has NOERROR and an empty answer section, then the QNAME has to equal the ONAME and the QTYPE flag must be absent from the RDATA.

If the answer has NOERROR but has 1 or more CNAMEs in the answer, the QNAME has to own a CNAME whose RDATA name (owns another CNAME whose RDATA name) is the same as the NXT.

(Can a CNAME chain end in an NXDOMAIN?)

If the answer has NOERROR and has data in the answer that is revealed to be a wild card synthesized answer, then the owner of the NXT has to be the closest encloser.

So - the context of the NXT determines if it is appropriate. The determination of appropriateness is orthogonal to cryptographic verification.

4a. If the answer was a NXDOMAIN answer then one has to check if the
  original qname is enclosed in the NXT RR's owner name and the NXT
  RR's nxt_domain_name.

4b. If the answer was NOERROR no data one verifies that the ownername
  of the NXT RR is the same as the QNAME and verifies that the QNAME
  is not in the nxt_bitmap.
Yeah, but there are a lot more cases (c,d,e,...) as I mention above. (I don't guarantee completeness of my list.)

In both 4a and 4b one does never check if the NXT or the SIG bit are
actually set. So if Ed's proposal should state that the "listener"
would have to do an additional check before step 4 i.e. Verify if the
NXT and/or the SIG bits are set and continue with step 4 if the bits
are set and go into silly state if the bits are not set. (MUST
language)
Maybe - you need to make the check go hand-in-hand. Yes, the experimental semantics that make the NXT appear to be in a silly state might redefine appropriateness, but to the simple resolver, it only follows the traditional rules of appropriateness.

Independent of going "Ed's check" I also think that the protocol ID
should state  that one should (or maybe even must):

 - when verifying the NXDOMAIN response not use the NXT bitmap.

 - when verifying the NOERROR emtpy answer one should only perform the
   qname==ownername check and one should ignore the nxt_domain_name
   ignored.
Well, you need to also handle the CNAME and wild card "redirects".

To rehash: in my interpretation of the specs the NXT and SIG bits are
not looked at at all; one MUST only look at what is relevant to the
answer given. Ed's proposal introduces an additional check before actually
using the content of the SIG RR to validate answers.

  Last night I was toying with a server that dynamically synthesizes
"I" == Bert? ;)

  This should not break validators because I assume, based on the step
  4b, that for validation of a NOERROR-empty answer response the
  nxt_domain_name is irrelevant. Since caches are supposed to cache on
  the QNAME,QCLASS,QTYPE tripled there should not be any problem
  putting bogus name intervals in the NXT RRs that proof non-existence
  of QTYPE for caches either...
'Zackly.

  (yeah yeah.. this is a sick waste of time)
I expect to see a link and man page on Bert's site in short order.

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Edward Lewis                                            +1-703-227-9854
ARIN Research Engineer

Digital cameras are to film cameras as Etch-A-Sketches are to canvases.

--
to unsubscribe send a message to namedroppers-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/namedroppers/>