On Apr 22, 2013, at 13:50, Chris Thompson wrote:
> On Apr 22 2013, Edward Lewis wrote:
>
>> We really do need to drop the KSK and ZSK terminology because there are
>> Common Signing Keys coming "back" in vogue. The factor is whether a key
>> is a SEP or not. Recall that in the validation and signing engines,
>> the SEP bit is not significant, it is there for the convenience of key
>> management tools.
>
> I was extremely pleased to see that draft-kumari-ogud-dnsop-cds-01 dropped
> all mention of KSK and ZSK (well, almost - there is a reference to KSK in
> the introduction). It may be that there is still too much talk about the
> SEP bit.
>
> The essence of the previous requirement that CDS RRsets were to be signed
> with a KSK is much better captured by the current text:
>
> The CDS record MUST be at the zone apex, and MUST be signed with a
> key that is represented in the current DNSKEY and DS RRset's. If
> these conditions are not met the CDS record MUST be ignored.
What confuses me is that signing in DNSSEC is not done on a record by record
basis but on a set basis. Meaning, you can't "ignore" a record within a set.
For the use case of wanting to publish a DS record for an unpublished DNSKEY,
how will this work? In this case, I can sign the set with an existing DNSKEY
that is represented in the DS set. With that, all CDS records would be
authenticated. Perhaps this is just a wording issue, but the alternative to
that is that none of the CDS set is valid.
Requiring a CDS to be signed by a key that is present and signs the DNSKEY set
as well as being referenced in the DS set before it is accepted as a request of
the child is different from requiring the set be signed by a key with a KSK
designation or even an SEP bit turned on. The former is setting up rules
"above" the normal validation of DNSSEC data and therefore can be set into a
code path reserved for a special function. The latter (placing more
requirements on what key can be used to validate data) represents a change to
the basic validation rules in DNSSEC - that is something I want to avoid
because it would open up a new set of issues that we've not explored. (Well,
actually, in the early days, we toyed with key role-based rules for
authentication and the models failed. If anyone reads the ancient texts,
there's a talk about key strength, which was part of the failed experiments.)
I would accept that the parent ought to be aware of what key signs the CDS set
and could use that information in determining the authenticity and
authorization of the request. In some use cases this could be acceptable to me
(said in the sense that I'm not sure yet.) However, in other cases, I would
want stronger checks to take place.
Note that I am not saying that it would be bad to define a key change where the
parent only needs the CDS set to be signed by (ultimately) a key represented in
the existing DS set. (I'm using multiple negatives here on purpose "not
saying...it would be bad".) I think that such a practice can co-exist with
stronger practices, like those requiring out of band notifications and
confirmations. I want there to be the possibility of more than one model for
authentication and authorization, based on the existence of a "standard" CDS.
I don't want "my way" to be the one, I just want to make sure that I can handle
multiple ways with a common data representation.
In my code, I'd want to sign the CDS set like it was an A record set. For
zones that need the signer to be in the DS set too, that would be a special
case but one that could be triggered automatically. Somehow, perhaps in the
CDS record itself ("request for SEP signature bit").
> That is, the chain of trust used by the parent to validate a CDS is
> restricted to be of length 1. That is all it knows on earth, and all
> it needs to know (with apologies to John Keats).
I really don't think this is important. For example you might have a
registrant who "owns" a name, outsource it's web and dns operations to a third
party, register the name via a reseller (that provides a WhoIs proxy service to
hide the registrant) who then uses a registrar that talks to a registry to get
a name into TLD that is run by a backend operator. Having a trust chain of
length 1 in DNSSEC is a false sense of "closeness" here. We talk of trying to
prevent a false sense of security at times.
In sum, think of the way the SEP bit was born. As a help to tools that set up
a zone. Not as a factor in normal line DNSSEC processing, something not to be
used or assumed by the validators. For the CDS, the special processing line is
tied to how you provision the parent than how data is validated. For this I'd
make sure the recommendations and/or rules in the document take steps to
enforce the nature of the SEP bit and not lead us into confusion. And, again,
I want to be able to deal with multiple back-end procedures for finding,
accepting, and processing the request that a CDS represents.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Edward Lewis
NeuStar You can leave a voice message at +1-571-434-5468
There are no answers - just tradeoffs, decisions, and responses.
_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop