Duane, Wessels, Duane: > > This draft proposes a technique and new RR type for calculating and verifying > a message digest over the contents of a zone file. Using this technique, the > recipient of a zone containing the new RR type can verify it for completeness > and correctness, especially so when the zone is signed. We welcome your > feedback on this document.
I think this is a great idea. Certainly one of the things that we were missing in the Yeti project was a way to confirm that the contents of the root zone transfered from any particular master were actually the correct version, so this fills a real need. One issue is that the algorithm proposed requires that the recipient who is generating a digest has to store basically the entire zone before beginning the digest calculation, since it has no way to know if the zone will be delivered in any kind of canonical order. It might be nice to have some way to signal that. I'm not sure exactly how, and possibly that belongs in a separate document (maybe we can tack it onto MIXFR?), but it seems like a potential problem as it adds extra work (possibly re-reading the entire zone an extra time along with the associated I/O, memory consumption, and unneeded latency due to checking). As for specific questions in the draft: * I think that it should be allowed for unsigned zones. If nothing else, it provides the equivalent of checksum to help prevent truncations or not properly updated records (missing deletions or additions). * I don't see much benefit in multiple ZONEMD. We generally expect masters & slaves to co-operate, so they should be able to find software that has an algorithm that both sides support. * I think the serial in ZONEMD is helpful. Doesn't it also help prevent replay attacks? * I would rather not special-case ZONEMD regarding responding. Even though it is bigger than most RDATA, large responses seem like a general problem. OTOH, I won't object too loudly if someone feels very strongly that this should be an option. A final possible concern is that generating a digest on a large zone might be computationally quite expensive. Indeed it could be used as an attack vector on a hosting provider by using small IXFR to cause large zone digests to be repeatedly calculated. Is it worth exploring the possibility of including multiple ZONEMD in a zone at different names, which digest the part of the zone up to that point? So something like: a.example.com ... . . . n.example.com ... n.example.com ... ZONEMD ... ; covers a-n . . . z.example.com ... example.com ... ZONEMD ... ; covers o-z (Sorry this needs to be more carefully thought through, but that's the basic idea.) Cheers, -- Shane _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop