On Wed, 15 May 2024, Peter Thomassen wrote:

[ I know this message predates the telechat, but I had no time to process
 this before the telechat ]

[ cut everywhere where we agreed ]

 I have a few items to discuss and some comments. I'm leaving out the
 discussion
 of _signal as a name, as this discussion is taking place on dnsop. While I
 have
 a preference, I'll abide by the consensus call of the dnsop wgchairs.

I requested the chairs to do a consensus call on the matter two weeks ago. The response was that the document is no longer a WG document, so the chairs "have no role in this".

Warren as responsible AD has come forward, so this issue is resolved now.

 Section 2:

          The DS enrollment methods described in Section 3 of [RFC8078]
          are deprecated and SHOULD NOT be used.

This was discussed on the IESG telechat today, and I think we had
consensus around some text that RECOMMENDS this documenter over
the existing methods, but does not obsolete/deprecate them because
those methods might be the only ones available for now. At a future
point this decision could be updated to obsolete the older methods.

 If the authors/WG insists on the "deprecated" language, it should also
 Obsolete: 8078. But be aware that the document currently does make
 references
 to it, which it cannot do if it obsoletes the document.

The authors don't insist on anything, and I find this language slightly irritating.

(In my understanding of the word, it implies the absence of a rationale and/or an unwillingness to engage in a discussion. I assume that was not the intention ...)

Note that this seems to be just a miscommunication. The IESG does not
make decisions overriding the WG. It technically has no veto, and a
DISCUSS is just that - a discussion to try and resolve matters. In this
context, the word "insists" just meant to convey "sticks to their current
views" and did not convey anything about intensions of parties involved.

 Section 4.1.1:

 It is not clear to me if the "signaling domain" really has to be
 its own zone or not. eg:

 _dsboot.example.co.uk._signal.ns1.example.net

 Could this be signed using the DNSKEY of "example.net", or does the
 document insist on a zone cut at _signal.ns1.example.net ?

The document does not insist that there be a zone cut.

So in that case, I think it would be more clear to rename "Signaling
domain" to "Signaling name".

The Terminology section says:
    Signaling domain: A hostname from the child's NS RRset, prefixed
    with the label _signal.

Defining a hostname with an alias containing the word "domain" does not
prevent the confusion though (as in my case of reading the document)

 Later on in the Operational Considerations, the issue is mentioned and
 it states zone cuts are not mandatory. So I do think this needs some
 cleanup.

I'm not sure what to clean up.

The confusion about name vs domain.

          in Step 3: any failure to retrieve the CDS/CDNSKEY RRsets
          located at the signaling name under any signaling domain,
          including failure of DNSSEC validation, or unauthenticated data
          (AD bit not set);

 I think it also needs to exclude signaling signatures made by any DNSSEC
 keys upstream from the DNS hoster's zone. Eg if we have
 _signal.ns1.example.net
 we also do not want to see the CDS/CDNSKEY RRsets signed by .net or the
 root.

I'm not sure. It's conceivable for a TLD operator to run DNS service for some of its child zones, and if I recall correctly, some of the smaller ccTLDs do. In this case, address records of nameservers operated under a child may be part of the TLD zone (along with the corresponding signaling names), so the signaling records' signer name is indeed the TLD.

But then it is not a domain that can request DS records anyway (eg like
in .de)

In case that was an attack, the TLD (or root) would have to conceal the delegation of example.net in order to then get asked for _signal.ns1.example.net/CDS, to then publicly fabricate a signed response.

Unfortunately, they do not need to conceal it. If the .net TLD receives
a query for _signal.ns1.example.net, they can just give an authoritative
answer signed by their .net key, even if they publish NS records for
example.net. A resolver that does not do query minimalization will just
believe it.

That would discredit the operator quite significantly, and thus seems very unlikely. Additionally, mitigation is available by using nameservers under different TLDs, as mentioned in the document.

I still think placing an additional security control here makes
sense. Just to ensure that the DNS hoster is in fact the party that
signed the signaling data.

The problem lies in identifying "the DNS hoster's zone". There's no a priori knowledge about how far up the tree it is.

You can detect a "deep sign", eg a signature that crosses a delegation.
It does not matter how many zone cuts there are, as long as the CDS is
not signed by a key on the upper side of a NS/DS delegation. I
understand this does involve some manual work (eg not just stock DNSSEC
validation).

