Q: Is a security-aware resolver allowed to cache RRsets for which one
or more SIG RRs exist but none of them validate?
Discussion:
Excerpt from RFC 2535, section 6:
Data stored at a security aware server needs to be internally
categorized as Authenticated, Pending, or Insecure. There is also a
fourth transient state of Bad which indicates that all SIG checks
have explicitly failed on the data. Such Bad data is not retained at
a security aware server.
This appears to rule out any form of caching for RRsets with
signatures which do not validate, including any form of negative
caching. Given the demonstrated need for negative response caching in
insecure DNS, this prohibition seems ill-advised.
Please also note that this appears to be dictating implementation
details than just describing externally visible behavior, and that the
RFC 2535 rule may require a security-aware recursive name server to
leave itself open to denial of CPU-time attacks by requiring the
server to repeat the same signature checks over and over again.
Should we remove this prohibition?
Pro removal: the crypto equivalent of neg caching is possible.