Hi -

With the change to remove ZONEMD from the calculation (apparently in -06), I no longer have any objections related to future proofing.

But, with the change, the text needs some additional clean up.

Instead of the current section 3 - use something like this:

>>
3. Updating the Zone for ZONEMD RRs

3.1 "Step 1 - remove any existing apex ZONEMD RR from the zone"

3.2 "Step 2 - for each scheme, form a canonical representation of the zone according to the scheme.  The canonical representation for the SIMPLE scheme is listed in <> below."

3.3S "Step 3 (SIMPLE):  For each digest type in the SIMPLE scheme, calculate the digest over the canonical representation and form the appropriate ZONEMD RR for later inclusion" [Note: Other Schemes may have other processing at this point] 3.3O "Step 3(Other): For any other scheme/digest pair form the appropriate ZONEMD RRs and it them to the set for later inclusion.

3.4. "Step 4: Add each of the ZONEMD RRs formed in step 3 to the zone"

3.5. "Step 5 (Optional):  Sign the zone adjusting NSEC/NSEC3 records as appropriate to account for the existence of the ZONEMD RRSet".


4. Canonical representation and Digest Calculation for the SIMPLE scheme. (move the  old 3.3, 3.4 and 3.5 sections under this heading).
>>


Note:   The presence or absence of _provable_ DNSSEC for the ZONEMD RRs is irrelevant to whether or not the zonemd rr set can be verified.  It would seem to me that if you have a chain of DNSKEY RRs back to a trust point, you can verify the zonemd RR whether or not the zone claims the records should exist.     NSEC records say that the record SHOULD exist, but AFAICT NSEC records aren't actually checked if the records do exist.  That may have changed from the original model, but I mention it with respect to  section 4, first bullet which reads as if the expectation is the important thing rather than actual signature data.

I'm still not a big fan of this as a standards track document as I don't feel it provides enough general benefit nor does it provide a standard and programmatic answer to "what do I do if it doesn't verify", but I'm no longer adamant it needs to be experimental as it no longer forces a contract for future digesting models.

Later, Mike



On 3/9/2020 5:24 PM, Michael StJohns wrote:
On 3/9/2020 4:46 PM, Wessels, Duane wrote:
Michael StJohns pointed out (Feb 25) that a verifier that does not
recognise a particular
ZONEMD Scheme and/or Hash Algorithm may be unable to create the
required placeholders,
and therefore unable to perform a verification using any
(Scheme,Algorithm) at all.
I don't believe that to be the case.  For the unknown schemes/algorithms
the recipient simply replaces how ever many octets the received ZONEMD digest
had with all zeros.




As of right now, I don't believe the current format is future proofed.

Current encoding:

0x01 - simple
0x01 - SHA384
48 bytes of digest.

0x01 - simple
0x02 - SHA512
64 bytes of digest.

0x02 - Complex
0x00 - Ignored - mainly because I'm forced to have it here because of the SIMPLE scheme - it doesn't specify a digest type. [Opaque values that describe the complex scheme - e.g. btree description, partial hashes, selection matrix of RRs I actually care about etc]
[More opaque values that are the various digest(s)]

These are OPAQUE from a receiver that only understands SIMPLE.

For the latter scheme, I want to include the first part of the opaque values in the various hash calculations.   But the SIMPLE scheme will set them to zero for its own calculations?   And I have to do special things for scheme 1 to do my calculations. AND I have to know that digest 0x02 requires 64 bytes of zero for the calculation even if I'm only able to verify SHA384 digests.  Any error in the formation of the digest 0x02 digest field or scheme 0x02 data field means that the 0x01 digest won't verify.  Ditto for any formation for the scheme 2 complex digest relative to the Scheme 1 digests.  This makes all digests interdependent which I believe was not desired.

I see no benefit to including the ZONEMD RR in any digest calculation with our without placeholdering it.

Just omit any ZONEMD RR from the calculation and be done with it.  Make ALL ZONEMD RRs independent from each other.





_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to