Similarly as their is no requirement for the signaling domain to be in a separate zone, there's no requirement for the DNS hoster to use a zone distinct from the TLD. Such a requirement would seem similarly unjustified as an imposed zone cut at _signal.

So, I'm getting the feeling that I may have misunderstood the scenario you described, in which case I'd appreciate your elaboration to that we can include suitable text.

That is not a problem. As long as each signaure in the delegation does
not cross a zone cut. Eg for _signal.ns0.example.co.uk, it does not
matter if co.uk is signed by the same key or not, of if example.co.uk is
the zone cut or co.uk is the zone cut or whether there is a zone cut at
.signal. As long as whatever signed _signal is not a key upstream. So if
there is a (validatable) DS record for example.co.uk, then 
_signal.ns0.example.co.uk
must not be signed by the key of uk. or the root key. If ns0.example.co.uk.
has a DS record, then _signal.ns0.example.co.uk must not be signed by
the key of example.com but or higher, but by the key of example.co.uk
(or if there is another DS for _signal.ns0.example.co.uk, by that key.

 Section 5:

          CDS/CDNSKEY records and corresponding signaling records MUST
          NOT be published without the zone owner's consent.

 This opens a can of worms. How is an implementer going to codify this
 MUST? The only usable interpretation I can see is that the DNS hoster,
 by being assigned the DNS hoster, has permissions to DNS host the zone
 as it sees fit, and thus do DNSSEC. And especially not bother the zone
 owner with techno-babble for permissions.

          Likewise, the child DNS operator MUST enable the zone owner

 Again, this wades into legalize and contractual matters best left
 outside of RFC specifications.

These were added based on Warren's concerns that a DNS operator may lock in a customer by enabling DNSSEC without consent, thus making it harder to move away from that provider.

I talked to Warren a bit, and I think he understands my concern a bit
better. Perhaps something like this could work:


        CDS/CDNSKEY records and corresponding signaling records can be
        added using this protocol without explicit knowledge of the
        domain owner. When transferring a domain to a new DNS hoster,
        the old and new DNS hoster need to cooperate to allow for a
        smooth transition. In the worst case, this might involve the
        requesting the Registrar to remove all DS records and perform
        a transfer as per draft-hardaker-dnsop-intentionally-temporary-insec

The authors believe either way is fine, and would like to hear the IESG's decision on how to address this (or not).

The IESG does not make decisions like that. It points at what it thinks
are issues and everyone in the community hopefully works together to
resolve it. So above is my proposal. Let's see if Warren or you have
some improvements on this first proposal of me.

          a zone cut ensures that bootstrapping activities do not require
          modifications of the zone containing the nameserver hostname.

 Why does this matter?

Because nameserver addresses are very static, so rarely touched. Touching a zone comes with a risk that something goes wrong; at the same time, the correctness and availability of nameserver addresses is critical to a DNS operator.

It thus seems a good thing to not needlessly give write permission to nameserver zones (or any zone, for that matter). Some provisioning systems (such as at deSEC) follow this approach, and do not have production credentials available for editing the nameserver zones (there's no API token that can access them).

Ok, that is fair.

 I think there should also be some text on
 what to do when the parent and child NS RRsets for the domain mismatch.
 (abort?)

The question really is whether CDS processing (also for updates, not only for bootstrapping) should use child-centric or parent-centric resolution. It can be further exacerbated by the question whether one needs to ensure consistency across all NS *addresses* in case there are several. This rabbit hole has been discussed in connection with draft-ietf-dnsop-cds-consistency, where it was found that such "deep expansion" consistency checks are not needed.

It can also be problematic if there is a non-coooperating/defunct DNS
hoster. Or if one of your nameservers is cut off because of routing
errors. But I agree that probably the existing RFCs text is enough for
this. It is not different for the bootstrap.

          in Step 1: the child is already securely delegated or has
          in-bailiwick nameservers only;

 or the path from the root to the child traverses an insecure delegation.

Why is that a problem?

It seems fine to provision DS records for an insecure child even if the parent is insecure, as long as the signaling records can be validated.

It seems risky to me. I am mostly worried about the effects of a
temporary DNSSEC -> insecure outage being abused. But I guess in the
case of trust islands could be supported. So I am fine with not adding
my sentence.

Paul

_______________________________________________
DNSOP mailing list -- dnsop@ietf.org
To unsubscribe send an email to dnsop-le...@ietf.org

Reply via email to