On 5 Feb. 2018 16:52, "Mark Andrews" <ma...@isc.org> wrote:
> On 5 Feb 2018, at 5:10 pm, Ted Lemon <mel...@fugue.com> wrote: > > On Feb 5, 2018, at 12:18 AM, Mark Andrews <ma...@isc.org> wrote: >> The original problem is that HTTP doesn’t specify that names learn across the >> wire, including from on disk html files, need to be treated as absolute names. >> This is HTTP’s mess due to allowing relative names in what is transmitted over >> the wire. This should be sent back to HTTP say FIX YOUR INSECURE PROTOCOL. > > That's totally orthogonal to the question we are considering. No it is not! The browser knows where the name came from. If HTTP treated ALL NAMES AS ABSOLUTE then href="http://localhost/" would result in EXACTLY ONE possible lookup in the DNS, /etc/hosts, NIS(YP), LDAP etc. Similarly href=“http://some.partially.complete.name/“ won’t resolve to some.partially.complete.name.example.com when run by a employee of example.com. HTTP is a security nightmare because it is specified that those names may not be absolute. Fix that security hole and there is no need to touch this draft for the reason it was brought up. In fact it is specified that they may not be DNS names at all. However... RFC 3986, on which HTTP relies for the 'host' part of its URIs, says to use "http://localhost./" for an absolute FQDN. So it's actually the users' problem. But catching it somewhere convenient seems a hell of a lot less problematic than trying to fix the users. And catching it in DNS seems a lot less problematic than rewriting RFC 3986 (or rewriting HTTP to not use that part of 3986). > It's also nonsense. How does HTTP, a protocol, know the source of an IP address that it's been given by the name resolution API? Does the API even give you a way to tell? What you mean is that the implementation should know the difference. This is what the document is doing. It's saying that the API should never look this name up in the DNS. SMTP all names are absolute. You call the name API’s with searching disabled. The implementation is broken is search is enabled. And if it's broken, it currently fails open. This proposal makes it fail closed. HTTP names may be relative. You don’t call the name API’s with searching disabled and you get a security mess as a result. STOP SEARCHING!!!! IT IS NOT NEEDED. It can be handy, though. "http://dev01/" or "http://dev02/" is much easier to type. >> The second bugtraq issue is also HTTP’s insecure security model that doesn’t >> take into account that addresses have scopes. Again that is for HTTP to fix. > > HTTP should certainly be smart about scopes, and I would argue that "machine scope" is not a scope in which connections should be assumed to be trustworthy, so indeed in a sense that you are right. > > But the reason for wanting the DNS to not return answers for localhost is that implementations may get this wrong, and if they do we want it to fail safe. So again, your premise is valid, but doesn't apply. Just fix the browsers. IT IS NOT THE DNS’S JOB TO FIX UP HTTP’S MESS and in doing so BREAK OTHER THINGS!!!!!!!!!!!! > As for search lists, I think it's reasonable to say that search lists, which are not part of the DNS protocol, should not be applied to the bare label 'localhost.' If the document said that DNS servers should treat FQDNs containing the label 'localhost' specially other than when it is the top-level label, that would be wrong. But it doesn't say that. It just specifies the handling of localhost with respect to searchlists, and what it says is correct and important. If I can supply you a search list and use that to trick you into connecting to a remote service rather than a local one, that's a significant attack surface. Search lists should not be applied to any name learnt over the wire. What about the name I type in the address bar? Cheers -- Matthew Kerwin
_______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop