To:
Edward Lewis <lewis@tislabs.com>
CC:
dnssec@cafax.se
From:
Daniel Massey <masseyd@isi.edu>
Date:
Fri, 22 Mar 2002 12:07:21 -0500
Sender:
owner-dnssec@cafax.se
Subject:
Re: Keys and DS
Edward Lewis wrote:
<snip>
> First question. Is there a requirement/need to have a child provide
> authentication during the sending of material key material to the
> parent? (By "key material" I am not inferring a KEY set for this
> question.)
>
I think this is a non issue. A parent that blindly accepts a
random DS record or NS record allows child zones to be hijacked.
A different issue is the mechanism to authenticate the child's
change in DS/NS. This may be an in person exchange, a PGP
signed message, a message signed by a current zone key, etc.,
etc. It greatly depends on the parent/child in question.
> Second question. Should the child be responsible for sending the
> generated DS records to the parent? (This is perhaps a touchy
> question.) I won't elaborate further, I would like to hear
> opinions.
>
Do you prefer vi or emacs? :)
> Third question. With the use of DS, if each member of a zone's
> apex keyset is represented by a (signed) DS record at the parent,
> is/are SIG(KEY)s necessary? E.g., If I see this:
>
<snip>
There are two reasons for the SIG.
First is simplicity.
Sign the authoritative records in your zone.
Period. End of story. Let's not append a comment about
"unless the record is a KEY and has a signed DS in the
parent and each KEY in the apex set has a DS...."
Second, SIGs on the key set are used in a variety of scenarios.
For example, we currently run a couple zones with a policy where
the SIG is absolutely essential for our style of key roll-over.
Parent policy:
- parent stores only 1 DS record for a child
(may need to be one DS per key algorithm used at child)
- child uses secure mechanism to send DS to parent
(experimenting with several options)
- parent enters an authenticated DS within 1 week of submission
- no notification is sent to child
(push the limit of asynch behavior)
- limit of one DS change per week
(exception for emergency such as key compromise)
Recommended child roll-over plan:
- assume parent has "DS A", SIG by parent.
child has "KEY A, SIG by A"
**** child adds "KEY B" to its set so it now has
{KEY A, KEY B}, SIG A, SIG B.
- child sends DS B to parent using secure mechanism
- within week, parent replaces "DS A" with "DS B".
- child learns of parent action with dig
- child waits until caches should have dropped DS A
(3 times TTL) and then removes KEY A to get only
KEY B, SIG B
The signing of the KEY set allows step **** to be possible and
helps keep the parent/child exchange asynchronous.
Dan