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


To: namedroppers@ops.ietf.org
Cc: dnssec@cafax.se
From: David Blacka <davidb@research.netsol.com>
Date: 16 Oct 2001 16:28:35 -0400
Sender: owner-dnssec@cafax.se
User-Agent: Gnus/5.090003 (Oort Gnus v0.03) XEmacs/21.4 (Artificial Intelligence)
Subject: comments on delegation signer


I have a few comments about the Delegation Signer draft
<draft-ietf-dnsext-delegation-signer-02.txt>.

First is a fairly minor issue: the DS draft states that in the textual
representation of a DS record, HEX should be used to display the SHA-1
hash.  However, this is inconsistent with the other DNSSEC RR types.
This forces implementors to create or have access to a base16
conversion library, in addition to a base64 library.  I can see no
particularly compelling reason to use hex here, especially considering
that base64 is sufficient for the other DNSSEC records.

My second comment centers around how resolvers determine the security
status of a child zone under this draft.

Section 2.2 states 

  "If a DS RR set accompanies the NS RR set, the intent is to state
  that the child zone is secured. If an NS RR set exists without a DS
  RR set the intent is to state that the child zone is unsecure."

This presents (I think) a security flaw.

If we posit the existence of a sophisticated "man in the middle"
attacker that can arbitrarily change DNS response packets, then this
attacker can convert a secure delegation to an unsecure, hijacked
destination by removing the DS records and signatures and altering the
unsigned NS records.

This vulnerability does not exist using RFC 2535 semantics.  This
attacker could only convert an unsecure delegation to a secure one (by
removing the NULL KEY), which does him no good.  He cannot convert a
secure delegation to an unsecure one, because that would require the
ability to sign a NULL KEY record.

Instead, a better approach might be to require DS enabled servers to
return either: 
   
   NS RR set + DS RR set + SIG{DS} set (for secure delegations)

   OR 

   NS RR set + NXT + SIG{NXT}.         (for insecure delegations)

The NXT record needs to show the non-existence of a DS (or KEY) RR
set.

Merely receiving NS RRs could either be an error (if we are aware that
the zone is using DS) or could be interpreted as a SIG@child
delegation.

This could eliminate the need for a SEC RR or bit in the KEY record to
indicate use of DS, as there would be no ambiguous cases:

delegation:     sec         unsec
            +---------+---------------+
  SIG@child | NS      | NS, NULL KEY, |
            | only    | SIG{KEY}      |
            +---------+---------------+
        DS  | NS,DS   | NS, NXT       |
            | SIG{DS} | SIG{NXT}      |
            +---------+---------------+

-- 
David Blacka         <davidb@research.netsol.com> 
Sr. Research Engineer   Verisign Applied Research

Home | Date list | Subject list