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

Remarks on opt-in-09, was Re: Remarks on draft-stjohns-dnssec-sigonly




Sorry - I missed this section on a quick read-through, but the section isn't sufficient.

At 06:19 PM 12/20/2006, Roy Arends wrote:

> The document is silent on the treatment of other records in the "opt in
span".

>From
http://www.ietf.org/internet-drafts/draft-ietf-dnsext-dnssec-opt-in-09.txt

4.1.1.  Delegations Only

   This specification dictates that only insecure delegations may exist
   between the owner and "next" names of an Opt-In tagged NSEC record.
   Signing tools MUST NOT generate signed zones that violate this
   restriction.  Servers MUST refuse to load and/or serve zones that
   violate this restriction.  Servers also MUST reject AXFR or IXFR
   responses that violate this restriction.

There's a number of problems with the way this is stated. Zones aren't actually signed - records are. Zones aren't necessarily loaded monolithically. For example, as I understand IXFR - you might not actually get all the right records during a given interaction to ensure this restriction is maintained. The originating zone may maintain this set of restrictions, but the IXFR transaction isn't atomic to the zone so the receiving zone might only get part of the information (e.g. a new record is added to the gap, but the deletion of the optin NSEC isn't included in that specific transaction, or the optin NSEC is deleted before the addition of the in-the-gap records.) And finally, people aren't protocol elements and may build zones by hand by adding records one at a time rather than loading the zone in its entirety.

What you really need to do here is state the behavior of the resolver, not of the server.

Consider a zone with opt-in with multiple servers using IXFR.
Consider a range in the zone from "optedout" to "pzone" with an opt-out nsec

Zone owner adds an A record "optedoutnew" to the zone at the master and re-writes the NSEC records
(So for some period of time the master and the secondaries are out of sync)

Depending on when a client asks the question, the client can be told that the answer doesn't exist (old optin NSEC), that it does exist (signed A record), or that it should exist but doesn't (new NSECs but no signed data).

It gets worse. Say the client has the signed optedoutnew in its cache. It now asks for "optedoutagain" and because of the vagaries of how DNS works ends up getting the old optin record (from a secondary with the original data) which says that "optedout" to "pzone" was empty - - but that conflicts with the cached signed optedoutnew.

What does the a caching name server with this data do when asked a question in this space? If there's a covering non-existence NSEC, does a caching resolver even attempt to retrieve data in the covered non-existence arc?

One possible solution is something like:

a) All data gets cached for its TTL
b) In the conflict between validated existing data and non-existence proofs, the existing data is considered valid. c) Validated existing data without related NSEC records is considered valid only for the specific RR type. d) non-existence is only cached for a specific type and name queried and refers back to the NSEC - but the presence of the NSEC is never considered as negative caching for any other covered names. (E.g. if you got a covering NSEC for asking about "foo" that also covers "bar", you still attempt to query for "bar" - each are negatively cached separately).

or something like this.


--
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/>