Vernon Schryver wrote:
By "signed" I guess you mean signed by the resolver itself with some
sort of public key ... If so, I agree that works,

yes.

but I still don't see how that is as good as two dig's with one to
a resolver trusted to give the truth.

there will in my model be only one resolver, and while it may or may not be trusted to tell the truth, it may or may not also be trusted to tell a useful lie. that is, truth has value, and some lies also have value, for example an RPZ answer of NXDOMAIN when the qname is a DGA. but right now we have no authentication of the lies, while we do have it for the truth (if DNSSEC is used). so, i am conflating two issues in my stick-figure of the moment: authentication of lie source and content, and, the ability of an end-user via resolv.conf or API to tell her local applications what lie-source to believe, if any.

Whenever that in-band DNS truth red light *might* blink, you'll want
a trusted resolver available so that when the light does blink your
application gets honest DNS truth or honest RPZ lies.  ...

no, really. it's blink red first, and then either go offline or remain online, according to the user's risk tolerance. for me it's go offline.

there is no other resolver present to ask-also or ask-instead or ask-after.

rpz must become hop-by-hop authenticated, since there's no end-to-end for it. this may become the first valid use for dnscrypt.

Principled objections to RPZ cannot be answered by RPZbis including
truth with lies.  That is because an application must consistently
choose either truth or possible RPZ lies.  Choosing RPZ lies for
security and privacy defenses makes including the truth in RPZbis
answers a sham and waste of bandwidth.  On the other hand, an application
choosing truth makes the RPZ lies a waste of bandwidth.

i'm on a different trail entirely. we have to include the truth if it's dnssec signed, since the client will know we're lying if we do otherwise. but, in any valid RPZ deployment, the lies we tell are of value to the client, so we must include those. and, because those lies can otherwise be MITM'd, we must authenticate them hop-by-hop (that is, from the rDNS to the stub.)

Which gets back yet again to the only place I think RPZ belongs, which
is in a verifying resolver that you trust to do only the RPZ lying
that you want (and so where you don't need that red light except when
debugging).

between arp spoofing and ip-source spoofing, a stub has no reason to trust its rDNS -- that's why DNSSEC has to be visible end-to-end for DNSSEC-aware applications. we need to authenticate the source of a lie, since otherwise it could be inserted by some on-LAN malicious actor. while we might be able to use SIG(0) and the KEY RR for this, and that would be a form of DNSSEC, the form would be degenerate, since it's not the same as end-to-end source authentication of the DNS data as having been created by the legitimate operator of the zone whose key signed it. RPZ is divorced entirely from the zone whose key normally signs data having the owner = qname. so we have to authenticate hop by hop.

--
P Vixie

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

Reply via email to